ConstrainedOptPack::MatrixSymAddDelBunchKaufman Class Reference

This class maintains the factorization of symmetric indefinite matrix using a Bunch & Kaufman factorization. More...

#include <ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp>

Inheritance diagram for ConstrainedOptPack::MatrixSymAddDelBunchKaufman:

[legend]
List of all members.

Overridden from MatrixSymAddDelUpdateableWithOpNonsingular

const MatrixSymOpNonsing & op_interface () const
 
MatrixSymAddDelUpdateable & update_interface ()
 
const MatrixSymAddDelUpdateable & update_interface () const
 

Overridden from MatrixSymAddDelUpdateable

void initialize (value_type alpha, size_type max_size)
 
void initialize (const DMatrixSliceSym &A, size_type max_size, bool force_factorization, Inertia inertia, PivotTolerances pivot_tols)
 
size_type max_size () const
 
Inertia inertia () const
 
void set_uninitialized ()
 
void augment_update (const DVectorSlice *t, value_type alpha, bool force_refactorization, EEigenValType add_eigen_val, PivotTolerances pivot_tols)
 
void delete_update (size_type jd, bool force_refactorization, EEigenValType drop_eigen_val, PivotTolerances pivot_tols)
 

Overridden from MatrixSymOpNonsingSerial

size_type rows () 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 V_InvMtV (DVectorSlice *vs_lhs, BLAS_Cpp::Transp trans_rhs1, const DVectorSlice &vs_rhs2) const
 
typedef std::vector< FortranTypes::f_intIPIV_t
DMatrixSliceTriEle DU (size_type S_size, bool fact_in1)
 Get view of DU.
const DMatrixSliceTriEle DU (size_type S_size, bool fact_in1) const
 
DMatrixSliceSym S (size_type S_size)
 Get view of lower part of S.
const DMatrixSliceSym S (size_type S_size) const
 
void assert_initialized () const
 
void resize_DU_store (bool in_store1)
 
void copy_and_factor_matrix (size_type S_size, bool fact_in1)
 Copy the original matrix into the new storage location and factorize it.
void factor_matrix (size_type S_size, bool fact_in1)
 Factor the current set matrix in-place (do not copy the original).
bool compute_assert_inertia (size_type S_size, bool fact_in1, const Inertia &expected_inertia, const char func_name[], PivotTolerances pivot_tols, Inertia *comp_inertia, std::ostringstream *err_msg, value_type *gamma)
 Compute the new inertia and validate that it is what the client says it was.
 MatrixSymAddDelBunchKaufman (const MatrixSymAddDelBunchKaufman &)
 Not defined and not to be called.
MatrixSymAddDelBunchKaufmanoperator= (const MatrixSymAddDelBunchKaufman &)
size_type S_size_
bool S_indef_
bool fact_updated_
bool fact_in1_
MatrixSymAddDelUpdateable::Inertia inertia_
DMatrix S_store1_
DMatrix S_store2_
IPIV_t IPIV_
DVector WORK_
MatrixSymPosDefCholFactor S_chol_

Public Member Functions

 MatrixSymAddDelBunchKaufman ()
 Initializes with 0x0 and pivot_tols == (0.0,0.0,0.0).
void pivot_tols (PivotTolerances pivot_tols)
 Pivot tolerance used durring the cholesky factorization (it may be zero).
PivotTolerances pivot_tols () const
 

Detailed Description

This class maintains the factorization of symmetric indefinite matrix using a Bunch & Kaufman factorization.

When the matix in question is positive definite or negative definite then a cholesky factorization will be used for greater efficiency. As much as possible the class trys to keep runtime costs down to a minimum while still maintaining a stable factorization.

ToDo: This matrix class could also handle the case of a single negative or positive eigen value in an efficient manner as well.

Definition at line 53 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.


Member Typedef Documentation

typedef std::vector<FortranTypes::f_int> ConstrainedOptPack::MatrixSymAddDelBunchKaufman::IPIV_t [private]
 

Definition at line 143 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.


Constructor & Destructor Documentation

ConstrainedOptPack::MatrixSymAddDelBunchKaufman::MatrixSymAddDelBunchKaufman  ) 
 

Initializes with 0x0 and pivot_tols == (0.0,0.0,0.0).

Definition at line 43 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.

ConstrainedOptPack::MatrixSymAddDelBunchKaufman::MatrixSymAddDelBunchKaufman const MatrixSymAddDelBunchKaufman  )  [private]
 

Not defined and not to be called.


Member Function Documentation

void ConstrainedOptPack::MatrixSymAddDelBunchKaufman::pivot_tols PivotTolerances  pivot_tols  ) 
 

Pivot tolerance used durring the cholesky factorization (it may be zero).

Definition at line 47 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.

MatrixSymAddDelUpdateable::PivotTolerances ConstrainedOptPack::MatrixSymAddDelBunchKaufman::pivot_tols  )  const
 

Definition at line 52 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.

const MatrixSymOpNonsing & ConstrainedOptPack::MatrixSymAddDelBunchKaufman::op_interface  )  const [virtual]
 

Implements ConstrainedOptPack::MatrixSymAddDelUpdateableWithOpNonsingular.

Definition at line 59 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.

MatrixSymAddDelUpdateable & ConstrainedOptPack::MatrixSymAddDelBunchKaufman::update_interface  )  [virtual]
 

Implements ConstrainedOptPack::MatrixSymAddDelUpdateableWithOpNonsingular.

Definition at line 64 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.

const MatrixSymAddDelUpdateable & ConstrainedOptPack::MatrixSymAddDelBunchKaufman::update_interface  )  const [virtual]
 

Implements ConstrainedOptPack::MatrixSymAddDelUpdateableWithOpNonsingular.

Definition at line 69 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.

void ConstrainedOptPack::MatrixSymAddDelBunchKaufman::initialize value_type  alpha,
size_type  max_size
 

Definition at line 76 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.

void ConstrainedOptPack::MatrixSymAddDelBunchKaufman::initialize const DMatrixSliceSym A,
size_type  max_size,
bool  force_factorization,
Inertia  inertia,
PivotTolerances  pivot_tols
 

Definition at line 99 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.

size_type ConstrainedOptPack::MatrixSymAddDelBunchKaufman::max_size  )  const
 

Definition at line 203 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.

MatrixSymAddDelUpdateable::Inertia ConstrainedOptPack::MatrixSymAddDelBunchKaufman::inertia  )  const
 

Definition at line 209 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.

void ConstrainedOptPack::MatrixSymAddDelBunchKaufman::set_uninitialized  ) 
 

Definition at line 214 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.

void ConstrainedOptPack::MatrixSymAddDelBunchKaufman::augment_update const DVectorSlice t,
value_type  alpha,
bool  force_refactorization,
EEigenValType  add_eigen_val,
PivotTolerances  pivot_tols
 

Definition at line 219 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.

void ConstrainedOptPack::MatrixSymAddDelBunchKaufman::delete_update size_type  jd,
bool  force_refactorization,
EEigenValType  drop_eigen_val,
PivotTolerances  pivot_tols
 

Definition at line 465 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.

size_type ConstrainedOptPack::MatrixSymAddDelBunchKaufman::rows  )  const
 

Definition at line 633 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.

std::ostream & ConstrainedOptPack::MatrixSymAddDelBunchKaufman::output std::ostream &  out  )  const
 

Definition at line 638 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.

void ConstrainedOptPack::MatrixSymAddDelBunchKaufman::Vp_StMtV DVectorSlice vs_lhs,
value_type  alpha,
BLAS_Cpp::Transp  trans_rhs1,
const DVectorSlice vs_rhs2,
value_type  beta
const
 

Definition at line 661 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.

void ConstrainedOptPack::MatrixSymAddDelBunchKaufman::V_InvMtV DVectorSlice vs_lhs,
BLAS_Cpp::Transp  trans_rhs1,
const DVectorSlice vs_rhs2
const
 

Definition at line 671 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.

DMatrixSliceTriEle ConstrainedOptPack::MatrixSymAddDelBunchKaufman::DU size_type  S_size,
bool  fact_in1
[inline, private]
 

Get view of DU.

Definition at line 221 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.

const DMatrixSliceTriEle ConstrainedOptPack::MatrixSymAddDelBunchKaufman::DU size_type  S_size,
bool  fact_in1
const [inline, private]
 

Definition at line 230 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.

DMatrixSliceSym ConstrainedOptPack::MatrixSymAddDelBunchKaufman::S size_type  S_size  )  [inline, private]
 

Get view of lower part of S.

Definition at line 238 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.

const DMatrixSliceSym ConstrainedOptPack::MatrixSymAddDelBunchKaufman::S size_type  S_size  )  const [inline, private]
 

Definition at line 246 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.

void ConstrainedOptPack::MatrixSymAddDelBunchKaufman::assert_initialized  )  const [private]
 

Definition at line 700 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.

void ConstrainedOptPack::MatrixSymAddDelBunchKaufman::resize_DU_store bool  in_store1  )  [private]
 

Definition at line 708 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.

void ConstrainedOptPack::MatrixSymAddDelBunchKaufman::copy_and_factor_matrix size_type  S_size,
bool  fact_in1
[private]
 

Copy the original matrix into the new storage location and factorize it.

Will throw DenseLinAlgLAPack::FactorizationException if singular.

Definition at line 714 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.

void ConstrainedOptPack::MatrixSymAddDelBunchKaufman::factor_matrix size_type  S_size,
bool  fact_in1
[private]
 

Factor the current set matrix in-place (do not copy the original).

Will throw DenseLinAlgLAPack::FactorizationException if singular.

Definition at line 723 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.

bool ConstrainedOptPack::MatrixSymAddDelBunchKaufman::compute_assert_inertia size_type  S_size,
bool  fact_in1,
const Inertia &  expected_inertia,
const char  func_name[],
PivotTolerances  pivot_tols,
Inertia *  comp_inertia,
std::ostringstream *  err_msg,
value_type gamma
[private]
 

Compute the new inertia and validate that it is what the client says it was.

Will throw exceptions if the matrix is singular or has the wrong inertia. If the matrix is near singular then true will be returned, the update should succeed but a warning exception should be thrown

Definition at line 735 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.

MatrixSymAddDelBunchKaufman& ConstrainedOptPack::MatrixSymAddDelBunchKaufman::operator= const MatrixSymAddDelBunchKaufman  )  [private]
 


Member Data Documentation

size_type ConstrainedOptPack::MatrixSymAddDelBunchKaufman::S_size_ [private]
 

Definition at line 148 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.

bool ConstrainedOptPack::MatrixSymAddDelBunchKaufman::S_indef_ [private]
 

Definition at line 149 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.

bool ConstrainedOptPack::MatrixSymAddDelBunchKaufman::fact_updated_ [private]
 

Definition at line 150 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.

bool ConstrainedOptPack::MatrixSymAddDelBunchKaufman::fact_in1_ [private]
 

Definition at line 152 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.

MatrixSymAddDelUpdateable::Inertia ConstrainedOptPack::MatrixSymAddDelBunchKaufman::inertia_ [private]
 

Definition at line 156 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.

DMatrix ConstrainedOptPack::MatrixSymAddDelBunchKaufman::S_store1_ [private]
 

Definition at line 158 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.

DMatrix ConstrainedOptPack::MatrixSymAddDelBunchKaufman::S_store2_ [private]
 

Definition at line 162 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.

IPIV_t ConstrainedOptPack::MatrixSymAddDelBunchKaufman::IPIV_ [private]
 

Definition at line 166 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.

DVector ConstrainedOptPack::MatrixSymAddDelBunchKaufman::WORK_ [mutable, private]
 

Definition at line 168 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.

MatrixSymPosDefCholFactor ConstrainedOptPack::MatrixSymAddDelBunchKaufman::S_chol_ [private]
 

Definition at line 170 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.


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