9 #ifndef CMZN_FIELDMATRIXOPERATORS_HPP__
10 #define CMZN_FIELDMATRIXOPERATORS_HPP__
12 #include "zinc/fieldmatrixoperators.h"
13 #include "zinc/field.hpp"
14 #include "zinc/fieldmodule.hpp"
20 class FieldDeterminant :
public Field
32 explicit FieldDeterminant(cmzn_field_id field_id) : Field(field_id)
39 FieldDeterminant() : Field(0)
43 class FieldEigenvalues :
public Field
55 explicit FieldEigenvalues(cmzn_field_id field_id) : Field(field_id)
62 FieldEigenvalues() : Field(0)
66 class FieldEigenvectors :
public Field
79 explicit FieldEigenvectors(cmzn_field_id field_id) : Field(field_id)
83 const FieldEigenvalues& eigenValuesField);
87 FieldEigenvectors() : Field(0)
91 class FieldMatrixInvert :
public Field
103 explicit FieldMatrixInvert(cmzn_field_id field_id) : Field(field_id)
110 FieldMatrixInvert() : Field(0)
114 class FieldMatrixMultiply :
public Field
130 explicit FieldMatrixMultiply(cmzn_field_id field_id) : Field(field_id)
134 const Field& sourceField1,
const Field& sourceField2);
138 FieldMatrixMultiply() : Field(0)
142 class FieldProjection :
public Field
169 explicit FieldProjection(cmzn_field_id field_id) : Field(field_id)
173 const Field& projectionMatrixField);
177 FieldProjection() : Field(0)
181 class FieldTranspose :
public Field
194 explicit FieldTranspose(cmzn_field_id field_id) : Field(field_id)
198 const Field& sourceField);
202 FieldTranspose() : Field(0)
210 sourceField.
getId()));
216 sourceField.
getId()));
222 eigenValuesField.getId()));
228 sourceField.
getId()));
232 const Field& sourceField1,
const Field& sourceField2)
235 numberOfRows, sourceField1.
getId(), sourceField2.
getId()));
239 const Field& projectionMatrixField)
242 sourceField.
getId(), projectionMatrixField.
getId()));
246 const Field& sourceField)
249 sourceNumberOfRows, sourceField.
getId()));
FieldMatrixMultiply createFieldMatrixMultiply(int numberOfRows, const Field &sourceField1, const Field &sourceField2)
Definition: fieldmatrixoperators.hpp:231
FieldEigenvalues createFieldEigenvalues(const Field &sourceField)
Definition: fieldmatrixoperators.hpp:213
A field returning the transpose of N*M matrix source_field.
Definition: fieldmatrixoperators.hpp:190
Base field type: an abstraction of a mathematical field.
Definition: field.hpp:46
A field returning the scalar real determinant of a square matrix source field.
Definition: fieldmatrixoperators.hpp:28
FieldMatrixInvert createFieldMatrixInvert(const Field &sourceField)
Definition: fieldmatrixoperators.hpp:225
cmzn_field_id getId() const
Definition: field.hpp:98
A field returning the inverse of N*N symmetric matrix valued source field.
Definition: fieldmatrixoperators.hpp:99
A field returning the N, N-dimensional eigenvectors computed with the source eigenvalues field...
Definition: fieldmatrixoperators.hpp:75
A field returning the values resulting from matrix multiplication <source_field1> x <source_field2>...
Definition: fieldmatrixoperators.hpp:126
FieldTranspose createFieldTranspose(int sourceNumberOfRows, const Field &sourceField)
Definition: fieldmatrixoperators.hpp:245
A projection field returning the result of a matrix multiplication with perspective division on the s...
Definition: fieldmatrixoperators.hpp:165
FieldEigenvectors createFieldEigenvectors(const FieldEigenvalues &eigenValuesField)
Definition: fieldmatrixoperators.hpp:219
FieldProjection createFieldProjection(const Field &sourceField, const Field &projectionMatrixField)
Definition: fieldmatrixoperators.hpp:238
A field returning the N eigenvalues of symmetric N*N component source field.
Definition: fieldmatrixoperators.hpp:51
FieldDeterminant createFieldDeterminant(const Field &sourceField)
Definition: fieldmatrixoperators.hpp:207