So-Bogus
A c++ sparse block matrix library aimed at Second Order cone problems
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
bogus::BlockObjectBase< Derived > Struct Template Reference

Base class for anything block. More...

#include <BlockObjectBase.hpp>

Inheritance diagram for bogus::BlockObjectBase< Derived >:
bogus::IterableBlockObject< Derived > bogus::IterableBlockObject< CompoundBlockMatrix< ColWise, MatrixT1, MatrixT2 > > bogus::IterableBlockObject< CompoundBlockMatrix< false, MatrixT1, MatrixT2 > > bogus::IterableBlockObject< MatrixT1 > bogus::IterableBlockObject< MatrixT2 > bogus::IterableBlockObject< Zero< Scalar > > bogus::BlockMatrixBase< Derived > bogus::CompoundBlockMatrix< ColWise, MatrixT1, MatrixT2 > bogus::CompoundBlockMatrix< false, MatrixT1, MatrixT2 > bogus::Zero< Scalar > bogus::SparseBlockMatrixBase< Derived > bogus::SparseBlockMatrixBase< MappedSparseBlockMatrix< BlockT, Flags, Index_ > > bogus::SparseBlockMatrixBase< SparseBlockMatrix< BlockT, Flags > > bogus::SparseBlockMatrix< Eigen::Matrix< double, Dimension, Dimension > > bogus::SparseBlockMatrix< Eigen::Matrix< double, Dimension, Dimension, Eigen::RowMajor >, SYMMETRIC > bogus::SparseBlockMatrix< Eigen::MatrixXd > bogus::SparseBlockMatrix< HBlock, UNCOMPRESSED > bogus::SparseBlockMatrix< LU< Eigen::MatrixBase< Eigen::MatrixXd > > > bogus::MappedSparseBlockMatrix< BlockT, Flags, Index_ > bogus::SparseBlockMatrix< BlockT, Flags >

Public Types

enum  { is_transposed = Traits::is_transposed }
 
enum  { RowsAtCompileTime = internal::DYNAMIC, ColsAtCompileTime = internal::DYNAMIC, is_self_transpose = Traits::is_symmetric }
 
typedef BlockMatrixTraits
< Derived > 
Traits
 
typedef Traits::Index Index
 
typedef Traits::Scalar Scalar
 
typedef
Traits::ConstTransposeReturnType 
ConstTransposeReturnType
 
typedef Traits::TransposeObjectType TransposeObjectType
 
typedef Traits::PlainObjectType PlainObjectType
 

Public Member Functions

const Derived & derived () const
 Returns a const reference to the implementation.
 
Derived & derived ()
 Returns a reference to the implementation.
 
Index rows () const
 Returns the total number of rows of the matrix ( expanding blocks )
 
Index cols () const
 Returns the total number of columns of the matrix ( expanding blocks )
 
Index blockRows (Index row) const
 Returns the number of rows of a given block row.
 
Index blockCols (Index col) const
 Returns the number of columns of a given block columns.
 
Index rowsOfBlocks () const
 Returns the number of block rows of the matrix.
 
Index colsOfBlocks () const
 Returns the number of block columns of the matrix.
 
const Index * rowOffsets () const
 Returns an array containing the first index of each row.
 
const Index * colOffsets () const
 Returns an array containing the first index of each column.
 
Index rowOffset (Index row) const
 Returns an array containing the first index of a given row.
 
Index colOffset (Index col) const
 Returns an array containing the first index of a given columns.
 
ConstTransposeReturnType transpose () const
 Return a const transposed view of this object.
 
template<bool DoTranspose, typename RhsT , typename ResT >
void multiply (const RhsT &rhs, ResT &res, Scalar alpha=1, Scalar beta=0) const
 Performs a matrix vector multiplication. More...
 

Detailed Description

template<typename Derived>
struct bogus::BlockObjectBase< Derived >

Base class for anything block.

Member Function Documentation

template<typename Derived>
template<bool DoTranspose, typename RhsT , typename ResT >
void bogus::BlockObjectBase< Derived >::multiply ( const RhsT &  rhs,
ResT &  res,
Scalar  alpha = 1,
Scalar  beta = 0 
) const

Performs a matrix vector multiplication.

Template Parameters
DoTransposeIf true, performs res = alpha * M' * rhs + beta * res, otherwise res = alpha * M * rhs + beta * res

The documentation for this struct was generated from the following file: