Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

DifArray Class Reference

#include <DifArray.h>

List of all members.

Public Member Functions

 DifArray (const DifArray &a)
 DifArray (const HepVector &v, int npar=0)
 DifArray (int n, int npar=0)
 DifArray (const DifArray &a)
 DifArray (const HepVector &v, int npar=0)
 DifArray (int n, int npar=0)
DifNumber fetch (int i) const
DifNumber fetch (int i) const
HepMatrix jacobian () const
HepMatrix jacobian () const
int nElem () const
int nElem () const
DifNumberoperator() (int i)
DifNumberoperator() (int i)
DifArrayoperator= (const DifArray &)
DifArrayoperator= (const DifArray &)
DifNumberoperator[] (int i)
DifNumberoperator[] (int i)
void print () const
void print () const
void zero (int npar=0)
void zero (int npar=0)
 ~DifArray ()
 ~DifArray ()

Private Member Functions

void copy (const HepVector &a, int npar=0)
void copy (const DifArray &a)
void copy (const HepVector &a, int npar=0)
void copy (const DifArray &a)

Private Attributes

int _nElem
DifNumber_pointer
DifNumber_pointer


Constructor & Destructor Documentation

DifArray::DifArray int  n,
int  npar = 0
 

00029                                 :
00030   _nElem(n),
00031   _pointer(new DifNumber[n])
00032 {zero(npar);}

DifArray::DifArray const HepVector &  v,
int  npar = 0
 

00034                                               :
00035   _nElem(a.num_row()),
00036   _pointer(new DifNumber[nElem()])
00037 {copy(a,npar);}

DifArray::DifArray const DifArray a  ) 
 

00040                                    :
00041   _nElem(a.nElem()),
00042   _pointer(new DifNumber[nElem()])
00043 {copy(a);}

DifArray::~DifArray  ) 
 

00045 {delete[] _pointer;}

DifArray::DifArray int  n,
int  npar = 0
 

DifArray::DifArray const HepVector &  v,
int  npar = 0
 

DifArray::DifArray const DifArray a  ) 
 

DifArray::~DifArray  ) 
 


Member Function Documentation

void DifArray::copy const HepVector &  a,
int  npar = 0
[private]
 

void DifArray::copy const DifArray a  )  [private]
 

void DifArray::copy const HepVector &  a,
int  npar = 0
[private]
 

00083                                               {
00084   assert(nElem()==a.num_row());
00085   for(int i=0; i<nElem(); i++) 
00086     {
00087       _pointer[i].setNumber(a(i+1));
00088       _pointer[i].setNPar(npar);
00089     } 
00090 }

void DifArray::copy const DifArray a  )  [private]
 

00092                                     {
00093   assert(nElem()==a.nElem());
00094   for(int i=0; i<nElem(); i++) {_pointer[i]=a._pointer[i];}
00095 }

DifNumber DifArray::fetch int  i  )  const
 

DifNumber DifArray::fetch int  i  )  const
 

00060                                    {
00061   i=i-1;
00062   assert(i>=0);
00063   assert(i<nElem());
00064   return _pointer[i];
00065 }

HepMatrix DifArray::jacobian  )  const
 

HepMatrix DifArray::jacobian  )  const
 

00072                                   {
00073   int npar=_pointer[0].nPar();
00074   HepMatrix temp(nElem(),npar,0);
00075   for(int i=1; i<=nElem(); i++){
00076     for(int j=1; j<=npar; j++) {
00077       temp(i,j)=_pointer[i-1].derivative(j);
00078     }
00079   } //(int i=1; i<=nElem(); i++) 
00080   return temp;
00081 }

int DifArray::nElem  )  const [inline]
 

00047 {return _nElem;} // number of elements

int DifArray::nElem  )  const [inline]
 

00047 {return _nElem;} // number of elements

DifNumber& DifArray::operator() int  i  ) 
 

DifNumber & DifArray::operator() int  i  ) 
 

00053                                     {
00054   i=i-1;
00055   assert(i>=0);
00056   assert(i<nElem());
00057   return _pointer[i];
00058 }

DifArray& DifArray::operator= const DifArray  ) 
 

DifArray & DifArray::operator= const DifArray  ) 
 

00067                                                 {
00068   copy(rhs);
00069   return *this;
00070 }

DifNumber& DifArray::operator[] int  i  ) 
 

DifNumber & DifArray::operator[] int  i  ) 
 

00047                                     {
00048   assert(i>=0);
00049   assert(i<nElem());
00050   return _pointer[i];
00051 }

void DifArray::print  )  const
 

void DifArray::print  )  const
 

00104                                        {
00105   cout << "nElem=" << nElem() << endl;
00106   for(int i=1; i<=nElem(); i++){
00107     //SKIP cout << "element(" << i << ")=" << _pointer[i-1];
00108   }
00109 
00110 }

void DifArray::zero int  npar = 0  ) 
 

void DifArray::zero int  npar = 0  ) 
 

00097                            {
00098   for(int i=0; i<nElem(); i++) {
00099     _pointer[i]=0.0;
00100     _pointer[i].setNPar(npar);
00101   }
00102 }


Member Data Documentation

int DifArray::_nElem [private]
 

DifNumber* DifArray::_pointer [private]
 

DifNumber* DifArray::_pointer [private]
 


The documentation for this class was generated from the following files:
Generated on Wed Feb 2 15:57:40 2011 for BOSS6.5.5 by  doxygen 1.3.9.1