evaluate method

  1. @override
dynamic evaluate(
  1. EvaluationType type,
  2. ContextModel context
)
override

Evaluates this expression according to given type and context.

Implementation

@override
dynamic evaluate(EvaluationType type, ContextModel context) {
  final dynamic argEval = arg.evaluate(type, context);

  if (type == EvaluationType.REAL) {
    // Compensate for inaccuracies in machine-pi.
    // If argEval divides cleanly from pi, return 0.
    if ((argEval / math.pi).abs() % 1 == 0) {
      return 0.0;
    }
    return math.tan(argEval);
  }

  if (type == EvaluationType.VECTOR) {
    //TODO apply function to all vector elements
  }

  throw UnimplementedError('Can not evaluate $name on $type yet.');
}