C3DPPDivcurlMatrix Class Reference
Image Registration and Transformation

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 C3DBounds & | get_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

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

  | coefficients | B-Spline coefficient field c
  [out] | gradient | gradient 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

  | coefficients | B-Spline coefficient field c
  [out] | gradient | gradient 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

  coefficients | B-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

  coefficients | B-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:

- 3d/ppmatrix.hh