A templated (m x n) matrix of objects of <T>. The layout is (mRows x nCols) - row-major order: More...
Public Types | |
typedef Matrix< Form, Type > | mType |
Matrix type. More... | |
typedef Type | cmptType |
Component type. More... | |
typedef Type * | iterator |
Random access iterator for traversing a Matrix. More... | |
typedef const Type * | const_iterator |
Random access iterator for traversing a Matrix. More... | |
Public Member Functions | |
Matrix () noexcept | |
Default construct (empty matrix) More... | |
Matrix (const label m, const label n) | |
Construct given number of rows/columns. More... | |
Matrix (const label m, const label n, const Foam::zero) | |
Matrix (const label m, const label n, const Type &val) | |
Matrix (const labelPair &dims) | |
Construct given number of rows/columns. More... | |
Matrix (const labelPair &dims, const Foam::zero) | |
Matrix (const labelPair &dims, const Type &val) | |
Matrix (const Matrix< Form, Type > &mat) | |
Copy construct. More... | |
Matrix (Matrix< Form, Type > &&mat) | |
Move construct. More... | |
template<class Form2 > | |
Matrix (const Matrix< Form2, Type > &mat) | |
Copy constructor from Matrix of a different form. More... | |
template<class MatrixType > | |
Matrix (const ConstMatrixBlock< MatrixType > &Mb) | |
Construct from a block of another Matrix. More... | |
template<class MatrixType > | |
Matrix (const MatrixBlock< MatrixType > &Mb) | |
Construct from a block of another Matrix. More... | |
Matrix (Istream &is) | |
Construct from Istream. More... | |
autoPtr< mType > | clone () const |
Clone. More... | |
~Matrix () | |
Destructor. More... | |
label | m () const noexcept |
The number of rows. More... | |
label | n () const noexcept |
The number of columns. More... | |
label | size () const |
The number of elements in Matrix (m*n) More... | |
labelPair | sizes () const |
Return row/column sizes. More... | |
bool | empty () const noexcept |
Return true if Matrix is empty (i.e., size() is zero) More... | |
const Type * | cdata () const noexcept |
Type * | data () noexcept |
const char * | cdata_bytes () const noexcept |
char * | data_bytes () noexcept |
std::streamsize | size_bytes () const noexcept |
std::streamsize | byteSize () const |
const Type * | rowData (const label irow) const |
Return const pointer to data in the specified row. More... | |
Type * | rowData (const label irow) |
Return pointer to data in the specified row. More... | |
const Type & | at (const label idx) const |
Linear addressing const element access. More... | |
Type & | at (const label idx) |
Linear addressing element access. More... | |
ConstMatrixBlock< mType > | subColumn (const label colIndex, const label rowIndex=0, label len=-1) const |
Return const column or column's subset of Matrix. More... | |
ConstMatrixBlock< mType > | subRow (const label rowIndex, const label colIndex=0, label len=-1) const |
Return const row or const row's subset of Matrix. More... | |
ConstMatrixBlock< mType > | subMatrix (const label rowIndex, const label colIndex, label szRows=-1, label szCols=-1) const |
Return const sub-block of Matrix. More... | |
template<class VectorSpace > | |
ConstMatrixBlock< mType > | block (const label rowIndex, const label colIndex) const |
Access Field as a ConstMatrixBlock. More... | |
MatrixBlock< mType > | subColumn (const label colIndex, const label rowIndex=0, label len=-1) |
Return column or column's subset of Matrix. More... | |
MatrixBlock< mType > | subRow (const label rowIndex, const label colIndex=0, label len=-1) |
Return row or row's subset of Matrix. More... | |
MatrixBlock< mType > | subMatrix (const label rowIndex, const label colIndex, label szRows=-1, label szCols=-1) |
Return sub-block of Matrix. More... | |
template<class VectorSpace > | |
MatrixBlock< mType > | block (const label rowIndex, const label colIndex) |
Access Field as a MatrixBlock. More... | |
void | checki (const label irow) const |
Check index i is within valid range [0, m) More... | |
void | checkj (const label jcol) const |
Check index j is within valid range [0, n) More... | |
void | checkSize () const |
Check that dimensions are positive, non-zero. More... | |
bool | uniform () const |
True if all entries have identical values, and Matrix is non-empty. More... | |
void | clear () |
Clear Matrix, i.e. set sizes to zero. More... | |
List< Type > | release () |
void | swap (Matrix< Form, Type > &mat) |
Swap contents. More... | |
void | transfer (Matrix< Form, Type > &mat) |
void | resize (const label m, const label n) |
Change Matrix dimensions, preserving the elements. More... | |
void | resize_nocopy (const label mrow, const label ncol) |
Change Matrix dimensions without preserving existing content. More... | |
void | setSize (const label m, const label n) |
Change Matrix dimensions, preserving the elements. More... | |
void | shallowResize (const label m, const label n) |
Resize Matrix without reallocating storage (unsafe) More... | |
void | round (const scalar tol=SMALL) |
Round elements with magnitude smaller than tol (SMALL) to zero. More... | |
Form | T () const |
Return conjugate transpose of Matrix. More... | |
Form | transpose () const |
Return non-conjugate transpose of Matrix. More... | |
tmp< Field< Type > > | Amul (const UList< Type > &x) const |
Right-multiply Matrix by a column vector (A * x) More... | |
template<class Addr > | |
tmp< Field< Type > > | Amul (const IndirectListBase< Type, Addr > &x) const |
Right-multiply Matrix by a column vector (A * x) More... | |
tmp< Field< Type > > | Tmul (const UList< Type > &x) const |
Left-multiply Matrix by a row vector (x * A) More... | |
template<class Addr > | |
tmp< Field< Type > > | Tmul (const IndirectListBase< Type, Addr > &x) const |
Left-multiply Matrix by a row vector (x * A) More... | |
List< Type > | diag () const |
Extract the diagonal elements. Method may change in the future. More... | |
void | diag (const UList< Type > &list) |
Assign diagonal of Matrix. More... | |
Type | trace () const |
Return the trace. More... | |
scalar | columnNorm (const label colIndex, const bool noSqrt=false) const |
Return L2-Norm of chosen column. More... | |
scalar | norm (const bool noSqrt=false) const |
Return Frobenius norm of Matrix. More... | |
const Type * | operator[] (const label irow) const |
Return const pointer to data in the specified row - rowData(). More... | |
Type * | operator[] (const label irow) |
Return pointer to data in the specified row - rowData(). More... | |
const Type & | operator() (const label irow, const label jcol) const |
(i, j) const element access operator More... | |
Type & | operator() (const label irow, const label jcol) |
(i, j) element access operator More... | |
void | operator= (const Matrix< Form, Type > &mat) |
Copy assignment. Takes linear time. More... | |
void | operator= (Matrix< Form, Type > &&mat) |
Move assignment. More... | |
template<class MatrixType > | |
void | operator= (const ConstMatrixBlock< MatrixType > &Mb) |
Assignment to a block of another Matrix. More... | |
template<class MatrixType > | |
void | operator= (const MatrixBlock< MatrixType > &Mb) |
Assignment to a block of another Matrix. More... | |
void | operator= (const Foam::zero) |
Assignment of all elements to zero. More... | |
void | operator= (const Type &val) |
Assignment of all elements to the given value. More... | |
void | operator+= (const Matrix< Form, Type > &other) |
Matrix addition. More... | |
void | operator-= (const Matrix< Form, Type > &other) |
Matrix subtraction. More... | |
void | operator+= (const Type &s) |
Matrix scalar addition. More... | |
void | operator-= (const Type &s) |
Matrix scalar subtraction. More... | |
void | operator*= (const Type &s) |
Matrix scalar multiplication. More... | |
void | operator/= (const Type &s) |
Matrix scalar division. More... | |
iterator | begin () noexcept |
Return an iterator to begin traversing a Matrix. More... | |
iterator | end () noexcept |
Return an iterator to end traversing a Matrix. More... | |
const_iterator | cbegin () const noexcept |
Return const_iterator to begin traversing a constant Matrix. More... | |
const_iterator | cend () const noexcept |
Return const_iterator to end traversing a constant Matrix. More... | |
const_iterator | begin () const noexcept |
Return const_iterator to begin traversing a constant Matrix. More... | |
const_iterator | end () const noexcept |
Return const_iterator to end traversing a constant Matrix. More... | |
bool | readMatrix (Istream &is) |
Read Matrix from Istream, discarding existing contents. More... | |
Ostream & | writeMatrix (Ostream &os, const label shortLen=0) const |
label | mRows () const noexcept |
The number of rows - same as m() More... | |
label | nRows () const noexcept |
The number of rows - same as m() More... | |
label | nCols () const noexcept |
The number of columns - same as n() More... | |
const Type * | v () const |
Deprecated(2019-04) raw data pointer, const access. More... | |
Type * | v () |
Deprecated(2019-04) raw data pointer, non-const access. More... | |
ConstMatrixBlock< mType > | block (const label m, const label n, const label mStart, const label nStart) const |
Deprecated(2019-04) - use subMatrix() More... | |
MatrixBlock< mType > | block (const label m, const label n, const label mStart, const label nStart) |
Deprecated(2019-04) - use subMatrix() More... | |
ConstMatrixBlock< mType > | col (const label m, const label mStart, const label nStart) const |
Deprecated(2019-04) - use subColumn() More... | |
MatrixBlock< mType > | col (const label m, const label mStart, const label nStart) |
Deprecated(2019-04) - use subColumn() More... | |
void | col (const label m, const label rowStart) const =delete |
Deleted(2019-04) - use subColumn() More... | |
void | col (const label m, const label rowStart)=delete |
Deleted(2019-04) - use subColumn() More... | |
template<class ListType > | |
Foam::tmp< Foam::Field< Type > > | AmulImpl (const ListType &x) const |
template<class ListType > | |
Foam::tmp< Foam::Field< Type > > | TmulImpl (const ListType &x) const |
template<class VectorSpace > | |
Foam::ConstMatrixBlock< Foam::Matrix< Form, Type > > | block (const label rowIndex, const label colIndex) const |
template<class VectorSpace > | |
Foam::MatrixBlock< Foam::Matrix< Form, Type > > | block (const label rowIndex, const label colIndex) |
template<class Addr > | |
Foam::tmp< Foam::Field< Type > > | Amul (const IndirectListBase< Type, Addr > &x) const |
template<class Addr > | |
Foam::tmp< Foam::Field< Type > > | Tmul (const IndirectListBase< Type, Addr > &x) const |
Static Public Member Functions | |
static const Matrix< Form, Type > & | null () |
Return a null Matrix. More... | |
A templated (m x n) matrix of objects of <T>. The layout is (mRows x nCols) - row-major order:
(0,0) +---> j [nCols] | | v i [mRows]
typedef Type* iterator |
typedef const Type* const_iterator |
Matrix | ( | const label | m, |
const label | n | ||
) |
Construct given number of rows/columns.
Definition at line 109 of file Matrix.C.
References Matrix< Form, Type >::checkSize().
Matrix | ( | const label | m, |
const label | n, | ||
const Foam::zero | |||
) |
Construct with given number of rows/columns initializing all elements to zero
Definition at line 122 of file Matrix.C.
References Matrix< Form, Type >::begin(), Matrix< Form, Type >::checkSize(), Matrix< Form, Type >::end(), and Foam::Zero.
Matrix | ( | const label | m, |
const label | n, | ||
const Type & | val | ||
) |
|
inline |
Copy constructor from Matrix of a different form.
Definition at line 182 of file Matrix.C.
References Matrix< Form, Type >::cbegin(), Matrix< Form, Type >::cdata(), and Matrix< Form, Type >::cend().
|
inline |
|
inline |
Construct from Istream.
Definition at line 40 of file MatrixIO.C.
References Matrix< Form, Type >::readMatrix().
|
inlinestatic |
|
inline |
Clone.
Definition at line 80 of file MatrixI.H.
References Foam::New().
|
inlinenoexcept |
The number of rows.
Definition at line 96 of file MatrixI.H.
Referenced by Matrix< Form, Type >::AmulImpl(), Foam::applyPermutation(), Matrix< Form, Type >::block(), Matrix< Form, Type >::col(), EigenMatrix< cmptType >::complexEVecs(), LLTMatrix< Type >::decompose(), Foam::det(), Foam::detDecomposed(), dimensionSets::dimensionSets(), STDMD::initialise(), QRMatrix< MatrixType >::inv(), Foam::LUBacksubstitute(), Foam::LUDecompose(), LUscalarMatrix::LUscalarMatrix(), Foam::LUsolve(), Foam::operator&(), Matrix< Form, Type >::operator+=(), Matrix< Form, Type >::operator-=(), simpleMatrix< Type >::operator=(), Foam::outer(), Foam::MatrixTools::pinv(), QRMatrix< MatrixType >::solve(), LUscalarMatrix::solve(), Foam::solve(), SVD::SVD(), Foam::symmOuter(), and Matrix< Form, Type >::TmulImpl().
|
inlinenoexcept |
The number of columns.
Definition at line 103 of file MatrixI.H.
Referenced by Matrix< Form, Type >::AmulImpl(), dimensionSets::dimensionSets(), updateMethod::leftMult(), LUscalarMatrix::LUscalarMatrix(), multiDimPolyFitter< T >::nCoeffs(), Foam::operator&(), Matrix< Form, Type >::operator+=(), Matrix< Form, Type >::operator-=(), Foam::outer(), Foam::MatrixTools::pinv(), updateMethod::rightMult(), QRMatrix< MatrixType >::solve(), SVD::SVD(), Foam::symmOuter(), and Matrix< Form, Type >::TmulImpl().
|
inline |
The number of elements in Matrix (m*n)
Definition at line 110 of file MatrixI.H.
Referenced by Matrix< Form, Type >::writeMatrix().
|
inline |
Return row/column sizes.
Definition at line 117 of file MatrixI.H.
Referenced by Foam::applyPermutation(), Foam::operator*(), Foam::operator+(), Foam::operator-(), and Foam::operator/().
|
inlinenoexcept |
Return true if Matrix is empty (i.e., size() is zero)
Definition at line 124 of file MatrixI.H.
Referenced by Foam::max(), and Foam::min().
|
inlinenoexcept |
Return const pointer to the first data element, which can also be used to address into Matrix contents
Definition at line 202 of file MatrixI.H.
Referenced by Matrix< Form, Type >::Matrix(), Matrix< RectangularMatrix< Type >, Type >::Matrix(), and Matrix< Form, Type >::writeMatrix().
|
inlinenoexcept |
|
inlinenoexcept |
Return pointer to the underlying array serving as data storage, reinterpreted as byte data.
Definition at line 216 of file MatrixI.H.
Referenced by Matrix< Form, Type >::writeMatrix().
|
inlinenoexcept |
|
inlinenoexcept |
Number of contiguous bytes for the Matrix data, no runtime check that the type is actually contiguous
Definition at line 230 of file MatrixI.H.
Referenced by Matrix< Form, Type >::writeMatrix().
std::streamsize byteSize |
Number of contiguous bytes for the Matrix data, runtime FatalError if type is not contiguous
Definition at line 511 of file Matrix.C.
References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.
|
inline |
|
inline |
|
inline |
Linear addressing const element access.
Subscript checking only with FULLDEBUG
Definition at line 257 of file MatrixI.H.
References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.
|
inline |
|
inline |
Return const column or column's subset of Matrix.
Return entire column by its index: M.subColumn(a); Return subset of a column starting from rowIndex: M.subColumn(a, b); Return subset of a column starting from rowIndex with szRows elems: M.subColumn(a, b, c);
Definition at line 288 of file MatrixI.H.
Referenced by SquareMatrix< Type >::applyPermutation(), Foam::applyPermutation(), and Matrix< Form, Type >::col().
|
inline |
|
inline |
Return const sub-block of Matrix.
Sub-block starting at columnIndex & rowIndex indices
Definition at line 338 of file MatrixI.H.
Referenced by Matrix< Form, Type >::block().
|
inline |
Access Field as a ConstMatrixBlock.
|
inline |
|
inline |
|
inline |
|
inline |
Access Field as a MatrixBlock.
|
inline |
|
inline |
|
inline |
Check that dimensions are positive, non-zero.
Definition at line 167 of file MatrixI.H.
References Foam::abort(), Foam::FatalError, FatalErrorInFunction, and Foam::nl.
Referenced by Matrix< Form, Type >::Matrix().
True if all entries have identical values, and Matrix is non-empty.
Definition at line 180 of file MatrixI.H.
Referenced by Matrix< Form, Type >::writeMatrix().
Foam::List< Type > release |
void transfer | ( | Matrix< Form, Type > & | mat | ) |
void resize | ( | const label | m, |
const label | n | ||
) |
Change Matrix dimensions, preserving the elements.
Definition at line 324 of file Matrix.C.
References Foam::min(), n, and Foam::Zero.
Referenced by Foam::MatrixTools::pinv().
void resize_nocopy | ( | const label | mrow, |
const label | ncol | ||
) |
|
inline |
|
inline |
void round | ( | const scalar | tol = SMALL | ) |
Round elements with magnitude smaller than tol (SMALL) to zero.
Definition at line 379 of file Matrix.C.
References Foam::mag(), and Foam::Zero.
Form T |
Return conjugate transpose of Matrix.
Definition at line 392 of file Matrix.C.
References Foam::Detail::conj(), and n.
Referenced by chemPointISAT< CompType, ThermoType >::chemPointISAT().
|
inline |
|
inline |
Right-multiply Matrix by a column vector (A * x)
|
inline |
|
inline |
Left-multiply Matrix by a row vector (x * A)
Foam::List< Type > diag |
Extract the diagonal elements. Method may change in the future.
Definition at line 426 of file Matrix.C.
References Foam::min().
void diag | ( | const UList< Type > & | list | ) |
Foam::scalar columnNorm | ( | const label | colIndex, |
const bool | noSqrt = false |
||
) | const |
Return L2-Norm of chosen column.
Optional without sqrt for parallel usage.
Definition at line 479 of file Matrix.C.
References Foam::magSqr(), Foam::sqrt(), and Foam::Zero.
Foam::scalar norm | ( | const bool | noSqrt = false | ) | const |
Return Frobenius norm of Matrix.
Optional without sqrt for parallel usage.
Definition at line 497 of file Matrix.C.
References Foam::magSqr(), Foam::sqrt(), and Foam::Zero.
|
inline |
Return const pointer to data in the specified row - rowData().
Subscript checking only with FULLDEBUG
Definition at line 614 of file MatrixI.H.
Referenced by LUscalarMatrix::LUscalarMatrix().
|
inline |
|
inline |
|
inline |
void operator= | ( | const Matrix< Form, Type > & | mat | ) |
Copy assignment. Takes linear time.
Definition at line 526 of file Matrix.C.
References Matrix< Form, Type >::cbegin(), Matrix< Form, Type >::cend(), and clear().
void operator= | ( | Matrix< Form, Type > && | mat | ) |
void operator= | ( | const ConstMatrixBlock< MatrixType > & | Mb | ) |
void operator= | ( | const MatrixBlock< MatrixType > & | Mb | ) |
void operator= | ( | const Foam::zero | ) |
void operator= | ( | const Type & | val | ) |
void operator+= | ( | const Matrix< Form, Type > & | other | ) |
Matrix addition.
Definition at line 608 of file Matrix.C.
References Foam::abort(), Matrix< Form, Type >::cbegin(), Foam::FatalError, FatalErrorInFunction, Matrix< Form, Type >::m(), n, Matrix< Form, Type >::n(), and Foam::nl.
void operator-= | ( | const Matrix< Form, Type > & | other | ) |
Matrix subtraction.
Definition at line 638 of file Matrix.C.
References Foam::abort(), Matrix< Form, Type >::cbegin(), Foam::FatalError, FatalErrorInFunction, Matrix< Form, Type >::m(), n, Matrix< Form, Type >::n(), and Foam::nl.
void operator+= | ( | const Type & | s | ) |
void operator-= | ( | const Type & | s | ) |
void operator*= | ( | const Type & | s | ) |
void operator/= | ( | const Type & | s | ) |
|
inlinenoexcept |
Return an iterator to begin traversing a Matrix.
Definition at line 535 of file MatrixI.H.
Referenced by EigenMatrix< cmptType >::complexEVecs(), and Matrix< Form, Type >::Matrix().
|
inlinenoexcept |
Return an iterator to end traversing a Matrix.
Definition at line 543 of file MatrixI.H.
Referenced by Matrix< Form, Type >::Matrix(), Foam::operator-(), and Foam::operator/().
|
inlinenoexcept |
Return const_iterator to begin traversing a constant Matrix.
Definition at line 551 of file MatrixI.H.
Referenced by STDMD::initialise(), Matrix< Form, Type >::Matrix(), Foam::max(), Foam::min(), Foam::operator*(), Foam::operator+(), Matrix< Form, Type >::operator+=(), Foam::operator-(), Matrix< Form, Type >::operator-=(), Foam::operator/(), and Matrix< Form, Type >::operator=().
|
inlinenoexcept |
Return const_iterator to end traversing a constant Matrix.
Definition at line 559 of file MatrixI.H.
Referenced by Matrix< Form, Type >::Matrix(), Foam::max(), Foam::min(), Foam::operator*(), Foam::operator+(), Foam::operator-(), and Matrix< Form, Type >::operator=().
|
inlinenoexcept |
|
inlinenoexcept |
Read Matrix from Istream, discarding existing contents.
Definition at line 53 of file MatrixIO.C.
References token::BEGIN_LIST, STLCore::BINARY, clear(), Foam::exit(), IOstream::fatalCheck(), Foam::FatalIOError, FatalIOErrorInFunction, IOstreamOption::format(), FUNCTION_NAME, token::info(), token::isLabel(), token::labelToken(), Foam::nl, Istream::readBeginList(), Istream::readEndList(), and Foam::readLabel().
Referenced by Matrix< Form, Type >::Matrix(), and Foam::operator>>().
Foam::Ostream & writeMatrix | ( | Ostream & | os, |
const label | shortLen = 0 |
||
) | const |
Write Matrix, with line-breaks in ASCII when length exceeds shortLen.
Using '0' suppresses line-breaks entirely.
Definition at line 143 of file MatrixIO.C.
References STLCore::BINARY, Matrix< Form, Type >::cdata(), Matrix< Form, Type >::cdata_bytes(), IOstreamOption::format(), Matrix< Form, Type >::nCols(), Matrix< Form, Type >::nRows(), os(), Matrix< Form, Type >::size(), Matrix< Form, Type >::size_bytes(), token::SPACE, Matrix< Form, Type >::uniform(), and OBJstream::write().
Referenced by Foam::operator<<().
|
inlinenoexcept |
|
inlinenoexcept |
The number of rows - same as m()
Definition at line 519 of file Matrix.H.
Referenced by Matrix< Form, Type >::writeMatrix().
|
inlinenoexcept |
The number of columns - same as n()
Definition at line 525 of file Matrix.H.
Referenced by Matrix< Form, Type >::writeMatrix().
|
inline |
Deprecated(2019-04) raw data pointer, const access.
|
inline |
Deprecated(2019-04) raw data pointer, non-const access.
|
inline |
Deprecated(2019-04) - use subMatrix()
Definition at line 550 of file Matrix.H.
References Matrix< Form, Type >::m(), n, and Matrix< Form, Type >::subMatrix().
|
inline |
Deprecated(2019-04) - use subMatrix()
Definition at line 564 of file Matrix.H.
References Matrix< Form, Type >::m(), n, and Matrix< Form, Type >::subMatrix().
|
inline |
Deprecated(2019-04) - use subColumn()
Definition at line 579 of file Matrix.H.
References Matrix< Form, Type >::m(), and Matrix< Form, Type >::subColumn().
|
inline |
Deprecated(2019-04) - use subColumn()
Definition at line 592 of file Matrix.H.
References Matrix< Form, Type >::m(), and Matrix< Form, Type >::subColumn().
|
delete |
Deleted(2019-04) - use subColumn()
|
delete |
Deleted(2019-04) - use subColumn()
Foam::tmp< Foam::Field< Type > > AmulImpl | ( | const ListType & | x | ) | const |
Definition at line 37 of file Matrix.C.
References Foam::abort(), Foam::FatalError, FatalErrorInFunction, Matrix< Form, Type >::m(), Matrix< Form, Type >::n(), Foam::nl, and x.
Foam::tmp< Foam::Field< Type > > TmulImpl | ( | const ListType & | x | ) | const |
Definition at line 72 of file Matrix.C.
References Foam::abort(), Foam::FatalError, FatalErrorInFunction, Matrix< Form, Type >::m(), Matrix< Form, Type >::n(), Foam::nl, and x.
|
inline |
|
inline |
Definition at line 457 of file MatrixI.H.
References VectorSpace< Form, Cmpt, Ncmpts >::mRows, and VectorSpace< Form, Cmpt, Ncmpts >::nCols.
|
inline |
|
inline |