Average Error: 4.1 → 4.1
Time: 2.5m
Precision: 64
Internal Precision: 128
\[\frac{x}{x + y \cdot e^{2.0 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\right)\right)}}\]
\[\frac{x}{y \cdot e^{2.0 \cdot \left(\frac{z \cdot \sqrt{a + t}}{t} - \left(\left(\frac{5.0}{6.0} + a\right) - \frac{2.0}{t \cdot 3.0}\right) \cdot \left(b - c\right)\right)} + x}\]

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Bits error versus a

Bits error versus b

Bits error versus c

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 4.1

    \[\frac{x}{x + y \cdot e^{2.0 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\right)\right)}}\]
  2. Final simplification4.1

    \[\leadsto \frac{x}{y \cdot e^{2.0 \cdot \left(\frac{z \cdot \sqrt{a + t}}{t} - \left(\left(\frac{5.0}{6.0} + a\right) - \frac{2.0}{t \cdot 3.0}\right) \cdot \left(b - c\right)\right)} + x}\]

Reproduce

herbie shell --seed 2019022 
(FPCore (x y z t a b c)
  :name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2"
  (/ x (+ x (* y (exp (* 2.0 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))))))))

Details

Time bar (total: 2.5m)Debug log

sample182.0ms

Algorithm
intervals
Results
79.0ms256×body80valid
63.0ms262×body80nan

simplify216.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
216.0ms
(/ x (+ x (* y (exp (* 2.0 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))))))))

prune19.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 2.7b

localize77.0ms

Local error

Found 4 expressions with local error:

5.2b
(/ (* z (sqrt (+ t a))) t)
1.9b
(- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))
0.3b
(/ 2.0 (* t 3.0))
0.2b
(* z (sqrt (+ t a)))

rewrite23.0ms

Algorithm
rewrite-expression-head
Rules
20×frac-sub
flip--
flip3--
associate-*r/
frac-times
add-log-exp
associate--r+
add-cube-cbrt
associate-*r*
*-un-lft-identity
add-sqr-sqrt
flip-+
flip3-+
add-exp-log
sqrt-div
add-cbrt-cube
pow1
sqrt-prod
distribute-lft-in
sub-neg
distribute-rgt-in
associate-/l/
div-inv
associate--l+
associate-*l/
frac-2neg
clear-num
associate-/l*
*-commutative
diff-log
associate-/r*
Counts
4 → 72
Calls
4 calls:
Slowest
14.0ms
(- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))
4.0ms
(/ (* z (sqrt (+ t a))) t)
3.0ms
(* z (sqrt (+ t a)))
1.0ms
(/ 2.0 (* t 3.0))

series303.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
189.0ms
(- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))
61.0ms
(/ (* z (sqrt (+ t a))) t)
39.0ms
(* z (sqrt (+ t a)))
13.0ms
(/ 2.0 (* t 3.0))

simplify7.5s

Counts
57 → 84
Calls
57 calls:
Slowest
638.0ms
(- (* (* z (sqrt (+ t a))) (* (+ (* b b) (+ (* c c) (* b c))) (+ (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))) (* t (* (- (pow b 3) (pow c 3)) (- (* (+ a (/ 5.0 6.0)) (+ a (/ 5.0 6.0))) (* (/ 2.0 (* t 3.0)) (/ 2.0 (* t 3.0)))))))
543.0ms
(* t (* (+ b c) (* (- a (/ 5.0 6.0)) (* t 3.0))))
525.0ms
(- (* (* z (sqrt (+ t a))) (* (+ (* b b) (+ (* c c) (* b c))) (+ (* (+ a (/ 5.0 6.0)) (+ a (/ 5.0 6.0))) (+ (* (/ 2.0 (* t 3.0)) (/ 2.0 (* t 3.0))) (* (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))))) (* t (* (- (pow b 3) (pow c 3)) (- (pow (+ a (/ 5.0 6.0)) 3) (pow (/ 2.0 (* t 3.0)) 3)))))
385.0ms
(- (* (* z (sqrt (+ t a))) (* (+ b c) (+ (* (+ a (/ 5.0 6.0)) (+ a (/ 5.0 6.0))) (+ (* (/ 2.0 (* t 3.0)) (/ 2.0 (* t 3.0))) (* (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))))) (* t (* (- (* b b) (* c c)) (- (pow (+ a (/ 5.0 6.0)) 3) (pow (/ 2.0 (* t 3.0)) 3)))))
329.0ms
(- (* (* z (sqrt (+ t a))) (* (+ (* b b) (+ (* c c) (* b c))) (* (- a (/ 5.0 6.0)) (* t 3.0)))) (* t (* (- (pow b 3) (pow c 3)) (- (* (- (* a a) (* (/ 5.0 6.0) (/ 5.0 6.0))) (* t 3.0)) (* (- a (/ 5.0 6.0)) 2.0)))))

prune1.9s

Pruning

3 alts after pruning (2 fresh and 1 done)

Merged error: 0b

localize78.0ms

Local error

Found 4 expressions with local error:

26.5b
(/ (- (* (* z (sqrt (+ t a))) (* (- a (/ 5.0 6.0)) (* t 3.0))) (* t (* (- b c) (- (* (- (* a a) (* (/ 5.0 6.0) (/ 5.0 6.0))) (* t 3.0)) (* (- a (/ 5.0 6.0)) 2.0))))) (* t (* (- a (/ 5.0 6.0)) (* t 3.0))))
5.6b
(- (* (* z (sqrt (+ t a))) (* (- a (/ 5.0 6.0)) (* t 3.0))) (* t (* (- b c) (- (* (- (* a a) (* (/ 5.0 6.0) (/ 5.0 6.0))) (* t 3.0)) (* (- a (/ 5.0 6.0)) 2.0)))))
4.5b
(* (- (* a a) (* (/ 5.0 6.0) (/ 5.0 6.0))) (* t 3.0))
4.3b
(* t (* (- b c) (- (* (- (* a a) (* (/ 5.0 6.0) (/ 5.0 6.0))) (* t 3.0)) (* (- a (/ 5.0 6.0)) 2.0))))

rewrite336.0ms

Algorithm
rewrite-expression-head
Rules
766×associate-*l/
764×associate-*r/
524×frac-sub
498×flip--
498×flip3--
364×frac-times
240×sqrt-div
162×associate-/l/
120×flip-+
120×flip3-+
16×distribute-lft-in
16×distribute-rgt-in
sub-neg
associate--r+
add-exp-log
add-cbrt-cube
add-cube-cbrt
*-un-lft-identity
add-sqr-sqrt
add-log-exp
pow1
associate-*l*
associate-/l*
times-frac
*-commutative
associate-/r/
associate-*r*
difference-of-squares
div-inv
cbrt-unprod
prod-exp
pow-prod-down
div-exp
div-sub
diff-log
frac-2neg
associate-/r*
clear-num
cbrt-undiv
Counts
4 → 419
Calls
4 calls:
Slowest
119.0ms
(/ (- (* (* z (sqrt (+ t a))) (* (- a (/ 5.0 6.0)) (* t 3.0))) (* t (* (- b c) (- (* (- (* a a) (* (/ 5.0 6.0) (/ 5.0 6.0))) (* t 3.0)) (* (- a (/ 5.0 6.0)) 2.0))))) (* t (* (- a (/ 5.0 6.0)) (* t 3.0))))
101.0ms
(- (* (* z (sqrt (+ t a))) (* (- a (/ 5.0 6.0)) (* t 3.0))) (* t (* (- b c) (- (* (- (* a a) (* (/ 5.0 6.0) (/ 5.0 6.0))) (* t 3.0)) (* (- a (/ 5.0 6.0)) 2.0)))))
71.0ms
(* t (* (- b c) (- (* (- (* a a) (* (/ 5.0 6.0) (/ 5.0 6.0))) (* t 3.0)) (* (- a (/ 5.0 6.0)) 2.0))))
11.0ms
(* (- (* a a) (* (/ 5.0 6.0) (/ 5.0 6.0))) (* t 3.0))

series1.3s

Counts
4 → 12
Calls
4 calls:
Slowest
671.0ms
(/ (- (* (* z (sqrt (+ t a))) (* (- a (/ 5.0 6.0)) (* t 3.0))) (* t (* (- b c) (- (* (- (* a a) (* (/ 5.0 6.0) (/ 5.0 6.0))) (* t 3.0)) (* (- a (/ 5.0 6.0)) 2.0))))) (* t (* (- a (/ 5.0 6.0)) (* t 3.0))))
449.0ms
(- (* (* z (sqrt (+ t a))) (* (- a (/ 5.0 6.0)) (* t 3.0))) (* t (* (- b c) (- (* (- (* a a) (* (/ 5.0 6.0) (/ 5.0 6.0))) (* t 3.0)) (* (- a (/ 5.0 6.0)) 2.0)))))
136.0ms
(* t (* (- b c) (- (* (- (* a a) (* (/ 5.0 6.0) (/ 5.0 6.0))) (* t 3.0)) (* (- a (/ 5.0 6.0)) 2.0))))
32.0ms
(* (- (* a a) (* (/ 5.0 6.0) (/ 5.0 6.0))) (* t 3.0))

simplify1.8m

Counts
554 → 431
Calls
554 calls:
Slowest
829.0ms
(* (* (sqrt (+ (* t t) (- (* a a) (* t a)))) (+ a (/ 5.0 6.0))) (* (+ b c) (+ (* (* (- (* a a) (* (/ 5.0 6.0) (/ 5.0 6.0))) (* t 3.0)) (* (- (* a a) (* (/ 5.0 6.0) (/ 5.0 6.0))) (* t 3.0))) (+ (* (* (- a (/ 5.0 6.0)) 2.0) (* (- a (/ 5.0 6.0)) 2.0)) (* (* (- (* a a) (* (/ 5.0 6.0) (/ 5.0 6.0))) (* t 3.0)) (* (- a (/ 5.0 6.0)) 2.0))))))
726.0ms
(* (* (sqrt (+ (* t t) (- (* a a) (* t a)))) (+ (* a a) (+ (* (/ 5.0 6.0) (/ 5.0 6.0)) (* a (/ 5.0 6.0))))) (* (+ (* b b) (+ (* c c) (* b c))) (* (+ (* (* a a) (* a a)) (+ (* (* (/ 5.0 6.0) (/ 5.0 6.0)) (* (/ 5.0 6.0) (/ 5.0 6.0))) (* (* a a) (* (/ 5.0 6.0) (/ 5.0 6.0))))) (+ (* a a) (+ (* (/ 5.0 6.0) (/ 5.0 6.0)) (* a (/ 5.0 6.0)))))))
706.0ms
(- (* (* (* z (sqrt (+ t a))) (* (- (* a a) (* (/ 5.0 6.0) (/ 5.0 6.0))) (* t 3.0))) (* (+ (* b b) (+ (* c c) (* b c))) (+ (* (- (* a a) (* (/ 5.0 6.0) (/ 5.0 6.0))) (* t 3.0)) (* (- a (/ 5.0 6.0)) 2.0)))) (* (+ a (/ 5.0 6.0)) (* t (* (- (pow b 3) (pow c 3)) (- (* (* (- (* a a) (* (/ 5.0 6.0) (/ 5.0 6.0))) (* t 3.0)) (* (- (* a a) (* (/ 5.0 6.0) (/ 5.0 6.0))) (* t 3.0))) (* (* (- a (/ 5.0 6.0)) 2.0) (* (- a (/ 5.0 6.0)) 2.0)))))))
671.0ms
(* (+ a (/ 5.0 6.0)) (* (+ (* b b) (+ (* c c) (* b c))) (* (+ (* (* a a) (* a a)) (+ (* (* (/ 5.0 6.0) (/ 5.0 6.0)) (* (/ 5.0 6.0) (/ 5.0 6.0))) (* (* a a) (* (/ 5.0 6.0) (/ 5.0 6.0))))) (+ (* a a) (+ (* (/ 5.0 6.0) (/ 5.0 6.0)) (* a (/ 5.0 6.0)))))))
612.0ms
(* (+ b c) (+ (* (* (- (* a a) (* (/ 5.0 6.0) (/ 5.0 6.0))) (* t 3.0)) (* (- (* a a) (* (/ 5.0 6.0) (/ 5.0 6.0))) (* t 3.0))) (+ (* (* (- a (/ 5.0 6.0)) 2.0) (* (- a (/ 5.0 6.0)) 2.0)) (* (* (- (* a a) (* (/ 5.0 6.0) (/ 5.0 6.0))) (* t 3.0)) (* (- a (/ 5.0 6.0)) 2.0)))))

prune21.5s

Pruning

3 alts after pruning (1 fresh and 2 done)

Merged error: 0b

localize23.0ms

Local error

Found 4 expressions with local error:

0.0b
(exp (* 2.0 (- (* 0.8333333333333334 c) (* (- b c) a))))
0.0b
(- (* 0.8333333333333334 c) (* (- b c) a))
0.0b
(* y (exp (* 2.0 (- (* 0.8333333333333334 c) (* (- b c) a)))))
0.0b
(* (- b c) a)

rewrite17.0ms

Algorithm
rewrite-expression-head
Rules
exp-sum
add-log-exp
associate-*r*
add-cube-cbrt
*-un-lft-identity
add-sqr-sqrt
sub-neg
add-exp-log
add-cbrt-cube
distribute-lft-in
pow1
distribute-rgt-in
associate-*l*
flip--
*-commutative
associate-*l/
flip3--
rem-exp-log
diff-log
exp-prod
Counts
4 → 53
Calls
4 calls:
Slowest
5.0ms
(* y (exp (* 2.0 (- (* 0.8333333333333334 c) (* (- b c) a)))))
5.0ms
(* (- b c) a)
4.0ms
(exp (* 2.0 (- (* 0.8333333333333334 c) (* (- b c) a))))
3.0ms
(- (* 0.8333333333333334 c) (* (- b c) a))

series147.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
60.0ms
(* y (exp (* 2.0 (- (* 0.8333333333333334 c) (* (- b c) a)))))
34.0ms
(exp (* 2.0 (- (* 0.8333333333333334 c) (* (- b c) a))))
29.0ms
(- (* 0.8333333333333334 c) (* (- b c) a))
24.0ms
(* (- b c) a)

simplify2.7s

Counts
30 → 65
Calls
30 calls:
Slowest
307.0ms
(* (- (* b b) (* c c)) a)
220.0ms
(* (exp (* 2.0 (- (+ (* a c) (* 0.8333333333333334 c)) (* a b)))) y)
214.0ms
(* 2.0 (- (* 0.8333333333333334 c) (* (- b c) a)))
195.0ms
(exp (* 2.0 (- (+ (* a c) (* 0.8333333333333334 c)) (* a b))))
190.0ms
(* (exp (* 2.0 (- (+ (* a c) (* 0.8333333333333334 c)) (* a b)))) y)

prune913.0ms

Pruning

3 alts after pruning (0 fresh and 3 done)

Merged error: 0b

regimes1.0s

Accuracy

0% (3.3b remaining)

Error of 4.1b against oracle of 0.8b and baseline of 4.1b

bsearch6.0ms

end0.0ms

sample5.6s

Algorithm
intervals
Results
2.6s7953×body80nan
2.3s8000×body80valid