1#ifndef __DUNE_ACFEM_PARAMETER_OPERATIONS__
2#define __DUNE_ACFEM_PARAMETER_OPERATIONS__
4#include "../expressions/expressionoperations.hh"
5#include "../expressions/parameterinterface.hh"
20 struct UnaryParameterOperation;
23 struct BinaryParameterOperation;
26 struct UnaryParameterOperation<MinusOperation>
29 static void evaluate(
const Value& value, Value& result)
40 static void evaluate(
const Value& value, Value& result)
42 for (
int k = 0; k < Value::dimension; ++k) {
43 result[k] = std::sin(value[k]);
53 static void evaluate(
const Value& value, Value& result)
55 for (
int k = 0; k < Value::dimension; ++k) {
56 result[k] = std::cos(value[k]);
66 static void evaluate(
const Value& value, Value& result)
68 for (
int k = 0; k < Value::dimension; ++k) {
69 result[k] = std::tan(value[k]);
79 static void evaluate(
const Value& value, Value& result)
81 for (
int k = 0; k < Value::dimension; ++k) {
82 result[k] = std::atan(value[k]);
92 static void evaluate(
const Value& value, Value& result)
94 for (
int k = 0; k < Value::dimension; ++k) {
95 result[k] = std::asin(value[k]);
104 template<
class Value>
105 static void evaluate(
const Value& value, Value& result)
107 for (
int k = 0; k < Value::dimension; ++k) {
108 result[k] = std::acos(value[k]);
117 template<
class Value>
118 static void evaluate(
const Value& value, Value& result)
120 for (
int k = 0; k < Value::dimension; ++k) {
121 result[k] = std::sqrt(value[k]);
130 template<
class Value>
131 static void evaluate(
const Value& value, Value& result)
133 for (
int k = 0; k < Value::dimension; ++k) {
134 result[k] = std::exp(value[k]);
143 template<
class Value>
144 static void evaluate(
const Value& value, Value& result)
146 for (
int k = 0; k < Value::dimension; ++k) {
147 result[k] = value[k] * value[k];
155 template<
class LeftValue,
class RightValue,
class Value>
156 static void evaluate(
const LeftValue& left,
const RightValue& right, Value& result)
158 result = left + right;
163 struct BinaryParameterOperation<MinusOperation>
165 template<
class LeftValue,
class RightValue,
class Value>
166 static void evaluate(
const LeftValue& left,
const RightValue& right, Value& result)
168 result = left - right;
173 struct BinaryParameterOperation<MultiplyOperation>
175 template<
class LeftValue,
class RightValue,
class Value>
176 static void evaluate(
const LeftValue& left,
const RightValue& right, Value& result)
178 result = left * right;
183 struct BinaryParameterOperation<SMultiplyOperation>
185 template<
class LeftValue,
class RightValue,
class Value>
186 static void evaluate(
const LeftValue& left,
const RightValue& right, Value& result)
188 result = left * right;
Taking the cosine of an object.
Definition: expressionoperations.hh:374
Taking the cosine of an object.
Definition: expressionoperations.hh:365
Taking the cosine of an object.
Definition: expressionoperations.hh:356
Taking the cosine of an object.
Definition: expressionoperations.hh:338
Exponentiation of an object.
Definition: expressionoperations.hh:293
Addition of two objects.
Definition: expressionoperations.hh:230
Taking the sine of an object.
Definition: expressionoperations.hh:329
Taking the square root of an object.
Definition: expressionoperations.hh:311
Taking the square of an object.
Definition: expressionoperations.hh:320
Taking the cosine of an object.
Definition: expressionoperations.hh:347