1.4.1
CCC
 
ASimulableEigenCG.hpp File Reference
#include "LinearOp/ASimulable.hpp"
#include <Eigen/Core>
#include <Eigen/Dense>
#include <Eigen/IterativeLinearSolvers>
#include <Eigen/src/Core/Matrix.h>
#include <unsupported/Eigen/IterativeSolvers>
#include <cassert>

Classes

class  ASimulableEigenCG< TLinOP >
 This class extends ASimulable to make it working with Eigen conjugate gradient algorithm. More...
 

Macros

#define DECLARE_EIGEN_TRAITS(TLinOP)
 
#define DECLARE_EIGEN_PRODUCT(TLinOP)
 

Macro Definition Documentation

◆ DECLARE_EIGEN_PRODUCT

#define DECLARE_EIGEN_PRODUCT (   TLinOP)
Value:
template<typename Rhs> \
struct Eigen::internal::generic_product_impl<TLinOP, Rhs, Eigen::SparseShape, Eigen::DenseShape, Eigen::GemvProduct> \
: Eigen::internal::generic_product_impl_base<TLinOP, Rhs, Eigen::internal::generic_product_impl<TLinOP,Rhs> > \
{ \
typedef typename Product<TLinOP,Rhs>::Scalar Scalar; \
template<typename Dest> \
static void scaleAndAddTo(Dest& dst, const TLinOP& lhs, const Rhs& rhs, const Scalar& alpha) \
{ \
assert(alpha==Scalar(1) && "scaling is not implemented"); \
EIGEN_ONLY_USED_FOR_DEBUG(alpha); \
lhs.addToDest(rhs, dst); \
} \
};
@ alpha
Definition: String.cpp:81

◆ DECLARE_EIGEN_TRAITS

#define DECLARE_EIGEN_TRAITS (   TLinOP)
Value:
class TLinOP; \
using Eigen::SparseMatrix; \
\
namespace Eigen { \
namespace internal { \
template<> \
struct traits<TLinOP> : public Eigen::internal::traits<Eigen::SparseMatrix<double> > \
{}; \
} \
}