Shiokaze Framework
A research-oriented fluid solver for computer graphics
RCMatrix_vector_interface< N, T > Class Template Referenceabstract

Interface to provide vector calculations. More...

#include <RCMatrix_interface.h>

Public Member Functions

virtual void copy (const RCMatrix_vector_interface< N, T > *x)
 Copy the vector. More...
 
virtual void resize (N size)=0
 Resize the dimension. More...
 
virtual N size () const =0
 Get the size of dimension. More...
 
virtual void clear (T value=T())=0
 Clear out all the value with the input value. Note that the dimension size of vector remain intact. More...
 
virtual T at (N index) const =0
 Get an element value at an input index position. More...
 
virtual void set (N index, T value)=0
 Set an element value at an input index position. More...
 
virtual void add (N index, T value)=0
 Add an element value at an input index position. More...
 
virtual void add (const RCMatrix_vector_interface< N, T > *x)
 Add a vector. More...
 
virtual void subtract (const RCMatrix_vector_interface< N, T > *x)
 Subtract a vector. More...
 
virtual void subtract (N index, T value)=0
 Subtract an element value at an input index position. More...
 
virtual void multiply (N index, T value)=0
 Multiply an element value at an input index position. More...
 
virtual void divide (N index, T value)=0
 Divide an element value at an input index position. More...
 
virtual void parallel_for_each (std::function< void(N row, T &value)> func)=0
 Manipulate values in parallel. More...
 
virtual void const_parallel_for_each (std::function< void(N row, T value)> func) const =0
 Read values in parallel. More...
 
virtual void interruptible_for_each (std::function< bool(N row, T &value)> func)=0
 Manipulate values in serial order. More...
 
virtual void const_interruptible_for_each (std::function< bool(N row, T value)> func) const =0
 Read values in serial order. More...
 
virtual T abs_max () const =0
 Compute the uniform norm. More...
 
virtual T dot (const RCMatrix_vector_interface< N, T > *x) const =0
 Compute the dot product. More...
 
virtual void add_scaled (T alpha, const RCMatrix_vector_interface< N, T > *x)=0
 Add alpha * x. More...
 
RCMatrix_vector_ptr< N, T > duplicate () const
 Duplicate this vector. More...
 
void for_each (std::function< void(N row, T &value)> func)
 Manipulate values in serial order. More...
 
void const_for_each (std::function< void(N row, T value)> func) const
 Read values in serial order. More...
 
template<class Y >
void convert_from (const std::vector< Y > &v)
 Convert input std::vector to the vector of this type. More...
 
template<class Y >
void convert_to (std::vector< Y > &v) const
 Convert to std::vector. More...
 

Detailed Description

template<class N, class T>
class RCMatrix_vector_interface< N, T >

Interface to provide vector calculations.

Member Function Documentation

◆ abs_max()

template<class N , class T >
virtual T RCMatrix_vector_interface< N, T >::abs_max ( ) const
pure virtual

Compute the uniform norm.

Returns
The uniform norm.

◆ add() [1/2]

template<class N , class T >
virtual void RCMatrix_vector_interface< N, T >::add ( const RCMatrix_vector_interface< N, T > *  x)
inlinevirtual

Add a vector.

Parameters
[in]valueVector to add.

◆ add() [2/2]

template<class N , class T >
virtual void RCMatrix_vector_interface< N, T >::add ( index,
value 
)
pure virtual

Add an element value at an input index position.

Parameters
[in]indexIndex position.
[in]valueValue to add.

◆ add_scaled()

template<class N , class T >
virtual void RCMatrix_vector_interface< N, T >::add_scaled ( alpha,
const RCMatrix_vector_interface< N, T > *  x 
)
pure virtual

Add alpha * x.

Parameters
[in]alphaalpha.
[in]xx.

◆ at()

template<class N , class T >
virtual T RCMatrix_vector_interface< N, T >::at ( index) const
pure virtual

Get an element value at an input index position.

Returns
Element value.

◆ clear()

template<class N , class T >
virtual void RCMatrix_vector_interface< N, T >::clear ( value = T())
pure virtual

Clear out all the value with the input value. Note that the dimension size of vector remain intact.

Parameters
[in]valueValue with which to initialize.

◆ const_for_each()

template<class N , class T >
void RCMatrix_vector_interface< N, T >::const_for_each ( std::function< void(N row, T value)>  func) const
inline

Read values in serial order.

Parameters
[in]funcFunction that reads values.

◆ const_interruptible_for_each()

template<class N , class T >
virtual void RCMatrix_vector_interface< N, T >::const_interruptible_for_each ( std::function< bool(N row, T value)>  func) const
pure virtual

Read values in serial order.

Parameters
[in]funcFunction that reads values. Return true to stop the iteration.

◆ const_parallel_for_each()

template<class N , class T >
virtual void RCMatrix_vector_interface< N, T >::const_parallel_for_each ( std::function< void(N row, T value)>  func) const
pure virtual

Read values in parallel.

Parameters
[in]funcFunction that reads values.

◆ convert_from()

template<class N , class T >
template<class Y >
void RCMatrix_vector_interface< N, T >::convert_from ( const std::vector< Y > &  v)
inline

Convert input std::vector to the vector of this type.

Parameters
[in]vInput vector.

◆ convert_to()

template<class N , class T >
template<class Y >
void RCMatrix_vector_interface< N, T >::convert_to ( std::vector< Y > &  v) const
inline

Convert to std::vector.

Parameters
[out]vOutput vector.

◆ copy()

template<class N , class T >
virtual void RCMatrix_vector_interface< N, T >::copy ( const RCMatrix_vector_interface< N, T > *  x)
inlinevirtual

Copy the vector.

Parameters
[in]xVector from which to copy.

◆ divide()

template<class N , class T >
virtual void RCMatrix_vector_interface< N, T >::divide ( index,
value 
)
pure virtual

Divide an element value at an input index position.

Parameters
[in]indexIndex position.
[in]valueValue by which to divide.

◆ dot()

template<class N , class T >
virtual T RCMatrix_vector_interface< N, T >::dot ( const RCMatrix_vector_interface< N, T > *  x) const
pure virtual

Compute the dot product.

Parameters
[in]xInput vector.
Returns
Dot product result.

◆ duplicate()

template<class N , class T >
RCMatrix_vector_ptr<N,T> RCMatrix_vector_interface< N, T >::duplicate ( ) const
inline

Duplicate this vector.

Returns
Duplicated vector.

◆ for_each()

template<class N , class T >
void RCMatrix_vector_interface< N, T >::for_each ( std::function< void(N row, T &value)>  func)
inline

Manipulate values in serial order.

Parameters
[in]funcManipulation function.

◆ interruptible_for_each()

template<class N , class T >
virtual void RCMatrix_vector_interface< N, T >::interruptible_for_each ( std::function< bool(N row, T &value)>  func)
pure virtual

Manipulate values in serial order.

Parameters
[in]funcManipulation function. Return true to stop the iteration.

◆ multiply()

template<class N , class T >
virtual void RCMatrix_vector_interface< N, T >::multiply ( index,
value 
)
pure virtual

Multiply an element value at an input index position.

Parameters
[in]indexIndex position.
[in]valueValue to multiply.

◆ parallel_for_each()

template<class N , class T >
virtual void RCMatrix_vector_interface< N, T >::parallel_for_each ( std::function< void(N row, T &value)>  func)
pure virtual

Manipulate values in parallel.

Parameters
[in]funcManipulation function.

◆ resize()

template<class N , class T >
virtual void RCMatrix_vector_interface< N, T >::resize ( size)
pure virtual

Resize the dimension.

Parameters
[in]sizeNew size of dimension.

◆ set()

template<class N , class T >
virtual void RCMatrix_vector_interface< N, T >::set ( index,
value 
)
pure virtual

Set an element value at an input index position.

Parameters
[in]indexIndex position.
[in]valueValue to set.

◆ size()

template<class N , class T >
virtual N RCMatrix_vector_interface< N, T >::size ( ) const
pure virtual

Get the size of dimension.

Returns
Size of dimension.

◆ subtract() [1/2]

template<class N , class T >
virtual void RCMatrix_vector_interface< N, T >::subtract ( const RCMatrix_vector_interface< N, T > *  x)
inlinevirtual

Subtract a vector.

Parameters
[in]valueVector to subtract.

◆ subtract() [2/2]

template<class N , class T >
virtual void RCMatrix_vector_interface< N, T >::subtract ( index,
value 
)
pure virtual

Subtract an element value at an input index position.

Parameters
[in]indexIndex position.
[in]valueValue to subtract.

The documentation for this class was generated from the following file: