DGtal
1.4.2
|
Aim: DiscreteExteriorCalculus represents a calculus in the dec package. This is the main structure in the dec package. This is used to describe the space on which the dec is build and to compute various operators. Once operators or kforms are created, this structure should not be modified. More...
#include <DGtal/dec/DiscreteExteriorCalculus.h>
Data Structures | |
struct | Property |
Holds size 'primal_size', 'dual_size', 'index' and 'flipped' for each cell of the DEC object. To avoid inserting both positive and negative cells in a DEC object, only non signed cells are stored internally. More... | |
Public Member Functions | |
BOOST_CONCEPT_ASSERT ((concepts::CInteger< TInteger >)) | |
BOOST_CONCEPT_ASSERT ((concepts::CDynamicVector< DenseVector >)) | |
BOOST_CONCEPT_ASSERT ((concepts::CDynamicMatrix< DenseMatrix >)) | |
BOOST_CONCEPT_ASSERT ((concepts::CDynamicMatrix< SparseMatrix >)) | |
BOOST_CONCEPT_ASSERT ((concepts::CLinearAlgebra< DenseVector, SparseMatrix >)) | |
BOOST_CONCEPT_ASSERT ((concepts::CLinearAlgebra< DenseVector, DenseMatrix >)) | |
BOOST_STATIC_ASSERT ((boost::is_same< Dimension, Order >::value)) | |
BOOST_STATIC_ASSERT ((dimAmbient >=dimEmbedded)) | |
BOOST_STATIC_CONSTANT (Dimension, dimensionEmbedded=dimEmbedded) | |
BOOST_STATIC_CONSTANT (Dimension, dimensionAmbient=dimAmbient) | |
DiscreteExteriorCalculus () | |
template<typename TDomain > | |
void | initKSpace (ConstAlias< TDomain > domain) |
ConstIterator | begin () const |
ConstIterator | end () const |
Iterator | begin () |
Iterator | end () |
void | selfDisplay (std::ostream &out) const |
std::string | className () const |
bool | insertSCell (const SCell &signed_cell) |
bool | insertSCell (const SCell &signed_cell, const Scalar &primal_size, const Scalar &dual_size) |
bool | eraseCell (const Cell &cell) |
void | updateIndexes () |
const Properties & | getProperties () const |
template<Order order, Duality duality> | |
const SCells & | getIndexedSCells () const |
template<Order order, Duality duality, typename TConstIterator > | |
LinearOperator< Self, order, duality, order, duality > | reorder (const TConstIterator &begin_range, const TConstIterator &end_range) const |
template<Order order, Duality duality> | |
LinearOperator< Self, order, duality, order, duality > | identity () const |
template<Order order, Duality duality> | |
LinearOperator< Self, order, duality, order+1, duality > | derivative () const |
template<Order order, Duality duality> | |
LinearOperator< Self, order, duality, order-1, duality > | antiderivative () const |
template<Duality duality> | |
LinearOperator< Self, 0, duality, 0, duality > | laplace () const |
template<Duality duality> | |
LinearOperator< Self, 0, duality, 0, duality > | heatLaplace (const typename DenseVector::Scalar &h, const typename DenseVector::Scalar &t, const typename DenseVector::Scalar &K) const |
template<Order order, Duality duality> | |
LinearOperator< Self, order, duality, dimEmbedded-order, OppositeDuality< duality >::duality > | hodge () const |
template<Duality duality> | |
KForm< Self, 1, duality > | flat (const VectorField< Self, duality > &vector_field) const |
template<Duality duality> | |
LinearOperator< Self, 0, duality, 1, duality > | flatDirectional (const Dimension &dir) const |
template<Duality duality> | |
VectorField< Self, duality > | sharp (const KForm< Self, 1, duality > &one_form) const |
template<Duality duality> | |
LinearOperator< Self, 1, duality, 0, duality > | sharpDirectional (const Dimension &dir) const |
SCell | getSCell (const Order &order, const Duality &duality, const Index &index) const |
bool | isCellFlipped (const Cell &cell) const |
bool | containsCell (const Cell &cell) const |
Index | getCellIndex (const Cell &cell) const |
Index | kFormLength (const Order &order, const Duality &duality) const |
Order | actualOrder (const Order &order, const Duality &duality) const |
Scalar | hodgeSign (const Cell &cell, const Duality &duality) const |
Dimension | edgeDirection (const Cell &cell, const Duality &duality) const |
void | resetSizes () |
bool | isValid () const |
Data Fields | |
KSpace | myKSpace |
Private Member Functions | |
void | updateCachedOperators () |
template<Duality duality> | |
void | updateFlatOperator () |
template<Duality duality> | |
void | updateSharpOperator () |
Private Attributes | |
Properties | myCellProperties |
IndexedSCells | myIndexSignedCells |
boost::array< boost::array< SparseMatrix, dimAmbient >, 2 > | myFlatOperatorMatrixes |
boost::array< boost::array< SparseMatrix, dimAmbient >, 2 > | mySharpOperatorMatrixes |
bool | myCachedOperatorsNeedUpdate |
bool | myIndexesNeedUpdate |
Friends | |
class | DiscreteExteriorCalculusFactory< TLinearAlgebraBackend, TInteger > |
Aim: DiscreteExteriorCalculus represents a calculus in the dec package. This is the main structure in the dec package. This is used to describe the space on which the dec is build and to compute various operators. Once operators or kforms are created, this structure should not be modified.
Description of template class 'DiscreteExteriorCalculus'
dimEmbedded | dimension of emmbedded manifold. |
dimAmbient | dimension of ambient manifold. |
TLinearAlgebraBackend | linear algebra backend used (i.e. EigenSparseLinearAlgebraBackend). |
TInteger | integer type forwarded to khalimsky space. |
Definition at line 97 of file DiscreteExteriorCalculus.h.
typedef KSpace::Cell DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::Cell |
Definition at line 132 of file DiscreteExteriorCalculus.h.
typedef Properties::const_iterator DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::ConstIterator |
Const iterator typedef.
Definition at line 253 of file DiscreteExteriorCalculus.h.
typedef LinearAlgebraBackend::DenseMatrix DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DenseMatrix |
Definition at line 110 of file DiscreteExteriorCalculus.h.
typedef LinearAlgebraBackend::DenseVector DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DenseVector |
Definition at line 109 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 1, DUAL, 0, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualAntiderivative1 |
Definition at line 205 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 2, DUAL, 1, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualAntiderivative2 |
Definition at line 206 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 3, DUAL, 2, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualAntiderivative3 |
Definition at line 207 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 0, DUAL, 1, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualDerivative0 |
Definition at line 195 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 1, DUAL, 2, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualDerivative1 |
Definition at line 196 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 2, DUAL, 3, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualDerivative2 |
Definition at line 197 of file DiscreteExteriorCalculus.h.
typedef KForm<Self, 0, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualForm0 |
Definition at line 184 of file DiscreteExteriorCalculus.h.
typedef KForm<Self, 1, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualForm1 |
Definition at line 185 of file DiscreteExteriorCalculus.h.
typedef KForm<Self, 2, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualForm2 |
Definition at line 186 of file DiscreteExteriorCalculus.h.
typedef KForm<Self, 3, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualForm3 |
Definition at line 187 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 0, DUAL, dimEmbedded-0, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualHodge0 |
Definition at line 216 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 1, DUAL, dimEmbedded-1, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualHodge1 |
Definition at line 217 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 2, DUAL, dimEmbedded-2, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualHodge2 |
Definition at line 218 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 3, DUAL, dimEmbedded-3, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualHodge3 |
Definition at line 219 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 0, DUAL, 0, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualIdentity0 |
Definition at line 228 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 1, DUAL, 1, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualIdentity1 |
Definition at line 229 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 2, DUAL, 2, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualIdentity2 |
Definition at line 230 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 3, DUAL, 3, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualIdentity3 |
Definition at line 231 of file DiscreteExteriorCalculus.h.
typedef VectorField<Self, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualVectorField |
Definition at line 175 of file DiscreteExteriorCalculus.h.
typedef LinearAlgebraBackend::DenseVector::Index DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::Index |
Definition at line 107 of file DiscreteExteriorCalculus.h.
typedef boost::array<SCells, dimEmbedded+1> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::IndexedSCells |
Definition at line 169 of file DiscreteExteriorCalculus.h.
typedef Properties::iterator DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::Iterator |
Iterator typedef.
Definition at line 268 of file DiscreteExteriorCalculus.h.
typedef DGtal::KhalimskySpaceND<dimAmbient, TInteger> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::KSpace |
Definition at line 131 of file DiscreteExteriorCalculus.h.
typedef TLinearAlgebraBackend DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::LinearAlgebraBackend |
Definition at line 106 of file DiscreteExteriorCalculus.h.
typedef KSpace::Point DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::Point |
Definition at line 134 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 1, PRIMAL, 0, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalAntiderivative1 |
Antiderivative linear operator typedefs.
Definition at line 202 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 2, PRIMAL, 1, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalAntiderivative2 |
Definition at line 203 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 3, PRIMAL, 2, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalAntiderivative3 |
Definition at line 204 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 0, PRIMAL, 1, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalDerivative0 |
Derivative linear operator typedefs.
Definition at line 192 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 1, PRIMAL, 2, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalDerivative1 |
Definition at line 193 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 2, PRIMAL, 3, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalDerivative2 |
Definition at line 194 of file DiscreteExteriorCalculus.h.
typedef KForm<Self, 0, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalForm0 |
KForms typedefs.
Definition at line 180 of file DiscreteExteriorCalculus.h.
typedef KForm<Self, 1, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalForm1 |
Definition at line 181 of file DiscreteExteriorCalculus.h.
typedef KForm<Self, 2, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalForm2 |
Definition at line 182 of file DiscreteExteriorCalculus.h.
typedef KForm<Self, 3, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalForm3 |
Definition at line 183 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 0, PRIMAL, dimEmbedded-0, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalHodge0 |
Hodge duality linear operator typedefs.
Definition at line 212 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 1, PRIMAL, dimEmbedded-1, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalHodge1 |
Definition at line 213 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 2, PRIMAL, dimEmbedded-2, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalHodge2 |
Definition at line 214 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 3, PRIMAL, dimEmbedded-3, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalHodge3 |
Definition at line 215 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 0, PRIMAL, 0, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalIdentity0 |
Identity linear operator typedefs.
Definition at line 224 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 1, PRIMAL, 1, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalIdentity1 |
Definition at line 225 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 2, PRIMAL, 2, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalIdentity2 |
Definition at line 226 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 3, PRIMAL, 3, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalIdentity3 |
Definition at line 227 of file DiscreteExteriorCalculus.h.
typedef VectorField<Self, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalVectorField |
Vector field typedefs.
Definition at line 174 of file DiscreteExteriorCalculus.h.
typedef boost::unordered_map<Cell, Property> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::Properties |
Cells properties map typedef.
Definition at line 163 of file DiscreteExteriorCalculus.h.
typedef LinearAlgebraBackend::DenseVector::Scalar DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::Scalar |
Definition at line 108 of file DiscreteExteriorCalculus.h.
typedef KSpace::SCell DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::SCell |
Definition at line 133 of file DiscreteExteriorCalculus.h.
typedef std::vector<SCell> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::SCells |
Indices to cells map typedefs.
Definition at line 168 of file DiscreteExteriorCalculus.h.
typedef DiscreteExteriorCalculus<dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::Self |
Definition at line 104 of file DiscreteExteriorCalculus.h.
typedef LinearAlgebraBackend::SparseMatrix DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::SparseMatrix |
Definition at line 111 of file DiscreteExteriorCalculus.h.
DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DiscreteExteriorCalculus | ( | ) |
Constructor. Initialize empty discrete exterior calculus.
Order DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::actualOrder | ( | const Order & | order, |
const Duality & | duality | ||
) | const |
Return actual order of k-forms in the dec package representation. Used internally mostly.
order | order. |
duality | duality. |
LinearOperator<Self, order, duality, order-1, duality> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::antiderivative | ( | ) | const |
Antiderivative operator from order-forms to _(order-1)_-forms.
order | order of input k-form. |
duality | duality of input k-form. |
Iterator DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::begin | ( | ) |
Begin iterator.
ConstIterator DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::begin | ( | ) | const |
Begin const iterator.
DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::BOOST_CONCEPT_ASSERT | ( | (concepts::CDynamicMatrix< DenseMatrix >) | ) |
DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::BOOST_CONCEPT_ASSERT | ( | (concepts::CDynamicMatrix< SparseMatrix >) | ) |
DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::BOOST_CONCEPT_ASSERT | ( | (concepts::CDynamicVector< DenseVector >) | ) |
DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::BOOST_CONCEPT_ASSERT | ( | (concepts::CInteger< TInteger >) | ) |
DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::BOOST_CONCEPT_ASSERT | ( | (concepts::CLinearAlgebra< DenseVector, DenseMatrix >) | ) |
DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::BOOST_CONCEPT_ASSERT | ( | (concepts::CLinearAlgebra< DenseVector, SparseMatrix >) | ) |
DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::BOOST_STATIC_ASSERT | ( | (boost::is_same< Dimension, Order >::value) | ) |
DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::BOOST_STATIC_ASSERT | ( | (dimAmbient >=dimEmbedded) | ) |
Static dimensions.
DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::BOOST_STATIC_CONSTANT | ( | Dimension | , |
dimensionAmbient | = dimAmbient |
||
) |
DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::BOOST_STATIC_CONSTANT | ( | Dimension | , |
dimensionEmbedded | = dimEmbedded |
||
) |
std::string DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::className | ( | ) | const |
Get class name string "Calculus".
bool DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::containsCell | ( | const Cell & | cell | ) | const |
Check is structure contains cell.
cell | the tested cell. |
LinearOperator<Self, order, duality, order+1, duality> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::derivative | ( | ) | const |
Derivative operator from order-forms to _(order+1)_-forms.
order | order of input k-form. |
duality | duality of input k-form. |
Dimension DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::edgeDirection | ( | const Cell & | cell, |
const Duality & | duality | ||
) | const |
Return edge direction relative to primal.
cell | Khalimsky cell. |
duality | duality. |
Iterator DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::end | ( | ) |
End iterator.
ConstIterator DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::end | ( | ) | const |
End const iterator.
bool DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::eraseCell | ( | const Cell & | cell | ) |
Manually erase cell from calculus. Should call updateIndexes() when structure modification is finished.
cell | the cell to be removed. |
KForm<Self, 1, duality> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::flat | ( | const VectorField< Self, duality > & | vector_field | ) | const |
Construct 1-form from vector field.
duality | input vector field and output 1-form duality. |
vector_field | vector field. |
LinearOperator<Self, 0, duality, 1, duality> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::flatDirectional | ( | const Dimension & | dir | ) | const |
Get directional flat operator that transforms 0-form containing vector field coordinates along direction dir into 1-form. Invert of sharp(1-form).coordAlongDirection(dir).
duality | input 0-form and output 1-form duality. |
dir | direction of projection. |
Index DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::getCellIndex | ( | const Cell & | cell | ) | const |
Get k-form index from cell.
cell | Khalimsky cell. |
const SCells& DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::getIndexedSCells | ( | ) | const |
Get all signed cells with specific order and duality in index order.
order | order of signed cells. |
duality | duality of signed cells. |
const Properties& DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::getProperties | ( | ) | const |
Get all cells properties.
SCell DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::getSCell | ( | const Order & | order, |
const Duality & | duality, | ||
const Index & | index | ||
) | const |
Get signed cell from k-form index.
order | k-form order. |
duality | k-form duality. |
index | index valid on a k-form container. |
LinearOperator<Self, 0, duality, 0, duality> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::heatLaplace | ( | const typename DenseVector::Scalar & | h, |
const typename DenseVector::Scalar & | t, | ||
const typename DenseVector::Scalar & | K | ||
) | const |
Convolutional Laplace operator from duality 0-forms to duality 0-forms. See Hands on the Operator in DGtal.
h | the grid step |
t | the time parameter for the convolution |
K | the multiplier for the integration. Must be at least 2. |
LinearOperator<Self, order, duality, dimEmbedded-order, OppositeDuality<duality>::duality> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::hodge | ( | ) | const |
Hodge operator from duality order-form to opposite duality _(dimEmbedded-order)_-forms.
order | order of input k-form. |
duality | duality of input k-form. |
Scalar DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::hodgeSign | ( | const Cell & | cell, |
const Duality & | duality | ||
) | const |
Return sign of hodge operator. Used internally mostly.
cell | Khalimsky cell. |
duality | duality. |
LinearOperator<Self, order, duality, order, duality> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::identity | ( | ) | const |
Identity operator from order-forms to order-forms.
order | input and output order of identity operator. |
duality | input and output duality of identity operator. |
void DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::initKSpace | ( | ConstAlias< TDomain > | domain | ) |
Init Khalimsky space boundaries.
TDomain | type of digital domain. |
domain | domain used to initialize Khalimsky space. |
Referenced by test_manual_operators_2d().
bool DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::insertSCell | ( | const SCell & | signed_cell | ) |
Manually insert signed cell into calculus with unit primal and dual size. Should call updateIndexes() when structure modification is finished. Be sure to insert all adjacent lower order primal cells.
signed_cell | the signed cell to be inserted. |
bool DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::insertSCell | ( | const SCell & | signed_cell, |
const Scalar & | primal_size, | ||
const Scalar & | dual_size | ||
) |
Manually insert signed cell into calculus. Should call updateIndexes() when structure modification is finished. Be sure to insert all adjacent lower order primal cells.
signed_cell | the signed cell to be inserted. |
primal_size | size (length, area, volume, ...) of primal cell. Primal size of 0-cell should be equal to 1. |
dual_size | size (length, area, volume, ...) of dual cell. Dual size of n-cell should be equal to 1. |
bool DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::isCellFlipped | ( | const Cell & | cell | ) | const |
Check if cell is flipped in display.
cell | the tested cell. |
bool DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::isValid | ( | ) | const |
Checks the validity/consistency of the object.
Index DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::kFormLength | ( | const Order & | order, |
const Duality & | duality | ||
) | const |
Return number of elements in discrete k-form.
order | k-form order. |
duality | k-form duality. |
LinearOperator<Self, 0, duality, 0, duality> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::laplace | ( | ) | const |
Laplace operator from duality 0-forms to duality 0-forms.
LinearOperator<Self, order, duality, order, duality> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::reorder | ( | const TConstIterator & | begin_range, |
const TConstIterator & | end_range | ||
) | const |
Reorder operator from order-forms to order-forms. Reorder indexes from internal index order to iterator range traversal induced order.
order | input and output order of reorder operator. |
duality | input and output duality of reorder operator. |
TConstIterator | const iterator to signed cell type. |
void DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::resetSizes | ( | ) |
Reset all primal to dual cell sizes to 1.
void DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::selfDisplay | ( | std::ostream & | out | ) | const |
Writes/Displays the object on an output stream.
out | the output stream where the object is written. |
VectorField<Self, duality> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::sharp | ( | const KForm< Self, 1, duality > & | one_form | ) | const |
Construct vector field from 1-form.
duality | input 1-form and output vector field duality. |
one_form | 1-form. |
LinearOperator<Self, 1, duality, 0, duality> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::sharpDirectional | ( | const Dimension & | dir | ) | const |
Get directional sharp operator that transforms 1-form into 0-form containing vector field coordinates along direction dir. Equivalent to sharp(1-form).coordAlongDirection(dir).
duality | input 1-form and output 0-form duality. |
dir | direction of projection. |
|
private |
Update sharp and flat operators cache.
|
private |
Update flat operator cache.
duality | duality of updated flat operator. |
void DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::updateIndexes | ( | ) |
Update indexes for all cells. Cell insertion order == index may not be preserved.
|
private |
Update sharp operator cache.
duality | duality of updated sharp operator. |
|
friend |
Definition at line 620 of file DiscreteExteriorCalculus.h.
|
private |
Cached flat and sharp operators generation flag.
Definition at line 574 of file DiscreteExteriorCalculus.h.
|
private |
Cells properties.
Definition at line 553 of file DiscreteExteriorCalculus.h.
|
private |
Cached flat operator matrix.
Definition at line 564 of file DiscreteExteriorCalculus.h.
|
private |
Indexes generation flag.
Definition at line 579 of file DiscreteExteriorCalculus.h.
|
private |
Cells indexed by their order. Usefull for finding cell from index and order.
Definition at line 559 of file DiscreteExteriorCalculus.h.
KSpace DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::myKSpace |
Associated Khalimsky space.
Definition at line 286 of file DiscreteExteriorCalculus.h.
|
private |
Cached sharp operator matrix.
Definition at line 569 of file DiscreteExteriorCalculus.h.