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