erfInv function

double erfInv(
  1. double z
)

Calculates the inverse error function evaluated at z.

Implementation

double erfInv(double z) {
  if (z == 0.0) {
    return 0.0;
  }

  if (z >= 1.0) {
    return double.infinity;
  }

  if (z <= -1.0) {
    return double.negativeInfinity;
  }

  double p, q, s;
  if (z < 0) {
    p = -z;
    q = 1 - p;
    s = -1;
  } else {
    p = z;
    q = 1 - z;
    s = 1;
  }

  return _erfInvImpl(p, q, s);
}