Alien  1.3.0
User documentation
Loading...
Searching...
No Matches
Alien::SYCLInternalLinearAlgebra Class Reference

Classes

class  NullValueException

Public Types

typedef BackEnd::tag::sycl BackEndType
typedef std::tuple< VectorDistribution const *, Integer > ResourceType
typedef SYCLInternal::Future< Real > FutureType
typedef Alien::StdTimer TimerType
typedef TimerType::Sentry SentryType
Public Types inherited from Alien::IInternalLinearAlgebra< SYCLMatrixType, SYCLVectorType >
typedef SYCLMatrixType Matrix
 Type of the matrix used.
typedef SYCLVectorType 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

void setDotAlgo (int dot_algo)
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 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 const &y, Vector &z) const
void multDiag (const Vector &diag, Vector const &y, Vector &z) 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, SYCLInternal::Future< Real > &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< SYCLMatrixType, SYCLVectorType >
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 37 of file SYCLInternalLinearAlgebra.h.

Member Typedef Documentation

◆ BackEndType

typedef BackEnd::tag::sycl Alien::SYCLInternalLinearAlgebra::BackEndType

Definition at line 41 of file SYCLInternalLinearAlgebra.h.

◆ FutureType

typedef SYCLInternal::Future<Real> Alien::SYCLInternalLinearAlgebra::FutureType

Definition at line 57 of file SYCLInternalLinearAlgebra.h.

◆ ResourceType

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

Definition at line 44 of file SYCLInternalLinearAlgebra.h.

◆ SentryType

typedef TimerType::Sentry Alien::SYCLInternalLinearAlgebra::SentryType

Definition at line 60 of file SYCLInternalLinearAlgebra.h.

◆ TimerType

typedef Alien::StdTimer Alien::SYCLInternalLinearAlgebra::TimerType

Definition at line 59 of file SYCLInternalLinearAlgebra.h.

Constructor & Destructor Documentation

◆ SYCLInternalLinearAlgebra()

Alien::SYCLInternalLinearAlgebra::SYCLInternalLinearAlgebra ( )

Definition at line 65 of file SYCLInternalLinearAlgebra.cc.

◆ ~SYCLInternalLinearAlgebra()

Alien::SYCLInternalLinearAlgebra::~SYCLInternalLinearAlgebra ( )
virtual

Definition at line 73 of file SYCLInternalLinearAlgebra.cc.

Member Function Documentation

◆ addLMult()

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

Definition at line 148 of file SYCLInternalLinearAlgebra.cc.

◆ addUMult()

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

Definition at line 159 of file SYCLInternalLinearAlgebra.cc.

◆ allocate() [1/2]

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

Definition at line 125 of file SYCLInternalLinearAlgebra.h.

◆ allocate() [2/2]

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

Definition at line 93 of file SYCLInternalLinearAlgebra.cc.

◆ assign()

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

Definition at line 105 of file SYCLInternalLinearAlgebra.h.

◆ computeCxr() [1/2]

Integer Alien::SYCLInternalLinearAlgebra::computeCxr ( const Matrix & a,
Matrix & cxr_a ) const

Definition at line 373 of file SYCLInternalLinearAlgebra.cc.

◆ computeCxr() [2/2]

Integer Alien::SYCLInternalLinearAlgebra::computeCxr ( const Matrix & a,
Vector const & diag_scal,
Matrix & cxr_a ) const

Definition at line 381 of file SYCLInternalLinearAlgebra.cc.

◆ computeInvDiag()

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

Definition at line 203 of file SYCLInternalLinearAlgebra.cc.

◆ diagonal()

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

Definition at line 357 of file SYCLInternalLinearAlgebra.cc.

◆ exec()

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

Definition at line 112 of file SYCLInternalLinearAlgebra.h.

◆ free() [1/2]

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

Definition at line 134 of file SYCLInternalLinearAlgebra.h.

◆ free() [2/2]

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

Definition at line 98 of file SYCLInternalLinearAlgebra.cc.

◆ mult()

void Alien::SYCLInternalLinearAlgebra::mult ( const Matrix & a,
const Vector & x,
Vector & r ) const

Definition at line 138 of file SYCLInternalLinearAlgebra.cc.

◆ multInvDiag()

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

Definition at line 193 of file SYCLInternalLinearAlgebra.cc.

◆ norm0()

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

Definition at line 103 of file SYCLInternalLinearAlgebra.cc.

◆ norm1()

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

Definition at line 112 of file SYCLInternalLinearAlgebra.cc.

◆ norm2()

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

Definition at line 120 of file SYCLInternalLinearAlgebra.cc.

◆ normInf()

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

Definition at line 128 of file SYCLInternalLinearAlgebra.cc.

◆ pointwiseMult()

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

Definition at line 339 of file SYCLInternalLinearAlgebra.cc.

◆ reciprocal()

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

Definition at line 366 of file SYCLInternalLinearAlgebra.cc.

◆ resource()

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

Definition at line 88 of file SYCLInternalLinearAlgebra.cc.

◆ setDotAlgo()

void Alien::SYCLInternalLinearAlgebra::setDotAlgo ( int dot_algo)

Definition at line 80 of file SYCLInternalLinearAlgebra.cc.


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