ConstrainedOptPack: C++ Tools for Constrained (and Unconstrained) Optimization  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Types | Public Member Functions | List of all members
ConstrainedOptPack::MatrixGenBanded Class Reference

Matrix subclass for general (possibly singular) banded matrices. More...

#include <ConstrainedOptPack_MatrixGenBanded.hpp>

Inherits MatrixOp.

Public Types

typedef Teuchos::RCP
< MemMngPack::ReleaseResource
release_resource_ptr_t
 

Public Member Functions

 MatrixGenBanded (size_type m=0, size_type n=0, size_type kl=0, size_type ku=0, DMatrixSlice *MB=NULL, const release_resource_ptr_t &MB_release_resource_ptr=NULL)
 Construct and Initialize. More...
 
void initialize (size_type m=0, size_type n=0, size_type kl=0, size_type ku=0, DMatrixSlice *MB=NULL, const release_resource_ptr_t &MB_release_resource_ptr=NULL)
 Initialize. More...
 
size_type kl () const
 
size_type ku () const
 
DMatrixSlice & MB ()
 Get view of MB. More...
 
const DMatrixSlice & MB () const
 
size_type rows () const
 
size_type cols () const
 
size_type nz () const
 
std::ostream & output (std::ostream &out) const
 
void Vp_StMtV (DVectorSlice *vs_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const DVectorSlice &vs_rhs2, value_type beta) const
 
void Vp_StMtV (DVectorSlice *vs_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const SpVectorSlice &sv_rhs2, value_type beta) const
 
void Vp_StPtMtV (DVectorSlice *vs_lhs, value_type alpha, const GenPermMatrixSlice &P_rhs1, BLAS_Cpp::Transp P_rhs1_trans, BLAS_Cpp::Transp M_rhs2_trans, const DVectorSlice &vs_rhs3, value_type beta) const
 
void Vp_StPtMtV (DVectorSlice *vs_lhs, value_type alpha, const GenPermMatrixSlice &P_rhs1, BLAS_Cpp::Transp P_rhs1_trans, BLAS_Cpp::Transp M_rhs2_trans, const SpVectorSlice &sv_rhs3, value_type beta) const
 

Detailed Description

Matrix subclass for general (possibly singular) banded matrices.

The banded matrix is stored by column in a simple flat rectangular matrix. For example, for #m = 10, n = 8, kl = 3, ku = 2# the matrix #M# is stored in the following format MB# (same as for the BLAS routine xGBMV(...)): {verbatim}

    M                                   MB

[ x x x ] [ x x x x ] [ o o x x x x x x x x ] \ ku = 2 [ x x x x x ] [ o x x x x x x x x o ] / [ x x x x x x ] => [ x x x x x x x x o o ] [ x x x x x x ] [ x x x x x x x o o o ] \ [ x x x x x x ] [ x x x x x x o o o o ] | kl = 3 [ x x x x x x ] [ x x x x x o o o o o ] / [ x x x x x x ] 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0

{verbatim}

Definition at line 72 of file ConstrainedOptPack_MatrixGenBanded.hpp.

Member Typedef Documentation

Definition at line 78 of file ConstrainedOptPack_MatrixGenBanded.hpp.

Constructor & Destructor Documentation

ConstrainedOptPack::MatrixGenBanded::MatrixGenBanded ( size_type  m = 0,
size_type  n = 0,
size_type  kl = 0,
size_type  ku = 0,
DMatrixSlice *  MB = NULL,
const release_resource_ptr_t MB_release_resource_ptr = NULL 
)

Construct and Initialize.

This constructor just calls #this->initialize(...)#.

Member Function Documentation

void ConstrainedOptPack::MatrixGenBanded::initialize ( size_type  m = 0,
size_type  n = 0,
size_type  kl = 0,
size_type  ku = 0,
DMatrixSlice *  MB = NULL,
const release_resource_ptr_t MB_release_resource_ptr = NULL 
)

Initialize.

If called with all of the default arguments then #this# will become uninitialized.

ToDo: Finish pre and post conditions!

Parameters
m[in] Determines the size of the banded matrix (m x n). If If #m == 0# then all of the following arguments should be left at
n[in] Determines the size of the banded matrix (m x n).
kl[in] Determines the lower band width of the matrix as defined by xGBMV(...).
ku[in] Determines the band width of the matrix as defined by xGBMV(...).
MB[in/state] If MB != NULL# then this matrix (size (kl+ku+1) x n) is used to store the original banded matrix #M# in the format of xGBMV(...). This matrix must be initialized on input.
MB_release_resource_ptr[in] Only significant if MB != NULL#. Points to a resource to be released when MB# is no longer needed.
size_type ConstrainedOptPack::MatrixGenBanded::kl ( ) const
inline

Definition at line 187 of file ConstrainedOptPack_MatrixGenBanded.hpp.

size_type ConstrainedOptPack::MatrixGenBanded::ku ( ) const
inline

Definition at line 193 of file ConstrainedOptPack_MatrixGenBanded.hpp.

DMatrixSlice & ConstrainedOptPack::MatrixGenBanded::MB ( )
inline

Get view of MB.

Definition at line 199 of file ConstrainedOptPack_MatrixGenBanded.hpp.

const DMatrixSlice & ConstrainedOptPack::MatrixGenBanded::MB ( ) const
inline

Definition at line 205 of file ConstrainedOptPack_MatrixGenBanded.hpp.

size_type ConstrainedOptPack::MatrixGenBanded::rows ( ) const

size_type ConstrainedOptPack::MatrixGenBanded::cols ( ) const

size_type ConstrainedOptPack::MatrixGenBanded::nz ( ) const

std::ostream& ConstrainedOptPack::MatrixGenBanded::output ( std::ostream &  out) const

void ConstrainedOptPack::MatrixGenBanded::Vp_StMtV ( DVectorSlice *  vs_lhs,
value_type  alpha,
BLAS_Cpp::Transp  trans_rhs1,
const DVectorSlice &  vs_rhs2,
value_type  beta 
) const

void ConstrainedOptPack::MatrixGenBanded::Vp_StMtV ( DVectorSlice *  vs_lhs,
value_type  alpha,
BLAS_Cpp::Transp  trans_rhs1,
const SpVectorSlice &  sv_rhs2,
value_type  beta 
) const

void ConstrainedOptPack::MatrixGenBanded::Vp_StPtMtV ( DVectorSlice *  vs_lhs,
value_type  alpha,
const GenPermMatrixSlice &  P_rhs1,
BLAS_Cpp::Transp  P_rhs1_trans,
BLAS_Cpp::Transp  M_rhs2_trans,
const DVectorSlice &  vs_rhs3,
value_type  beta 
) const

void ConstrainedOptPack::MatrixGenBanded::Vp_StPtMtV ( DVectorSlice *  vs_lhs,
value_type  alpha,
const GenPermMatrixSlice &  P_rhs1,
BLAS_Cpp::Transp  P_rhs1_trans,
BLAS_Cpp::Transp  M_rhs2_trans,
const SpVectorSlice &  sv_rhs3,
value_type  beta 
) const


The documentation for this class was generated from the following file: