Average Error: 10.0 → 10.0
Time: 12.5s
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 r67525 = 1.0;
        double r67526 = Om;
        double r67527 = Omc;
        double r67528 = r67526 / r67527;
        double r67529 = 2.0;
        double r67530 = pow(r67528, r67529);
        double r67531 = r67525 - r67530;
        double r67532 = t;
        double r67533 = l;
        double r67534 = r67532 / r67533;
        double r67535 = pow(r67534, r67529);
        double r67536 = r67529 * r67535;
        double r67537 = r67525 + r67536;
        double r67538 = r67531 / r67537;
        double r67539 = sqrt(r67538);
        double r67540 = asin(r67539);
        return r67540;
}

double f(double t, double l, double Om, double Omc) {
        double r67541 = 1.0;
        double r67542 = Om;
        double r67543 = Omc;
        double r67544 = r67542 / r67543;
        double r67545 = 2.0;
        double r67546 = pow(r67544, r67545);
        double r67547 = exp(r67546);
        double r67548 = log(r67547);
        double r67549 = r67541 - r67548;
        double r67550 = t;
        double r67551 = l;
        double r67552 = r67550 / r67551;
        double r67553 = pow(r67552, r67545);
        double r67554 = r67545 * r67553;
        double r67555 = r67541 + r67554;
        double r67556 = r67549 / r67555;
        double r67557 = sqrt(r67556);
        double r67558 = asin(r67557);
        return r67558;
}

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.0

    \[\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.0

    \[\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.0

    \[\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 2020046 
(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)))))))