32 template<
typename Scalar,
class Exp, Size rows_, Size cols_>
33 class _RView :
public _RValue<Scalar, _RView<Scalar, Exp, rows_, cols_> > {
48 assert(i +
ROWS_ <= Exp::ROWS_
49 && j +
COLS_ <= Exp::COLS_);
59 Index j = k - i * cols_;
64 assert(i < rows_ && j < cols_);
69 template<
int rows,
int cols,
typename Scalar,
class Exp>
75 template<
typename Scalar,
class Exp>
81 template<
int rows,
typename Scalar,
class Exp>
88 template<
typename Scalar,
class Exp>
94 template<
int cols,
typename Scalar,
class Exp>
102 template <
typename Scalar,
class Exp,
int rows_,
int cols_>
103 class LView :
public _LValue<Scalar, LView<Scalar, Exp, rows_, cols_> > {
131 Index j = k - i * cols_;
132 return (*
this)(i, j);
139 Index j = k - i * cols_;
140 return (*
this)(i, j);
145 return A_(
i_ + i,
j_ + j);
150 return A_(
i_ + i,
j_ + j);
153 template <
class OtherExp>
160 template<
int rows,
int cols,
typename Scalar,
class Exp>
166 template<
typename Scalar,
class Exp>
171 template<
int rows,
typename Scalar,
class Exp>
177 template<
typename Scalar,
class Exp>
183 template<
int cols,
typename Scalar,
class Exp>
191 #endif // FIBER_VIEW_H_
Scalar const & operator[](Index k) const
return the evaluated i'th element of a vector expression
_RView< Scalar, Exp, rows, Exp::COLS_ > GetRows(_RValue< Scalar, Exp > const &A, int i)
_RView< Scalar, Exp, Exp::ROWS_, 1 > GetColumn(_RValue< Scalar, Exp > const &A, int j)
LView< Scalar, Exp, Exp::ROWS_, 1 > Column(_LValue< Scalar, Exp > &A, int j)
LView(Exp &A, Index i, Index j)
expression template for subset of a matrix expression
expression template for rvalues
ThisType & operator=(const _RValue< Scalar, OtherExp > &other)
Scalar operator[](Index k) const
Scalar & operator[](Index k)
return the evaluated i'th element of a vector expression
_RView< Scalar, Exp, rows, cols > View(_RValue< Scalar, Exp > const &A, Index i, Index j)
Scalar & operator()(Index i, Index j)
return the evaluated (j,i)'th element of a matrix expression
_RView(Exp const &A, int i, int j)
LView< Scalar, Exp, rows, cols > Block(_LValue< Scalar, Exp > &A, int i, int j)
Scalar operator()(Index i, Index j) const
_LValue< Scalar, Exp > & operator=(_RValue< Scalar, Exp2 > const &B)
_RView< Scalar, Exp, Exp::ROWS_, cols > GetColumns(_RValue< Scalar, Exp > const &A, int j)
_RView< Scalar, Exp, 1, Exp::COLS_ > GetRow(_RValue< Scalar, Exp > const &A, int i)
LView< Scalar, Exp, rows, Exp::COLS_ > Rows(_LValue< Scalar, Exp > &A, int i)
BinaryKey other(const BinaryKey &key)
expression template for rvalues
Exp const & A_
underlying matrix expression
LView< Scalar, Exp, Exp::ROWS_, cols > Columns(_LValue< Scalar, Exp > &A, int j)
LView< Scalar, Exp, 1, Exp::COLS_ > Row(_LValue< Scalar, Exp > &A, int i)
_LValue< Scalar, ThisType > LValueType
expression template for subset of a matrix expression
Scalar const & operator()(Index i, Index j) const
return the evaluated (j,i)'th element of a matrix expression
LView< Scalar, Exp, rows_, cols_ > ThisType