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

regina::NMatrix< T > Class Template Reference
[Mathematical Support]

Represents a matrix of elements of the given type T. More...

#include <nmatrix.h>

Inheritance diagram for regina::NMatrix< T >:

regina::NMatrixRing< T > regina::NMatrixField< T > List of all members.

Public Member Functions

 NMatrix (unsigned long rows, unsigned long cols)
 Creates a new matrix of the given size.
 NMatrix (const NMatrix &cloneMe)
 Creates a new matrix that is a clone of the given matrix.
virtual ~NMatrix ()
 Destroys this matrix.
void initialise (const T &value)
 Sets every entry in the matrix to the given value.
unsigned long rows () const
 Returns the number of rows in this matrix.
unsigned long columns () const
 Returns the number of columns in this matrix.
T & entry (unsigned long row, unsigned long column)
 Returns the entry at the given row and column.
const T & entry (unsigned long row, unsigned long column) const
 Returns the entry at the given row and column.
virtual void writeMatrix (std::ostream &out) const
 Writes a complete representation of the matrix to the given output stream.
void swapRows (unsigned long first, unsigned long second)
 Swaps the elements of the two given rows in the matrix.
void swapColumns (unsigned long first, unsigned long second)
 Swaps the elements of the two given columns in the matrix.

Protected Attributes

unsigned long nRows
 The number of rows in the matrix.
unsigned long nCols
 The number of columns in the matrix.
T ** data
 The actual entries in the matrix.

Detailed Description

template<class T>
class regina::NMatrix< T >

Represents a matrix of elements of the given type T.

Precondition:
Type T has a default constructor and overloads the assignment (=) operator.

An element t of type T can be written to an output stream out using the standard expression out << t.

Python:
Not present, although the subclass NMatrixInt is.


Constructor & Destructor Documentation

template<class T>
regina::NMatrix< T >::NMatrix unsigned long  rows,
unsigned long  cols
[inline]
 

Creates a new matrix of the given size.

All entries will be initialised using their default constructors.

Precondition:
The given number of rows and columns are both strictly positive.
Parameters:
rows the number of rows in the new matrix.
cols the number of columns in the new matrix.

template<class T>
regina::NMatrix< T >::NMatrix const NMatrix< T > &  cloneMe  )  [inline]
 

Creates a new matrix that is a clone of the given matrix.

Parameters:
cloneMe the matrix to clone.

template<class T>
virtual regina::NMatrix< T >::~NMatrix  )  [inline, virtual]
 

Destroys this matrix.


Member Function Documentation

template<class T>
unsigned long regina::NMatrix< T >::columns  )  const [inline]
 

Returns the number of columns in this matrix.

Returns:
the number of columns.

template<class T>
const T& regina::NMatrix< T >::entry unsigned long  row,
unsigned long  column
const [inline]
 

Returns the entry at the given row and column.

Rows and columns are numbered beginning at zero.

Precondition:
row is between 0 and rows()-1 inclusive.

column is between 0 and columns()-1 inclusive.

Python:
Not present, although the non-const form of this routine is.
Parameters:
row the row of the desired entry.
column the column of the desired entry.
Returns:
a reference to the entry in the given row and column.

template<class T>
T& regina::NMatrix< T >::entry unsigned long  row,
unsigned long  column
[inline]
 

Returns the entry at the given row and column.

Rows and columns are numbered beginning at zero.

Precondition:
row is between 0 and rows()-1 inclusive.

column is between 0 and columns()-1 inclusive.

Parameters:
row the row of the desired entry.
column the column of the desired entry.
Returns:
a reference to the entry in the given row and column.

template<class T>
void regina::NMatrix< T >::initialise const T &  value  )  [inline]
 

Sets every entry in the matrix to the given value.

Parameters:
value the value to assign to each entry.

template<class T>
unsigned long regina::NMatrix< T >::rows  )  const [inline]
 

Returns the number of rows in this matrix.

Returns:
the number of rows.

template<class T>
void regina::NMatrix< T >::swapColumns unsigned long  first,
unsigned long  second
[inline]
 

Swaps the elements of the two given columns in the matrix.

Precondition:
The two given columns are distinct and between 0 and columns()-1 inclusive.
Parameters:
first the first column to swap.
second the second column to swap.

template<class T>
void regina::NMatrix< T >::swapRows unsigned long  first,
unsigned long  second
[inline]
 

Swaps the elements of the two given rows in the matrix.

Precondition:
The two given rows are distinct and between 0 and rows()-1 inclusive.
Parameters:
first the first row to swap.
second the second row to swap.

template<class T>
virtual void regina::NMatrix< T >::writeMatrix std::ostream &  out  )  const [inline, virtual]
 

Writes a complete representation of the matrix to the given output stream.

Each row will be written on a separate line with elements in each row separated by single spaces.

Python:
Not present, even if a subclass of NMatrix is mirrored and its inherited routines are mirrored also.
Parameters:
out the output stream to which to write.


Member Data Documentation

template<class T>
T** regina::NMatrix< T >::data [protected]
 

The actual entries in the matrix.

data[r][c] is the element in row r, column c.

template<class T>
unsigned long regina::NMatrix< T >::nCols [protected]
 

The number of columns in the matrix.

template<class T>
unsigned long regina::NMatrix< T >::nRows [protected]
 

The number of rows in the matrix.


The documentation for this class was generated from the following file:
Copyright © 1999-2004, Ben Burton
This software is released under the GNU General Public License.
For further information, or to submit a bug or other problem, please contact Ben Burton (bab@debian.org).