Average Error: 53.7 → 53.7
Time: 5.4s
Precision: binary64
\[\frac{\left(\left(\left(\left(\left(\left(\left(q \cdot q\right) \cdot q\right) \cdot f3 - \left(\left(\left(3 \cdot q\right) \cdot q\right) \cdot f2\right) \cdot q1\right) + \left(\left(\left(6 \cdot q\right) \cdot f1\right) \cdot q1\right) \cdot q1\right) - \left(\left(\left(6 \cdot f\right) \cdot q1\right) \cdot q1\right) \cdot q1\right) - \left(\left(f \cdot q\right) \cdot q\right) \cdot q3\right) - \left(\left(3 \cdot q\right) \cdot q\right) \cdot f1\right) - \left(\left(\left(2 \cdot f\right) \cdot q\right) \cdot q1\right) \cdot q2}{\left(q \cdot q\right) \cdot \left(q \cdot q\right)}\]
\[\frac{\left(\left(q \cdot q\right) \cdot q\right) \cdot f3}{{q}^{4}} - \frac{q1 \cdot \left(\left(\left(3 \cdot q\right) \cdot q\right) \cdot f2 - \left(q1 \cdot 6\right) \cdot \left(q \cdot f1 - f \cdot q1\right)\right) + \left(\left(\left(f \cdot q\right) \cdot q\right) \cdot q3 + \left(\left(\left(3 \cdot q\right) \cdot q\right) \cdot f1 + \left(\left(\left(2 \cdot f\right) \cdot q\right) \cdot q1\right) \cdot q2\right)\right)}{{q}^{4}}\]
\frac{\left(\left(\left(\left(\left(\left(\left(q \cdot q\right) \cdot q\right) \cdot f3 - \left(\left(\left(3 \cdot q\right) \cdot q\right) \cdot f2\right) \cdot q1\right) + \left(\left(\left(6 \cdot q\right) \cdot f1\right) \cdot q1\right) \cdot q1\right) - \left(\left(\left(6 \cdot f\right) \cdot q1\right) \cdot q1\right) \cdot q1\right) - \left(\left(f \cdot q\right) \cdot q\right) \cdot q3\right) - \left(\left(3 \cdot q\right) \cdot q\right) \cdot f1\right) - \left(\left(\left(2 \cdot f\right) \cdot q\right) \cdot q1\right) \cdot q2}{\left(q \cdot q\right) \cdot \left(q \cdot q\right)}
\frac{\left(\left(q \cdot q\right) \cdot q\right) \cdot f3}{{q}^{4}} - \frac{q1 \cdot \left(\left(\left(3 \cdot q\right) \cdot q\right) \cdot f2 - \left(q1 \cdot 6\right) \cdot \left(q \cdot f1 - f \cdot q1\right)\right) + \left(\left(\left(f \cdot q\right) \cdot q\right) \cdot q3 + \left(\left(\left(3 \cdot q\right) \cdot q\right) \cdot f1 + \left(\left(\left(2 \cdot f\right) \cdot q\right) \cdot q1\right) \cdot q2\right)\right)}{{q}^{4}}
double code(double q, double f3, double f2, double q1, double f1, double f, double q3, double q2) {
	return ((double) (((double) (((double) (((double) (((double) (((double) (((double) (((double) (((double) (((double) (q * q)) * q)) * f3)) - ((double) (((double) (((double) (((double) (3.0 * q)) * q)) * f2)) * q1)))) + ((double) (((double) (((double) (((double) (6.0 * q)) * f1)) * q1)) * q1)))) - ((double) (((double) (((double) (((double) (6.0 * f)) * q1)) * q1)) * q1)))) - ((double) (((double) (((double) (f * q)) * q)) * q3)))) - ((double) (((double) (((double) (3.0 * q)) * q)) * f1)))) - ((double) (((double) (((double) (((double) (2.0 * f)) * q)) * q1)) * q2)))) / ((double) (((double) (q * q)) * ((double) (q * q))))));
}
double code(double q, double f3, double f2, double q1, double f1, double f, double q3, double q2) {
	return ((double) (((double) (((double) (((double) (((double) (q * q)) * q)) * f3)) / ((double) pow(q, 4.0)))) - ((double) (((double) (((double) (q1 * ((double) (((double) (((double) (((double) (3.0 * q)) * q)) * f2)) - ((double) (((double) (q1 * 6.0)) * ((double) (((double) (q * f1)) - ((double) (f * q1)))))))))) + ((double) (((double) (((double) (((double) (f * q)) * q)) * q3)) + ((double) (((double) (((double) (((double) (3.0 * q)) * q)) * f1)) + ((double) (((double) (((double) (((double) (2.0 * f)) * q)) * q1)) * q2)))))))) / ((double) pow(q, 4.0))))));
}

Error

Bits error versus q

Bits error versus f3

Bits error versus f2

Bits error versus q1

Bits error versus f1

Bits error versus f

Bits error versus q3

Bits error versus q2

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 53.7

    \[\frac{\left(\left(\left(\left(\left(\left(\left(q \cdot q\right) \cdot q\right) \cdot f3 - \left(\left(\left(3 \cdot q\right) \cdot q\right) \cdot f2\right) \cdot q1\right) + \left(\left(\left(6 \cdot q\right) \cdot f1\right) \cdot q1\right) \cdot q1\right) - \left(\left(\left(6 \cdot f\right) \cdot q1\right) \cdot q1\right) \cdot q1\right) - \left(\left(f \cdot q\right) \cdot q\right) \cdot q3\right) - \left(\left(3 \cdot q\right) \cdot q\right) \cdot f1\right) - \left(\left(\left(2 \cdot f\right) \cdot q\right) \cdot q1\right) \cdot q2}{\left(q \cdot q\right) \cdot \left(q \cdot q\right)}\]
  2. Simplified53.7

    \[\leadsto \color{blue}{\frac{\left(\left(q \cdot q\right) \cdot q\right) \cdot f3}{{q}^{4}} - \frac{q1 \cdot \left(\left(\left(3 \cdot q\right) \cdot q\right) \cdot f2 - \left(q1 \cdot 6\right) \cdot \left(q \cdot f1 - f \cdot q1\right)\right) + \left(\left(\left(f \cdot q\right) \cdot q\right) \cdot q3 + \left(\left(\left(3 \cdot q\right) \cdot q\right) \cdot f1 + \left(\left(\left(2 \cdot f\right) \cdot q\right) \cdot q1\right) \cdot q2\right)\right)}{{q}^{4}}}\]
  3. Final simplification53.7

    \[\leadsto \frac{\left(\left(q \cdot q\right) \cdot q\right) \cdot f3}{{q}^{4}} - \frac{q1 \cdot \left(\left(\left(3 \cdot q\right) \cdot q\right) \cdot f2 - \left(q1 \cdot 6\right) \cdot \left(q \cdot f1 - f \cdot q1\right)\right) + \left(\left(\left(f \cdot q\right) \cdot q\right) \cdot q3 + \left(\left(\left(3 \cdot q\right) \cdot q\right) \cdot f1 + \left(\left(\left(2 \cdot f\right) \cdot q\right) \cdot q1\right) \cdot q2\right)\right)}{{q}^{4}}\]

Reproduce

herbie shell --seed 2020152 
(FPCore (q f3 f2 q1 f1 f q3 q2)
  :name "(/ (- (- (- (- (+ (- (* (* (* q q) q) f3) (* (* (* (* 3.0 q) q) f2) q1)) (* (* (* (* 6.0 q) f1) q1) q1)) (* (* (* (* 6.0 f) q1) q1) q1)) (* (* (* f q) q) q3)) (* (* (* 3.0 q) q) f1)) (* (* (* (* 2.0 f) q) q1) q2)) (* (* q q) (* q q)))"
  :precision binary64
  (/ (- (- (- (- (+ (- (* (* (* q q) q) f3) (* (* (* (* 3.0 q) q) f2) q1)) (* (* (* (* 6.0 q) f1) q1) q1)) (* (* (* (* 6.0 f) q1) q1) q1)) (* (* (* f q) q) q3)) (* (* (* 3.0 q) q) f1)) (* (* (* (* 2.0 f) q) q1) q2)) (* (* q q) (* q q))))