21 #ifndef mia_2d_sparse_image_solver_hh 22 #define mia_2d_sparse_image_solver_hh 77 assert(result.
get_size() == A.get_size());
79 long b = A.get_boundary_size();
86 for (
int y = 0; y < ny; ++y) {
88 for (; x < nx; ++x, ++ix, ++ir)
89 *ir = static_cast<T>(A(ix));
90 for (; x < (int)X.
get_size().
x; ++x, ++ix, ++ir)
93 copy(ix, X.
end(), ir);
the singleton that a plug-in handler really is
A class that implements the multiplication of a cell of the matrix A with the field x...
const_iterator end() const
forwarding function to access the underlying T2DDatafield
std::shared_ptr< C2DImageSolverAmultx > P2DImageSolverAmultx
pointer type for the Matrix-Vector multiplication
const_iterator begin() const
forwarding function to access the underlying T2DDatafield
Class template to implement a matrix - field multiplication.
This is the template version of a 2D image that is used for holding real data.
solver for sparse systems of equations
#define NS_MIA_BEGIN
conveniance define to start the mia namespace
TFactory< C2DImageSolverAmultx > C2DImageSolverAmultxPlugin
plug-in base for the Matrix-Vector multiplication
This is tha base of all plugins that create "things", like filters, cost functions time step operator...
C2DImageSparseSolver::A_mult_x C2DImageSolverAmultx
base class for the Matrix-Vector multiplication
THandlerSingleton< TFactoryPluginHandler< C2DImageSolverAmultxPlugin > > C2DImageSolverAmultxPluginHandler
plug-in handler for the Matrix-Vector multiplication
std::shared_ptr< C2DImageSparseSolver > P2DImageSparseSolver
pointer type for the sparse solvers for 2D images
const C2DBounds & get_size() const
static void apply(F &result, const typename TSparseSolver< F >::A_mult_x &A, const F &x)
TSparseSolver< C2DFImage > C2DImageSparseSolver
base type for the sparse solvers for 2D images
THandlerSingleton< TFactoryPluginHandler< TFactory< C2DImageSparseSolver > > > C2DImageSparseSolverPluginHandler
Plugin handler for sparse image solver plug-ins.
#define NS_MIA_END
conveniance define to end the mia namespace