42 #ifndef MATRIX_SYM_POS_DEF_BUNCH_KAUFMAN_H
43 #define MATRIX_SYM_POS_DEF_BUNCH_KAUFMAN_H
53 namespace ConstrainedOptPack {
67 :
public virtual MatrixSymOpNonsingSerial
68 ,
public virtual MatrixSymAddDelUpdateable
105 ,
bool force_factorization
107 ,PivotTolerances pivot_tols
119 ,
bool force_refactorization
120 ,EEigenValType add_eigen_val
121 ,PivotTolerances pivot_tols
126 ,
bool force_refactorization
127 ,EEigenValType drop_eigen_val
128 ,PivotTolerances pivot_tols
139 std::ostream&
output(std::ostream&
out)
const;
156 typedef std::vector<FortranTypes::f_int>
IPIV_t;
168 MatrixSymAddDelUpdateable::Inertia
182 MatrixSymPosDefCholFactor
221 ,
const Inertia& expected_inertia,
const char func_name[]
222 ,PivotTolerances pivot_tols, Inertia* comp_inertia, std::ostringstream* err_msg,
value_type* gamma );
268 #endif // MATRIX_SYM_POS_DEF_BUNCH_KAUFMAN_H
void Vp_StMtV(DVectorSlice *vs_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const DVectorSlice &vs_rhs2, value_type beta) const
AbstractLinAlgPack::size_type size_type
void initialize(value_type alpha, size_type max_size)
MatrixSymPosDefCholFactor S_chol_
MatrixSymAddDelUpdateable & update_interface()
std::ostream & output(std::ostream &out) const
const DMatrixSliceTriEle tri_ele(const DMatrixSlice &gms, BLAS_Cpp::Uplo uplo)
void factor_matrix(size_type S_size, bool fact_in1)
Factor the current set matrix in-place (do not copy the original).
PivotTolerances pivot_tols() const
DMatrixSliceSym S(size_type S_size)
Get view of lower part of S.
const DMatrixSliceSym sym(const DMatrixSlice &gms, BLAS_Cpp::Uplo uplo)
This class maintains the factorization of symmetric indefinite matrix using a Bunch & Kaufman factori...
const MatrixSymOpNonsing & op_interface() const
void copy_and_factor_matrix(size_type S_size, bool fact_in1)
Copy the original matrix into the new storage location and factorize it.
DMatrixSliceSym nonconst_sym(DMatrixSlice gms, BLAS_Cpp::Uplo uplo)
Return a symmetric matrix.
Interface for updating a symmetric matrix and its factorization by adding and deleting rows and colum...
DenseLinAlgPack::DMatrixSliceTriEle DMatrixSliceTriEle
void augment_update(const DVectorSlice *t, value_type alpha, bool force_refactorization, EEigenValType add_eigen_val, PivotTolerances pivot_tols)
void assert_initialized() const
size_type max_size() const
DMatrixSliceTriEle nonconst_tri_ele(DMatrixSlice gms, BLAS_Cpp::Uplo uplo)
Return a triangular element-wise matrix.
MatrixSymAddDelBunchKaufman()
Initializes with 0x0 and pivot_tols == (0.0,0.0,0.0).
MatrixSymAddDelUpdateable::Inertia inertia_
std::vector< FortranTypes::f_int > IPIV_t
DenseLinAlgPack::VectorSliceTmpl< value_type > DVectorSlice
void resize_DU_store(bool in_store1)
AbstractLinAlgPack::value_type value_type
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.
DenseLinAlgPack::DMatrixSliceSym DMatrixSliceSym
void delete_update(size_type jd, bool force_refactorization, EEigenValType drop_eigen_val, PivotTolerances pivot_tols)
DMatrixSliceTriEle DU(size_type S_size, bool fact_in1)
Get view of DU.
void V_InvMtV(DVectorSlice *vs_lhs, BLAS_Cpp::Transp trans_rhs1, const DVectorSlice &vs_rhs2) const
MatrixSymAddDelBunchKaufman & operator=(const MatrixSymAddDelBunchKaufman &)