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

Base class for matrix-like objects that define a block structure, but not a block type. More...

#include <IterableBlockObject.hpp>

Inheritance diagram for bogus::IterableBlockObject< Derived >:
bogus::BlockObjectBase< Derived > bogus::BlockMatrixBase< Derived > 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

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

Public Member Functions

Index size () const
 Returns the total number of blocks of the matrix.
 
template<bool DoTranspose, typename RhsT , typename ResT >
void rowMultiply (const Index row, const RhsT &rhs, ResT &res) const
 Multiplication with a single row.
 
template<bool DoTranspose, typename RhsT , typename ResT , typename PreOp >
void rowMultiplyPrecompose (const Index row, const RhsT &rhs, ResT &res, const PreOp &op) const
 
template<bool DoTranspose, typename RhsT , typename ResT >
void colMultiply (const Index col, const RhsT &rhs, ResT &res) const
 Multiplication with a single column.
 
template<bool DoTranspose, typename RhsT , typename ResT , typename PostOp >
void colMultiplyPostcompose (const Index col, const RhsT &rhs, ResT &res, const PostOp &op) const
 
template<typename Func >
void eachBlockOfRow (const Index row, Func func) const
 Iterates over each block of a given row. Calls func( col, block )
 
template<typename Func >
void eachBlockOfCol (const Index col, Func func) const
 Iterates over each block of a given col. Calls func( row, block )
 
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>
class bogus::IterableBlockObject< Derived >

Base class for matrix-like objects that define a block structure, but not a block type.

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
inherited

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 class was generated from the following file: