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.
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
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
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 > > |