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

tnt_fortran_array3d.h

Go to the documentation of this file.
00001 /*
00002 *
00003 * Template Numerical Toolkit (TNT): Three-dimensional Fortran numerical array
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 
00022 #ifndef TNT_FORTRAN_ARRAY3D_H
00023 #define TNT_FORTRAN_ARRAY3D_H
00024 
00025 #include <cstdlib>
00026 #include <iostream>
00027 #ifdef TNT_BOUNDS_CHECK
00028 #include <assert.h>
00029 #endif
00030 #include "tnt_array3d.h"
00031 
00032 namespace TNT
00033 {
00034 
00060 template <class T>
00061 class Fortran_Array3D 
00062 {
00063 
00064 
00065   private: 
00066 
00067 
00068 
00069   public:
00070 
00071     typedef         T   value_type;
00072 
00073                Fortran_Array3D();
00074                Fortran_Array3D(int m, int n, int k);
00075                Fortran_Array3D(int m, int n, int k,  T *a);
00076                Fortran_Array3D(int m, int n, int k, const T &a);
00077     inline Fortran_Array3D(const Fortran_Array3D &A);
00078         inline Fortran_Array3D & operator=(const T &a);
00079         inline Fortran_Array3D & operator=(const Fortran_Array3D &A);
00080         inline Fortran_Array3D & ref(const Fortran_Array3D &A);
00081                Fortran_Array3D copy() const;
00082                    Fortran_Array3D & inject(const Fortran_Array3D & A);
00083         inline T& operator()(int i, int j, int k);
00084         inline const T& operator()(int i, int j, int k) const ;
00085         inline int dim1() const;
00086         inline int dim2() const;
00087         inline int dim3() const;
00088         inline int ref_count() const;
00089                ~Fortran_Array3D();
00090 
00091 
00092 };
00093 
00097 template <class T>
00098 Fortran_Array3D<T>::Fortran_Array3D();
00099 
00100 
00107 template <class T>
00108 Fortran_Array3D<T>::Fortran_Array3D(const Fortran_Array3D<T> &A);
00109 
00110 
00111 
00124 template <class T>
00125 Fortran_Array3D<T>::Fortran_Array3D(int m, int n, int k);
00126 
00127 
00128 
00139 template <class T>
00140 Fortran_Array3D<T>::Fortran_Array3D(int m, int n, int k, const T &val) ; 
00141 
00142 
00156 template <class T>
00157 Fortran_Array3D<T>::Fortran_Array3D(int m, int n, int k, T *a)  ;
00158 
00159 
00160 
00161 
00169 template <class T>
00170 inline T& Fortran_Array3D<T>::operator()(int i, int j, int k) ;
00171 
00179 template <class T>
00180 inline const T& Fortran_Array3D<T>::operator()(int i, int j, int k)  const;
00181 
00182 
00186 template <class T>
00187 Fortran_Array3D<T> & Fortran_Array3D<T>::operator=(const T &a);
00188 
00189 
00196 template <class T>
00197 Fortran_Array3D<T> Fortran_Array3D<T>::copy() const;
00198 
00222 template <class T>
00223 Fortran_Array3D<T> & Fortran_Array3D<T>::inject(const Fortran_Array3D &A);
00224 
00225 
00226 
00227 
00228 
00239 template <class T>
00240 Fortran_Array3D<T> & Fortran_Array3D<T>::ref(const Fortran_Array3D<T> &A);
00241 
00245 template <class T>
00246 Fortran_Array3D<T> & Fortran_Array3D<T>::operator=(const Fortran_Array3D<T> &A);
00247 
00251 template <class T>
00252 inline int Fortran_Array3D<T>::dim1() const;
00253 
00257 template <class T>
00258 inline int Fortran_Array3D<T>::dim2() const ;
00259 
00263 template <class T>
00264 inline int Fortran_Array3D<T>::dim3() const ;
00265 
00266 
00271 template <class T>
00272 inline int Fortran_Array3D<T>::ref_count() const;
00273 
00274 template <class T>
00275 Fortran_Array3D<T>::~Fortran_Array3D();
00276 
00277 
00278 } /* namespace TNT */
00279 
00280 #endif
00281 /* TNT_FORTRAN_ARRAY3D_H */
00282 

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