9 #ifndef CMZN_FIELDARITHMETICOPERATORS_HPP__
10 #define CMZN_FIELDARITHMETICOPERATORS_HPP__
12 #include "zinc/fieldarithmeticoperators.h"
13 #include "zinc/field.hpp"
14 #include "zinc/fieldmodule.hpp"
20 class FieldAdd :
public Field
33 explicit FieldAdd(cmzn_field_id field_id) : Field(field_id)
45 inline FieldAdd operator+(
const Field& operand1,
const Field& operand2)
49 class FieldPower :
public Field
62 explicit FieldPower(cmzn_field_id field_id) : Field(field_id)
69 FieldPower() : Field(0)
73 class FieldMultiply :
public Field
86 explicit FieldMultiply(cmzn_field_id field_id) : Field(field_id)
93 FieldMultiply() : Field(0)
98 inline FieldMultiply operator*(
const Field& operand1,
const Field& operand2)
102 class FieldDivide :
public Field
115 explicit FieldDivide(cmzn_field_id field_id) : Field(field_id)
122 FieldDivide() : Field(0)
127 inline FieldDivide operator/(
const Field& operand1,
const Field& operand2)
131 class FieldSubtract :
public Field
144 explicit FieldSubtract(cmzn_field_id field_id) : Field(field_id)
151 FieldSubtract() : Field(0)
156 inline FieldSubtract operator-(
const Field& operand1,
const Field& operand2)
160 class FieldLog :
public Field
172 explicit FieldLog(cmzn_field_id field_id) : Field(field_id)
179 FieldLog() : Field(0)
184 inline FieldLog log(
const Field& sourceField)
188 class FieldSqrt :
public Field
200 explicit FieldSqrt(cmzn_field_id field_id) : Field(field_id)
207 FieldSqrt() : Field(0)
212 inline FieldSqrt sqrt(
const Field& sourceField)
216 class FieldExp :
public Field
228 explicit FieldExp(cmzn_field_id field_id) : Field(field_id)
235 FieldExp() : Field(0)
240 inline FieldExp exp(
const Field& sourceField)
244 class FieldAbs :
public Field
256 explicit FieldAbs(cmzn_field_id field_id) : Field(field_id)
263 FieldAbs() : Field(0)
268 inline FieldAbs abs(
const Field& sourceField)
277 return FieldAdd(cmzn_fieldmodule_create_field_add(
id,
283 return FieldPower(cmzn_fieldmodule_create_field_power(
id,
289 return FieldMultiply(cmzn_fieldmodule_create_field_multiply(
id,
295 return FieldDivide(cmzn_fieldmodule_create_field_divide(
id,
301 return FieldSubtract(cmzn_fieldmodule_create_field_subtract(
id,
307 return FieldLog(cmzn_fieldmodule_create_field_log(
id, sourceField.
getId()));
312 return FieldSqrt(cmzn_fieldmodule_create_field_sqrt(
id, sourceField.
getId()));
317 return FieldExp(cmzn_fieldmodule_create_field_exp(
id, sourceField.
getId()));
322 return FieldAbs(cmzn_fieldmodule_create_field_abs(
id, sourceField.
getId()));
FieldSubtract createFieldSubtract(const Field &sourceField1, const Field &sourceField2)
Definition: fieldarithmeticoperators.hpp:299
A field where the which divides the components of source_field_one by source_field_two.
Definition: fieldarithmeticoperators.hpp:111
FieldAbs createFieldAbs(const Field &sourceField)
Definition: fieldarithmeticoperators.hpp:320
FieldMultiply createFieldMultiply(const Field &sourceField1, const Field &sourceField2)
Definition: fieldarithmeticoperators.hpp:287
Base field type: an abstraction of a mathematical field.
Definition: field.hpp:46
A field where the which calculates the components of source_field_one raised to the power of the comp...
Definition: fieldarithmeticoperators.hpp:58
FieldAdd createFieldAdd(const Field &sourceField1, const Field &sourceField2)
Definition: fieldarithmeticoperators.hpp:275
A field where the which multiplies the components of source_field_one and source_field_two.
Definition: fieldarithmeticoperators.hpp:82
FieldLog createFieldLog(const Field &sourceField)
Definition: fieldarithmeticoperators.hpp:305
FieldPower createFieldPower(const Field &sourceField1, const Field &sourceField2)
Definition: fieldarithmeticoperators.hpp:281
cmzn_field_id getId() const
Definition: field.hpp:98
A field where the field components are the natural exponent of each component in the source field...
Definition: fieldarithmeticoperators.hpp:224
FieldExp createFieldExp(const Field &sourceField)
Definition: fieldarithmeticoperators.hpp:315
A field where the field components are the natural logarithm of each component in the source field...
Definition: fieldarithmeticoperators.hpp:168
A field where the field components are the square root of each component in the source field...
Definition: fieldarithmeticoperators.hpp:196
A field where the which adds the components of source_field_one and source_field_two.
Definition: fieldarithmeticoperators.hpp:29
FieldSqrt createFieldSqrt(const Field &sourceField)
Definition: fieldarithmeticoperators.hpp:310
A field which gives the result of subtracting source_field_two from source_field_one.
Definition: fieldarithmeticoperators.hpp:140
FieldDivide createFieldDivide(const Field &sourceField1, const Field &sourceField2)
Definition: fieldarithmeticoperators.hpp:293
A field where the field components are the absolute value of each component in the source field...
Definition: fieldarithmeticoperators.hpp:252
Fieldmodule getFieldmodule() const
Definition: fieldmodule.hpp:1572