Average Error: 10.3 → 10.3
Time: 33.8s
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{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\]

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

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

Reproduce

herbie shell --seed 2019010 +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: 32.6s)Debug log

sample240.0ms

Algorithm
intervals

simplify539.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
539.0ms
(asin (sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2))))))

prune11.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 10.6b

localize45.0ms

Local error

Found 4 expressions with local error:

9.8b
(sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2)))))
0.4b
(asin (sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2))))))
0.3b
(/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2))))
0.2b
(pow (/ t l) 2)

rewrite19.0ms

Algorithm
rewrite-expression-head
Rules
23×add-sqr-sqrt
20×add-cube-cbrt
20×*-un-lft-identity
19×times-frac
15×sqrt-prod
add-exp-log
add-cbrt-cube
pow1
add-log-exp
log1p-expm1-u
associate-/r/
unpow-prod-down
expm1-log1p-u
associate-/l*
div-inv
associate-/r*
associate-/l/
flip-+
flip3-+
rem-sqrt-square
unpow2
flip--
pow-exp
div-exp
div-sub
sqrt-div
pow1/2
flip3--
frac-2neg
pow-pow
clear-num
asin-acos
cbrt-undiv
pow-to-exp
Counts
4 → 89
Calls
4 calls:
Slowest
11.0ms
(/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2))))
3.0ms
(sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2)))))
2.0ms
(pow (/ t l) 2)
1.0ms
(asin (sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2))))))

series214.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
136.0ms
(sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2)))))
55.0ms
(/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2))))
13.0ms
(asin (sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2))))))
10.0ms
(pow (/ t l) 2)

simplify5.7s

Counts
66 → 101
Calls
66 calls:
Slowest
383.0ms
(- (* 1 1) (* (pow (/ Om Omc) 2) (pow (/ Om Omc) 2)))
298.0ms
(- (pow 1 3) (pow (pow (/ Om Omc) 2) 3))
237.0ms
(sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ (pow 1 3) (pow (* 2 (pow (/ t l) 2)) 3))))
225.0ms
(/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2))))
214.0ms
(sqrt (/ (- 1 (pow (/ Om Omc) 2)) (- (* 1 1) (* (* 2 (pow (/ t l) 2)) (* 2 (pow (/ t l) 2))))))

prune1.7s

Pruning

7 alts after pruning (6 fresh and 1 done)

Merged error: 10.6b

localize20.0ms

Local error

Found 4 expressions with local error:

9.8b
(sqrt (+ 1 (* 2 (pow (/ t l) 2))))
9.8b
(sqrt (+ 1 (* 2 (pow (/ t l) 2))))
7.9b
(sqrt (/ (- 1 (pow (/ Om Omc) 2)) (sqrt (+ 1 (* 2 (pow (/ t l) 2))))))
7.9b
(sqrt (/ 1 (sqrt (+ 1 (* 2 (pow (/ t l) 2))))))

rewrite9.0ms

Algorithm
rewrite-expression-head
Rules
46×sqrt-prod
28×add-sqr-sqrt
20×add-cube-cbrt
20×times-frac
20×*-un-lft-identity
10×sqrt-div
rem-sqrt-square
add-log-exp
log1p-expm1-u
flip-+
associate-/r/
add-exp-log
pow1/2
add-cbrt-cube
flip3-+
pow1
expm1-log1p-u
div-inv
Counts
4 → 88
Calls
4 calls:
Slowest
4.0ms
(sqrt (/ (- 1 (pow (/ Om Omc) 2)) (sqrt (+ 1 (* 2 (pow (/ t l) 2))))))
2.0ms
(sqrt (/ 1 (sqrt (+ 1 (* 2 (pow (/ t l) 2))))))
1.0ms
(sqrt (+ 1 (* 2 (pow (/ t l) 2))))
1.0ms
(sqrt (+ 1 (* 2 (pow (/ t l) 2))))

series421.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
210.0ms
(sqrt (/ (- 1 (pow (/ Om Omc) 2)) (sqrt (+ 1 (* 2 (pow (/ t l) 2))))))
129.0ms
(sqrt (/ 1 (sqrt (+ 1 (* 2 (pow (/ t l) 2))))))
43.0ms
(sqrt (+ 1 (* 2 (pow (/ t l) 2))))
39.0ms
(sqrt (+ 1 (* 2 (pow (/ t l) 2))))

simplify4.9s

Counts
60 → 100
Calls
60 calls:
Slowest
314.0ms
(exp (* 1/4 (- (+ (log 1/2) (* 2 (log (/ 1 t)))) (* 2 (log (/ 1 l))))))
309.0ms
(/ (* (sqrt -1) (* (exp (* 1/4 (- (+ (log 1/2) (* 2 (log (/ 1 t)))) (* 2 (log (/ 1 l)))))) Om)) Omc)
265.0ms
(exp (* 1/4 (- (+ (* 2 (log (/ -1 t))) (log 1/2)) (* 2 (log (/ -1 l))))))
209.0ms
(sqrt (/ (- 1 (pow (/ Om Omc) 2)) (sqrt (+ (pow 1 3) (pow (* 2 (pow (/ t l) 2)) 3)))))
195.0ms
(sqrt (* (cbrt (/ (- 1 (pow (/ Om Omc) 2)) (sqrt (+ 1 (* 2 (pow (/ t l) 2)))))) (cbrt (/ (- 1 (pow (/ Om Omc) 2)) (sqrt (+ 1 (* 2 (pow (/ t l) 2))))))))

prune2.1s

Pruning

7 alts after pruning (5 fresh and 2 done)

Merged error: 10.6b

localize29.0ms

Local error

Found 4 expressions with local error:

15.6b
(cbrt (/ t l))
15.6b
(cbrt (/ t l))
9.8b
(sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (* (* (/ t l) (cbrt (/ t l))) (pow (cbrt (/ t l)) 2))))))
0.5b
(pow (cbrt (/ t l)) 2)

rewrite6.0ms

Algorithm
rewrite-expression-head
Rules
18×add-sqr-sqrt
15×sqrt-prod
15×add-cube-cbrt
15×*-un-lft-identity
12×cbrt-prod
10×times-frac
unpow-prod-down
add-exp-log
pow1
add-log-exp
div-inv
log1p-expm1-u
add-cbrt-cube
expm1-log1p-u
pow1/3
associate-/r/
pow-pow
cbrt-div
rem-sqrt-square
unpow2
flip-+
pow-exp
sqrt-div
pow1/2
flip3-+
pow-to-exp
Counts
4 → 79
Calls
4 calls:
Slowest
3.0ms
(sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (* (* (/ t l) (cbrt (/ t l))) (pow (cbrt (/ t l)) 2))))))
1.0ms
(pow (cbrt (/ t l)) 2)
1.0ms
(cbrt (/ t l))
0.0ms
(cbrt (/ t l))

series372.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
118.0ms
(sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (* (* (/ t l) (cbrt (/ t l))) (pow (cbrt (/ t l)) 2))))))
104.0ms
(pow (cbrt (/ t l)) 2)
83.0ms
(cbrt (/ t l))
66.0ms
(cbrt (/ t l))

simplify5.0s

Counts
50 → 91
Calls
50 calls:
Slowest
432.0ms
(sqrt (/ (* (cbrt (- 1 (pow (/ Om Omc) 2))) (cbrt (- 1 (pow (/ Om Omc) 2)))) (* (cbrt (+ 1 (* 2 (* (* (/ t l) (cbrt (/ t l))) (pow (cbrt (/ t l)) 2))))) (cbrt (+ 1 (* 2 (* (* (/ t l) (cbrt (/ t l))) (pow (cbrt (/ t l)) 2))))))))
396.0ms
(sqrt (/ (sqrt (- 1 (pow (/ Om Omc) 2))) (sqrt (+ 1 (* 2 (* (* (/ t l) (cbrt (/ t l))) (pow (cbrt (/ t l)) 2)))))))
390.0ms
(sqrt (/ (sqrt (- 1 (pow (/ Om Omc) 2))) (* (cbrt (+ 1 (* 2 (* (* (/ t l) (cbrt (/ t l))) (pow (cbrt (/ t l)) 2))))) (cbrt (+ 1 (* 2 (* (* (/ t l) (cbrt (/ t l))) (pow (cbrt (/ t l)) 2))))))))
333.0ms
(sqrt (/ 1 (* (cbrt (+ 1 (* 2 (* (* (/ t l) (cbrt (/ t l))) (pow (cbrt (/ t l)) 2))))) (cbrt (+ 1 (* 2 (* (* (/ t l) (cbrt (/ t l))) (pow (cbrt (/ t l)) 2))))))))
330.0ms
(sqrt (/ (* (cbrt (- 1 (pow (/ Om Omc) 2))) (cbrt (- 1 (pow (/ Om Omc) 2)))) (sqrt (+ 1 (* 2 (* (* (/ t l) (cbrt (/ t l))) (pow (cbrt (/ t l)) 2)))))))

prune1.1s

Pruning

7 alts after pruning (4 fresh and 3 done)

Merged error: 10.6b

localize21.0ms

Local error

Found 4 expressions with local error:

33.2b
(cbrt (pow (/ t l) 2))
33.2b
(cbrt (pow (/ t l) 2))
33.2b
(cbrt (pow (/ t l) 2))
9.8b
(sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (* (* (cbrt (pow (/ t l) 2)) (cbrt (pow (/ t l) 2))) (cbrt (pow (/ t l) 2)))))))

rewrite7.0ms

Algorithm
rewrite-expression-head
Rules
24×cbrt-prod
20×add-sqr-sqrt
17×add-cube-cbrt
17×*-un-lft-identity
15×sqrt-prod
12×unpow-prod-down
10×times-frac
add-log-exp
div-inv
log1p-expm1-u
add-exp-log
add-cbrt-cube
pow1
expm1-log1p-u
unpow2
pow1/3
associate-/r/
rem-sqrt-square
flip-+
sqrt-div
pow1/2
flip3-+
Counts
4 → 82
Calls
4 calls:
Slowest
3.0ms
(sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (* (* (cbrt (pow (/ t l) 2)) (cbrt (pow (/ t l) 2))) (cbrt (pow (/ t l) 2)))))))
1.0ms
(cbrt (pow (/ t l) 2))
1.0ms
(cbrt (pow (/ t l) 2))
1.0ms
(cbrt (pow (/ t l) 2))

series302.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
87.0ms
(sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (* (* (cbrt (pow (/ t l) 2)) (cbrt (pow (/ t l) 2))) (cbrt (pow (/ t l) 2)))))))
75.0ms
(cbrt (pow (/ t l) 2))
70.0ms
(cbrt (pow (/ t l) 2))
70.0ms
(cbrt (pow (/ t l) 2))

simplify3.1s

Counts
54 → 94
Calls
54 calls:
Slowest
290.0ms
(exp (* 1/3 (- (* 2 (log (/ -1 l))) (* 2 (log (/ -1 t))))))
279.0ms
(exp (* 1/3 (- (* 2 (log (/ -1 l))) (* 2 (log (/ -1 t))))))
278.0ms
(exp (* 1/3 (- (* 2 (log (/ -1 l))) (* 2 (log (/ -1 t))))))
167.0ms
(sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (* (* (cbrt (pow (/ t l) 2)) (cbrt (pow (/ t l) 2))) (cbrt (pow (/ t l) 2)))))))
160.0ms
(sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ (pow 1 3) (pow (* 2 (* (* (cbrt (pow (/ t l) 2)) (cbrt (pow (/ t l) 2))) (cbrt (pow (/ t l) 2)))) 3))))

prune1.1s

Pruning

7 alts after pruning (3 fresh and 4 done)

Merged error: 10.6b

regimes877.0ms

Accuracy

0% (0.1b remaining)

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

bsearch3.0ms

end0.0ms

sample4.8s

Algorithm
intervals