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