22#ifndef TNT_FORTRAN_ARRAY1D_H
23#define TNT_FORTRAN_ARRAY1D_H
28#ifdef TNT_BOUNDS_CHECK
33#include "tnt_i_refvec.h"
51 void initialize_(
int n);
52 void copy_(T* p,
const T* q,
int len)
const;
53 void set_(T* begin, T* end,
const T& val);
71 inline T& operator()(
int i);
72 inline const T& operator()(
int i)
const;
73 inline int dim1()
const;
74 inline int dim()
const;
80 inline int ref_count()
const;
92Fortran_Array1D<T>::Fortran_Array1D(
const Fortran_Array1D<T> &A) : v_(A.v_), n_(A.n_),
96 std::cout <<
"Created Fortran_Array1D(const Fortran_Array1D<T> &A) \n";
103Fortran_Array1D<T>::Fortran_Array1D(
int n) : v_(n), n_(n), data_(v_.begin())
106 std::cout <<
"Created Fortran_Array1D(int n) \n";
111Fortran_Array1D<T>::Fortran_Array1D(
int n,
const T &val) : v_(n), n_(n), data_(v_.begin())
114 std::cout <<
"Created Fortran_Array1D(int n, const T& val) \n";
116 set_(data_, data_+ n, val);
121Fortran_Array1D<T>::Fortran_Array1D(
int n, T *a) : v_(a), n_(n) , data_(v_.begin())
124 std::cout <<
"Created Fortran_Array1D(int n, T* a) \n";
129inline T& Fortran_Array1D<T>::operator()(
int i)
131#ifdef TNT_BOUNDS_CHECK
139inline const T& Fortran_Array1D<T>::operator()(
int i)
const
141#ifdef TNT_BOUNDS_CHECK
152Fortran_Array1D<T> & Fortran_Array1D<T>::operator=(
const T &a)
154 set_(data_, data_+n_, a);
159Fortran_Array1D<T> Fortran_Array1D<T>::copy()
const
161 Fortran_Array1D A( n_);
162 copy_(A.data_, data_, n_);
169Fortran_Array1D<T> & Fortran_Array1D<T>::inject(
const Fortran_Array1D &A)
172 copy_(data_, A.data_, n_);
182Fortran_Array1D<T> & Fortran_Array1D<T>::ref(
const Fortran_Array1D<T> &A)
195Fortran_Array1D<T> & Fortran_Array1D<T>::operator=(
const Fortran_Array1D<T> &A)
201inline int Fortran_Array1D<T>::dim1()
const {
return n_; }
204inline int Fortran_Array1D<T>::dim()
const {
return n_; }
207Fortran_Array1D<T>::~Fortran_Array1D() {}
213inline int Fortran_Array1D<T>::ref_count()
const
215 return v_.ref_count();
219inline Fortran_Array1D<T> Fortran_Array1D<T>::subarray(
int i0,
int i1)
222 std::cout <<
"entered subarray. \n";
224 if ((i0 > 0) && (i1 < n_) || (i0 <= i1))
226 Fortran_Array1D<T> X(*
this);
235 std::cout <<
"subarray: null return.\n";
237 return Fortran_Array1D<T>();
246void Fortran_Array1D<T>::set_(T* begin, T* end,
const T& a)
248 for (T* p=begin; p<end; p++)
254void Fortran_Array1D<T>::copy_(T* p,
const T* q,
int len)
const
Definition tnt_fortran_array1d.h:40
Definition tnt_i_refvec.h:56
Definition tnt_array1d.h:36