21#ifndef TNT_FORTRAN_ARRAY2D_UTILS_H
22#define TNT_FORTRAN_ARRAY2D_UTILS_H
31std::ostream& operator<<(std::ostream &s,
const Fortran_Array2D<T> &A)
36 s << M <<
" " << N <<
"\n";
38 for (
int i=1; i<=M; i++)
40 for (
int j=1; j<=N; j++)
52std::istream& operator>>(std::istream &s, Fortran_Array2D<T> &A)
59 Fortran_Array2D<T> B(M,N);
61 for (
int i=1; i<=M; i++)
62 for (
int j=1; j<=N; j++)
75Fortran_Array2D<T> operator+(
const Fortran_Array2D<T> &A,
const Fortran_Array2D<T> &B)
80 if (B.dim1() != m || B.dim2() != n )
81 return Fortran_Array2D<T>();
85 Fortran_Array2D<T> C(m,n);
87 for (
int i=1; i<=m; i++)
89 for (
int j=1; j<=n; j++)
90 C(i,j) = A(i,j) + B(i,j);
97Fortran_Array2D<T> operator-(
const Fortran_Array2D<T> &A,
const Fortran_Array2D<T> &B)
102 if (B.dim1() != m || B.dim2() != n )
103 return Fortran_Array2D<T>();
107 Fortran_Array2D<T> C(m,n);
109 for (
int i=1; i<=m; i++)
111 for (
int j=1; j<=n; j++)
112 C(i,j) = A(i,j) - B(i,j);
120Fortran_Array2D<T> operator*(
const Fortran_Array2D<T> &A,
const Fortran_Array2D<T> &B)
125 if (B.dim1() != m || B.dim2() != n )
126 return Fortran_Array2D<T>();
130 Fortran_Array2D<T> C(m,n);
132 for (
int i=1; i<=m; i++)
134 for (
int j=1; j<=n; j++)
135 C(i,j) = A(i,j) * B(i,j);
143Fortran_Array2D<T> operator/(
const Fortran_Array2D<T> &A,
const Fortran_Array2D<T> &B)
148 if (B.dim1() != m || B.dim2() != n )
149 return Fortran_Array2D<T>();
153 Fortran_Array2D<T> C(m,n);
155 for (
int i=1; i<=m; i++)
157 for (
int j=1; j<=n; j++)
158 C(i,j) = A(i,j) / B(i,j);
167Fortran_Array2D<T>& operator+=(Fortran_Array2D<T> &A,
const Fortran_Array2D<T> &B)
172 if (B.dim1() == m || B.dim2() == n )
174 for (
int i=1; i<=m; i++)
176 for (
int j=1; j<=n; j++)
184Fortran_Array2D<T>& operator-=(Fortran_Array2D<T> &A,
const Fortran_Array2D<T> &B)
189 if (B.dim1() == m || B.dim2() == n )
191 for (
int i=1; i<=m; i++)
193 for (
int j=1; j<=n; j++)
201Fortran_Array2D<T>& operator*=(Fortran_Array2D<T> &A,
const Fortran_Array2D<T> &B)
206 if (B.dim1() == m || B.dim2() == n )
208 for (
int i=1; i<=m; i++)
210 for (
int j=1; j<=n; j++)
218Fortran_Array2D<T>& operator/=(Fortran_Array2D<T> &A,
const Fortran_Array2D<T> &B)
223 if (B.dim1() == m || B.dim2() == n )
225 for (
int i=1; i<=m; i++)
227 for (
int j=1; j<=n; j++)
Definition tnt_array1d.h:36