iterative-solver 0.0
molpro::linalg::itsolv::subspace::Matrix< T >::Slice Class Reference

Proxy mapping to a rectangular slice of the matrix data. Implements simple assignment. More...

#include <Matrix.h>

Detailed Description

template<typename T>
class molpro::linalg::itsolv::subspace::Matrix< T >::Slice

Proxy mapping to a rectangular slice of the matrix data. Implements simple assignment.

Public Member Functions

 Slice (Matrix< T > &matrix, coord_type upper_left, coord_type bottom_right)
 
 Slice ()=delete
 
 ~Slice ()=default
 
 Slice (const Slice &)=delete
 
 Slice (Slice &&) noexcept=default
 
Sliceoperator= (Slice &&) noexcept=default
 
Sliceoperator= (const Slice &right)
 
T & operator() (size_t i, size_t j)
 
operator() (size_t i, size_t j) const
 
Sliceaxpy (T a, const Slice &x)
 
Sliceaxpy (T a, const CSlice &x)
 
Slicescal (T a)
 Scale all elements of the slice. More...
 
Slicefill (T a)
 Fill all elements of the slice with new values. More...
 
Sliceoperator= (const CSlice &right)
 
Sliceoperator= (const Matrix< T > &right)
 
coord_type dimensions () const
 
size_t rows () const
 
size_t cols () const
 

Protected Attributes

Matrix< T > & mat
 matrix being sliced More...
 
coord_type upl
 upper left corner More...
 
coord_type btr
 bottom right corner More...
 

Constructor & Destructor Documentation

◆ Slice() [1/4]

template<typename T >
molpro::linalg::itsolv::subspace::Matrix< T >::Slice::Slice ( Matrix< T > &  matrix,
coord_type  upper_left,
coord_type  bottom_right 
)
inline

◆ Slice() [2/4]

template<typename T >
molpro::linalg::itsolv::subspace::Matrix< T >::Slice::Slice ( )
delete

◆ ~Slice()

template<typename T >
molpro::linalg::itsolv::subspace::Matrix< T >::Slice::~Slice ( )
default

◆ Slice() [3/4]

template<typename T >
molpro::linalg::itsolv::subspace::Matrix< T >::Slice::Slice ( const Slice )
delete

◆ Slice() [4/4]

template<typename T >
molpro::linalg::itsolv::subspace::Matrix< T >::Slice::Slice ( Slice &&  )
defaultnoexcept

Member Function Documentation

◆ axpy() [1/2]

template<typename T >
Slice & molpro::linalg::itsolv::subspace::Matrix< T >::Slice::axpy ( a,
const CSlice x 
)
inline

◆ axpy() [2/2]

template<typename T >
Slice & molpro::linalg::itsolv::subspace::Matrix< T >::Slice::axpy ( a,
const Slice x 
)
inline

◆ cols()

template<typename T >
size_t molpro::linalg::itsolv::subspace::Matrix< T >::Slice::cols ( ) const
inline

◆ dimensions()

template<typename T >
coord_type molpro::linalg::itsolv::subspace::Matrix< T >::Slice::dimensions ( ) const
inline

◆ fill()

template<typename T >
Slice & molpro::linalg::itsolv::subspace::Matrix< T >::Slice::fill ( a)
inline

Fill all elements of the slice with new values.

◆ operator()() [1/2]

template<typename T >
T & molpro::linalg::itsolv::subspace::Matrix< T >::Slice::operator() ( size_t  i,
size_t  j 
)
inline

◆ operator()() [2/2]

template<typename T >
T molpro::linalg::itsolv::subspace::Matrix< T >::Slice::operator() ( size_t  i,
size_t  j 
) const
inline

◆ operator=() [1/4]

template<typename T >
Slice & molpro::linalg::itsolv::subspace::Matrix< T >::Slice::operator= ( const CSlice right)
inline

◆ operator=() [2/4]

template<typename T >
Slice & molpro::linalg::itsolv::subspace::Matrix< T >::Slice::operator= ( const Matrix< T > &  right)
inline

◆ operator=() [3/4]

template<typename T >
Slice & molpro::linalg::itsolv::subspace::Matrix< T >::Slice::operator= ( const Slice right)
inline

◆ operator=() [4/4]

template<typename T >
Slice & molpro::linalg::itsolv::subspace::Matrix< T >::Slice::operator= ( Slice &&  )
defaultnoexcept

◆ rows()

template<typename T >
size_t molpro::linalg::itsolv::subspace::Matrix< T >::Slice::rows ( ) const
inline

◆ scal()

template<typename T >
Slice & molpro::linalg::itsolv::subspace::Matrix< T >::Slice::scal ( a)
inline

Scale all elements of the slice.

Member Data Documentation

◆ btr

template<typename T >
coord_type molpro::linalg::itsolv::subspace::Matrix< T >::Slice::btr
protected

bottom right corner

◆ mat

template<typename T >
Matrix<T>& molpro::linalg::itsolv::subspace::Matrix< T >::Slice::mat
protected

matrix being sliced

◆ upl

template<typename T >
coord_type molpro::linalg::itsolv::subspace::Matrix< T >::Slice::upl
protected

upper left corner