Average Error: 9.8 → 9.8
Time: 53.1s
Precision: 64
Internal Precision: 128
\[\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\]
\[(e^{\log_* (1 + \sin^{-1} \left(\sqrt{\frac{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}{(\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right) \cdot 2 + 1)_*}}\right))} - 1)^*\]

Error

Bits error versus t

Bits error versus l

Bits error versus Om

Bits error versus Omc

Derivation

  1. Initial program 9.8

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

    \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}{(\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right) \cdot 2 + 1)_*}}\right)\]
  3. Using strategy rm
  4. Applied expm1-log1p-u9.8

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

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

Reproduce

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

Details

Time bar (total: 42.1s)Debug log

start280.0ms

Algorithm
intervals

setup241.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 8.8b

localize34.0ms

Local error

Found 4 expressions with local error:

7.9b
(sqrt (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1)))
0.6b
(asin (sqrt (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1))))
0.3b
(/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1))
0.2b
(* (/ t l) (/ t l))

rewrite15.0ms

Algorithm
rewrite-expression-head
Counts
4 → 95
Calls

4 calls. Slowest were:

6.0ms
(sqrt (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1)))
4.0ms
(/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1))
3.0ms
(* (/ t l) (/ t l))

series212.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

138.0ms
(sqrt (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1)))
52.0ms
(/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1))
13.0ms
(* (/ t l) (/ t l))
10.0ms
(asin (sqrt (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1))))

simplify8.2s

Counts
71 → 107
Calls

71 calls. Slowest were:

927.0ms
(* (* (* (/ t l) (/ t l)) (/ t l)) (* (* (/ t l) (/ t l)) (/ t l)))
554.0ms
(/ (* (* (- 1 (* (/ Om Omc) (/ Om Omc))) (- 1 (* (/ Om Omc) (/ Om Omc)))) (- 1 (* (/ Om Omc) (/ Om Omc)))) (* (* (fma (* (/ t l) (/ t l)) 2 1) (fma (* (/ t l) (/ t l)) 2 1)) (fma (* (/ t l) (/ t l)) 2 1)))
500.0ms
(/ (sqrt (- 1 (* (/ Om Omc) (/ Om Omc)))) (sqrt (fma (* (/ t l) (/ t l)) 2 1)))

prune1.6s

Pruning

8 alts after pruning (8 fresh and 0 done)

Merged error: 8.8b

localize14.0ms

Local error

Found 4 expressions with local error:

7.9b
(sqrt (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1)))
0.6b
(asin (sqrt (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1))))
0.3b
(/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1))
0.2b
(* (/ t l) (/ t l))

rewrite21.0ms

Algorithm
rewrite-expression-head
Counts
4 → 95
Calls

4 calls. Slowest were:

8.0ms
(* (/ t l) (/ t l))
7.0ms
(/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1))
4.0ms
(sqrt (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1)))

series186.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

94.0ms
(sqrt (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1)))
62.0ms
(/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1))
16.0ms
(asin (sqrt (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1))))
13.0ms
(* (/ t l) (/ t l))

simplify8.2s

Counts
71 → 107
Calls

71 calls. Slowest were:

1.0s
(* (* (* (/ t l) (/ t l)) (/ t l)) (* (* (/ t l) (/ t l)) (/ t l)))
417.0ms
(asin (sqrt (/ (- 1 (/ (pow Om 2) (pow Omc 2))) (fma (/ (pow t 2) (pow l 2)) 2 1))))
404.0ms
(- (* 1 1) (* (* (/ Om Omc) (/ Om Omc)) (* (/ Om Omc) (/ Om Omc))))

prune2.1s

Pruning

8 alts after pruning (7 fresh and 1 done)

Merged error: 8.8b

localize47.0ms

Local error

Found 4 expressions with local error:

8.2b
(sqrt (fma (* (/ t l) (/ t l)) 2 1))
8.2b
(sqrt (fma (* (/ t l) (/ t l)) 2 1))
7.9b
(sqrt (* (/ 1 (sqrt (fma (* (/ t l) (/ t l)) 2 1))) (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (sqrt (fma (* (/ t l) (/ t l)) 2 1)))))
0.6b
(asin (sqrt (* (/ 1 (sqrt (fma (* (/ t l) (/ t l)) 2 1))) (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (sqrt (fma (* (/ t l) (/ t l)) 2 1))))))

rewrite8.0ms

Algorithm
rewrite-expression-head
Counts
4 → 52
Calls

4 calls. Slowest were:

3.0ms
(sqrt (* (/ 1 (sqrt (fma (* (/ t l) (/ t l)) 2 1))) (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (sqrt (fma (* (/ t l) (/ t l)) 2 1)))))
2.0ms
(sqrt (fma (* (/ t l) (/ t l)) 2 1))
2.0ms
(sqrt (fma (* (/ t l) (/ t l)) 2 1))

series376.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

266.0ms
(sqrt (* (/ 1 (sqrt (fma (* (/ t l) (/ t l)) 2 1))) (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (sqrt (fma (* (/ t l) (/ t l)) 2 1)))))
46.0ms
(sqrt (fma (* (/ t l) (/ t l)) 2 1))
44.0ms
(sqrt (fma (* (/ t l) (/ t l)) 2 1))
19.0ms
(asin (sqrt (* (/ 1 (sqrt (fma (* (/ t l) (/ t l)) 2 1))) (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (sqrt (fma (* (/ t l) (/ t l)) 2 1))))))

simplify2.3s

Counts
24 → 64
Calls

24 calls. Slowest were:

462.0ms
(asin (sqrt (/ (- 1 (/ (pow Om 2) (pow Omc 2))) (fma (/ (pow t 2) (pow l 2)) 2 1))))
438.0ms
(asin (sqrt (/ (- 1 (/ (pow Om 2) (pow Omc 2))) (fma (/ (pow t 2) (pow l 2)) 2 1))))
350.0ms
(asin (sqrt (/ (- 1 (/ (pow Om 2) (pow Omc 2))) (fma (/ (pow t 2) (pow l 2)) 2 1))))

prune1.5s

Pruning

8 alts after pruning (6 fresh and 2 done)

Merged error: 8.8b

localize34.0ms

Local error

Found 4 expressions with local error:

7.9b
(sqrt (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1)))
7.9b
(sqrt (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1)))
7.3b
(sqrt (sqrt (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1))))
7.3b
(sqrt (sqrt (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1))))

rewrite20.0ms

Algorithm
rewrite-expression-head
Counts
4 → 112
Calls

4 calls. Slowest were:

5.0ms
(sqrt (sqrt (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1))))
5.0ms
(sqrt (sqrt (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1))))
4.0ms
(sqrt (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1)))

series661.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

233.0ms
(sqrt (sqrt (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1))))
200.0ms
(sqrt (sqrt (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1))))
119.0ms
(sqrt (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1)))
108.0ms
(sqrt (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1)))

simplify12.7s

Counts
84 → 124
Calls

84 calls. Slowest were:

932.0ms
(exp (* 1/4 (- (+ (* 2 (log (/ 1 t))) (+ (* 2 (log (/ 1 Omc))) (log -1/2))) (+ (* 2 (log (/ 1 Om))) (* 2 (log (/ 1 l)))))))
654.0ms
(exp (* 1/4 (- (+ (* 2 (log (/ 1 t))) (+ (* 2 (log (/ 1 Omc))) (log -1/2))) (+ (* 2 (log (/ 1 Om))) (* 2 (log (/ 1 l)))))))
529.0ms
(exp (* 1/4 (- (+ (* 2 (log (/ -1 t))) (+ (* 2 (log (/ -1 Omc))) (log -1/2))) (+ (* 2 (log (/ -1 l))) (* 2 (log (/ -1 Om)))))))

prune2.8s

Pruning

8 alts after pruning (5 fresh and 3 done)

Merged error: 8.8b

regimes682.0ms

Accuracy

0% (0.1b remaining)

Error of 9.8b against oracle of 9.7b and baseline of 9.8b

bsearch3.0ms