Average Error: 52.0 → 52.0
Time: 5.3s
Precision: binary64
\[\frac{\left(\left(\left(\left(27 \cdot {A}^{2}\right) \cdot {D}^{2} + \left(4 \cdot {B}^{3}\right) \cdot D\right) - \left(\left(\left(18 \cdot A\right) \cdot B\right) \cdot C\right) \cdot D\right) + \left(4 \cdot A\right) \cdot {C}^{3}\right) - {B}^{2} \cdot {C}^{2}}{108 \cdot {A}^{4}}\]
\[\frac{\left(\left(\left(\left(27 \cdot {A}^{2}\right) \cdot {D}^{2} + \left(4 \cdot {B}^{3}\right) \cdot D\right) - \left(\left(\left(18 \cdot A\right) \cdot B\right) \cdot C\right) \cdot D\right) + \left(4 \cdot A\right) \cdot {C}^{3}\right) - {B}^{2} \cdot {C}^{2}}{108 \cdot {A}^{4}}\]
\frac{\left(\left(\left(\left(27 \cdot {A}^{2}\right) \cdot {D}^{2} + \left(4 \cdot {B}^{3}\right) \cdot D\right) - \left(\left(\left(18 \cdot A\right) \cdot B\right) \cdot C\right) \cdot D\right) + \left(4 \cdot A\right) \cdot {C}^{3}\right) - {B}^{2} \cdot {C}^{2}}{108 \cdot {A}^{4}}
\frac{\left(\left(\left(\left(27 \cdot {A}^{2}\right) \cdot {D}^{2} + \left(4 \cdot {B}^{3}\right) \cdot D\right) - \left(\left(\left(18 \cdot A\right) \cdot B\right) \cdot C\right) \cdot D\right) + \left(4 \cdot A\right) \cdot {C}^{3}\right) - {B}^{2} \cdot {C}^{2}}{108 \cdot {A}^{4}}
double code(double A, double D, double B, double C) {
	return ((double) (((double) (((double) (((double) (((double) (((double) (((double) (27.0 * ((double) pow(A, 2.0)))) * ((double) pow(D, 2.0)))) + ((double) (((double) (4.0 * ((double) pow(B, 3.0)))) * D)))) - ((double) (((double) (((double) (((double) (18.0 * A)) * B)) * C)) * D)))) + ((double) (((double) (4.0 * A)) * ((double) pow(C, 3.0)))))) - ((double) (((double) pow(B, 2.0)) * ((double) pow(C, 2.0)))))) / ((double) (108.0 * ((double) pow(A, 4.0))))));
}
double code(double A, double D, double B, double C) {
	return ((double) (((double) (((double) (((double) (((double) (((double) (((double) (27.0 * ((double) pow(A, 2.0)))) * ((double) pow(D, 2.0)))) + ((double) (((double) (4.0 * ((double) pow(B, 3.0)))) * D)))) - ((double) (((double) (((double) (((double) (18.0 * A)) * B)) * C)) * D)))) + ((double) (((double) (4.0 * A)) * ((double) pow(C, 3.0)))))) - ((double) (((double) pow(B, 2.0)) * ((double) pow(C, 2.0)))))) / ((double) (108.0 * ((double) pow(A, 4.0))))));
}

Error

Bits error versus A

Bits error versus D

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 52.0

    \[\frac{\left(\left(\left(\left(27 \cdot {A}^{2}\right) \cdot {D}^{2} + \left(4 \cdot {B}^{3}\right) \cdot D\right) - \left(\left(\left(18 \cdot A\right) \cdot B\right) \cdot C\right) \cdot D\right) + \left(4 \cdot A\right) \cdot {C}^{3}\right) - {B}^{2} \cdot {C}^{2}}{108 \cdot {A}^{4}}\]
  2. Final simplification52.0

    \[\leadsto \frac{\left(\left(\left(\left(27 \cdot {A}^{2}\right) \cdot {D}^{2} + \left(4 \cdot {B}^{3}\right) \cdot D\right) - \left(\left(\left(18 \cdot A\right) \cdot B\right) \cdot C\right) \cdot D\right) + \left(4 \cdot A\right) \cdot {C}^{3}\right) - {B}^{2} \cdot {C}^{2}}{108 \cdot {A}^{4}}\]

Reproduce

herbie shell --seed 2020153 
(FPCore (A D B C)
  :name "(/ (- (+ (- (+ (* (* 27 (pow A 2)) (pow D 2)) (* (* 4 (pow B 3)) D)) (* (* (* (* 18 A) B) C) D)) (* (* 4 A) (pow C 3))) (* (pow B 2) (pow C 2))) (* 108 (pow A 4)))"
  :precision binary64
  (/ (- (+ (- (+ (* (* 27.0 (pow A 2.0)) (pow D 2.0)) (* (* 4.0 (pow B 3.0)) D)) (* (* (* (* 18.0 A) B) C) D)) (* (* 4.0 A) (pow C 3.0))) (* (pow B 2.0) (pow C 2.0))) (* 108.0 (pow A 4.0))))