call method

R call(
  1. double value
)

Implementation

R call(double value) {
  final ld0 = _log(_domain[0]);
  final ld1 = _log(_domain[1]);
  final ld2 = _log(_domain[2]);
  final lv = _log(value.abs());

  double t;
  if (lv < ld1) {
    t = 0.5 * (lv - ld0) / (ld1 - ld0);
  } else {
    t = 0.5 + 0.5 * (lv - ld1) / (ld2 - ld1);
  }

  if (_clamp) {
    t = t.clamp(0.0, 1.0);
  }

  return _interpolator(t);
}