Average Error: 0.2 → 0.0
Time: 4.3s
Precision: binary64
Cost: 320
\[\left(d1 \cdot 10 + d1 \cdot d2\right) + d1 \cdot 20\]
\[d1 \cdot \left(d2 + 30\right)\]
\left(d1 \cdot 10 + d1 \cdot d2\right) + d1 \cdot 20
d1 \cdot \left(d2 + 30\right)
(FPCore (d1 d2) :precision binary64 (+ (+ (* d1 10.0) (* d1 d2)) (* d1 20.0)))
(FPCore (d1 d2) :precision binary64 (* d1 (+ d2 30.0)))
double code(double d1, double d2) {
	return ((d1 * 10.0) + (d1 * d2)) + (d1 * 20.0);
}
double code(double d1, double d2) {
	return d1 * (d2 + 30.0);
}

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)\]

Alternatives

Alternative 1
Error31.9
Cost13504
\[\sqrt{d1 \cdot \left(d2 + 30\right)} \cdot \sqrt{d1 \cdot \left(d2 + 30\right)}\]
Alternative 2
Error39.2
Cost13184
\[\sqrt[3]{{\left(d1 \cdot \left(d2 + 30\right)\right)}^{3}}\]
Alternative 3
Error18.7
Cost7424
\[\frac{d1 \cdot \left({d2}^{3} + 27000\right)}{d2 \cdot d2 + \left(900 - d2 \cdot 30\right)}\]
Alternative 4
Error21.4
Cost1344
\[\frac{d1 \cdot \left(\left(d2 \cdot d2\right) \cdot \left(d2 \cdot d2\right) - 810000\right)}{\left(d2 - 30\right) \cdot \left(d2 \cdot d2 + 900\right)}\]
Alternative 5
Error11.1
Cost704
\[\frac{d1}{\frac{d2 - 30}{-900 + d2 \cdot d2}}\]
Alternative 6
Error0.2
Cost704
\[\left(d1 \cdot 10 + d1 \cdot d2\right) + d1 \cdot 20\]
Alternative 7
Error13.4
Cost704
\[\frac{d1 \cdot \left(-900 + d2 \cdot d2\right)}{d2 - 30}\]
Alternative 8
Error0.2
Cost576
\[d1 \cdot 20 + d1 \cdot \left(d2 + 10\right)\]
Alternative 9
Error27.3
Cost448
\[\frac{d1 \cdot -900}{d2 - 30}\]
Alternative 10
Error0.2
Cost448
\[\frac{d1}{\frac{1}{d2 + 30}}\]
Alternative 11
Error0.0
Cost448
\[d1 \cdot d2 + d1 \cdot 30\]
Alternative 12
Error27.1
Cost192
\[\frac{d1}{0.03333333333333333}\]
Alternative 13
Error35.8
Cost192
\[d1 \cdot d2\]
Alternative 14
Error27.0
Cost192
\[d1 \cdot 30\]
Alternative 15
Error61.7
Cost64
\[1\]
Alternative 16
Error61.8
Cost64
\[0\]
Alternative 17
Error61.8
Cost64
\[-1\]

Error

Derivation

  1. Initial program 0.2

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

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

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

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

Reproduce

herbie shell --seed 2021022 
(FPCore (d1 d2)
  :name "FastMath test2"
  :precision binary64

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

  (+ (+ (* d1 10.0) (* d1 d2)) (* d1 20.0)))