C3DPPDivcurlMatrix Class Reference

Precomputed Matrix for the DivCurl regularization. More...

#include <mia/3d/ppmatrix.hh>

Public Member Functions

 C3DPPDivcurlMatrix (const C3DBounds &size, const C3DFVector &range, const CSplineKernel &kernel, double wd, double wr)
 
double evaluate (const T3DDatafield< C3DFVector > &coefficients, CDoubleVector &gradient) const
 
double evaluate (const T3DDatafield< C3DDVector > &coefficients, CDoubleVector &gradient) const
 
const C3DBoundsget_size () const
 
double operator* (const T3DDatafield< C3DFVector > &coefficients) const
 
double operator* (const T3DDatafield< C3DDVector > &coefficients) const
 
void reset (const C3DBounds &size, const C3DFVector &range, const CSplineKernel &kernel, double wd, double wr)
 
 ~C3DPPDivcurlMatrix ()
 

Detailed Description

Precomputed Matrix for the DivCurl regularization.

This class stores the precomputed matrix for the divcurl regislarization of a spline based transformation.

Definition at line 38 of file 3d/ppmatrix.hh.

Constructor & Destructor Documentation

◆ C3DPPDivcurlMatrix()

C3DPPDivcurlMatrix::C3DPPDivcurlMatrix ( const C3DBounds size,
const C3DFVector range,
const CSplineKernel kernel,
double  wd,
double  wr 
)

Construct the matrix according to the given coefficient field size, the used B-Spline kernel and the divergence and rotational weights

Parameters
sizecoefficient field size
rangefull data range
kernelB-Spline kernel used for the transformation
wdweight for divergence
wrweight for rotation (curl)

◆ ~C3DPPDivcurlMatrix()

C3DPPDivcurlMatrix::~C3DPPDivcurlMatrix ( )

Member Function Documentation

◆ evaluate() [1/2]

double C3DPPDivcurlMatrix::evaluate ( const T3DDatafield< C3DFVector > &  coefficients,
CDoubleVector gradient 
) const

Given this matrix P and the coefficient field c evaluate the value for c^T P c

Parameters
coefficientsB-Spline coefficient field c
[out]gradientgradient of the divcurl cost
Returns
<c^T, P, c>

◆ evaluate() [2/2]

double C3DPPDivcurlMatrix::evaluate ( const T3DDatafield< C3DDVector > &  coefficients,
CDoubleVector gradient 
) const

Given this matrix P and the coefficient field c evaluate the value for c^T P c

Parameters
coefficientsB-Spline coefficient field c
[out]gradientgradient of the divcurl cost
Returns
<c^T, P, c>

◆ get_size()

const C3DBounds& C3DPPDivcurlMatrix::get_size ( ) const
Returns
fild size this matrix was created for

◆ operator*() [1/2]

double C3DPPDivcurlMatrix::operator* ( const T3DDatafield< C3DFVector > &  coefficients) const

Given this matrix P and the coefficient field c evaluate the value for c^T P c

Parameters
coefficientsB-Spline coefficient field c
Returns
<c^T, P, c>

◆ operator*() [2/2]

double C3DPPDivcurlMatrix::operator* ( const T3DDatafield< C3DDVector > &  coefficients) const

Given this matrix P and the coefficient field c evaluate the value for c^T P c

Parameters
coefficientsB-Spline coefficient field c
Returns
<c^T, P, c>

◆ reset()

void C3DPPDivcurlMatrix::reset ( const C3DBounds size,
const C3DFVector range,
const CSplineKernel kernel,
double  wd,
double  wr 
)

re-initialize the matrix (if the values are changed)


The documentation for this class was generated from the following file: