Average Error: 10.3 → 10.3
Time: 2.3m
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)\]
\[\sin^{-1} \left(\sqrt{\frac{\sqrt[3]{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}} \cdot \sqrt[3]{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}}{\frac{(\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right) \cdot 2 + 1)_*}{\sqrt[3]{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}}}}\right)\]

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

    \[\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 add-cube-cbrt10.3

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

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

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

Reproduce

herbie shell --seed 2018362 +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: 2.2m)Debug log

start238.0ms

Algorithm
intervals

setup252.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 14.5b

localize51.0ms

Local error

Found 4 expressions with local error:

13.4b
(sqrt (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1)))
0.5b
(asin (sqrt (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1))))
0.4b
(/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1))
0.3b
(* (/ Om Omc) (/ Om Omc))

rewrite22.0ms

Algorithm
rewrite-expression-head
Counts
4 → 95
Calls

4 calls. Slowest were:

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

series231.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

131.0ms
(sqrt (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1)))
74.0ms
(/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1))
13.0ms
(* (/ Om Omc) (/ Om Omc))
13.0ms
(asin (sqrt (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (fma (* (/ t l) (/ t l)) 2 1))))

simplify8.1s

Counts
71 → 107
Calls

71 calls. Slowest were:

882.0ms
(* (* (* (/ Om Omc) (/ Om Omc)) (/ Om Omc)) (* (* (/ Om Omc) (/ Om Omc)) (/ Om Omc)))
614.0ms
(asin (sqrt (/ (- 1 (/ (pow Om 2) (pow Omc 2))) (fma (/ (pow t 2) (pow l 2)) 2 1))))
500.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)))

prune1.7s

Pruning

7 alts after pruning (7 fresh and 0 done)

Merged error: 14.4b

localize37.0ms

Local error

Found 4 expressions with local error:

13.4b
(sqrt (/ (* (cbrt (- 1 (* (/ Om Omc) (/ Om Omc)))) (cbrt (- 1 (* (/ Om Omc) (/ Om Omc))))) (/ (fma (* (/ t l) (/ t l)) 2 1) (cbrt (- 1 (* (/ Om Omc) (/ Om Omc)))))))
0.5b
(asin (sqrt (/ (* (cbrt (- 1 (* (/ Om Omc) (/ Om Omc)))) (cbrt (- 1 (* (/ Om Omc) (/ Om Omc))))) (/ (fma (* (/ t l) (/ t l)) 2 1) (cbrt (- 1 (* (/ Om Omc) (/ Om Omc))))))))
0.4b
(/ (* (cbrt (- 1 (* (/ Om Omc) (/ Om Omc)))) (cbrt (- 1 (* (/ Om Omc) (/ Om Omc))))) (/ (fma (* (/ t l) (/ t l)) 2 1) (cbrt (- 1 (* (/ Om Omc) (/ Om Omc))))))
0.3b
(* (/ Om Omc) (/ Om Omc))

rewrite29.0ms

Algorithm
rewrite-expression-head
Counts
4 → 159
Calls

4 calls. Slowest were:

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

series208.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

124.0ms
(sqrt (/ (* (cbrt (- 1 (* (/ Om Omc) (/ Om Omc)))) (cbrt (- 1 (* (/ Om Omc) (/ Om Omc))))) (/ (fma (* (/ t l) (/ t l)) 2 1) (cbrt (- 1 (* (/ Om Omc) (/ Om Omc)))))))
54.0ms
(/ (* (cbrt (- 1 (* (/ Om Omc) (/ Om Omc)))) (cbrt (- 1 (* (/ Om Omc) (/ Om Omc))))) (/ (fma (* (/ t l) (/ t l)) 2 1) (cbrt (- 1 (* (/ Om Omc) (/ Om Omc))))))
16.0ms
(asin (sqrt (/ (* (cbrt (- 1 (* (/ Om Omc) (/ Om Omc)))) (cbrt (- 1 (* (/ Om Omc) (/ Om Omc))))) (/ (fma (* (/ t l) (/ t l)) 2 1) (cbrt (- 1 (* (/ Om Omc) (/ Om Omc))))))))
14.0ms
(* (/ Om Omc) (/ Om Omc))

simplify19.9s

Counts
151 → 171
Calls

151 calls. Slowest were:

977.0ms
(* (* (* (/ Om Omc) (/ Om Omc)) (/ Om Omc)) (* (* (/ Om Omc) (/ Om Omc)) (/ Om Omc)))
522.0ms
(- (+ (log (cbrt (- 1 (* (/ Om Omc) (/ Om Omc))))) (log (cbrt (- 1 (* (/ Om Omc) (/ Om Omc)))))) (log (/ (fma (* (/ t l) (/ t l)) 2 1) (cbrt (- 1 (* (/ Om Omc) (/ Om Omc)))))))
467.0ms
(/ (* (- 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)) (- 1 (* (/ Om Omc) (/ Om Omc)))))

prune3.4s

Pruning

7 alts after pruning (6 fresh and 1 done)

Merged error: 14.4b

localize13.0ms

Local error

Found 4 expressions with local error:

13.4b
(sqrt (/ (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (sqrt (fma (* (/ t l) (/ t l)) 2 1))) (sqrt (fma (* (/ t l) (/ t l)) 2 1))))
13.3b
(sqrt (fma (* (/ t l) (/ t l)) 2 1))
13.3b
(sqrt (fma (* (/ t l) (/ t l)) 2 1))
0.7b
(/ (- 1 (* (/ Om Omc) (/ Om Omc))) (sqrt (fma (* (/ t l) (/ t l)) 2 1)))

rewrite15.0ms

Algorithm
rewrite-expression-head
Counts
4 → 226
Calls

4 calls. Slowest were:

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

series338.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

127.0ms
(/ (- 1 (* (/ Om Omc) (/ Om Omc))) (sqrt (fma (* (/ t l) (/ t l)) 2 1)))
112.0ms
(sqrt (/ (/ (- 1 (* (/ Om Omc) (/ Om Omc))) (sqrt (fma (* (/ t l) (/ t l)) 2 1))) (sqrt (fma (* (/ t l) (/ t l)) 2 1))))
55.0ms
(sqrt (fma (* (/ t l) (/ t l)) 2 1))
42.0ms
(sqrt (fma (* (/ t l) (/ t l)) 2 1))

simplify28.0s

Counts
213 → 238
Calls

213 calls. Slowest were:

565.0ms
(sqrt (/ (/ (sqrt (- 1 (* (/ Om Omc) (/ Om Omc)))) (sqrt (* (cbrt (fma (* (/ t l) (/ t l)) 2 1)) (cbrt (fma (* (/ t l) (/ t l)) 2 1))))) 1))
362.0ms
(- (* 1 1) (* (* (/ Om Omc) (/ Om Omc)) (* (/ Om Omc) (/ Om Omc))))
343.0ms
(/ (* (* (- 1 (* (/ Om Omc) (/ Om Omc))) (- 1 (* (/ Om Omc) (/ Om Omc)))) (- 1 (* (/ Om Omc) (/ Om Omc)))) (* (* (sqrt (fma (* (/ t l) (/ t l)) 2 1)) (sqrt (fma (* (/ t l) (/ t l)) 2 1))) (sqrt (fma (* (/ t l) (/ t l)) 2 1))))

prune4.8s

Pruning

7 alts after pruning (5 fresh and 2 done)

Merged error: 14.4b

localize61.0ms

Local error

Found 4 expressions with local error:

19.9b
(cbrt (fma (* (/ t l) (/ t l)) 2 1))
19.9b
(cbrt (fma 2 (* (/ t l) (/ t l)) 1))
13.3b
(sqrt (fma (* (/ t l) (/ t l)) 2 1))
13.2b
(sqrt (/ (/ (sqrt (- 1 (* (/ Om Omc) (/ Om Omc)))) (sqrt (cbrt (fma (* (/ t l) (/ t l)) 2 1)))) (sqrt (fma (* (/ t l) (/ t l)) 2 1))))

rewrite23.0ms

Algorithm
rewrite-expression-head
Counts
4 → 418
Calls

4 calls. Slowest were:

7.0ms
(sqrt (/ (/ (sqrt (- 1 (* (/ Om Omc) (/ Om Omc)))) (sqrt (cbrt (fma (* (/ t l) (/ t l)) 2 1)))) (sqrt (fma (* (/ t l) (/ t l)) 2 1))))
1.0ms
(sqrt (fma (* (/ t l) (/ t l)) 2 1))
1.0ms
(cbrt (fma (* (/ t l) (/ t l)) 2 1))

series608.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

307.0ms
(sqrt (/ (/ (sqrt (- 1 (* (/ Om Omc) (/ Om Omc)))) (sqrt (cbrt (fma (* (/ t l) (/ t l)) 2 1)))) (sqrt (fma (* (/ t l) (/ t l)) 2 1))))
136.0ms
(cbrt (fma (* (/ t l) (/ t l)) 2 1))
111.0ms
(cbrt (fma 2 (* (/ t l) (/ t l)) 1))
53.0ms
(sqrt (fma (* (/ t l) (/ t l)) 2 1))

simplify47.3s

Counts
390 → 430
Calls

390 calls. Slowest were:

604.0ms
(sqrt (/ (/ (sqrt (* (cbrt (- 1 (* (/ Om Omc) (/ Om Omc)))) (cbrt (- 1 (* (/ Om Omc) (/ Om Omc)))))) (sqrt (sqrt (cbrt (fma (* (/ t l) (/ t l)) 2 1))))) (sqrt (sqrt (fma (* (/ t l) (/ t l)) 2 1)))))
467.0ms
(sqrt (/ (/ (* (cbrt (sqrt (- 1 (* (/ Om Omc) (/ Om Omc))))) (cbrt (sqrt (- 1 (* (/ Om Omc) (/ Om Omc)))))) (sqrt 1)) (* (cbrt (sqrt (fma (* (/ t l) (/ t l)) 2 1))) (cbrt (sqrt (fma (* (/ t l) (/ t l)) 2 1))))))
431.0ms
(exp (* 1/3 (- (+ (log 2) (* 2 (log (/ -1 l)))) (* 2 (log (/ -1 t))))))

prune13.2s

Pruning

7 alts after pruning (4 fresh and 3 done)

Merged error: 14.4b

regimes684.0ms

Accuracy

0% (0.1b remaining)

Error of 10.3b against oracle of 10.2b and baseline of 10.3b

bsearch2.0ms