AbstractLinAlgPack::MatrixSymOp Class Reference

Interface adding operations specific for a symmetric matrix {abstract}. More...

#include <AbstractLinAlgPack_MatrixSymOp.hpp>

Inheritance diagram for AbstractLinAlgPack::MatrixSymOp:

[legend]
List of all members.

Public types

enum  EMatRhsPlaceHolder { DUMMY_ARG }
  More...

Clone

virtual mat_mswo_mut_ptr_t clone_mswo ()
 Clone the non-const matrix object (if supported).
virtual mat_mswo_ptr_t clone_mswo () const
 Clone the const matrix object (if supported).

[NOHEADER]

size_type cols () const
 Returns this->rows().
const VectorSpacespace_rows () const
 Vector space for vectors that are compatible with the rows of the matrix.
mat_mut_ptr_t clone ()
 Returns this->clone_mswo().
mat_ptr_t clone () const
 Returns this->clone_mswo().

Level-1 BLAS

virtual void Mp_StPtMtP (MatrixSymOp *sym_lhs, value_type alpha, EMatRhsPlaceHolder dummy_place_holder, const GenPermMatrixSlice &gpms_rhs, BLAS_Cpp::Transp gpms_rhs_trans, value_type beta) const
 sym_lhs = alpha * op(gpms_rhs') * M * op(gpms_rhs) + beta * sym_lhs.

Level-3 BLAS

virtual void Mp_StMtMtM (MatrixSymOp *sym_lhs, value_type alpha, EMatRhsPlaceHolder dummy_place_holder, const MatrixOp &mwo_rhs, BLAS_Cpp::Transp mwo_rhs_trans, value_type beta) const
 sym_lhs = alpha * op(mwo_rhs') * M * op(mwo_rhs) + beta * sym_lhs.

[NOHEADER]

void Mp_StPtMtP (MatrixSymOp *sym_lhs, value_type alpha, EMatRhsPlaceHolder dummy_place_holder, const MatrixSymOp &M, const GenPermMatrixSlice &gpms_rhs, BLAS_Cpp::Transp gpms_rhs_trans, value_type beta)
 
void Mp_StMtMtM (MatrixSymOp *sym_lhs, value_type alpha, EMatRhsPlaceHolder dummy_place_holder, const MatrixSymOp &M, const MatrixOp &mwo_rhs, BLAS_Cpp::Transp mwo_rhs_trans, value_type beta)
 

Public Member Functions

virtual MatrixSymOpoperator= (const MatrixSymOp &M)
 Calls operator=(MatrixOp&).
virtual bool Mp_StPtMtP (MatrixOp *mwo_lhs, value_type alpha, const GenPermMatrixSlice &P_rhs1, BLAS_Cpp::Transp P_rhs1_trans, BLAS_Cpp::Transp M_trans, const GenPermMatrixSlice &P_rhs2, BLAS_Cpp::Transp P_rhs2_trans) const
 
virtual bool Mp_StPtMtP (value_type alpha, const GenPermMatrixSlice &P_rhs1, BLAS_Cpp::Transp P_rhs1_trans, const MatrixOp &mwo_rhs, BLAS_Cpp::Transp M_trans, const GenPermMatrixSlice &P_rhs2, BLAS_Cpp::Transp P_rhs2_trans)
 

Friends

void Mp_StPtMtP (MatrixOp *mwo_lhs, value_type alpha, const GenPermMatrixSlice &P_rhs1, BLAS_Cpp::Transp P_rhs1_trans, const MatrixOp &M_rhs, BLAS_Cpp::Transp trans_rhs, const GenPermMatrixSlice &P_rhs2, BLAS_Cpp::Transp P_rhs2_trans)
 

Detailed Description

Interface adding operations specific for a symmetric matrix {abstract}.

This interface defines two addition methods to those found in MatrixOp:

sym_lhs = alpha * op(gpms_rhs') * M * op(gpms_rhs) + beta * sym_lhs
sym_lhs = alpha * op(mwo_rhs') * M * op(mwo_rhs) + beta * sym_lhs

The reason that these methods could not be defined in the MatrixOp interface is that the lhs matrix matrix argument sym_lhs is only guaranteed to be symmetric if the rhs matrix argument M (which is this matrix) is guaranteed to be symmetric. Since a MatrixOp matrix object may be unsymmetric (as well as rectangular), it can not implement this operation, only a symmetric matrix can.

Clients should use the provided non-member functions to call the methods and not the methods themselves.

Definition at line 53 of file AbstractLinAlgPack_MatrixSymOp.hpp.


Member Enumeration Documentation

enum AbstractLinAlgPack::MatrixSymOp::EMatRhsPlaceHolder
 

Enumeration values:
DUMMY_ARG 

Definition at line 69 of file AbstractLinAlgPack_MatrixSymOp.hpp.


Member Function Documentation

MatrixSymOp::mat_mswo_mut_ptr_t AbstractLinAlgPack::MatrixSymOp::clone_mswo  )  [virtual]
 

Clone the non-const matrix object (if supported).

The default implementation returns NULL which is perfectly acceptable. A matrix object is not required to return a non-NULL value but almost every good matrix implementation will.

Reimplemented in AbstractLinAlgPack::MatrixSymOpNonsing.

Definition at line 37 of file AbstractLinAlgPack_MatrixSymOp.cpp.

MatrixSymOp::mat_mswo_ptr_t AbstractLinAlgPack::MatrixSymOp::clone_mswo  )  const [virtual]
 

Clone the const matrix object (if supported).

The behavior of this method is the same as for the non-const version above except it returns a smart pointer to a const matrix object.

Reimplemented in AbstractLinAlgPack::MatrixSymOpNonsing.

Definition at line 43 of file AbstractLinAlgPack_MatrixSymOp.cpp.

void AbstractLinAlgPack::MatrixSymOp::Mp_StPtMtP MatrixSymOp sym_lhs,
value_type  alpha,
EMatRhsPlaceHolder  dummy_place_holder,
const GenPermMatrixSlice gpms_rhs,
BLAS_Cpp::Transp  gpms_rhs_trans,
value_type  beta
const [protected, virtual]
 

sym_lhs = alpha * op(gpms_rhs') * M * op(gpms_rhs) + beta * sym_lhs.

The default operation is based on Vp_StMtV(...) and assumes that the matrix is symmetric. Of course, a more efficient implementation is often needed and the sublcass would like to override this.

Reimplemented in AbstractLinAlgPack::MatrixSymOpSerial, and ConstrainedOptPack::MatrixSymHessianRelaxNonSing.

Definition at line 48 of file AbstractLinAlgPack_MatrixSymOp.cpp.

void AbstractLinAlgPack::MatrixSymOp::Mp_StMtMtM MatrixSymOp sym_lhs,
value_type  alpha,
EMatRhsPlaceHolder  dummy_place_holder,
const MatrixOp mwo_rhs,
BLAS_Cpp::Transp  mwo_rhs_trans,
value_type  beta
const [protected, virtual]
 

sym_lhs = alpha * op(mwo_rhs') * M * op(mwo_rhs) + beta * sym_lhs.

The default operation is based on Vp_StMtV() and assumes that the matrix is symmetric. Of course, a more efficient implementation is often needed and the sublcass would like to override this.

Reimplemented in AbstractLinAlgPack::MatrixSymOpSerial.

Definition at line 57 of file AbstractLinAlgPack_MatrixSymOp.cpp.

size_type AbstractLinAlgPack::MatrixSymOp::cols  )  const [virtual]
 

Returns this->rows().

Overridden from MatrixOp

Reimplemented from AbstractLinAlgPack::MatrixBase.

Definition at line 69 of file AbstractLinAlgPack_MatrixSymOp.cpp.

const VectorSpace & AbstractLinAlgPack::MatrixSymOp::space_rows  )  const [virtual]
 

Vector space for vectors that are compatible with the rows of the matrix.

Implements AbstractLinAlgPack::MatrixBase.

Reimplemented in AbstractLinAlgPack::MatrixSymDiagStd, and AbstractLinAlgPack::MatrixSymOpSerial.

Definition at line 74 of file AbstractLinAlgPack_MatrixSymOp.cpp.

MatrixSymOp::mat_mut_ptr_t AbstractLinAlgPack::MatrixSymOp::clone  )  [virtual]
 

Returns this->clone_mswo().

Reimplemented from AbstractLinAlgPack::MatrixOp.

Reimplemented in AbstractLinAlgPack::MatrixSymOpNonsing.

Definition at line 80 of file AbstractLinAlgPack_MatrixSymOp.cpp.

MatrixSymOp::mat_ptr_t AbstractLinAlgPack::MatrixSymOp::clone  )  const [virtual]
 

Returns this->clone_mswo().

Reimplemented from AbstractLinAlgPack::MatrixOp.

Reimplemented in AbstractLinAlgPack::MatrixSymOpNonsing.

Definition at line 86 of file AbstractLinAlgPack_MatrixSymOp.cpp.

virtual MatrixSymOp& AbstractLinAlgPack::MatrixSymOp::operator= const MatrixSymOp M  )  [inline, virtual]
 

Calls operator=(MatrixOp&).

Definition at line 170 of file AbstractLinAlgPack_MatrixSymOp.hpp.

virtual bool AbstractLinAlgPack::MatrixOp::Mp_StPtMtP MatrixOp mwo_lhs,
value_type  alpha,
const GenPermMatrixSlice P_rhs1,
BLAS_Cpp::Transp  P_rhs1_trans,
BLAS_Cpp::Transp  M_trans,
const GenPermMatrixSlice P_rhs2,
BLAS_Cpp::Transp  P_rhs2_trans
const
 

virtual bool AbstractLinAlgPack::MatrixOp::Mp_StPtMtP value_type  alpha,
const GenPermMatrixSlice P_rhs1,
BLAS_Cpp::Transp  P_rhs1_trans,
const MatrixOp mwo_rhs,
BLAS_Cpp::Transp  M_trans,
const GenPermMatrixSlice P_rhs2,
BLAS_Cpp::Transp  P_rhs2_trans
 


Friends And Related Function Documentation

void Mp_StPtMtP MatrixSymOp sym_lhs,
value_type  alpha,
MatrixSymOp::EMatRhsPlaceHolder  dummy_place_holder,
const MatrixSymOp M,
const GenPermMatrixSlice gpms_rhs,
BLAS_Cpp::Transp  gpms_rhs_trans,
value_type  beta = 1.0
[friend]
 

Definition at line 183 of file AbstractLinAlgPack_MatrixSymOp.hpp.

void Mp_StMtMtM MatrixSymOp sym_lhs,
value_type  alpha,
MatrixSymOp::EMatRhsPlaceHolder  dummy_place_holder,
const MatrixSymOp M,
const MatrixOp mwo_rhs,
BLAS_Cpp::Transp  mwo_rhs_trans,
value_type  beta = 1.0
[friend]
 

Definition at line 196 of file AbstractLinAlgPack_MatrixSymOp.hpp.

void Mp_StPtMtP MatrixOp mwo_lhs,
value_type  alpha,
const GenPermMatrixSlice P_rhs1,
BLAS_Cpp::Transp  P_rhs1_trans,
const MatrixOp M_rhs,
BLAS_Cpp::Transp  trans_rhs,
const GenPermMatrixSlice P_rhs2,
BLAS_Cpp::Transp  P_rhs2_trans
[friend]
 


The documentation for this class was generated from the following files:
Generated on Thu Sep 18 12:36:07 2008 for MOOCHO (Single Doxygen Collection) by doxygen 1.3.9.1