00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef TNT_ARRAY1D_UTILS_H
00021 #define TNT_ARRAY1D_UTILS_H
00022
00023 #include <cstdlib>
00024 #include <cassert>
00025
00026 namespace TNT
00027 {
00028
00029
00037 template <class T>
00038 std::ostream& operator<<(std::ostream &s, const Array1D<T> &A);
00039
00054 template <class T>
00055 std::istream& operator>>(std::istream &s, Array1D<T> &A);
00056
00068 template <class T>
00069 Array1D<T> operator+(const Array1D<T> &A, const Array1D<T> &B);
00070
00071
00083 template <class T>
00084 Array1D<T> operator-(const Array1D<T> &A, const Array1D<T> &B);
00085
00086
00098 template <class T>
00099 Array1D<T> operator*(const Array1D<T> &A, const Array1D<T> &B);
00100
00112 template <class T>
00113 Array1D<T> operator/(const Array1D<T> &A, const Array1D<T> &B);
00114
00115
00116
00117
00118
00119
00120
00132 template <class T>
00133 Array1D<T>& operator+=(Array1D<T> &A, const Array1D<T> &B);
00134
00135
00147 template <class T>
00148 Array1D<T>& operator-=(Array1D<T> &A, const Array1D<T> &B);
00149
00150
00162 template <class T>
00163 Array1D<T>& operator*=(Array1D<T> &A, const Array1D<T> &B);
00164
00176 template <class T>
00177 Array1D<T>& operator/=(Array1D<T> &A, const Array1D<T> &B);
00178
00179
00180
00181
00182
00183 }
00184
00185 #endif