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

linalg::Matrix Class Reference

#include <LinAlg.h>

Inheritance diagram for linalg::Matrix:

Inheritance graph
[legend]
Collaboration diagram for linalg::Matrix:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Matrix (const int nrows, const int ncols)
 Matrix (const int row_lwb, const int row_upb, const int col_lwb, const int col_upb)
 Matrix (const DimSpec &dimension_specs)
 Matrix (const Matrix &another)
 Matrix (const LazyMatrix &lazy_constructor)
 Matrix (const char *file_name)
 ~Matrix (void)
void set_name (const char *name)
void resize_to (const int nrows, const int ncols)
void resize_to (const int row_lwb, const int row_upb, const int col_lwb, const int col_upb)
void resize_to (const DimSpec &dimension_specs)
void is_valid (void) const
int q_no_elems (void) const
const char * q_name (void) const
Matrixapply (ElementAction &action)
const Matrixapply (ConstElementAction &action) const
Matrixoperator= (const REAL val)
Matrixinvert (double &determ_ref=dummy_determinant_ref)
Matrixoperator= (const Matrix &source)
Matrixoperator= (const ConstReference &ref)
Matrixoperator= (const LazyMatrix &source)
Matrixclear (void)
bool operator== (const Matrix &im2) const
Matrixoperator *= (const Matrix &source)
Matrixoperator *= (const ConstReference &ref)
void mult (const Matrix &A, const Matrix &B)
double row_norm (void) const
double norm_inf (void) const
double col_norm (void) const
double norm_1 (void) const
double e2_norm (void) const
double determinant (void) const
double asymmetry_index (void) const
Matrixunit_matrix (void)
Matrixhilbert_matrix (void)
void write (const char *file_name, const char *title="") const
void info (void) const
void print (const char title[]) const
volatile void invalid_matrix (void) const

Static Public Attributes

double dummy_determinant_ref = 0

Protected Member Functions

void allocate (void)

Protected Attributes

const char * name
int nelems
REALelements

Private Types

enum  { MATRIX_val_code = 5757 }

Private Attributes

int valid_code
RWWatchDog ref_counter

Friends

class ElementWiseConst
class ElementWiseStrideConst
class LAStreamIn
class LAStreamOut
class LAStrideStreamIn
class LAStrideStreamOut
class LABlockStreamIn
class LABlockStreamOut
class MatrixDABase
class ConstReference
class Vector
class ConstMatrixColumn
class ConstMatrixRow
class ConstMatrixDiag
void haar_matrix::fill_in (Matrix &m) const
void LazyTransposedMatrix::fill_in (Matrix &m) const
void are_compatible (const Matrix &im1, const Matrix &im2)
double e2_norm (const Matrix &m1, const Matrix &m2)

Member Enumeration Documentation

anonymous enum [private]
 

Enumeration values:
MATRIX_val_code 

Definition at line 455 of file LinAlg.h.


Constructor & Destructor Documentation

linalg::Matrix::Matrix const int  nrows,
const int  ncols
[inline]
 

Definition at line 1440 of file LinAlg.h.

References allocate().

Here is the call graph for this function:

linalg::Matrix::Matrix const int  row_lwb,
const int  row_upb,
const int  col_lwb,
const int  col_upb
[inline]
 

Definition at line 1446 of file LinAlg.h.

References allocate().

Here is the call graph for this function:

linalg::Matrix::Matrix const DimSpec dimension_specs  )  [inline]
 

Definition at line 1453 of file LinAlg.h.

References allocate().

Here is the call graph for this function:

linalg::Matrix::Matrix const Matrix another  )  [inline]
 

Definition at line 1483 of file LinAlg.h.

References allocate(), and is_valid().

Here is the call graph for this function:

linalg::Matrix::Matrix const LazyMatrix lazy_constructor  )  [inline]
 

Definition at line 1459 of file LinAlg.h.

References allocate(), and linalg::LazyMatrix::fill_in().

Here is the call graph for this function:

linalg::Matrix::Matrix const char *  file_name  )  [explicit]
 

linalg::Matrix::~Matrix void   ) 
 

Definition at line 50 of file matrix1.cpp.

References is_valid().

Here is the call graph for this function:


Member Function Documentation

void linalg::Matrix::allocate void   )  [protected]
 

Definition at line 33 of file matrix1.cpp.

References assert, assure, and REAL.

Referenced by Matrix(), and resize_to().

const Matrix & linalg::Matrix::apply ConstElementAction action  )  const
 

Definition at line 337 of file matrix1.cpp.

References assert, is_valid(), linalg::ConstElementAction::operation(), and REAL.

Here is the call graph for this function:

Matrix & linalg::Matrix::apply ElementAction action  ) 
 

Definition at line 325 of file matrix1.cpp.

References assert, is_valid(), linalg::ElementAction::operation(), and REAL.

Referenced by linalg::ALInterp::ALInterp(), and linalg::verify_element_value().

Here is the call graph for this function:

double linalg::Matrix::asymmetry_index void   )  const
 

Matrix & linalg::Matrix::clear void   )  [inline]
 

Definition at line 1513 of file LinAlg.h.

References REAL.

double linalg::Matrix::col_norm void   )  const
 

Definition at line 511 of file matrix1.cpp.

References assert, is_valid(), max, and REAL.

Here is the call graph for this function:

double linalg::Matrix::determinant void   )  const
 

Definition at line 196 of file determinant.cpp.

References linalg::_error(), and linalg::MatrixPivoting::pivoting_and_elimination().

Here is the call graph for this function:

double linalg::Matrix::e2_norm void   )  const
 

Definition at line 533 of file matrix1.cpp.

References linalg::of_every(), and linalg::ElementWiseStrideConst::sum_squares().

Here is the call graph for this function:

Matrix & linalg::Matrix::hilbert_matrix void   ) 
 

Definition at line 176 of file matrix1.cpp.

References is_valid(), and REAL.

Here is the call graph for this function:

void linalg::Matrix::info void   )  const
 

Definition at line 604 of file matrix1.cpp.

References is_valid().

Referenced by linalg::are_compatible(), linalg::compare(), linalg::ConstMatrixColumn::ConstMatrixColumn(), linalg::ConstMatrixRow::ConstMatrixRow(), invert(), mult(), linalg::Vector::operator *=(), operator *=(), print(), and linalg::SVD::SVD().

Here is the call graph for this function:

volatile void linalg::Matrix::invalid_matrix void   )  const
 

Definition at line 613 of file matrix1.cpp.

References linalg::_error().

Here is the call graph for this function:

Matrix & linalg::Matrix::invert double &  determ_ref = dummy_determinant_ref  ) 
 

Definition at line 62 of file matrix_inv.cpp.

References linalg::_error(), info(), linalg::is_dummy_det_ref(), is_valid(), and REAL.

Referenced by linalg::LazyInverseMatrix::fill_in().

Here is the call graph for this function:

void linalg::Matrix::is_valid void   )  const [inline]
 

Definition at line 506 of file LinAlg.h.

Referenced by apply(), linalg::are_compatible(), linalg::MatrixDABase::build_index(), col_norm(), linalg::Matrix::ConstReference::ConstReference(), linalg::ElementWiseConst::ElementWiseConst(), linalg::haar_matrix::fill_in(), hilbert_matrix(), linalg::SVD::info(), info(), invert(), Matrix(), mult(), linalg::Vector::operator *=(), operator *=(), print(), linalg::Vector::resize_to(), resize_to(), linalg::transposed(), unit_matrix(), linalg::Matrix::ConstReference::~ConstReference(), ~Matrix(), and linalg::MatrixPivoting::~MatrixPivoting().

void linalg::Matrix::mult const Matrix A,
const Matrix B
 

Definition at line 105 of file matrix2.cpp.

References linalg::_error(), assert, linalg::DimSpec::col_lwb, elements, info(), is_valid(), linalg::DimSpec::ncols, nelems, linalg::DimSpec::nrows, REAL, and linalg::DimSpec::row_lwb.

Referenced by linalg::SVD_inv_mult::fill_in(), and linalg::LazyMatrixProduct::fill_in().

Here is the call graph for this function:

double linalg::Matrix::norm_1 void   )  const [inline]
 

Reimplemented in linalg::Vector.

Definition at line 585 of file LinAlg.h.

double linalg::Matrix::norm_inf void   )  const [inline]
 

Reimplemented in linalg::Vector.

Definition at line 582 of file LinAlg.h.

Matrix& linalg::Matrix::operator *= const ConstReference ref  )  [inline]
 

Definition at line 574 of file LinAlg.h.

References linalg::Matrix::ConstReference::ref().

Here is the call graph for this function:

Matrix & linalg::Matrix::operator *= const Matrix source  ) 
 

Reimplemented in linalg::Vector.

Definition at line 64 of file matrix2.cpp.

References linalg::_error(), linalg::DimSpec::col_lwb, elements, info(), is_valid(), linalg::DimSpec::ncols, linalg::DimSpec::nrows, and REAL.

Here is the call graph for this function:

Matrix & linalg::Matrix::operator= const LazyMatrix source  )  [inline]
 

Reimplemented in linalg::Vector.

Definition at line 1470 of file LinAlg.h.

References linalg::_error(), and linalg::LazyMatrix::fill_in().

Here is the call graph for this function:

Matrix& linalg::Matrix::operator= const ConstReference ref  )  [inline]
 

Definition at line 559 of file LinAlg.h.

References linalg::Matrix::ConstReference::ref().

Here is the call graph for this function:

Matrix & linalg::Matrix::operator= const Matrix source  )  [inline]
 

Definition at line 1530 of file LinAlg.h.

References linalg::are_compatible(), elements, and REAL.

Here is the call graph for this function:

Matrix & linalg::Matrix::operator= const REAL  val  )  [inline]
 

Reimplemented in linalg::Vector.

Definition at line 1619 of file LinAlg.h.

References linalg::to_every().

Here is the call graph for this function:

bool linalg::Matrix::operator== const Matrix im2  )  const
 

Definition at line 356 of file matrix1.cpp.

References linalg::are_compatible(), elements, and REAL.

Here is the call graph for this function:

void linalg::Matrix::print const char  title[]  )  const
 

Definition at line 633 of file matrix1.cpp.

References linalg::_Minuses, info(), is_valid(), linalg::message(), linalg::DimSpec::q_col_lwb(), linalg::DimSpec::q_col_upb(), linalg::DimSpec::q_ncols(), linalg::DimSpec::q_row_lwb(), and linalg::DimSpec::q_row_upb().

Referenced by linalg::ALInterp::interpolate().

Here is the call graph for this function:

const char* linalg::Matrix::q_name void   )  const [inline]
 

Definition at line 511 of file LinAlg.h.

int linalg::Matrix::q_no_elems void   )  const [inline]
 

Definition at line 510 of file LinAlg.h.

Referenced by linalg::ALInterp::ALInterp().

void linalg::Matrix::resize_to const DimSpec dimension_specs  ) 
 

Definition at line 96 of file matrix1.cpp.

References is_valid(), linalg::DimSpec::q_col_lwb(), linalg::DimSpec::q_ncols(), linalg::DimSpec::q_nrows(), linalg::DimSpec::q_row_lwb(), and resize_to().

Here is the call graph for this function:

void linalg::Matrix::resize_to const int  row_lwb,
const int  row_upb,
const int  col_lwb,
const int  col_upb
[inline]
 

Definition at line 1492 of file LinAlg.h.

void linalg::Matrix::resize_to const int  nrows,
const int  ncols
 

Reimplemented in linalg::Vector.

Definition at line 75 of file matrix1.cpp.

References allocate(), assert, and is_valid().

Referenced by linalg::SVD::bidiagonalize(), and resize_to().

Here is the call graph for this function:

double linalg::Matrix::row_norm void   )  const
 

Definition at line 487 of file matrix1.cpp.

References assert, max, and REAL.

void linalg::Matrix::set_name const char *  name  ) 
 

Definition at line 60 of file matrix1.cpp.

Matrix & linalg::Matrix::unit_matrix void   ) 
 

Definition at line 158 of file matrix1.cpp.

References is_valid(), and REAL.

Referenced by linalg::LazyUnitMatrix::fill_in(), and linalg::SVD::SVD().

Here is the call graph for this function:

void linalg::Matrix::write const char *  file_name,
const char *  title = ""
const
 


Friends And Related Function Documentation

void are_compatible const Matrix im1,
const Matrix im2
[friend]
 

Definition at line 1520 of file LinAlg.h.

friend class ConstMatrixColumn [friend]
 

Definition at line 449 of file LinAlg.h.

friend class ConstMatrixDiag [friend]
 

Definition at line 451 of file LinAlg.h.

friend class ConstMatrixRow [friend]
 

Definition at line 450 of file LinAlg.h.

friend class ConstReference [friend]
 

Definition at line 446 of file LinAlg.h.

double e2_norm const Matrix m1,
const Matrix m2
[friend]
 

Definition at line 540 of file matrix1.cpp.

friend class ElementWiseConst [friend]
 

Definition at line 435 of file LinAlg.h.

friend class ElementWiseStrideConst [friend]
 

Definition at line 436 of file LinAlg.h.

void haar_matrix::fill_in Matrix m  )  const [friend]
 

friend class LABlockStreamIn [friend]
 

Definition at line 441 of file LinAlg.h.

friend class LABlockStreamOut [friend]
 

Definition at line 442 of file LinAlg.h.

friend class LAStreamIn [friend]
 

Definition at line 437 of file LinAlg.h.

friend class LAStreamOut [friend]
 

Definition at line 438 of file LinAlg.h.

friend class LAStrideStreamIn [friend]
 

Definition at line 439 of file LinAlg.h.

friend class LAStrideStreamOut [friend]
 

Definition at line 440 of file LinAlg.h.

void LazyTransposedMatrix::fill_in Matrix m  )  const [friend]
 

friend class MatrixDABase [friend]
 

Definition at line 443 of file LinAlg.h.

friend class Vector [friend]
 

Definition at line 448 of file LinAlg.h.


Member Data Documentation

double linalg::Matrix::dummy_determinant_ref = 0 [static]
 

Definition at line 57 of file matrix_inv.cpp.

REAL* linalg::Matrix::elements [protected]
 

Definition at line 461 of file LinAlg.h.

Referenced by linalg::MatrixDABase::build_index(), linalg::LazyTransposedMatrix::fill_in(), linalg::haar_matrix::fill_in(), mult(), linalg::operator *(), linalg::Vector::operator *=(), operator *=(), operator=(), and operator==().

const char* linalg::Matrix::name [protected]
 

Definition at line 459 of file LinAlg.h.

int linalg::Matrix::nelems [protected]
 

Definition at line 460 of file LinAlg.h.

Referenced by linalg::LazyTransposedMatrix::fill_in(), linalg::haar_matrix::fill_in(), mult(), linalg::operator *(), and linalg::Vector::operator *=().

RWWatchDog linalg::Matrix::ref_counter [private]
 

Definition at line 456 of file LinAlg.h.

Referenced by linalg::Matrix::ConstReference::ConstReference(), and linalg::Matrix::ConstReference::~ConstReference().

int linalg::Matrix::valid_code [private]
 

Definition at line 454 of file LinAlg.h.


The documentation for this class was generated from the following files:
Generated on Wed Dec 15 21:22:11 2004 for vuVolume by  doxygen 1.3.9.1