Average Error: 1.9 → 1.9
Time: 47.0s
Precision: 64
Internal Precision: 128
\[\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1.0\right) \cdot \log a\right) - b}}{y}\]
\[\frac{x \cdot e^{\left(\log a \cdot \left(t - 1.0\right) + \log z \cdot y\right) - b}}{y}\]

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

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 1.9

    \[\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1.0\right) \cdot \log a\right) - b}}{y}\]
  2. Final simplification1.9

    \[\leadsto \frac{x \cdot e^{\left(\log a \cdot \left(t - 1.0\right) + \log z \cdot y\right) - b}}{y}\]

Reproduce

herbie shell --seed 2019016 +o rules:numerics
(FPCore (x y z t a b)
  :name "Numeric.SpecFunctions:incompleteBetaWorker from math-functions-0.1.5.2"
  (/ (* x (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) y))

Details

Time bar (total: 45.8s)Debug log

sample698.0ms

Algorithm
intervals
Results
1878×(pre true 80)
1417×(body nan 80)
461×(body real 80)

simplify319.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
319.0ms
(/ (* x (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) y)

prune26.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0.8b

localize59.0ms

Local error

Found 4 expressions with local error:

1.0b
(exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))
0.7b
(/ (* x (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) y)
0.2b
(* y (log z))
0.1b
(* (- t 1.0) (log a))

rewrite48.0ms

Algorithm
rewrite-expression-head
Rules
add-cube-cbrt
*-un-lft-identity
add-sqr-sqrt
add-exp-log
associate-*r*
add-cbrt-cube
pow1
add-log-exp
log1p-expm1-u
expm1-log1p-u
exp-sum
associate-*l*
exp-prod
*-commutative
associate-*l/
exp-diff
associate-/l/
rem-exp-log
associate-/l*
flip--
div-inv
cbrt-unprod
associate-*r/
associate--l+
prod-exp
pow-prod-down
flip3--
frac-2neg
sub-neg
clear-num
Counts
4 → 65
Calls
4 calls:
Slowest
23.0ms
(exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))
14.0ms
(/ (* x (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) y)
8.0ms
(* (- t 1.0) (log a))
2.0ms
(* y (log z))

series416.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
180.0ms
(/ (* x (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) y)
139.0ms
(exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))
56.0ms
(* (- t 1.0) (log a))
40.0ms
(* y (log z))

simplify3.5s

Counts
34 → 77
Calls
34 calls:
Slowest
555.0ms
(+ (/ (* x (exp (- (* 1.0 (log a))))) y) (+ (* x (* (log z) (exp (- (* 1.0 (log a)))))) (/ (* t (* x (* (log a) (exp (- (* 1.0 (log a))))))) y)))
318.0ms
(- (+ (* t (log -1)) (* 1.0 (log (/ -1 a)))) (+ (* t (log (/ -1 a))) (* 1.0 (log -1))))
249.0ms
(+ (* t (* (log a) (exp (- (* 1.0 (log a)))))) (+ (exp (- (* 1.0 (log a)))) (* (log z) (* (exp (- (* 1.0 (log a)))) y))))
220.0ms
(- (+ (* y (log z)) (* (- t 1.0) (log a))) b)
213.0ms
(/ (* x (exp (- (* 1.0 (log (/ 1 a))) (+ (* (log (/ 1 z)) y) (+ b (* t (log (/ 1 a)))))))) y)

prune1.3s

Pruning

4 alts after pruning (3 fresh and 1 done)

Merged error: 0.0b

localize33.0ms

Local error

Found 4 expressions with local error:

0.7b
(/ (* x (* (* (pow a (- 1.0)) (pow z y)) (exp (fma t (log a) (- b))))) y)
0.3b
(* (* (pow a (- 1.0)) (pow z y)) (exp (fma t (log a) (- b))))
0.2b
(fma t (log a) (- b))
0.0b
(* x (* (* (pow a (- 1.0)) (pow z y)) (exp (fma t (log a) (- b)))))

rewrite61.0ms

Algorithm
rewrite-expression-head
Rules
12×associate-*l/
add-exp-log
prod-exp
add-cbrt-cube
pow1
add-cube-cbrt
associate-*r*
*-un-lft-identity
add-sqr-sqrt
add-log-exp
log1p-expm1-u
associate-*r/
pow-to-exp
expm1-log1p-u
pow-sub
cbrt-unprod
pow-neg
neg-sub0
associate-/l/
fma-udef
*-commutative
associate-/l*
div-inv
pow-prod-down
exp-sum
associate-*l*
frac-2neg
clear-num
Counts
4 → 63
Calls
4 calls:
Slowest
31.0ms
(/ (* x (* (* (pow a (- 1.0)) (pow z y)) (exp (fma t (log a) (- b))))) y)
16.0ms
(* x (* (* (pow a (- 1.0)) (pow z y)) (exp (fma t (log a) (- b)))))
12.0ms
(* (* (pow a (- 1.0)) (pow z y)) (exp (fma t (log a) (- b))))
0.0ms
(fma t (log a) (- b))

series1.1s

Counts
4 → 12
Calls
4 calls:
Slowest
458.0ms
(/ (* x (* (* (pow a (- 1.0)) (pow z y)) (exp (fma t (log a) (- b))))) y)
329.0ms
(* x (* (* (pow a (- 1.0)) (pow z y)) (exp (fma t (log a) (- b)))))
259.0ms
(* (* (pow a (- 1.0)) (pow z y)) (exp (fma t (log a) (- b))))
61.0ms
(fma t (log a) (- b))

simplify5.3s

Counts
32 → 75
Calls
32 calls:
Slowest
451.0ms
(+ (+ (* (log a) (- 1.0)) (* (log z) y)) (fma t (log a) (- b)))
398.0ms
(* (* (* (* (pow a (- 1.0)) (pow a (- 1.0))) (pow a (- 1.0))) (* (* (pow z y) (pow z y)) (pow z y))) (* (* (exp (fma t (log a) (- b))) (exp (fma t (log a) (- b)))) (exp (fma t (log a) (- b)))))
380.0ms
(+ (+ (* (log a) (- 1.0)) (log (pow z y))) (fma t (log a) (- b)))
367.0ms
(+ (+ (log (pow a (- 1.0))) (* (log z) y)) (fma t (log a) (- b)))
342.0ms
(* (* (* (* (pow a (- 1.0)) (pow z y)) (* (pow a (- 1.0)) (pow z y))) (* (pow a (- 1.0)) (pow z y))) (* (* (exp (fma t (log a) (- b))) (exp (fma t (log a) (- b)))) (exp (fma t (log a) (- b)))))

prune1.4s

Pruning

6 alts after pruning (5 fresh and 1 done)

Merged error: 0.0b

localize17.0ms

Local error

Found 4 expressions with local error:

0.7b
(/ (/ (* x (* (* 1 (pow z y)) (exp (fma t (log a) (- b))))) (pow a 1.0)) y)
0.2b
(* (* 1 (pow z y)) (exp (fma t (log a) (- b))))
0.2b
(fma t (log a) (- b))
0.0b
(/ (* x (* (* 1 (pow z y)) (exp (fma t (log a) (- b))))) (pow a 1.0))

rewrite26.0ms

Algorithm
rewrite-expression-head
Rules
add-cube-cbrt
*-un-lft-identity
add-sqr-sqrt
associate-/l*
add-exp-log
add-cbrt-cube
times-frac
pow1
add-log-exp
log1p-expm1-u
associate-*r*
expm1-log1p-u
div-inv
associate-/r*
fma-udef
div-exp
frac-2neg
clear-num
associate-/l/
cbrt-unprod
*-commutative
prod-exp
pow-prod-down
exp-sum
associate-*l*
cbrt-undiv
pow-to-exp
Counts
4 → 70
Calls
4 calls:
Slowest
11.0ms
(/ (* x (* (* 1 (pow z y)) (exp (fma t (log a) (- b))))) (pow a 1.0))
7.0ms
(/ (/ (* x (* (* 1 (pow z y)) (exp (fma t (log a) (- b))))) (pow a 1.0)) y)
7.0ms
(* (* 1 (pow z y)) (exp (fma t (log a) (- b))))
0.0ms
(fma t (log a) (- b))

series1.1s

Counts
4 → 12
Calls
4 calls:
Slowest
507.0ms
(/ (/ (* x (* (* 1 (pow z y)) (exp (fma t (log a) (- b))))) (pow a 1.0)) y)
350.0ms
(/ (* x (* (* 1 (pow z y)) (exp (fma t (log a) (- b))))) (pow a 1.0))
171.0ms
(* (* 1 (pow z y)) (exp (fma t (log a) (- b))))
79.0ms
(fma t (log a) (- b))

simplify4.3s

Counts
38 → 82
Calls
38 calls:
Slowest
306.0ms
(* (exp (* -1 (* (log (/ 1 z)) y))) (exp (- (+ b (* t (log (/ 1 a)))))))
296.0ms
(/ (* (* 1 (pow z y)) (exp (fma t (log a) (- b)))) (sqrt (pow a 1.0)))
292.0ms
(/ (* (* 1 (pow z y)) (exp (fma t (log a) (- b)))) (cbrt (pow a 1.0)))
277.0ms
(/ (* (exp (* -1 (* (log (/ 1 z)) y))) (* x (exp (- (+ b (* t (log (/ 1 a)))))))) (* a y))
267.0ms
(* (pow (/ 1 (pow a 1.0)) 1.0) (* x (* (exp (* (- (log -1) (log (/ -1 z))) y)) (exp (- (* t (log -1)) (+ (* t (log (/ -1 a))) b))))))

prune1.5s

Pruning

5 alts after pruning (4 fresh and 1 done)

Merged error: 0b

localize12.0ms

Local error

Found 4 expressions with local error:

0.7b
(/ y (/ (* x (* (* 1 (pow z y)) (exp (fma t (log a) (- b))))) (pow a 1.0)))
0.2b
(* (* 1 (pow z y)) (exp (fma t (log a) (- b))))
0.2b
(fma t (log a) (- b))
0.1b
(/ 1 (/ y (/ (* x (* (* 1 (pow z y)) (exp (fma t (log a) (- b))))) (pow a 1.0))))

rewrite19.0ms

Algorithm
rewrite-expression-head
Rules
12×associate-/r*
add-cube-cbrt
*-un-lft-identity
add-sqr-sqrt
pow1
add-exp-log
add-cbrt-cube
add-log-exp
div-inv
log1p-expm1-u
associate-*r*
expm1-log1p-u
associate-/r/
times-frac
fma-udef
frac-2neg
clear-num
inv-pow
pow-flip
cbrt-unprod
*-commutative
prod-exp
pow-prod-down
exp-sum
associate-*l*
rec-exp
Counts
4 → 69
Calls
4 calls:
Slowest
14.0ms
(* (* 1 (pow z y)) (exp (fma t (log a) (- b))))
1.0ms
(/ y (/ (* x (* (* 1 (pow z y)) (exp (fma t (log a) (- b))))) (pow a 1.0)))
1.0ms
(/ 1 (/ y (/ (* x (* (* 1 (pow z y)) (exp (fma t (log a) (- b))))) (pow a 1.0))))
0.0ms
(fma t (log a) (- b))

series1.1s

Counts
4 → 12
Calls
4 calls:
Slowest
506.0ms
(/ 1 (/ y (/ (* x (* (* 1 (pow z y)) (exp (fma t (log a) (- b))))) (pow a 1.0))))
402.0ms
(/ y (/ (* x (* (* 1 (pow z y)) (exp (fma t (log a) (- b))))) (pow a 1.0)))
106.0ms
(* (* 1 (pow z y)) (exp (fma t (log a) (- b))))
50.0ms
(fma t (log a) (- b))

simplify4.7s

Counts
34 → 81
Calls
34 calls:
Slowest
352.0ms
(* (pow (/ 1 (pow a 1.0)) 1.0) (/ (* x (* (exp (* (- (log -1) (log (/ -1 z))) y)) (exp (- (* t (log -1)) (+ (* t (log (/ -1 a))) b))))) y))
312.0ms
(* (pow (pow a 1.0) 1.0) (/ y (* x (* (exp (- (+ b (* t (log (/ 1 a)))))) (exp (* -1 (* (log (/ 1 z)) y)))))))
303.0ms
(/ (* (* 1 (pow z y)) (exp (fma t (log a) (- b)))) (sqrt (pow a 1.0)))
291.0ms
(/ (* (* 1 (pow z y)) (exp (fma t (log a) (- b)))) (pow a 1.0))
287.0ms
(/ (* (* 1 (pow z y)) (exp (fma t (log a) (- b)))) (cbrt (pow a 1.0)))

prune1.6s

Pruning

5 alts after pruning (3 fresh and 2 done)

Merged error: 0b

regimes1.0s

Accuracy

0% (1.9b remaining)

Error of 1.9b against oracle of 0.0b and baseline of 1.9b

bsearch3.0ms

end0.0ms

sample16.3s

Algorithm
intervals
Results
61331×(pre true 80)
46087×(body nan 80)
15244×(body real 80)