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 C3DBounds & | get_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 () | |
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.
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
size | coefficient field size |
range | full data range |
kernel | B-Spline kernel used for the transformation |
wd | weight for divergence |
wr | weight for rotation (curl) |
C3DPPDivcurlMatrix::~C3DPPDivcurlMatrix | ( | ) |
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
coefficients | B-Spline coefficient field c | |
[out] | gradient | gradient of the divcurl cost |
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
coefficients | B-Spline coefficient field c | |
[out] | gradient | gradient of the divcurl cost |
const C3DBounds& C3DPPDivcurlMatrix::get_size | ( | ) | const |
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
coefficients | B-Spline coefficient field c |
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
coefficients | B-Spline coefficient field c |
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)