2d/ppmatrix.hh
Go to the documentation of this file.
/* -*- mia-c++ -*-
*
* This file is part of MIA - a toolbox for medical image analysis
* Copyright (c) Leipzig, Madrid 1999-2017 Gert Wollny
*
* MIA is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with MIA; if not, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef mia_2d_ppmatrix_hh
#define mia_2d_ppmatrix_hh
#include <mia/2d/interpolator.hh>
#include <mia/2d/datafield.hh>
#include <mia/core/vector.hh>
NS_MIA_BEGIN
class EXPORT_2D C2DPPDivcurlMatrix
{
public:
C2DPPDivcurlMatrix(const C2DBounds& size, const C2DFVector& range, const CSplineKernel& kernel,
double wd, double wr);
~C2DPPDivcurlMatrix();
double operator * (const C2DFVectorfield& coefficients) const;
double operator * (const T2DDatafield<C2DDVector>& coefficients) const;
double evaluate(const C2DFVectorfield& coefficients, CDoubleVector& gradient) const;
double evaluate(const T2DDatafield<C2DDVector>& coefficients, CDoubleVector& gradient) const;
const C2DBounds& get_size() const;
void reset(const C2DBounds& size, const C2DFVector& range, const CSplineKernel& kernel,
double wd, double wr);
private:
class C2DPPDivcurlMatrixImpl *impl;
};
NS_MIA_END
#endif
datafield.hh
interpolator.hh
C2DBounds
T2DVector< unsigned int > C2DBounds
unsigned int valued 2D vector - used as 2D size parameter
Definition 2d/vector.hh:540
C2DFVector
T2DVector< float > C2DFVector
float valued 2D vector
Definition 2d/vector.hh:534
C2DFVectorfield
a 2D field of floating point single accuracy 2D vectors
Definition 2d/vectorfield.hh:80
C2DPPDivcurlMatrix::C2DPPDivcurlMatrix
C2DPPDivcurlMatrix(const C2DBounds &size, const C2DFVector &range, const CSplineKernel &kernel, double wd, double wr)
C2DPPDivcurlMatrix::evaluate
double evaluate(const C2DFVectorfield &coefficients, CDoubleVector &gradient) const
C2DPPDivcurlMatrix::get_size
const C2DBounds & get_size() const
C2DPPDivcurlMatrix::~C2DPPDivcurlMatrix
~C2DPPDivcurlMatrix()
C2DPPDivcurlMatrix::reset
void reset(const C2DBounds &size, const C2DFVector &range, const CSplineKernel &kernel, double wd, double wr)
C2DPPDivcurlMatrix::evaluate
double evaluate(const T2DDatafield< C2DDVector > &coefficients, CDoubleVector &gradient) const
CSplineKernel
Base class for all spline based interpolation kernels.
Definition splinekernel.hh:46
T2DDatafield
A class to hold data on a regular 2D grid.
Definition 2d/datafield.hh:90
vector.hh
EXPORT_2D
#define EXPORT_2D
Definition defines2d.hh:37
NS_MIA_BEGIN
#define NS_MIA_BEGIN
conveniance define to start the mia namespace
Definition defines.hh:33
NS_MIA_END
#define NS_MIA_END
conveniance define to end the mia namespace
Definition defines.hh:36
CDoubleVector
TCArrayWrapper< double > CDoubleVector
Definition core/vector.hh:266
operator*
F operator*(const typename TSparseSolver< F >::A_mult_x &A, const F &x)
Definition sparse_solver.hh:182