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

Error

Bits error versus r1

Bits error versus q2

Bits error versus r2

Bits error versus q1

Bits error versus r3

Bits error versus q4

Bits error versus r4

Bits error versus q3

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

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

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

Reproduce

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