Average Error: 10.3 → 10.3
Time: 11.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)\]
\[\mathsf{expm1}\left(\mathsf{log1p}\left(\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)\right)\right)\]
\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)
\mathsf{expm1}\left(\mathsf{log1p}\left(\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)\right)\right)
double f(double t, double l, double Om, double Omc) {
        double r84022 = 1.0;
        double r84023 = Om;
        double r84024 = Omc;
        double r84025 = r84023 / r84024;
        double r84026 = 2.0;
        double r84027 = pow(r84025, r84026);
        double r84028 = r84022 - r84027;
        double r84029 = t;
        double r84030 = l;
        double r84031 = r84029 / r84030;
        double r84032 = pow(r84031, r84026);
        double r84033 = r84026 * r84032;
        double r84034 = r84022 + r84033;
        double r84035 = r84028 / r84034;
        double r84036 = sqrt(r84035);
        double r84037 = asin(r84036);
        return r84037;
}

double f(double t, double l, double Om, double Omc) {
        double r84038 = 1.0;
        double r84039 = r84038 * r84038;
        double r84040 = Om;
        double r84041 = Omc;
        double r84042 = r84040 / r84041;
        double r84043 = 2.0;
        double r84044 = pow(r84042, r84043);
        double r84045 = r84044 * r84044;
        double r84046 = r84039 - r84045;
        double r84047 = t;
        double r84048 = l;
        double r84049 = r84047 / r84048;
        double r84050 = pow(r84049, r84043);
        double r84051 = r84043 * r84050;
        double r84052 = r84038 + r84051;
        double r84053 = r84038 + r84044;
        double r84054 = r84052 * r84053;
        double r84055 = r84046 / r84054;
        double r84056 = sqrt(r84055);
        double r84057 = asin(r84056);
        double r84058 = log1p(r84057);
        double r84059 = expm1(r84058);
        return r84059;
}

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

    \[\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.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}}}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\]
  4. 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}}{\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right) \cdot \left(1 + {\left(\frac{Om}{Omc}\right)}^{2}\right)}}}\right)\]
  5. Using strategy rm
  6. Applied expm1-log1p-u10.3

    \[\leadsto \color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\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)\right)\right)}\]
  7. Final simplification10.3

    \[\leadsto \mathsf{expm1}\left(\mathsf{log1p}\left(\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)\right)\right)\]

Reproduce

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