Average Error: 10.5 → 10.5
Time: 10.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 \cdot 1 - {\left(\frac{Om}{Omc}\right)}^{2} \cdot {\left(\frac{Om}{Omc}\right)}^{2}}{\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right) \cdot \left(1 + {\left(\frac{Om}{Omc}\right)}^{2}\right)}}\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 \cdot 1 - {\left(\frac{Om}{Omc}\right)}^{2} \cdot {\left(\frac{Om}{Omc}\right)}^{2}}{\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right) \cdot \left(1 + {\left(\frac{Om}{Omc}\right)}^{2}\right)}}\right)
double f(double t, double l, double Om, double Omc) {
        double r74535 = 1.0;
        double r74536 = Om;
        double r74537 = Omc;
        double r74538 = r74536 / r74537;
        double r74539 = 2.0;
        double r74540 = pow(r74538, r74539);
        double r74541 = r74535 - r74540;
        double r74542 = t;
        double r74543 = l;
        double r74544 = r74542 / r74543;
        double r74545 = pow(r74544, r74539);
        double r74546 = r74539 * r74545;
        double r74547 = r74535 + r74546;
        double r74548 = r74541 / r74547;
        double r74549 = sqrt(r74548);
        double r74550 = asin(r74549);
        return r74550;
}

double f(double t, double l, double Om, double Omc) {
        double r74551 = 1.0;
        double r74552 = r74551 * r74551;
        double r74553 = Om;
        double r74554 = Omc;
        double r74555 = r74553 / r74554;
        double r74556 = 2.0;
        double r74557 = pow(r74555, r74556);
        double r74558 = r74557 * r74557;
        double r74559 = r74552 - r74558;
        double r74560 = t;
        double r74561 = l;
        double r74562 = r74560 / r74561;
        double r74563 = pow(r74562, r74556);
        double r74564 = r74556 * r74563;
        double r74565 = r74551 + r74564;
        double r74566 = r74551 + r74557;
        double r74567 = r74565 * r74566;
        double r74568 = r74559 / r74567;
        double r74569 = sqrt(r74568);
        double r74570 = asin(r74569);
        return r74570;
}

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

    \[\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 flip--10.5

    \[\leadsto \sin^{-1} \left(\sqrt{\frac{\color{blue}{\frac{1 \cdot 1 - {\left(\frac{Om}{Omc}\right)}^{2} \cdot {\left(\frac{Om}{Omc}\right)}^{2}}{1 + {\left(\frac{Om}{Omc}\right)}^{2}}}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\]
  4. Applied associate-/l/10.5

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

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

Reproduce

herbie shell --seed 2019344 +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)))))))