Average Error: 1.9 → 2.8
Time: 52.5s
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}\]
\[\begin{array}{l} \mathbf{if}\;t \le 2.861755086549777 \cdot 10^{-274} \lor \neg \left(t \le 9.354354356058026 \cdot 10^{-43}\right):\\ \;\;\;\;\frac{x}{\frac{y}{e^{\left(\log z \cdot y + \log a \cdot \left(t - 1.0\right)\right) - b}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{x \cdot \left(\left({a}^{\left(-1.0\right)} \cdot {a}^{t}\right) \cdot \left(e^{-b} \cdot {z}^{y}\right)\right)}{y}\\ \end{array}\]

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. Split input into 2 regimes
  2. if t < 2.861755086549777e-274 or 9.354354356058026e-43 < t

    1. Initial program 1.6

      \[\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1.0\right) \cdot \log a\right) - b}}{y}\]
    2. Using strategy rm
    3. Applied associate-/l*1.3

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

    if 2.861755086549777e-274 < t < 9.354354356058026e-43

    1. Initial program 3.4

      \[\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1.0\right) \cdot \log a\right) - b}}{y}\]
    2. Taylor expanded around inf 3.5

      \[\leadsto \frac{x \cdot \color{blue}{e^{1.0 \cdot \log \left(\frac{1}{a}\right) - \left(\log \left(\frac{1}{z}\right) \cdot y + \left(b + t \cdot \log \left(\frac{1}{a}\right)\right)\right)}}}{y}\]
    3. Simplified8.7

      \[\leadsto \frac{x \cdot \color{blue}{\left(\left({z}^{y} \cdot e^{-b}\right) \cdot \left({a}^{t} \cdot {a}^{\left(-1.0\right)}\right)\right)}}{y}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification2.8

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le 2.861755086549777 \cdot 10^{-274} \lor \neg \left(t \le 9.354354356058026 \cdot 10^{-43}\right):\\ \;\;\;\;\frac{x}{\frac{y}{e^{\left(\log z \cdot y + \log a \cdot \left(t - 1.0\right)\right) - b}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{x \cdot \left(\left({a}^{\left(-1.0\right)} \cdot {a}^{t}\right) \cdot \left(e^{-b} \cdot {z}^{y}\right)\right)}{y}\\ \end{array}\]

Reproduce

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

sample570.0ms

Algorithm
intervals

simplify692.0ms

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

prune19.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0.3b

localize49.0ms

Local error

Found 4 expressions with local error:

1.5b
(/ (* x (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) y)
0.9b
(exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))
0.3b
(* y (log z))
0.1b
(* (- t 1.0) (log a))

rewrite76.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
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 → 57
Calls
4 calls:
Slowest
43.0ms
(exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))
23.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))

series437.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
208.0ms
(/ (* x (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) y)
123.0ms
(exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))
75.0ms
(* (- t 1.0) (log a))
32.0ms
(* y (log z))

simplify2.8s

Counts
34 → 69
Calls
34 calls:
Slowest
300.0ms
(+ (* t (* (log a) (exp (- (* 1.0 (log a)))))) (+ (exp (- (* 1.0 (log a)))) (* (log z) (* (exp (- (* 1.0 (log a)))) y))))
253.0ms
(- (+ (* t (log -1)) (* 1.0 (log (/ -1 a)))) (+ (* t (log (/ -1 a))) (* 1.0 (log -1))))
214.0ms
(* (* (* (- t 1.0) (- t 1.0)) (- t 1.0)) (* (* (log a) (log a)) (log a)))
190.0ms
(exp (* (cbrt (- (+ (* y (log z)) (* (- t 1.0) (log a))) b)) (cbrt (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))))
159.0ms
(/ (* x (exp (- (* 1.0 (log (/ 1 a))) (+ (* (log (/ 1 z)) y) (+ b (* t (log (/ 1 a)))))))) y)

prune1.2s

Pruning

6 alts after pruning (6 fresh and 0 done)

Merged error: 0.0b

localize7.0ms

Local error

Found 4 expressions with local error:

1.4b
(/ x (/ y (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))))
0.9b
(exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))
0.3b
(* 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
associate-/r*
exp-sum
associate-*l*
exp-prod
div-inv
*-commutative
associate-/r/
associate-*l/
exp-diff
rem-exp-log
flip--
cbrt-unprod
associate--l+
prod-exp
pow-prod-down
flip3--
frac-2neg
sub-neg
clear-num
Counts
4 → 61
Calls
4 calls:
Slowest
34.0ms
(exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))
8.0ms
(* (- t 1.0) (log a))
2.0ms
(/ x (/ y (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))))
2.0ms
(* y (log z))

series491.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
228.0ms
(/ x (/ y (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))))
151.0ms
(exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))
79.0ms
(* (- t 1.0) (log a))
32.0ms
(* y (log z))

simplify3.5s

Counts
39 → 73
Calls
39 calls:
Slowest
301.0ms
(exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))
256.0ms
(+ (* t (* (log a) (exp (- (* 1.0 (log a)))))) (+ (exp (- (* 1.0 (log a)))) (* (log z) (* (exp (- (* 1.0 (log a)))) y))))
212.0ms
(- (+ (* t (log -1)) (* 1.0 (log (/ -1 a)))) (+ (* t (log (/ -1 a))) (* 1.0 (log -1))))
202.0ms
(cbrt (/ y (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))))
180.0ms
(exp (sqrt (- (+ (* y (log z)) (* (- t 1.0) (log a))) b)))

prune1.2s

Pruning

6 alts after pruning (5 fresh and 1 done)

Merged error: 0.0b

localize33.0ms

Local error

Found 4 expressions with local error:

1.4b
(/ x (/ y (* (* (pow z y) (exp (- b))) (* (pow a t) (pow a (- 1.0))))))
0.5b
(* (* (pow z y) (exp (- b))) (* (pow a t) (pow a (- 1.0))))
0.1b
(/ y (* (* (pow z y) (exp (- b))) (* (pow a t) (pow a (- 1.0)))))
0.0b
(* (pow a t) (pow a (- 1.0)))

rewrite48.0ms

Algorithm
rewrite-expression-head
Rules
59×associate-*r/
41×prod-exp
33×add-exp-log
31×associate-/r/
27×frac-times
26×pow-neg
25×un-div-inv
25×neg-sub0
24×exp-neg
21×pow-to-exp
20×associate-/r*
18×add-cbrt-cube
13×pow-sub
12×exp-diff
cbrt-unprod
associate-*l/
add-cube-cbrt
*-un-lft-identity
add-sqr-sqrt
pow1
add-log-exp
associate-*l*
associate-*r*
div-inv
*-commutative
frac-2neg
clear-num
pow-prod-up
pow-prod-down
Counts
4 → 124
Calls
4 calls:
Slowest
23.0ms
(* (* (pow z y) (exp (- b))) (* (pow a t) (pow a (- 1.0))))
11.0ms
(/ x (/ y (* (* (pow z y) (exp (- b))) (* (pow a t) (pow a (- 1.0))))))
7.0ms
(/ y (* (* (pow z y) (exp (- b))) (* (pow a t) (pow a (- 1.0)))))
4.0ms
(* (pow a t) (pow a (- 1.0)))

series1.6s

Counts
4 → 12
Calls
4 calls:
Slowest
642.0ms
(/ x (/ y (* (* (pow z y) (exp (- b))) (* (pow a t) (pow a (- 1.0))))))
461.0ms
(/ y (* (* (pow z y) (exp (- b))) (* (pow a t) (pow a (- 1.0)))))
312.0ms
(* (* (pow z y) (exp (- b))) (* (pow a t) (pow a (- 1.0))))
186.0ms
(* (pow a t) (pow a (- 1.0)))

simplify8.7s

Counts
108 → 136
Calls
108 calls:
Slowest
392.0ms
(- (* a y) (+ (* a (* (log z) (pow y 2))) (* a (* t (* y (log a))))))
368.0ms
(+ (log (* (pow z y) (exp (- b)))) (+ (* (log a) t) (* (log a) (- 1.0))))
347.0ms
(+ (log (* (pow z y) (exp (- b)))) (+ (log (pow a t)) (* (log a) (- 1.0))))
332.0ms
(- (+ (* (pow (/ 1 (pow a 1.0)) 1.0) (* x (log z))) (* (pow (/ 1 (pow a 1.0)) 1.0) (/ x y))) (* (pow (/ 1 (pow a 1.0)) 1.0) (/ (* x b) y)))
328.0ms
(+ (+ (* (log z) y) (- b)) (+ (log (pow a t)) (* (log a) (- 1.0))))

prune2.4s

Pruning

6 alts after pruning (5 fresh and 1 done)

Merged error: 0b

localize19.0ms

Local error

Found 4 expressions with local error:

1.4b
(/ x (* (/ y (* (pow z y) (pow a t))) (* (exp b) (pow a 1.0))))
0.3b
(* (/ y (* (pow z y) (pow a t))) (* (exp b) (pow a 1.0)))
0.2b
(* (pow z y) (pow a t))
0.0b
(/ y (* (pow z y) (pow a t)))

rewrite42.0ms

Algorithm
rewrite-expression-head
Rules
13×add-exp-log
11×add-cbrt-cube
prod-exp
add-cube-cbrt
associate-*l*
*-un-lft-identity
add-sqr-sqrt
pow1
pow-to-exp
add-log-exp
cbrt-unprod
associate-*r*
div-inv
*-commutative
associate-*l/
frac-2neg
associate-/r*
clear-num
associate-/r/
pow-prod-down
Counts
4 → 62
Calls
4 calls:
Slowest
28.0ms
(* (/ y (* (pow z y) (pow a t))) (* (exp b) (pow a 1.0)))
6.0ms
(* (pow z y) (pow a t))
4.0ms
(/ x (* (/ y (* (pow z y) (pow a t))) (* (exp b) (pow a 1.0))))
2.0ms
(/ y (* (pow z y) (pow a t)))

series1.2s

Counts
4 → 12
Calls
4 calls:
Slowest
427.0ms
(/ x (* (/ y (* (pow z y) (pow a t))) (* (exp b) (pow a 1.0))))
423.0ms
(* (/ y (* (pow z y) (pow a t))) (* (exp b) (pow a 1.0)))
174.0ms
(/ y (* (pow z y) (pow a t)))
128.0ms
(* (pow z y) (pow a t))

simplify3.9s

Counts
35 → 74
Calls
35 calls:
Slowest
537.0ms
(+ (log (/ y (* (pow z y) (pow a t)))) (log (* (exp b) (pow a 1.0))))
413.0ms
(- (+ (* a (* y b)) (* a y)) (* a (* t (* y (log a)))))
331.0ms
(* (/ y (* (pow z y) (pow a t))) (* (exp b) (pow a 1.0)))
276.0ms
(+ (* (pow (/ 1 (pow a 1.0)) 1.0) (/ (* x (* t (log a))) y)) (+ (* (pow (/ 1 (pow a 1.0)) 1.0) (* x (log z))) (* (pow (/ 1 (pow a 1.0)) 1.0) (/ x y))))
262.0ms
(/ y (* (exp (* -1 (* (log (/ 1 z)) y))) (exp (* -1 (* t (log (/ 1 a)))))))

prune1.3s

Pruning

5 alts after pruning (4 fresh and 1 done)

Merged error: 0b

regimes874.0ms

Accuracy

-60.6% (2.8b remaining)

Error of 2.8b against oracle of 0.0b and baseline of 1.7b

bsearch2.3s

end0.0ms

sample17.8s

Algorithm
intervals