evaluate method

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

For real numbers this method performs a double divison and returns double.infinity if a divide by zero is encountered.

Implementation

@override
dynamic evaluate(EvaluationType type, ContextModel context) {
  final dynamic firstEval = first.evaluate(type, context);
  final dynamic secondEval = second.evaluate(type, context);

  if (type == EvaluationType.VECTOR) {
    if (secondEval is double) {
      // scale - nothing special to do
    } else {
      // divide
      final dynamic eval = firstEval.clone()..divide(secondEval);
      return eval;
    }
  }

  return firstEval / secondEval;
}