13#include <alien/utils/Precomp.h>
17#include <alien/core/backend/BackEnd.h>
47template <
class Tag,
class TagV = Tag>
59 template <
typename... T>
215 void mult(
const IMatrix& a,
const UniqueArray<Real>& x, UniqueArray<Real>& r)
const;
227 void axpy(Real alpha,
const UniqueArray<Real>& x, UniqueArray<Real>& r)
const;
238 void aypx(Real alpha, UniqueArray<Real>& y,
const UniqueArray<Real>& x)
const;
246 void copy(
const UniqueArray<Real>& x, UniqueArray<Real>& r)
const;
256 Integer local_size,
const UniqueArray<Real>& x,
const UniqueArray<Real>& y)
const;
263 void scal(Real alpha, UniqueArray<Real>& x)
const;
IInternalLinearAlgebraExprT.h.
Interface for all matrices.
Interface for all vectors.
Real norm0(const IVector &x) const
Compute L0 norm of a vector.
void aypx(Real alpha, IVector &y, const IVector &x) const
Scale a vector by a factor and adds the result to another vector.
void mult(const IMatrix &a, const IVector &x, IVector &r) const
Compute a matrix vector product.
Real norm2(const IMatrix &x) const
Compute L2 (Frobenous) norm of a matrix.
void copy(const IMatrix &x, IMatrix &r) const
Copy a matrix in another one.
std::unique_ptr< KernelAlgebraExpr > m_algebra
Real normInf(const IVector &x) const
Compute LInf norm of a vector.
Real norm1(const IVector &x) const
Compute L1 norm of a vector.
void scal(Real alpha, IMatrix &a) const
Scale a matrix by a factor.
void add(const IMatrix &a, IMatrix &b) const
Add two matrices A and B.
Real dot(Integer local_size, const UniqueArray< Real > &x, const UniqueArray< Real > &y) const
Compute the dot product of two vectors.
LinearAlgebraExpr(T... args)
Creates a linear algebra.
void copy(const IVector &x, IVector &r) const
Copy a vector in another one.
Real norm2(const IVector &x) const
Compute L2 norm of a vector.
void axpy(Real alpha, const IVector &x, IVector &y) const
Scale a vector by a factor and adds the result to another vector.
void aypx(Real alpha, UniqueArray< Real > &y, const UniqueArray< Real > &x) const
Scale a vector by a factor and adds the result to another vector.
void copy(const UniqueArray< Real > &x, UniqueArray< Real > &r) const
Copy a vector in another one.
void dump(IMatrix const &a, std::string const &filename) const
Dumps a matrix to a file.
virtual ~LinearAlgebraExpr()
Free resources.
void mult(const IMatrix &a, const UniqueArray< Real > &x, UniqueArray< Real > &r) const
Compute a matrix vector product.
void axpy(Real alpha, const UniqueArray< Real > &x, UniqueArray< Real > &r) const
Scale a vector by a factor and adds the result to another vector.
void reciprocal(IVector &x) const
Compute the reciprocal of a vector.
AlgebraTraits< Tag >::algebra_type KernelAlgebra
The type of the linear algebra.
void pointwiseMult(const IVector &x, const IVector &y, IVector &w) const
Compute the point wise multiplication of two vectors and store the result in another one.
void dump(IVector const &x, std::string const &filename) const
Dumps a vector to a file.
void scal(Real alpha, UniqueArray< Real > &x) const
Scale a vector by a factor.
void diagonal(const IMatrix &a, IVector &x) const
Extract the diagonal of a matrix in a vector.
void scal(Real alpha, IVector &x) const
Scale a vector by a factor.
Real dot(const IVector &x, const IVector &y) const
Compute the dot product of two vectors.
Implementation of an algebraic space.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --