Average Error: 10.1 → 10.1
Time: 8.0s
Precision: 64
\[\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\]
\[\sin^{-1} \left(\sqrt{\frac{1 - \log \left(e^{{\left(\frac{Om}{Omc}\right)}^{2}}\right)}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\]
\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)
\sin^{-1} \left(\sqrt{\frac{1 - \log \left(e^{{\left(\frac{Om}{Omc}\right)}^{2}}\right)}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)
double f(double t, double l, double Om, double Omc) {
        double r66488 = 1.0;
        double r66489 = Om;
        double r66490 = Omc;
        double r66491 = r66489 / r66490;
        double r66492 = 2.0;
        double r66493 = pow(r66491, r66492);
        double r66494 = r66488 - r66493;
        double r66495 = t;
        double r66496 = l;
        double r66497 = r66495 / r66496;
        double r66498 = pow(r66497, r66492);
        double r66499 = r66492 * r66498;
        double r66500 = r66488 + r66499;
        double r66501 = r66494 / r66500;
        double r66502 = sqrt(r66501);
        double r66503 = asin(r66502);
        return r66503;
}

double f(double t, double l, double Om, double Omc) {
        double r66504 = 1.0;
        double r66505 = Om;
        double r66506 = Omc;
        double r66507 = r66505 / r66506;
        double r66508 = 2.0;
        double r66509 = pow(r66507, r66508);
        double r66510 = exp(r66509);
        double r66511 = log(r66510);
        double r66512 = r66504 - r66511;
        double r66513 = t;
        double r66514 = l;
        double r66515 = r66513 / r66514;
        double r66516 = pow(r66515, r66508);
        double r66517 = r66508 * r66516;
        double r66518 = r66504 + r66517;
        double r66519 = r66512 / r66518;
        double r66520 = sqrt(r66519);
        double r66521 = asin(r66520);
        return r66521;
}

Error

Bits error versus t

Bits error versus l

Bits error versus Om

Bits error versus Omc

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 10.1

    \[\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\]
  2. Using strategy rm
  3. Applied add-log-exp10.1

    \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - \color{blue}{\log \left(e^{{\left(\frac{Om}{Omc}\right)}^{2}}\right)}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\]
  4. Final simplification10.1

    \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - \log \left(e^{{\left(\frac{Om}{Omc}\right)}^{2}}\right)}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\]

Reproduce

herbie shell --seed 2020062 +o rules:numerics
(FPCore (t l Om Omc)
  :name "Toniolo and Linder, Equation (2)"
  :precision binary64
  (asin (sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2)))))))