CSplineBoundaryCondition Class Referenceabstract
Interpolation

Abstract base class for B-spline interpolation boundary conditions. More...

`#include <mia/core/boundary_conditions.hh>`

Inheritance diagram for CSplineBoundaryCondition:
[legend]
Collaboration diagram for CSplineBoundaryCondition:
[legend]

## Public Types

typedef CSplineBoundaryCondition | plugin_data
| helper typedef for plug-in handling
typedef CSplineBoundaryCondition | plugin_type
| helper typedef for plug-in handling
typedef std::unique_ptr< CSplineBoundaryCondition > | Pointer
| pointer type to this boundary condition
Public Types inherited from CPropertyFlagHolder
typedef std::set< const char * > | Set
| define the type of the set of flags

## Public Member Functions

bool | apply (CSplineKernel::VIndex &index, CSplineKernel::VWeight &weights) const
virtual CSplineBoundaryCondition * | clone () const __attribute__((warn_unused_result))=0
| CSplineBoundaryCondition ()
| CSplineBoundaryCondition (const CSplineBoundaryCondition &)=delete
| CSplineBoundaryCondition (int width)
void | filter_line (std::vector< double > &coeff, const std::vector< double > &poles) const
template<typename T>
void | filter_line (std::vector< T > &coeff, const std::vector< double > &poles) const
| *‍/
int | get_width () const
CSplineBoundaryCondition & | operator= (const CSplineBoundaryCondition &)=delete
void | set_width (int width)
template<typename T>
void | template_filter_line (std::vector< T > &coeff, const std::vector< double > &poles) const
Public Member Functions inherited from CProductBase
const char * | get_init_string () const
void | set_init_string (const char *init)
void | set_module (PPluginModule module)
Public Member Functions inherited from CPropertyFlagHolder
void | add (const char *property)
Set | get_missing_properties (const CPropertyFlagHolder &testset) const
bool | has (const char *property) const
bool | has_all_in (const CPropertyFlagHolder &testset) const
virtual | ~CPropertyFlagHolder ()

## Static Public Attributes

static const char *const | data_descr
| data portion of the plugin search path
static const char *const | type_descr
| type portion of the plugin search path

## Detailed Description

Abstract base class for B-spline interpolation boundary conditions.

This class is the abstract base class for B-spline interpolation boundary conditions.

The actual boundary conditions are implemented as plug-ins and instances are created by calling produce_spline_boundary_condition.

Definition at line 52 of file boundary_conditions.hh.

## Member Typedef Documentation

## plugin_data

typedef CSplineBoundaryCondition CSplineBoundaryCondition::plugin_data

helper typedef for plug-in handling

Definition at line 57 of file boundary_conditions.hh.

## plugin_type

typedef CSplineBoundaryCondition CSplineBoundaryCondition::plugin_type

helper typedef for plug-in handling

Definition at line 60 of file boundary_conditions.hh.

## Pointer

typedef std::unique_ptr<CSplineBoundaryCondition> CSplineBoundaryCondition::Pointer

pointer type to this boundary condition

Definition at line 70 of file boundary_conditions.hh.

## Constructor & Destructor Documentation

## CSplineBoundaryCondition() [1/3]

CSplineBoundaryCondition::CSplineBoundaryCondition | ( |  | ) |

Referenced by clone(), CSplineBoundaryCondition(), and operator=().

## CSplineBoundaryCondition() [2/3]

CSplineBoundaryCondition::CSplineBoundaryCondition | ( | const CSplineBoundaryCondition & |  | ) |

delete

Delete copy operations

References CSplineBoundaryCondition().

## CSplineBoundaryCondition() [3/3]

CSplineBoundaryCondition::CSplineBoundaryCondition | ( | int | width | ) |

Constructor for the boundary conditions.

Parameters

  width | size of the coefficent domain

## Member Function Documentation

## apply()

bool CSplineBoundaryCondition::apply | ( | CSplineKernel::VIndex & | index,
|  | CSplineKernel::VWeight & | weights ) const

Apply the boundary conditions

Parameters

  index | - indices into the coeffisicnt domain will be changed to fit domain
  weights | - according weights

Returns
  true if the index set was in the coefficient domain

## clone()

virtual CSplineBoundaryCondition * CSplineBoundaryCondition::clone | ( |  | ) | const

pure virtual

Returns
  a copy of the (derived) instance of this boundary condition

References CSplineBoundaryCondition().

## filter_line() [1/2]

void CSplineBoundaryCondition::filter_line | ( | std::vector< double > & | coeff,
|  | const std::vector< double > & | poles ) const

Prefiltering function to convert a vector of double valued input data to spline coefficients This is the actual work routine that will be called by the other filter_line functions after type conversion and decomposition has been executed

Parameters

  [in,out] | coeff | vector of function values that will be converted to spline coefficients
  | poles | the poles of the B-spline the coefficients are created for

References template_filter_line().

## filter_line() [2/2]

template<typename T>

void CSplineBoundaryCondition::filter_line | ( | std::vector< T > & | coeff,
|  | const std::vector< double > & | poles ) const

*‍/

Prefiltering function to convert a vector of input data to spline coefficients

Template Parameters

  T | must either be a scalar type or an array of scalar data types whose elements can be accessed by using the operator[]. This restriction is currently necessary to allow a dynamic polymorphic implementation of the pre-filtering step needed for different boundary condition models.

Parameters

  [in,out] | coeff | vector of function values that will be converted to spline coefficients
  | poles | the poles of the B-spline the coefficients are created for

Definition at line 285 of file boundary_conditions.hh.

Referenced by template_filter_line().

## get_width()

int CSplineBoundaryCondition::get_width | ( |  | ) | const

inline

Returns
  the width of the coefficient domain

Definition at line 105 of file boundary_conditions.hh.

## operator=()

CSplineBoundaryCondition & CSplineBoundaryCondition::operator= | ( | const CSplineBoundaryCondition & |  | ) |

delete

References CSplineBoundaryCondition().

## set_width()

void CSplineBoundaryCondition::set_width | ( | int | width | ) |

(re-)set the width of the supported index range

Parameters

  width | new width

## template_filter_line()

template<typename T>

void CSplineBoundaryCondition::template_filter_line | ( | std::vector< T > & | coeff,
|  | const std::vector< double > & | poles ) const

Prefiltering function to convert a vector of scalar valued input data to spline coefficients.

Template Parameters

  T | a scalar type.

Parameters

  [in,out] | coeff | vector of function values that will be converted to spline coefficients
  | poles | the poles of the B-spline the coefficients are created for

Definition at line 293 of file boundary_conditions.hh.

References filter_line().

Referenced by filter_line().

## Field Documentation

## data_descr

const char* const CSplineBoundaryCondition::data_descr

static

data portion of the plugin search path

Definition at line 66 of file boundary_conditions.hh.

## type_descr

const char* const CSplineBoundaryCondition::type_descr

static

type portion of the plugin search path

Definition at line 63 of file boundary_conditions.hh.

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

- boundary_conditions.hh