My Project
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< C3DDVector > &coefficients, CDoubleVector &gradient) const
double evaluate (const T3DDatafield< C3DFVector > &coefficients, CDoubleVector &gradient) const
const C3DBoundsget_size () const
double operator* (const T3DDatafield< C3DDVector > &coefficients) const
double operator* (const T3DDatafield< C3DFVector > &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< 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>

◆ evaluate() [2/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>

◆ get_size()

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

◆ operator*() [1/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>

◆ operator*() [2/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>

◆ 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: