Average Error: 0.2 → 0.0
Time: 7.1s
Precision: 64
Internal Precision: 128
\[\left(d1 \cdot 10 + d1 \cdot d2\right) + d1 \cdot 20\]
\[\left(30 + d2\right) \cdot d1\]

Error

Bits error versus d1

Bits error versus d2

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original0.2
Target0.0
Herbie0.0
\[d1 \cdot \left(30 + d2\right)\]

Derivation

  1. Initial program 0.2

    \[\left(d1 \cdot 10 + d1 \cdot d2\right) + d1 \cdot 20\]
  2. Simplified0.0

    \[\leadsto \color{blue}{\left(d2 + 30\right) \cdot d1}\]
  3. Final simplification0.0

    \[\leadsto \left(30 + d2\right) \cdot d1\]

Reproduce

herbie shell --seed 2019022 +o rules:numerics
(FPCore (d1 d2)
  :name "FastMath test2"

  :herbie-target
  (* d1 (+ 30 d2))

  (+ (+ (* d1 10) (* d1 d2)) (* d1 20)))

Details

Time bar (total: 6.7s)Debug log

sample41.0ms

Algorithm
intervals
Results
27.0ms277×body80valid
1.0msbody1280valid
0.0msbody640valid
0.0msbody320valid

simplify84.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
84.0ms
(+ (+ (* d1 10) (* d1 d2)) (* d1 20))

prune6.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 0.0b

localize7.0ms

Local error

Found 1 expressions with local error:

0.0b
(* (+ d2 30) d1)

rewrite3.0ms

Algorithm
rewrite-expression-head
Rules
associate-*l*
add-cube-cbrt
associate-*l/
*-un-lft-identity
add-sqr-sqrt
add-log-exp
log1p-expm1-u
flip-+
*-commutative
add-exp-log
add-cbrt-cube
flip3-+
pow1
expm1-log1p-u
Counts
1 → 15
Calls
1 calls:
Slowest
3.0ms
(* (+ d2 30) d1)

series15.0ms

Counts
1 → 3
Calls
1 calls:
Slowest
15.0ms
(* (+ d2 30) d1)

simplify194.0ms

Counts
7 → 18
Calls
7 calls:
Slowest
124.0ms
(* (- (* d2 d2) (* 30 30)) d1)
30.0ms
(* (+ (pow d2 3) (pow 30 3)) d1)
11.0ms
(+ (* d2 d1) (* 30 d1))
11.0ms
(+ (* d2 d1) (* 30 d1))
10.0ms
(+ (* d2 d1) (* 30 d1))

prune148.0ms

Pruning

4 alts after pruning (3 fresh and 1 done)

Merged error: 0b

localize13.0ms

Local error

Found 4 expressions with local error:

0.2b
(* (sqrt (+ d2 30)) (* (sqrt (+ d2 30)) d1))
0.1b
(* (sqrt (+ d2 30)) d1)
0.0b
(sqrt (+ d2 30))
0.0b
(sqrt (+ d2 30))

rewrite15.0ms

Algorithm
rewrite-expression-head
Rules
18×sqrt-div
12×sqrt-prod
12×associate-*l*
12×add-sqr-sqrt
10×add-cube-cbrt
10×associate-*l/
10×*-un-lft-identity
flip-+
flip3-+
add-exp-log
add-cbrt-cube
pow1
add-log-exp
log1p-expm1-u
frac-times
expm1-log1p-u
*-commutative
associate-*r/
pow1/2
rem-sqrt-square
cbrt-unprod
prod-exp
pow-prod-down
associate-*r*
Counts
4 → 78
Calls
4 calls:
Slowest
10.0ms
(* (sqrt (+ d2 30)) (* (sqrt (+ d2 30)) d1))
3.0ms
(* (sqrt (+ d2 30)) d1)
1.0ms
(sqrt (+ d2 30))
1.0ms
(sqrt (+ d2 30))

series93.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
43.0ms
(* (sqrt (+ d2 30)) d1)
23.0ms
(* (sqrt (+ d2 30)) (* (sqrt (+ d2 30)) d1))
15.0ms
(sqrt (+ d2 30))
12.0ms
(sqrt (+ d2 30))

simplify2.0s

Counts
51 → 90
Calls
51 calls:
Slowest
434.0ms
(* (* (* (sqrt (+ d2 30)) (sqrt (+ d2 30))) (sqrt (+ d2 30))) (* (* (* (sqrt (+ d2 30)) d1) (* (sqrt (+ d2 30)) d1)) (* (sqrt (+ d2 30)) d1)))
394.0ms
(* (sqrt (- (* d2 d2) (* 30 30))) (* (sqrt (- (* d2 d2) (* 30 30))) d1))
235.0ms
(- (+ (* (sqrt 30) d1) (* 1/2 (/ (* d2 d1) (sqrt 30)))) (* 1/8 (/ (* (pow d2 2) d1) (pow (sqrt 30) 3))))
117.0ms
(- (+ (* 1/2 (/ d2 (sqrt 30))) (sqrt 30)) (* 1/8 (/ (pow d2 2) (pow (sqrt 30) 3))))
107.0ms
(* (sqrt (- (* d2 d2) (* 30 30))) (* (sqrt (+ (pow d2 3) (pow 30 3))) d1))

prune708.0ms

Pruning

4 alts after pruning (2 fresh and 2 done)

Merged error: 0b

localize13.0ms

Local error

Found 2 expressions with local error:

7.7b
(/ (* d1 (fma d2 d2 -900)) (+ d2 -30))
6.0b
(* d1 (fma d2 d2 -900))

rewrite7.0ms

Algorithm
rewrite-expression-head
Rules
add-cube-cbrt
*-un-lft-identity
add-sqr-sqrt
add-exp-log
add-cbrt-cube
associate-*r*
times-frac
associate-/r*
add-log-exp
log1p-expm1-u
fma-udef
associate-/r/
pow1
expm1-log1p-u
associate-/l*
div-inv
flip-+
*-commutative
div-exp
flip3-+
distribute-lft-in
frac-2neg
clear-num
cbrt-undiv
distribute-rgt-in
Counts
2 → 38
Calls
2 calls:
Slowest
4.0ms
(/ (* d1 (fma d2 d2 -900)) (+ d2 -30))
2.0ms
(* d1 (fma d2 d2 -900))

series86.0ms

Counts
2 → 6
Calls
2 calls:
Slowest
45.0ms
(* d1 (fma d2 d2 -900))
40.0ms
(/ (* d1 (fma d2 d2 -900)) (+ d2 -30))

simplify390.0ms

Counts
24 → 44
Calls
24 calls:
Slowest
136.0ms
(/ (* (* (* d1 (fma d2 d2 -900)) (* d1 (fma d2 d2 -900))) (* d1 (fma d2 d2 -900))) (* (* (+ d2 -30) (+ d2 -30)) (+ d2 -30)))
81.0ms
(+ (* d2 d2) (- (* -30 -30) (* d2 -30)))
59.0ms
(- (log (* d1 (fma d2 d2 -900))) (log (+ d2 -30)))
24.0ms
(- (* (pow d2 2) d1) (* 900 d1))
20.0ms
(- (* (pow d2 2) d1) (* 900 d1))

prune270.0ms

Pruning

4 alts after pruning (1 fresh and 3 done)

Merged error: 0b

localize5.0ms

Local error

Found 2 expressions with local error:

11.1b
(/ (+ d2 -30) (fma d2 d2 -900))
0.2b
(/ d1 (/ (+ d2 -30) (fma d2 d2 -900)))

rewrite4.0ms

Algorithm
rewrite-expression-head
Rules
18×times-frac
17×add-cube-cbrt
17×*-un-lft-identity
17×add-sqr-sqrt
16×associate-/r*
add-exp-log
add-cbrt-cube
associate-/l*
div-inv
associate-/l/
add-log-exp
log1p-expm1-u
frac-2neg
clear-num
pow1
expm1-log1p-u
flip-+
associate-/r/
div-exp
flip3-+
cbrt-undiv
Counts
2 → 57
Calls
2 calls:
Slowest
3.0ms
(/ (+ d2 -30) (fma d2 d2 -900))
1.0ms
(/ d1 (/ (+ d2 -30) (fma d2 d2 -900)))

series57.0ms

Counts
2 → 6
Calls
2 calls:
Slowest
43.0ms
(/ d1 (/ (+ d2 -30) (fma d2 d2 -900)))
14.0ms
(/ (+ d2 -30) (fma d2 d2 -900))

simplify879.0ms

Counts
47 → 63
Calls
47 calls:
Slowest
243.0ms
(/ (* (* (+ d2 -30) (+ d2 -30)) (+ d2 -30)) (* (* (fma d2 d2 -900) (fma d2 d2 -900)) (fma d2 d2 -900)))
119.0ms
(- (+ (/ 1 d2) (* 900 (/ 1 (pow d2 3)))) (* 30 (/ 1 (pow d2 2))))
112.0ms
(- (+ (/ 1 d2) (* 900 (/ 1 (pow d2 3)))) (* 30 (/ 1 (pow d2 2))))
83.0ms
(- (+ (* 1/27000 (pow d2 2)) 1/30) (* 1/900 d2))
27.0ms
(- (* d2 d2) (* -30 -30))

prune505.0ms

Pruning

4 alts after pruning (0 fresh and 4 done)

Merged error: 0b

regimes89.0ms

Accuracy

0% (0.0b remaining)

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

bsearch1.0ms

end0.0ms

sample1.1s

Algorithm
intervals
Results
803.0ms9028×body80valid
79.0ms47×body1280valid
15.0ms47×body640valid
6.0ms27×body320valid
1.0msbody160valid