| So-Bogus
    A c++ sparse block matrix library aimed at Second Order cone problems | 
Main namespace for bogus and So-bogus. More...
| Namespaces | |
| admm | |
| Options for ADMM solvers. | |
| flags | |
| Flags for compile-time tuning of the behavior of objects such as SparseBlockMatrix. | |
| krylov | |
| Krylov methods implementation. | |
| local_soc_solver | |
| Configuration properties of local Second Order Cone solver. | |
| mkl | |
| Specializations using mkl. | |
| projected_gradient | |
| Options for ProjectedGradient solvers. | |
| Typedefs | |
| typedef int | DenseIndexType | 
| typedef SOCLaw< 2, double, true > | Coulomb2D | 
| Predefined non-smooth law for 2D Coulomb friction. | |
| typedef SOCLaw< 3, double, true > | Coulomb3D | 
| Predefined non-smooth law for 3D Coulomb friction. | |
| typedef SOCLaw< 2, double, false > | SOC2D | 
| Predefined non-smooth law for 2D SOC complementarity. | |
| typedef SOCLaw< 3, double, false > | SOC3D | 
| Predefined non-smooth law for 3D SOC complementarity. | |
| Functions | |
| template<typename SelfTransposeT > | |
| EnableIf< BlockTraits < SelfTransposeT > ::is_self_transpose, const SelfTransposeT & >::ReturnType | transpose_block (const SelfTransposeT &block) | 
| Specialization of transpose_block() for self-adjoint types. | |
| template<typename BlockType > | |
| EnableIf< !BlockTraits < BlockType > ::is_self_transpose, typename BlockType::ConstTransposeReturnType > ::ReturnType | transpose_block (const BlockType &block) | 
| Specialization of transpose_block() for types that define a ConstTransposeReturnType. | |
| template<typename LhsT , typename RhsT > | |
| Addition< LhsT, RhsT > | operator+ (const BlockObjectBase< LhsT > &lhs, const BlockObjectBase< RhsT > &rhs) | 
| template<typename LhsT , typename RhsT > | |
| Addition< LhsT, RhsT > | operator- (const BlockObjectBase< LhsT > &lhs, const BlockObjectBase< RhsT > &rhs) | 
| template<typename Derived > | |
| Scaling< Derived > | operator* (const BlockObjectBase< Derived > &lhs, typename Derived::Scalar rhs) | 
| template<typename Derived > | |
| Scaling< Derived > | operator* (typename Derived::Scalar lhs, const BlockObjectBase< Derived > &rhs) | 
| template<typename LhsT , typename RhsT > | |
| Product< LhsT, RhsT > | operator* (const BlockObjectBase< LhsT > &lhs, const BlockObjectBase< RhsT > &rhs) | 
| template<typename Derived > | |
| Scaling< Derived > | operator/ (const BlockObjectBase< Derived > &lhs, typename Derived::Scalar rhs) | 
| bool | is_zero (double s, double precision) | 
| void | set_zero (double &s) | 
| void | set_identity (double &s) | 
| void | resize (double &, int, int) | 
| const double * | data_pointer (const double &s) | 
| bool | is_zero (float s, float precision) | 
| void | set_zero (float &s) | 
| void | set_identity (float &s) | 
| void | resize (float &, int, int) | 
| const float * | data_pointer (const float &s) | 
| bool | is_zero (int s, int precision) | 
| void | set_zero (int &s) | 
| void | set_identity (int &s) | 
| void | resize (int &, int, int) | 
| const int * | data_pointer (const int &s) | 
| bool | is_zero (char s, char precision) | 
| void | set_zero (char &s) | 
| void | set_identity (char &s) | 
| void | resize (char &, int, int) | 
| const char * | data_pointer (const char &s) | 
| template<typename EigenDerived > | |
| bool | is_zero (const Eigen::MatrixBase< EigenDerived > &block, typename EigenDerived::Scalar precision) | 
| template<typename EigenDerived > | |
| void | set_zero (Eigen::MatrixBase< EigenDerived > &block) | 
| template<typename EigenDerived > | |
| void | set_identity (Eigen::MatrixBase< EigenDerived > &block) | 
| template<typename EigenDerived > | |
| void | resize (Eigen::MatrixBase< EigenDerived > &block, int rows, int cols) | 
| template<typename EigenDerived > | |
| const EigenDerived::Scalar * | data_pointer (const Eigen::MatrixBase< EigenDerived > &block) | 
| template<typename EigenDerived > | |
| const Eigen::Transpose< const EigenDerived > | transpose_block (const Eigen::SparseMatrixBase< EigenDerived > &block) | 
| template<typename EigenDerived > | |
| bool | is_zero (const Eigen::SparseMatrixBase< EigenDerived > &block, typename EigenDerived::Scalar precision) | 
| template<typename Scalar , int Options, typename Index > | |
| void | set_identity (Eigen::SparseMatrix< Scalar, Options, Index > &block) | 
| template<typename Scalar , int Options, typename Index > | |
| void | resize (Eigen::SparseMatrix< Scalar, Options, Index > &block, Index rows, Index cols) | 
| template<typename Derived > | |
| Eigen::internal::plain_matrix_type < Derived >::type | get_mutable_vector (const Eigen::MatrixBase< Derived > &) | 
| template<typename Derived , typename EigenDerived > | |
| mv_impl::BlockEigenProduct < mv_impl::EigenBlockWrapper < Derived >, EigenDerived > | operator* (const BlockObjectBase< Derived > &lhs, const Eigen::MatrixBase< EigenDerived > &rhs) | 
| template<typename Derived , typename EigenDerived > | |
| mv_impl::BlockEigenProduct < mv_impl::EigenBlockWrapper < Derived >, EigenDerived > | operator* (const Scaling< Derived > &lhs, const Eigen::MatrixBase< EigenDerived > &rhs) | 
| template<typename Derived , typename EigenDerived > | |
| mv_impl::BlockEigenProduct < EigenDerived, mv_impl::EigenBlockWrapper < Derived > > | operator* (const Eigen::MatrixBase< EigenDerived > &lhs, const BlockObjectBase< Derived > &rhs) | 
| template<typename Derived , typename EigenDerived > | |
| mv_impl::BlockEigenProduct < EigenDerived, mv_impl::EigenBlockWrapper < Derived > > | operator* (const Eigen::MatrixBase< EigenDerived > &lhs, const Scaling< Derived > &rhs) | 
| template<typename Derived , typename RhsT > | |
| LinearSolverTraits< Derived > ::template Result < Eigen::MatrixBase< RhsT > >::Type | operator* (const LinearSolverBase< Derived > &solver, const Eigen::MatrixBase< RhsT > &rhs) | 
| template<typename EigenDerived , typename BogusDerived > | |
| void | convert (const Eigen::SparseMatrixBase< EigenDerived > &source, SparseBlockMatrixBase< BogusDerived > &dest, int destRowsPerBlock=0, int destColsPerBlock=0) | 
| template<typename BogusDerived , typename EigenScalar , int EigenOptions, typename EigenIndex > | |
| void | convert (const SparseBlockMatrixBase< BogusDerived > &source, Eigen::SparseMatrix< EigenScalar, EigenOptions, EigenIndex > &dest) | 
| template<typename Element > | |
| const Element * | data_pointer (const ConstMappedArray< Element > &vec) | 
| template<typename T , typename Allocator > | |
| const T * | data_pointer (const std::vector< T, Allocator > &vec) | 
| Accessing std::vector data pointer without undefined behavior. | |
| template<typename T , typename Allocator > | |
| T * | data_pointer (std::vector< T, Allocator > &vec) | 
| Accessing std::vector data pointer without undefined behavior – mutable version. | |
| template<typename Scalar > | |
| ConstantArray< Scalar > | make_constant_array (Scalar s) | 
Main namespace for bogus and So-bogus.
| struct bogus::BlockTranspose | 
Defines the transpose type of a BlockType using self-introspection. 
Process af follow:
| Class Members | ||
|---|---|---|
| __unnamed__ | ||
| struct bogus::BlockTranspose< BlockType, true, DCT, DTT > | 
| struct bogus::BlockTranspose< BlockType, false, true, DTT > | 
| struct bogus::BlockTranspose< BlockType, false, false, true > | 
| Class Members | ||
|---|---|---|
| typedef BlockTransposeTraits < BlockType >::ReturnType | ReturnType | |
| Class Members | ||
|---|---|---|
| __unnamed__ | ||
| struct bogus::IsTransposable | 
| struct bogus::BlockDims | 
Access to the dimensions of a block.
| Class Members | ||
|---|---|---|
| typedef SwapIf< Transpose_, RowsAtCompileTime, ColsAtCompileTime > | Dims | |
| typedef BlockTraits< BlockT > | Traits | |
| Class Members | ||
|---|---|---|
| __unnamed__ | ||
| struct bogus::BlockMatrixTraits< BlockObjectBase< Derived > > | 
Default specialization of traits for BlockMatrices.
Re-specialized for derived classes, see e.g. BlockMatrixTraits< SparseBlockMatrix >
| Class Members | ||
|---|---|---|
| typedef TransposeObjectType | ConstTransposeReturnType | Type returned by the transpose() method. Generally a TransposeObjectType or a const reference to it | 
| typedef int | Index | Index type – for accessing elements, defining offsets, etc. | 
| typedef Derived | PlainObjectType | Type in which the expression may be evaluated into. | 
| typedef Transpose< Derived > | TransposeObjectType | Type representing the transpose of this object. | 
| Class Members | ||
|---|---|---|
| __unnamed__ | ||
| __unnamed__ | ||
| struct bogus::SparseBlockIndexTraits< CompoundSparseBlockIndex< FirstIndexType, SecondIndexType, NativeOrder > > | 
| Class Members | ||
|---|---|---|
| typedef BlockPtr | BlockPtr | |
| typedef Index | Index | |
| typedef CompoundSparseBlockIndex < FirstIndexType, SecondIndexType, NativeOrder > | SparseBlockIndexType | |
| struct bogus::SparseBlockIndexTraits< SparseBlockIndex< true, Index_, BlockPtr_, ArrayType > > | 
| Class Members | ||
|---|---|---|
| typedef BlockPtr_ | BlockPtr | |
| typedef Index_ | Index | |
| typedef SparseBlockIndex< true, Index_, BlockPtr_, ArrayType > | SparseBlockIndexType | |
| struct bogus::BlockMatrixTraits< Transpose< MatrixT > > | 
| Class Members | ||
|---|---|---|
| typedef const PlainObjectType & | ConstTransposeReturnType | |
| typedef Index | Index | |
| typedef BlockMatrixTraits < MatrixT > | OrigTraits | |
| typedef PlainObjectType | PlainObjectType | |
| typedef Scalar | Scalar | |
| typedef PlainObjectType | TransposeObjectType | |
| Class Members | ||
|---|---|---|
| __unnamed__ | ||
| __unnamed__ | ||
| struct bogus::BlockStorage | 
| struct bogus::BlockStorage< ObjectT, true > | 
| struct bogus::BlockMatrixTraits< Product< LhsMatrixT, RhsMatrixT > > | 
| Class Members | ||
|---|---|---|
| typedef Product< typename BlockOperand< RhsMatrixT > ::TransposeObjectType, typename BlockOperand < LhsMatrixT > ::TransposeObjectType > | ConstTransposeReturnType | |
| typedef Index | Index | |
| typedef BlockType | LhsBlockType | |
| typedef BlockMatrixTraits < LhsMatrixT > | LhsTraits | |
| typedef template MutableImpl < ResBlockType, false >::Type | PlainObjectType | |
| typedef Product< LhsMatrixT, RhsMatrixT > | ProductType | |
| typedef BlockBlockProductTraits < LhsBlockType, RhsBlockType, is_transposed, is_transposed > ::ReturnType | ResBlockType | |
| typedef BlockType | RhsBlockType | |
| typedef BlockMatrixTraits < RhsMatrixT > | RhsTraits | |
| typedef Scalar | Scalar | |
| typedef ConstTransposeReturnType | TransposeObjectType | |
| Class Members | ||
|---|---|---|
| __unnamed__ | ||
| __unnamed__ | ||
| struct bogus::BlockMatrixTraits< Addition< LhsMatrixT, RhsMatrixT > > | 
| Class Members | ||
|---|---|---|
| typedef Addition< typename BlockOperand< LhsMatrixT > ::TransposeObjectType, typename BlockOperand < RhsMatrixT > ::TransposeObjectType > | ConstTransposeReturnType | |
| typedef Index | Index | |
| typedef BlockMatrixTraits < LhsMatrixT > | OrigTraits | |
| typedef template MutableImpl < ResBlockType, false >::Type | PlainObjectType | |
| typedef BlockType | ResBlockType | |
| typedef Scalar | Scalar | |
| typedef ConstTransposeReturnType | TransposeObjectType | |
| Class Members | ||
|---|---|---|
| __unnamed__ | ||
| __unnamed__ | ||
| struct bogus::BlockMatrixTraits< Scaling< MatrixT > > | 
| Class Members | ||
|---|---|---|
| typedef Scaling< typename BlockOperand< MatrixT > ::TransposeObjectType > | ConstTransposeReturnType | |
| typedef Index | Index | |
| typedef BlockMatrixTraits < MatrixT > | OrigTraits | |
| typedef PlainObjectType | PlainObjectType | |
| typedef Scalar | Scalar | |
| typedef ConstTransposeReturnType | TransposeObjectType | |
| Class Members | ||
|---|---|---|
| __unnamed__ | ||
| __unnamed__ | ||
| struct bogus::BlockTraits< MappedSparseBlockMatrix< BlockT, Flags, Index_ > > | 
| Class Members | ||
|---|---|---|
| typedef MappedSparseBlockMatrix < BlockT, Flags, Index_ > | BlockType | |
| typedef Scalar | Scalar | |
| typedef MappedSparseBlockMatrix < typename TransposeBlockType, Flags^COL_MAJOR, Index_ > | TransposeStorageType | |
| Class Members | ||
|---|---|---|
| __unnamed__ | ||
| struct bogus::BlockTraits< double > | 
| struct bogus::BlockTraits< float > | 
| struct bogus::BlockTraits< int > | 
| struct bogus::BlockTraits< char > | 
| struct bogus::SparseBlockIndexTraits | 
| struct bogus::SparseBlockIndexTraits< SparseBlockIndex< Compressed, Index_, BlockPtr_, ArrayType > > | 
| Class Members | ||
|---|---|---|
| typedef BlockPtr_ | BlockPtr | |
| typedef Index_ | Index | |
| typedef SparseBlockIndex < Compressed, Index_, BlockPtr_, ArrayType > | SparseBlockIndexType | |
| struct bogus::BlockTraits< SparseBlockMatrix< BlockT, Flags > > | 
| Class Members | ||
|---|---|---|
| typedef SparseBlockMatrix < BlockT, Flags > | BlockType | |
| typedef Scalar | Scalar | |
| typedef SparseBlockMatrix < typename TransposeBlockType, Flags^COL_MAJOR > | TransposeStorageType | |
| Class Members | ||
|---|---|---|
| __unnamed__ | ||
| struct bogus::SparseBlockMatrixFinalizer | 
| struct bogus::BlockMatrixTraits | 
| struct bogus::ResizableSequenceContainer | 
| struct bogus::BlockTraits | 
| struct bogus::BlockTransposeTraits | 
Defines the return type of an associated transpose_block( const BlockType& ) function.
| struct bogus::BlockVectorProductTraits | 
Defines the type of the vectors resulting from the multiplication of a BlockMatrix and an instance of VectorTypea.
Should be the return type of an associated get_mutable_vector( const VectorType & ) function
| struct bogus::BlockBlockProductTraits | 
Defines the return type of the product of two blocks potentially transposed.
| Class Members | ||
|---|---|---|
| typedef LhsBlockType | ReturnType | |
| struct bogus::LinearSolverTraits< krylov::solvers::CG< Matrix, Preconditioner, Traits > > | 
| struct bogus::BlockBlockProductTraits< krylov::solvers::CG< Matrix, Preconditioner, Traits >, RhsBlockT, TransposeLhs, TransposeRhs > | 
| Class Members | ||
|---|---|---|
| typedef BlockBlockProductTraits < Matrix, RhsBlockT, TransposeLhs, TransposeRhs > ::ReturnType | ReturnType | |
| struct bogus::LinearSolverTraits< krylov::solvers::BiCG< Matrix, Preconditioner, Traits > > | 
| struct bogus::BlockBlockProductTraits< krylov::solvers::BiCG< Matrix, Preconditioner, Traits >, RhsBlockT, TransposeLhs, TransposeRhs > | 
| Class Members | ||
|---|---|---|
| typedef BlockBlockProductTraits < Matrix, RhsBlockT, TransposeLhs, TransposeRhs > ::ReturnType | ReturnType | |
| struct bogus::LinearSolverTraits< krylov::solvers::BiCGSTAB< Matrix, Preconditioner, Traits > > | 
| struct bogus::BlockBlockProductTraits< krylov::solvers::BiCGSTAB< Matrix, Preconditioner, Traits >, RhsBlockT, TransposeLhs, TransposeRhs > | 
| Class Members | ||
|---|---|---|
| typedef BlockBlockProductTraits < Matrix, RhsBlockT, TransposeLhs, TransposeRhs > ::ReturnType | ReturnType | |
| struct bogus::LinearSolverTraits< krylov::solvers::CGS< Matrix, Preconditioner, Traits > > | 
| struct bogus::BlockBlockProductTraits< krylov::solvers::CGS< Matrix, Preconditioner, Traits >, RhsBlockT, TransposeLhs, TransposeRhs > | 
| Class Members | ||
|---|---|---|
| typedef BlockBlockProductTraits < Matrix, RhsBlockT, TransposeLhs, TransposeRhs > ::ReturnType | ReturnType | |
| struct bogus::LinearSolverTraits< krylov::solvers::GMRES< Matrix, Preconditioner, Traits > > | 
| struct bogus::BlockBlockProductTraits< krylov::solvers::GMRES< Matrix, Preconditioner, Traits >, RhsBlockT, TransposeLhs, TransposeRhs > | 
| Class Members | ||
|---|---|---|
| typedef BlockBlockProductTraits < Matrix, RhsBlockT, TransposeLhs, TransposeRhs > ::ReturnType | ReturnType | |
| struct bogus::LinearSolverTraits< krylov::solvers::TFQMR< Matrix, Preconditioner, Traits > > | 
| struct bogus::BlockBlockProductTraits< krylov::solvers::TFQMR< Matrix, Preconditioner, Traits >, RhsBlockT, TransposeLhs, TransposeRhs > | 
| Class Members | ||
|---|---|---|
| typedef BlockBlockProductTraits < Matrix, RhsBlockT, TransposeLhs, TransposeRhs > ::ReturnType | ReturnType | |
| class bogus::DiagonalPreconditioner | 
Diagonal preconditioner.
Defines the preconditioner matrix  as a diagonal matrix where each of the coefficient is the scalar inverse of the corresponding diagonal coefficient in the system matrix Works well for diagonally dominant matrices.
 as a diagonal matrix where each of the coefficient is the scalar inverse of the corresponding diagonal coefficient in the system matrix Works well for diagonally dominant matrices. 
| class bogus::DiagonalLUPreconditioner | 
Diagonal Block-LU preconditioner.
Defines the preconditioner matrix  as a block-diagonal matrix where each diagonal block is the LU factorization of the corresponding diagonal block in the system matrix
 as a block-diagonal matrix where each diagonal block is the LU factorization of the corresponding diagonal block in the system matrix 
| class bogus::DiagonalLDLTPreconditioner | 
Diagonal Block-LDLT preconditioner.
Defines the preconditioner matrix  as a block-diagonal matrix where each diagonal block is the LDLT factorization of the corresponding diagonal block in the system matrix
 as a block-diagonal matrix where each diagonal block is the LDLT factorization of the corresponding diagonal block in the system matrix 
| struct bogus::MatrixPreconditioner | 
Matrix preconditioner.
Explicitely define the preconditioner with an arbitray matrix
| struct bogus::ProblemTraits | 
| struct bogus::BlockTransposeTraits< Eigen::SparseMatrixBase< BlockT > > | 
| Class Members | ||
|---|---|---|
| typedef const Transpose< const BlockT > | ReturnType | |
| struct bogus::BlockTraits< Eigen::Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > > | 
| Class Members | ||
|---|---|---|
| typedef _Scalar | Scalar | |
| typedef Matrix< _Scalar, _Cols, _Rows,(_Options|((_Cols==1 &&_Rows!=1)?RowMajor:0))&~((_Rows==1 &&_Cols!=1)?RowMajor:0), _MaxCols, _MaxRows > | TransposeStorageType | |
| Class Members | ||
|---|---|---|
| __unnamed__ | ||
| struct bogus::BlockBlockProductTraits< Eigen::Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >, Eigen::Matrix< _Scalar2, _Rows2, _Cols2, _Options2, _MaxRows2, _MaxCols2 >, TransposeLhs, TransposeRhs > | 
| Class Members | ||
|---|---|---|
| typedef Matrix< _Scalar, SwapIf< TransposeLhs, _Rows, _Cols >::First, SwapIf < TransposeRhs, _Rows2, _Cols2 > ::Second, _Options, SwapIf < TransposeLhs, _MaxRows, _MaxCols >::First, SwapIf < TransposeRhs, _MaxRows2, _MaxCols2 >::Second > | ReturnType | |
| struct bogus::ResizableSequenceContainer< Eigen::Matrix< Scalar, Rows, Cols, Options, MaxRows, MaxCols > > | 
| Class Members | ||
|---|---|---|
| typedef Matrix< Scalar, Rows, Cols, Options, MaxRows, MaxCols > | BlockType | |
| typedef TypeSwapIf< Rows==Dynamic||Cols==Dynamic||0!=(static_cast < size_t > Rows *Cols *sizeof(Scalar))&0xf), vector< BlockType, aligned_allocator< BlockType > >, vector< BlockType > >::First | Type | |
| struct bogus::EigenSolveResult | 
| struct bogus::LinearSolverTraits< LU< Eigen::MatrixBase< Derived > > > | 
| struct bogus::LinearSolverTraits< LDLT< Eigen::MatrixBase< Derived > > > | 
| Class Members | ||
|---|---|---|
| typedef LDLT< MatrixType > | FactType | |
| typedef PlainObject | MatrixType | |
| struct bogus::TypeSwapIf | 
| struct bogus::TypeSwapIf< true, First_, Second_ > | 
| struct bogus::SwapIf | 
| struct bogus::SwapIf< true, First_, Second_ > | 
| struct bogus::IsSame | 
| struct bogus::IsSame< T1, T1 > | 
| struct bogus::EnableIf | 
| struct bogus::EnableIf< true, ReturnType_ > | 
| struct bogus::DisableIf | 
| struct bogus::DisableIf< false, ReturnType_ > | 
| struct bogus::StaticAssert | 
| struct bogus::StaticAssert< false > | 
| struct bogus::LinearSolverTraits | 
| struct bogus::BlockBlockProductTraits< LU< LhsBlockT >, RhsBlockT, TransposeLhs, TransposeRhs > | 
Block product type deductions.
| Class Members | ||
|---|---|---|
| typedef LinearSolverTraits< LU < LhsBlockT > >::MatrixType | LhsMatrixT | |
| typedef BlockBlockProductTraits < LhsMatrixT, RhsBlockT, TransposeLhs, TransposeRhs > ::ReturnType | ReturnType | |
| struct bogus::BlockBlockProductTraits< LDLT< LhsBlockT >, RhsBlockT, TransposeLhs, TransposeRhs > | 
| Class Members | ||
|---|---|---|
| typedef LinearSolverTraits < LDLT< LhsBlockT > >::MatrixType | LhsMatrixT | |
| typedef BlockBlockProductTraits < LhsMatrixT, RhsBlockT, TransposeLhs, TransposeRhs > ::ReturnType | ReturnType | |
| struct bogus::SignalTraits | 
| struct bogus::SignalTraits< Signal< Arg1, Arg2, Arg3 > > | 
| struct bogus::SignalTraits< Signal< Arg1, Arg2 > > | 
| struct bogus::SignalTraits< Signal< Arg, void > > |