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

# tnt_fortran_array1d.h

Go to the documentation of this file.

    00001 /*
    00002 *
    00003 * Template Numerical Toolkit (TNT): One-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_ARRAY1D_H
    00023 #define TNT_FORTRAN_ARRAY1D_H
    00024
    00025 #include <cstdlib>
    00026 #include <iostream>
    00027 #ifdef TNT_BOUNDS_CHECK
    00028 #include <assert.h>
    00029 #endif
    00030 #include "tnt_array1d.h"
    00031
    00032 namespace TNT
    00033 {
    00034
    00058 template <class T>
    00059 class Fortran_Array1D
    00060 {
    00061
    00062
    00063   public:
    00064
    00065     typedef         T   value_type;
    00066
    00067                Fortran_Array1D();
    00068                Fortran_Array1D(int n);
    00069                Fortran_Array1D(int n,  T *a);
    00070                Fortran_Array1D(int n, const T &a);
    00071     inline Fortran_Array1D(const Fortran_Array1D &A);
    00072         inline Fortran_Array1D & operator=(const T &a);
    00073         inline Fortran_Array1D & operator=(const Fortran_Array1D &A);
    00074         inline Fortran_Array1D & ref(const Fortran_Array1D &A);
    00075                Fortran_Array1D copy() const;
    00076                    Fortran_Array1D & inject(const Fortran_Array1D & A);
    00077         inline T& operator()(int i);
    00078         inline const T& operator()(int i) const ;
    00079         inline int dim() const;
    00080         inline int dim1() const;
    00081         inline int ref_count() const;
    00082                ~Fortran_Array1D();
    00083
    00084
    00085 };
    00086
    00090 template <class T>
    00091 Fortran_Array1D<T>::Fortran_Array1D();
    00092
    00093
    00100 template <class T>
    00101 Fortran_Array1D<T>::Fortran_Array1D(const Fortran_Array1D<T> &A);
    00102
    00103
    00104
    00115 template <class T>
    00116 Fortran_Array1D<T>::Fortran_Array1D(int n);
    00117
    00118
    00119
    00128 template <class T>
    00129 Fortran_Array1D<T>::Fortran_Array1D(int n, const T &val);
    00130
    00131
    00142 template <class T>
    00143 Fortran_Array1D<T>::Fortran_Array1D(int n, T *a);
    00144
    00145
    00146
    00147
    00155 template <class T>
    00156 inline T& Fortran_Array1D<T>::operator()(int i) ;
    00157
    00165 template <class T>
    00166 inline const T& Fortran_Array1D<T>::operator()(int i)  const;
    00167
    00168
    00172 template <class T>
    00173 Fortran_Array1D<T> & Fortran_Array1D<T>::operator=(const T &a);
    00174
    00181 template <class T>
    00182 Fortran_Array1D<T> Fortran_Array1D<T>::copy() const;
    00183
    00207 template <class T>
    00208 Fortran_Array1D<T> & Fortran_Array1D<T>::inject(const Fortran_Array1D &A);
    00209
    00210
    00211
    00212
    00213
    00224 template <class T>
    00225 Fortran_Array1D<T> & Fortran_Array1D<T>::ref(const Fortran_Array1D<T> &A);
    00226
    00230 template <class T>
    00231 Fortran_Array1D<T> & Fortran_Array1D<T>::operator=(const Fortran_Array1D<T> &A);
    00232
    00236 template <class T>
    00237 inline int Fortran_Array1D<T>::dim1() const ;
    00238
    00239
    00243 template <class T>
    00244 inline int Fortran_Array1D<T>::dim() const ;
    00245
    00246
    00247
    00248
    00249 template <class T>
    00250 Fortran_Array1D<T>::~Fortran_Array1D();
    00251
    00252
    00253
    00254
    00255 } /* namespace TNT */
    00256
    00257 #endif
    00258 /* TNT_FORTRAN_ARRAY1D_H */
    00259