44#ifndef Foam_MatrixSpace_H
45#define Foam_MatrixSpace_H
58template<
class Form,
class Cmpt, direction Mrows, direction Ncols>
92 template<
class SubTensor, direction BRowStart, direction BColStart>
151 template<
class Form2>
152 inline void operator=
164 template<
class VSForm>
165 inline void operator=
197 template<
class Form2,
class Cmpt2>
206 template<
class, direction, direction>
class Block2,
212 const Block2<Form, BRowStart, BColStart>&
block
222 template<direction Row, direction Col>
259 inline typename typeOfTranspose<Cmpt, Form>::type
T()
const;
263 template<
class SubTensor, direction BRowStart, direction BColStart>
268 template<
class SubTensor, direction BRowStart, direction BColStart>
290 template<
class, direction, direction>
class Block2,
294 inline void operator=
296 const Block2<Form, BRowStart, BColStart>&
block
300 template<
class Form2>
301 inline void operator&=
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
static direction m() noexcept
The number of rows in the block.
Block(msType &matrix)
Construct for the given matrix.
static direction n() noexcept
The number of columns in the block.
SubTensor operator()() const
Construct and return the sub-tensor corresponding to this block.
static const direction nCols
static const direction mRows
ConstBlock(const msType &matrix)
Construct for the given matrix.
static direction m() noexcept
Return the number of rows in the block.
static direction n() noexcept
Return the number of columns in the block.
SubTensor operator()() const
Construct and return the sub-tensor corresponding to this block.
static const direction nCols
static const direction mRows
typeOfTranspose< Cmpt, Form >::type T() const
Return the transpose of the matrix.
static constexpr direction nCols
void operator=(Foam::zero)
Assignment to zero.
Block< SubTensor, BRowStart, BColStart > block()
Return a sub-block corresponding to the specified type.
const Cmpt & yy() const noexcept
MatrixSpace< Form, Cmpt, Mrows, Ncols > msType
MatrixSpace type.
const Cmpt & elmt() const noexcept
Fast const element access using compile-time addressing.
static direction m() noexcept
The number of rows.
static msType identity()
An identity matrix for square matrix-spaces.
const Cmpt & zy() const noexcept
const Cmpt & yx() const noexcept
const Cmpt & operator()(const direction i, const direction j) const
(i, j) const element access operator
static constexpr direction mRows
ConstBlock< SubTensor, BRowStart, BColStart > block() const
Return a const sub-block corresponding to the specified type.
static direction n() noexcept
The number of columns.
MatrixSpace()=default
Default construct.
const Cmpt & xx() const noexcept
const Cmpt & yz() const noexcept
const Cmpt & zz() const noexcept
const Cmpt & xy() const noexcept
const Cmpt & xz() const noexcept
const Cmpt & zx() const noexcept
friend Ostream & operator(Ostream &, const VectorSpace< Form, Cmpt, Ncmpts > &)
Abstract template class to provide the transpose form of a form.
A class representing the concept of 0 (zero) that can be used to avoid manipulating objects known to ...