Main Page   Namespace List   Compound List   File List   Namespace Members   Compound Members   File Members  

tnt_array2d_utils.h

Go to the documentation of this file.
00001 /*
00002 *
00003 * Template Numerical Toolkit (TNT)
00004 *
00005 * Mathematical and Computational Sciences Division
00006 * National Institute of Technology,
00007 * Gaithersburg, MD USA
00008 *
00009 *
00010 * This software was developed at the National Institute of Standards and
00011 * Technology (NIST) by employees of the Federal Government in the course
00012 * of their official duties. Pursuant to title 17 Section 105 of the
00013 * United States Code, this software is not subject to copyright protection
00014 * and is in the public domain. NIST assumes no responsibility whatsoever for
00015 * its use by other parties, and makes no guarantees, expressed or implied,
00016 * about its quality, reliability, or any other characteristic.
00017 *
00018 */
00019 
00020 
00021 #ifndef TNT_ARRAY2D_UTILS_H
00022 #define TNT_ARRAY2D_UTILS_H
00023 
00024 #include <cstdlib>
00025 #include <cassert>
00026 
00027 namespace TNT
00028 {
00029 
00030 
00038 template <class T>
00039 std::ostream& operator<<(std::ostream &s, const Array2D<T> &A)
00040 {
00041     int M=A.dim1();
00042     int N=A.dim2();
00043 
00044     s << M << " " << N << "\n";
00045 
00046     for (int i=0; i<M; i++)
00047     {
00048         for (int j=0; j<N; j++)
00049         {
00050             s << A[i][j] << " ";
00051         }
00052         s << "\n";
00053     }
00054 
00055 
00056     return s;
00057 }
00058 
00075 template <class T>
00076 std::istream& operator>>(std::istream &s, Array2D<T> &A);
00077 
00089 template <class T>
00090 Array2D<T> operator+(const Array2D<T> &A, const Array2D<T> &B);
00091 
00103 template <class T>
00104 Array2D<T> operator-(const Array2D<T> &A, const Array2D<T> &B);
00105 
00118 template <class T>
00119 Array2D<T> operator*(const Array2D<T> &A, const Array2D<T> &B);
00120 
00121 
00122 
00134 template <class T>
00135 Array2D<T> operator/(const Array2D<T> &A, const Array2D<T> &B);
00136 
00137 
00138 
00139 
00140 
00152 template <class T>
00153 Array2D<T>&  operator+=(Array2D<T> &A, const Array2D<T> &B);
00154 
00155 
00156 
00168 template <class T>
00169 Array2D<T>&  operator-=(Array2D<T> &A, const Array2D<T> &B);
00170 
00171 
00172 
00184 template <class T>
00185 Array2D<T>&  operator*=(Array2D<T> &A, const Array2D<T> &B);
00186 
00187 
00188 
00189 
00190 
00202 template <class T>
00203 Array2D<T>&  operator/=(Array2D<T> &A, const Array2D<T> &B);
00204 
00218 template <class T>
00219 Array2D<T> matmult(const Array2D<T> &A, const Array2D<T> &B);
00220 
00221 } // namespace TNT
00222 
00223 #endif

Generated at Thu Jun 26 17:26:14 2003 for Template Numerical Toolkit (TNT) by doxygen1.2.5 written by Dimitri van Heesch, © 1997-2001