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

CrystMatrix< T > Class Template Reference

2D Vector library (Blitz++ mimic) for ObjCryst++ More...

Collaboration diagram for CrystMatrix< T >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 CrystMatrix ()
 CrystMatrix (const long ySize, const long xSize)
 CrystMatrix (const CrystMatrix &old)
 ~CrystMatrix ()
void operator= (const CrystMatrix &old)
void reference (CrystMatrix &old)
long numElements () const
sum () const
min () const
max () const
long rows () const
long cols () const
T * data ()
const T * data () const
void resize (const long ySize, const long xSize)
void resizeAndPreserve (const long ySize, const long xSize)
void operator *= (const T num)
void operator *= (const CrystMatrix &vect)
void operator/= (const T num)
void operator+= (const T num)
void operator-= (const T num)
ListInitializerSwitch operator= (const T num)
operator() (const long i) const
operator() (const long row, const long col) const
T & operator() (const long i)
T & operator() (const long i, const long j)
CrystMatrix transpose (const int dim1, const int dim2) const

Private Attributes

T * mpData
long mNumElements
long mXSize
long mYSize
bool mIsAreference

Detailed Description

template<class T>
class CrystMatrix< T >

2D Vector library (Blitz++ mimic) for ObjCryst++

The CrystVector library is not a new array computation library, despite the appearances. ObjCryst++ should used the Blitz++ array library , which yields excellent performance and simple array expressions. Unfortunately, the memory required to compile the library using gcc is far too high to be reasonable when using complex expressions and optimizing code. So until this has changed, The CrystVector and CrystMatrix library have been created, and these emulate (supposedly exactly) the Blitz++ interface (but not the smart handling of mathematical expressions, so pointers must be used). For documentation about these two libraries you should read the Blitz++ documentation. CrystVector and CrystMatrix use the same kind of storage in memory.

You can use CrystMatrix_REAL, CrystMatrix_long,etc... to declare 2D vectors. Macros ensure (well, should) ensure compatibility with Blitz++. (as of april 2001 support of blitz++ is broken).


Constructor & Destructor Documentation

template<class T>
CrystMatrix< T >::CrystMatrix  ) 
 

template<class T>
CrystMatrix< T >::CrystMatrix const long  ySize,
const long  xSize
 

template<class T>
CrystMatrix< T >::CrystMatrix const CrystMatrix< T > &  old  ) 
 

template<class T>
CrystMatrix< T >::~CrystMatrix  ) 
 


Member Function Documentation

template<class T>
long CrystMatrix< T >::cols  )  const
 

template<class T>
const T* CrystMatrix< T >::data  )  const
 

template<class T>
T* CrystMatrix< T >::data  ) 
 

template<class T>
T CrystMatrix< T >::max  )  const
 

template<class T>
T CrystMatrix< T >::min  )  const
 

template<class T>
long CrystMatrix< T >::numElements  )  const
 

template<class T>
void CrystMatrix< T >::operator *= const CrystMatrix< T > &  vect  ) 
 

template<class T>
void CrystMatrix< T >::operator *= const T  num  ) 
 

template<class T>
T& CrystMatrix< T >::operator() const long  i,
const long  j
 

template<class T>
T& CrystMatrix< T >::operator() const long  i  ) 
 

template<class T>
T CrystMatrix< T >::operator() const long  row,
const long  col
const
 

template<class T>
T CrystMatrix< T >::operator() const long  i  )  const
 

template<class T>
void CrystMatrix< T >::operator+= const T  num  ) 
 

template<class T>
void CrystMatrix< T >::operator-= const T  num  ) 
 

template<class T>
void CrystMatrix< T >::operator/= const T  num  ) 
 

template<class T>
ListInitializerSwitch CrystMatrix< T >::operator= const T  num  ) 
 

template<class T>
void CrystMatrix< T >::operator= const CrystMatrix< T > &  old  ) 
 

template<class T>
void CrystMatrix< T >::reference CrystMatrix< T > &  old  ) 
 

template<class T>
void CrystMatrix< T >::resize const long  ySize,
const long  xSize
 

template<class T>
void CrystMatrix< T >::resizeAndPreserve const long  ySize,
const long  xSize
 

template<class T>
long CrystMatrix< T >::rows  )  const
 

template<class T>
T CrystMatrix< T >::sum  )  const
 

template<class T>
CrystMatrix CrystMatrix< T >::transpose const int  dim1,
const int  dim2
const
 


Member Data Documentation

template<class T>
bool CrystMatrix< T >::mIsAreference [private]
 

template<class T>
long CrystMatrix< T >::mNumElements [private]
 

template<class T>
T* CrystMatrix< T >::mpData [private]
 

template<class T>
long CrystMatrix< T >::mXSize [private]
 

template<class T>
long CrystMatrix< T >::mYSize [private]
 


The documentation for this class was generated from the following file:
Generated on Tue Nov 14 15:03:38 2006 for ObjCryst++ by doxygen 1.3.6