MOOCHO (Single Doxygen Collection)
Version of the Day
|
This class maintains the factorization of symmetric indefinite matrix using a Bunch & Kaufman factorization. More...
#include <ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp>
Public Member Functions | |
MatrixSymAddDelBunchKaufman () | |
Initializes with 0x0 and pivot_tols == (0.0,0.0,0.0). More... | |
void | pivot_tols (PivotTolerances pivot_tols) |
Pivot tolerance used durring the cholesky factorization (it may be zero). More... | |
PivotTolerances | pivot_tols () const |
Public Member Functions inherited from ConstrainedOptPack::MatrixSymAddDelUpdateableWithOpNonsingular | |
virtual | ~MatrixSymAddDelUpdateableWithOpNonsingular () |
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 | |
typedef std::vector < FortranTypes::f_int > | IPIV_t |
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_ |
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 |
DMatrixSliceTriEle | DU (size_type S_size, bool fact_in1) |
Get view of DU. More... | |
const DMatrixSliceTriEle | DU (size_type S_size, bool fact_in1) const |
DMatrixSliceSym | S (size_type S_size) |
Get view of lower part of S. More... | |
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. More... | |
void | factor_matrix (size_type S_size, bool fact_in1) |
Factor the current set matrix in-place (do not copy the original). More... | |
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. More... | |
MatrixSymAddDelBunchKaufman (const MatrixSymAddDelBunchKaufman &) | |
Not defined and not to be called. More... | |
MatrixSymAddDelBunchKaufman & | operator= (const MatrixSymAddDelBunchKaufman &) |
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 66 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.
|
private |
Definition at line 156 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.
ConstrainedOptPack::MatrixSymAddDelBunchKaufman::MatrixSymAddDelBunchKaufman | ( | ) |
Initializes with 0x0 and pivot_tols == (0.0,0.0,0.0).
Definition at line 56 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.
|
private |
Not defined and not to be called.
void ConstrainedOptPack::MatrixSymAddDelBunchKaufman::pivot_tols | ( | PivotTolerances | pivot_tols | ) |
Pivot tolerance used durring the cholesky factorization (it may be zero).
Definition at line 60 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.
MatrixSymAddDelUpdateable::PivotTolerances ConstrainedOptPack::MatrixSymAddDelBunchKaufman::pivot_tols | ( | ) | const |
Definition at line 65 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.
|
virtual |
Implements ConstrainedOptPack::MatrixSymAddDelUpdateableWithOpNonsingular.
Definition at line 72 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.
|
virtual |
Implements ConstrainedOptPack::MatrixSymAddDelUpdateableWithOpNonsingular.
Definition at line 77 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.
|
virtual |
Implements ConstrainedOptPack::MatrixSymAddDelUpdateableWithOpNonsingular.
Definition at line 82 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.
void ConstrainedOptPack::MatrixSymAddDelBunchKaufman::initialize | ( | value_type | alpha, |
size_type | max_size | ||
) |
Definition at line 89 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 112 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.
size_type ConstrainedOptPack::MatrixSymAddDelBunchKaufman::max_size | ( | ) | const |
Definition at line 216 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.
MatrixSymAddDelUpdateable::Inertia ConstrainedOptPack::MatrixSymAddDelBunchKaufman::inertia | ( | ) | const |
Definition at line 222 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.
void ConstrainedOptPack::MatrixSymAddDelBunchKaufman::set_uninitialized | ( | ) |
Definition at line 227 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 232 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 484 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.
size_type ConstrainedOptPack::MatrixSymAddDelBunchKaufman::rows | ( | ) | const |
Definition at line 652 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.
std::ostream & ConstrainedOptPack::MatrixSymAddDelBunchKaufman::output | ( | std::ostream & | out | ) | const |
Definition at line 657 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 680 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 690 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.
|
inlineprivate |
Get view of DU.
Definition at line 234 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.
|
inlineprivate |
Definition at line 243 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.
|
inlineprivate |
Get view of lower part of S.
Definition at line 251 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.
|
inlineprivate |
Definition at line 259 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.
|
private |
Definition at line 719 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.
|
private |
Definition at line 727 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.
|
private |
Copy the original matrix into the new storage location and factorize it.
Will throw DenseLinAlgLAPack::FactorizationException if singular.
Definition at line 733 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.
|
private |
Factor the current set matrix in-place (do not copy the original).
Will throw DenseLinAlgLAPack::FactorizationException if singular.
Definition at line 742 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.
|
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 754 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.cpp.
|
private |
|
private |
Definition at line 161 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.
|
private |
Definition at line 162 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.
|
private |
Definition at line 163 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.
|
private |
Definition at line 165 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.
|
private |
Definition at line 169 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.
|
private |
Definition at line 171 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.
|
private |
Definition at line 175 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.
|
private |
Definition at line 179 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.
|
mutableprivate |
Definition at line 181 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.
|
private |
Definition at line 183 of file ConstrainedOptPack_MatrixSymAddDelBunchKaufman.hpp.