Main Page | Class Hierarchy | Class List | File List | Class Members

PLib::Basic2DArray< T > Class Template Reference

A basic templated array class in two dimensions. More...

#include <barray2d.h>

Inheritance diagram for PLib::Basic2DArray< T >:

PLib::Matrix< T > PLib::LUMatrix< T > PLib::MatrixImage< T > PLib::MatrixRT< T > List of all members.

Public Member Functions

int rows () const
int cols () const
 Basic2DArray ()
 Basic2DArray (const int r, const int c)
 Basic2DArray (const Basic2DArray< T > &f2)
 Basic2DArray (T *p, const int r, const int c)
virtual ~Basic2DArray ()
Basic2DArray< T > & operator= (const Basic2DArray< T > &f2)
void resize (const int nr, const int nc)
void resize (const Basic2DArray< T > &A)
void resizeKeep (const int nr, const int nc)
void reset (const T val=0.0)
operator= (const T val)
T * operator[] (const int i)
T * operator[] (const int i) const
T & operator() (const int i, const int j)
operator() (const int i, const int j) const
void io_elem_width (int w)
void io_by_rows ()
void io_by_columns ()
ostream & print (ostream &os) const
T & elem (const int i, const int j)
elem (const int i, const int j) const

Protected Member Functions

void init (const int r=1, const int c=1)

Protected Attributes

int by_columns
int width
int rz
int cz
T * m
T ** vm
int created

Friends

istream & operator>> (istream &is, Basic2DArray< T > &ary)
ostream & operator<< (ostream &os, const Basic2DArray< T > &ary)

Detailed Description

template<class T>
class PLib::Basic2DArray< T >

A basic templated array class in two dimensions.

This is a basis array class for two dimensionnal storage and retrieval.

Author:
Philippe Lavoie
Date:
4 Oct. 1996


Constructor & Destructor Documentation

template<class T>
PLib::Basic2DArray< T >::Basic2DArray  ) 
 

constructor

Constructs an array of size (0,0).

Author:
Philippe Lavoie
Date:
24 January 1997

template<class T>
PLib::Basic2DArray< T >::Basic2DArray const int  r,
const int  c
 

constructor with the size specified

Constructs an array of size (r,c).

Parameters:
r the number of rows
c the number of columns
Author:
Philippe Lavoie
Date:
24 January 1997

template<class T>
PLib::Basic2DArray< T >::Basic2DArray const Basic2DArray< T > &  a  ) 
 

copy constructor

Copy constructor

Parameters:
a the Basic2DArray to copy from
Author:
Philippe Lavoie
Date:
24 January 1997

template<class T>
PLib::Basic2DArray< T >::Basic2DArray T *  p,
const int  r,
const int  c
 

constructor from memory

Constructs a matrix from memory. No memory is allocated for this new basic2DArray and the memory will not be deallocated when the destructor is called. You are responsible for cleaning up the memory you allocated.

Parameters:
p the memory pointer
r the number of rows
c the number of columns
Warning:
Do not access the basic2DArray once you delete the memory segment used by the matrix since it now points to a dead memory location.
Author:
Philippe Lavoie
Date:
24 January 1997

template<class T>
PLib::Basic2DArray< T >::~Basic2DArray  )  [virtual]
 

destructor

Destructor

Author:
Philippe Lavoie
Date:
24 January 1997


Member Function Documentation

template<class T>
int PLib::Basic2DArray< T >::cols  )  const [inline]
 

< The number of columns

template<class T>
void PLib::Basic2DArray< T >::init const int  r = 1,
const int  c = 1
[inline, protected]
 

Parameters:
c  Calls a global function to perform the initialization, necessary to overcome some template problems

template<class T>
void PLib::Basic2DArray< T >::io_elem_width int  w  )  [inline]
 

Parameters:
w  width of an element in output streams

template<class T>
T PLib::Basic2DArray< T >::operator() const int  i,
const int  j
const [inline]
 

< calls elem(i,j)

template<class T>
T& PLib::Basic2DArray< T >::operator() const int  i,
const int  j
[inline]
 

Parameters:
j  calls elem(i,j)

template<class T>
T PLib::Basic2DArray< T >::operator= const T  val  )  [inline]
 

Parameters:
val  resets every elements to val

template<class T>
Basic2DArray< T > & PLib::Basic2DArray< T >::operator= const Basic2DArray< T > &  a  ) 
 

assignment operator

Assignment operator

Parameters:
a the Basic2DArray to copy from
Returns:
a reference to itself
Author:
Philippe Lavoie
Date:
24 January 1997

template<class T>
T* PLib::Basic2DArray< T >::operator[] const int  i  )  const [inline]
 

< returns a pointer to the start of a row \ i

template<class T>
T* PLib::Basic2DArray< T >::operator[] const int  i  )  [inline]
 

Parameters:
i  returns a pointer to the start of a row i

template<class T>
ostream & PLib::Basic2DArray< T >::print ostream &  os  )  const
 

writes a 2D array to an ostream Writes a matrix to an ostream

Parameters:
os the output stream
Returns:
Warning:
Author:
Philippe Lavoie
Date:
24 January 1997
Parameters:
os  row at a time ASCII I/O column at a time ASCII I/O

template<class T>
void PLib::Basic2DArray< T >::reset const T  v = 0.0  ) 
 

reset all values of the 2D array to v

Reset all values of the 2D array to v

Parameters:
v resets the elements of the 2D array to this value
Author:
Philippe Lavoie
Date:
24 January 1997

template<class T>
void PLib::Basic2DArray< T >::resize const int  nr,
const int  nc
 

a destructive resize of the matrix dimensions

Changes the matrix dimensions and intialize it to 0.

Parameters:
nr the new number of rows
nc the new number of columns
Author:
Philippe Lavoie
Date:
24 January 1997

Reimplemented in PLib::LUMatrix< T >.

template<class T>
int PLib::Basic2DArray< T >::rows  )  const [inline]
 

< The number or rows


Friends And Related Function Documentation

template<class T>
ostream& operator<< ostream &  os,
const Basic2DArray< T > &  ary
[friend]
 

writes a 2D array to an ostream

Parameters:
os the output stream a the 2D array to output
Returns:
Warning:
Author:
Philippe Lavoie
Date:
24 January 1997

template<class T>
istream& operator>> istream &  is,
Basic2DArray< T > &  ary
[friend]
 

reads a 2D arra from an istream

Reads a matrix from an istream

Parameters:
is the input stream
a the 2D array to initialize
Author:
Philippe Lavoie
Date:
24 January 1997


Member Data Documentation

template<class T>
int PLib::Basic2DArray< T >::by_columns [protected]
 

If the output is done by columns.

template<class T>
int PLib::Basic2DArray< T >::created [protected]
 

set if the class allocated the memory

Reimplemented in PLib::MatrixRT< T >.

template<class T>
int PLib::Basic2DArray< T >::cz [protected]
 

the number of columns

template<class T>
T* PLib::Basic2DArray< T >::m [protected]
 

the memory is allocated here

template<class T>
int PLib::Basic2DArray< T >::rz [protected]
 

the number of rows

template<class T>
T** PLib::Basic2DArray< T >::vm [protected]
 

for referencing, vm[i][j] is faster than m[i+cols*j]

template<class T>
int PLib::Basic2DArray< T >::width [protected]
 

the size of the output columns


The documentation for this class was generated from the following files:
Generated on Wed Aug 18 07:07:37 2004 for NURBS++ by doxygen 1.3.7