Alien  1.3.0
Developer documentation
Loading...
Searching...
No Matches
Alien::SimpleCSRInternalLinearAlgebra Class Reference
Inheritance diagram for Alien::SimpleCSRInternalLinearAlgebra:
Collaboration diagram for Alien::SimpleCSRInternalLinearAlgebra:

Classes

class  NullValueException
class  Future

Public Types

typedef BackEnd::tag::simplecsr BackEndType
typedef std::tuple< VectorDistribution const *, Integer > ResourceType
typedef Future< Real > FutureType
typedef Alien::StdTimer TimerType
typedef TimerType::Sentry SentryType
Public Types inherited from Alien::IInternalLinearAlgebra< CSRMatrix, CSRVector >
typedef CSRMatrix Matrix
 Type of the matrix used.
typedef CSRVector Vector
 Type of the vector used.
typedef IInternalLinearAlgebra< Matrix, Vector > *(* Factory) ()
 Type of the the linear algebra.
using MatrixType
using VectorType
using ValueType

Public Member Functions

Real norm0 (const Vector &x) const
Real norm1 (const Vector &x) const
Real norm2 (const Vector &x) const
Real normInf (const Vector &x) const
void synchronize (const Matrix &A, Vector &x) const
void mult (const Matrix &A, const Vector &x, Vector &r) const
void addLMult (Real alpha, const Matrix &A, const Vector &x, Vector &y) const
void addUMult (Real alpha, const Matrix &A, const Vector &x, Vector &y) const
void multDiag (const Matrix &A, Vector &y) const
void computeDiag (const Matrix &a, Vector &inv_diag) const
void multInvDiag (const Matrix &A, Vector &y) const
void computeInvDiag (const Matrix &a, Vector &inv_diag) const
void axpy (Real alpha, const Vector &x, Vector &r) const
void aypx (Real alpha, Vector &y, const Vector &x) const
void copy (const Vector &x, Vector &r) const
void axpy (Real alpha, const Vector &x, Integer stride_x, Vector &r, Integer stride_r) const
void aypx (Real alpha, Vector &y, Integer stride_y, const Vector &x, Integer stride_x) const
void copy (const Vector &x, Integer stride_x, Vector &r, Integer stride_r) const
Real dot (const Vector &x, const Vector &y) const
void dot (const Vector &x, const Vector &y, FutureType &res) const
void scal (Real alpha, Vector &x) const
void scal (const Vector &x, Matrix &a) const
void diagonal (const Matrix &a, Vector &x) const
void reciprocal (Vector &x) const
void pointwiseMult (const Vector &x, const Vector &y, Vector &w) const
void assign (Vector &x, Real alpha) const
template<typename LambdaT>
void assign (Vector &x, LambdaT const &lambda) const
template<typename PrecondT>
void exec (PrecondT &precond, Vector const &x, Vector &y)
Integer computeCxr (const Matrix &a, Matrix &cxr_a) const
Integer computeCxr (const Matrix &a, Vector const &diag_scal, Matrix &cxr_a) const
void allocate (ResourceType resource, Vector &v)
template<typename T0, typename... T>
void allocate (ResourceType resource, T0 &v0, T &... args)
void free (Vector &v)
template<typename T0, typename... T>
void free (T0 &v0, T &... args)
Public Member Functions inherited from Alien::IInternalLinearAlgebra< CSRMatrix, CSRVector >
virtual ~IInternalLinearAlgebra ()
 Free resources.
virtual Real norm0 (const Vector &x) const=0
 Compute L0 norm of a vector.
virtual Real norm1 (const Vector &x) const=0
 Compute L1 norm of a vector.
virtual Real norm2 (const Vector &x) const=0
 Compute L2 norm of a vector.
virtual Real normInf (const Vector &x) const=0
 Compute LInf norm of a vector.
virtual void mult (const Matrix &a, const Vector &x, Vector &r) const=0
 Compute a matrix vector product.
virtual void axpy (Real alpha, const Vector &x, Vector &y) const=0
 Scale a vector by a factor and adds the result to another vector.
virtual void aypx (Real alpha, Vector &y, const Vector &x) const=0
 Scale a vector by a factor and adds the result to another vector.
virtual void copy (const Vector &x, Vector &r) const=0
 Copy a vector in another one.
virtual Real dot (const Vector &x, const Vector &y) const=0
 Compute the dot product of two vectors.
virtual void scal (Real alpha, Vector &x) const=0
 Scale a vector by a factor.
virtual void diagonal (const Matrix &a, Vector &x) const=0
 Extract the diagonal of a matrix in a vector.
virtual void reciprocal (Vector &x) const=0
 Compute the reciprocal of a vector.
virtual void pointwiseMult (const Vector &x, const Vector &y, Vector &w) const=0
 Compute the point wise multiplication of two vectors and store the result in another one.
virtual void dump (Matrix const &a, std::string const &filename) const
 Dumps a matrix to a file.

Static Public Member Functions

static ResourceType resource (Matrix const &A)

Detailed Description

Definition at line 46 of file SimpleCSRInternalLinearAlgebra.h.

Member Typedef Documentation

◆ BackEndType

typedef BackEnd::tag::simplecsr Alien::SimpleCSRInternalLinearAlgebra::BackEndType

Definition at line 50 of file SimpleCSRInternalLinearAlgebra.h.

◆ FutureType

typedef Future<Real> Alien::SimpleCSRInternalLinearAlgebra::FutureType

Definition at line 91 of file SimpleCSRInternalLinearAlgebra.h.

◆ ResourceType

typedef std::tuple<VectorDistribution const*,Integer> Alien::SimpleCSRInternalLinearAlgebra::ResourceType

Definition at line 52 of file SimpleCSRInternalLinearAlgebra.h.

◆ SentryType

typedef TimerType::Sentry Alien::SimpleCSRInternalLinearAlgebra::SentryType

Definition at line 94 of file SimpleCSRInternalLinearAlgebra.h.

◆ TimerType

typedef Alien::StdTimer Alien::SimpleCSRInternalLinearAlgebra::TimerType

Definition at line 93 of file SimpleCSRInternalLinearAlgebra.h.

Constructor & Destructor Documentation

◆ SimpleCSRInternalLinearAlgebra()

Alien::SimpleCSRInternalLinearAlgebra::SimpleCSRInternalLinearAlgebra ( )

Definition at line 52 of file SimpleCSRInternalLinearAlgebra.cc.

◆ ~SimpleCSRInternalLinearAlgebra()

Alien::SimpleCSRInternalLinearAlgebra::~SimpleCSRInternalLinearAlgebra ( )
virtual

Definition at line 58 of file SimpleCSRInternalLinearAlgebra.cc.

Member Function Documentation

◆ addLMult()

void Alien::SimpleCSRInternalLinearAlgebra::addLMult ( Real alpha,
const Matrix & A,
const Vector & x,
Vector & y ) const

Definition at line 141 of file SimpleCSRInternalLinearAlgebra.cc.

◆ addUMult()

void Alien::SimpleCSRInternalLinearAlgebra::addUMult ( Real alpha,
const Matrix & A,
const Vector & x,
Vector & y ) const

Definition at line 152 of file SimpleCSRInternalLinearAlgebra.cc.

◆ allocate() [1/2]

template<typename T0, typename... T>
void Alien::SimpleCSRInternalLinearAlgebra::allocate ( ResourceType resource,
T0 & v0,
T &... args )
inline

Definition at line 159 of file SimpleCSRInternalLinearAlgebra.h.

◆ allocate() [2/2]

void Alien::SimpleCSRInternalLinearAlgebra::allocate ( ResourceType resource,
Vector & v )

Definition at line 73 of file SimpleCSRInternalLinearAlgebra.cc.

◆ assign()

template<typename LambdaT>
void Alien::SimpleCSRInternalLinearAlgebra::assign ( Vector & x,
LambdaT const & lambda ) const
inline

Definition at line 137 of file SimpleCSRInternalLinearAlgebra.h.

◆ computeDiag()

void Alien::SimpleCSRInternalLinearAlgebra::computeDiag ( const Matrix & a,
Vector & inv_diag ) const

Definition at line 171 of file SimpleCSRInternalLinearAlgebra.cc.

◆ computeInvDiag()

void Alien::SimpleCSRInternalLinearAlgebra::computeInvDiag ( const Matrix & a,
Vector & inv_diag ) const

Definition at line 187 of file SimpleCSRInternalLinearAlgebra.cc.

◆ copy()

void Alien::SimpleCSRInternalLinearAlgebra::copy ( const Vector & x,
Integer stride_x,
Vector & r,
Integer stride_r ) const

Definition at line 249 of file SimpleCSRInternalLinearAlgebra.cc.

◆ diagonal()

void Alien::SimpleCSRInternalLinearAlgebra::diagonal ( const Matrix & a,
Vector & x ) const

Definition at line 294 of file SimpleCSRInternalLinearAlgebra.cc.

◆ exec()

template<typename PrecondT>
void Alien::SimpleCSRInternalLinearAlgebra::exec ( PrecondT & precond,
Vector const & x,
Vector & y )
inline

Definition at line 146 of file SimpleCSRInternalLinearAlgebra.h.

◆ free() [1/2]

template<typename T0, typename... T>
void Alien::SimpleCSRInternalLinearAlgebra::free ( T0 & v0,
T &... args )
inline

Definition at line 168 of file SimpleCSRInternalLinearAlgebra.h.

◆ free() [2/2]

void Alien::SimpleCSRInternalLinearAlgebra::free ( Vector & v)

Definition at line 78 of file SimpleCSRInternalLinearAlgebra.cc.

◆ mult()

void Alien::SimpleCSRInternalLinearAlgebra::mult ( const Matrix & A,
const Vector & x,
Vector & r ) const

Definition at line 131 of file SimpleCSRInternalLinearAlgebra.cc.

◆ multDiag()

void Alien::SimpleCSRInternalLinearAlgebra::multDiag ( const Matrix & A,
Vector & y ) const

Definition at line 163 of file SimpleCSRInternalLinearAlgebra.cc.

◆ multInvDiag()

void Alien::SimpleCSRInternalLinearAlgebra::multInvDiag ( const Matrix & A,
Vector & y ) const

Definition at line 179 of file SimpleCSRInternalLinearAlgebra.cc.

◆ norm0()

Real Alien::SimpleCSRInternalLinearAlgebra::norm0 ( const Vector & x) const

Definition at line 83 of file SimpleCSRInternalLinearAlgebra.cc.

◆ norm1()

Real Alien::SimpleCSRInternalLinearAlgebra::norm1 ( const Vector & x) const

Definition at line 94 of file SimpleCSRInternalLinearAlgebra.cc.

◆ norm2()

Real Alien::SimpleCSRInternalLinearAlgebra::norm2 ( const Vector & x) const

Definition at line 105 of file SimpleCSRInternalLinearAlgebra.cc.

◆ normInf()

Real Alien::SimpleCSRInternalLinearAlgebra::normInf ( const Vector & x) const

Definition at line 115 of file SimpleCSRInternalLinearAlgebra.cc.

◆ pointwiseMult()

void Alien::SimpleCSRInternalLinearAlgebra::pointwiseMult ( const Vector & x,
const Vector & y,
Vector & w ) const

Definition at line 309 of file SimpleCSRInternalLinearAlgebra.cc.

◆ reciprocal()

void Alien::SimpleCSRInternalLinearAlgebra::reciprocal ( Vector & x) const

Definition at line 303 of file SimpleCSRInternalLinearAlgebra.cc.

◆ resource()

SimpleCSRInternalLinearAlgebra::ResourceType Alien::SimpleCSRInternalLinearAlgebra::resource ( Matrix const & A)
static

Definition at line 68 of file SimpleCSRInternalLinearAlgebra.cc.

◆ synchronize()

void Alien::SimpleCSRInternalLinearAlgebra::synchronize ( const Matrix & A,
Vector & x ) const

Definition at line 125 of file SimpleCSRInternalLinearAlgebra.cc.


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