6 #ifndef MYRAMATH_EXPRESSION_TERNARYFUNCTIONEXPRESSION_H 7 #define MYRAMATH_EXPRESSION_TERNARYFUNCTIONEXPRESSION_H 28 typedef typename Function::InputA InputA;
29 typedef typename Function::InputB InputB;
30 typedef typename Function::InputC InputC;
31 typedef typename Function::Output Output;
35 : f(in_f), A(in_A), B(in_B), C(in_C)
41 if (A_size != B_size || B_size != C_size)
43 std::string A_string = Index2string(A_size);
44 std::string B_string = Index2string(B_size);
45 std::string C_string = Index2string(C_size);
46 throw eprintf(
"TernaryFunctionExpression: size mismatch forming f(A,B,C) [%s,%s,%s]", A_string.c_str(), B_string.c_str(), C_string.c_str() );
76 template<
class Function,
int Arity>
Implementation detail, polymorphic base type contained/erased by Expression.
Returns a std::runtime_error() whose message has been populated using printf()-style formatting...
Definition: TernaryFunctionExpression.h:23
Number evaluate(Index< Arity > i) const
Given an Index i, returns a Number.
Definition: Expression.cpp:46
virtual Index< Arity > size() const
Size inspector.
Definition: TernaryFunctionExpression.h:53
virtual Output evaluate(Index< Arity > i) const
Given an Index i, returns a Number.
Definition: TernaryFunctionExpression.h:57
Definition: Expression.h:25
Definition: random.cpp:45
Index< Arity > size() const
Size inspector.
Definition: Expression.cpp:42
Returns std::string representation of an Index<N>