Average Error: 10.3 → 10.3
Time: 25.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}}{\mathsf{fma}\left(2, {\left(\frac{t}{\ell}\right)}^{2}, 1\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}}{\mathsf{fma}\left(2, {\left(\frac{t}{\ell}\right)}^{2}, 1\right) \cdot \left(1 + {\left(\frac{Om}{Omc}\right)}^{2}\right)}}\right)
double f(double t, double l, double Om, double Omc) {
        double r59445 = 1.0;
        double r59446 = Om;
        double r59447 = Omc;
        double r59448 = r59446 / r59447;
        double r59449 = 2.0;
        double r59450 = pow(r59448, r59449);
        double r59451 = r59445 - r59450;
        double r59452 = t;
        double r59453 = l;
        double r59454 = r59452 / r59453;
        double r59455 = pow(r59454, r59449);
        double r59456 = r59449 * r59455;
        double r59457 = r59445 + r59456;
        double r59458 = r59451 / r59457;
        double r59459 = sqrt(r59458);
        double r59460 = asin(r59459);
        return r59460;
}

double f(double t, double l, double Om, double Omc) {
        double r59461 = 1.0;
        double r59462 = r59461 * r59461;
        double r59463 = Om;
        double r59464 = Omc;
        double r59465 = r59463 / r59464;
        double r59466 = 2.0;
        double r59467 = pow(r59465, r59466);
        double r59468 = r59467 * r59467;
        double r59469 = r59462 - r59468;
        double r59470 = t;
        double r59471 = l;
        double r59472 = r59470 / r59471;
        double r59473 = pow(r59472, r59466);
        double r59474 = fma(r59466, r59473, r59461);
        double r59475 = r59461 + r59467;
        double r59476 = r59474 * r59475;
        double r59477 = r59469 / r59476;
        double r59478 = sqrt(r59477);
        double r59479 = asin(r59478);
        return r59479;
}

Error

Bits error versus t

Bits error versus l

Bits error versus Om

Bits error versus Omc

Derivation

  1. Initial program 10.3

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

    \[\leadsto \color{blue}{\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(2, {\left(\frac{t}{\ell}\right)}^{2}, 1\right)}}\right)}\]
  3. Using strategy rm
  4. Applied flip--10.3

    \[\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}}}}{\mathsf{fma}\left(2, {\left(\frac{t}{\ell}\right)}^{2}, 1\right)}}\right)\]
  5. Applied associate-/l/10.3

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

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

Reproduce

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