Average Error: 0.0 → 0.0
Time: 2.5s
Precision: binary64
\[\left(\left(r1 \cdot q1 - r2 \cdot q2\right) - r3 \cdot q3\right) - r4 \cdot q4\]
\[\left(\left(r1 \cdot q1 - r2 \cdot q2\right) - r3 \cdot q3\right) - r4 \cdot q4\]
\left(\left(r1 \cdot q1 - r2 \cdot q2\right) - r3 \cdot q3\right) - r4 \cdot q4
\left(\left(r1 \cdot q1 - r2 \cdot q2\right) - r3 \cdot q3\right) - r4 \cdot q4
double code(double r1, double q1, double r2, double q2, double r3, double q3, double r4, double q4) {
	return ((double) (((double) (((double) (((double) (r1 * q1)) - ((double) (r2 * q2)))) - ((double) (r3 * q3)))) - ((double) (r4 * q4))));
}
double code(double r1, double q1, double r2, double q2, double r3, double q3, double r4, double q4) {
	return ((double) (((double) (((double) (((double) (r1 * q1)) - ((double) (r2 * q2)))) - ((double) (r3 * q3)))) - ((double) (r4 * q4))));
}

Error

Bits error versus r1

Bits error versus q1

Bits error versus r2

Bits error versus q2

Bits error versus r3

Bits error versus q3

Bits error versus r4

Bits error versus q4

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[\left(\left(r1 \cdot q1 - r2 \cdot q2\right) - r3 \cdot q3\right) - r4 \cdot q4\]
  2. Final simplification0.0

    \[\leadsto \left(\left(r1 \cdot q1 - r2 \cdot q2\right) - r3 \cdot q3\right) - r4 \cdot q4\]

Reproduce

herbie shell --seed 2020152 
(FPCore (r1 q1 r2 q2 r3 q3 r4 q4)
  :name "(- (- (- (* r1 q1) (* r2 q2)) (* r3 q3)) (* r4 q4))"
  :precision binary64
  (- (- (- (* r1 q1) (* r2 q2)) (* r3 q3)) (* r4 q4)))