Average Error: 0.0 → 0.0
Time: 14.9s
Precision: binary64
\[\left(\left(\left(\left(\left(\left(\left(total - dr1 \cdot dr1\right) + dg1 \cdot dg1\right) + db1 \cdot db1\right) + da1 \cdot da1\right) + dr2 \cdot dr2\right) + dg2 \cdot dg2\right) + db2 \cdot db2\right) + da2 \cdot da2\]
\[\left(\left(\left(\left(\left(\left(\left(total - dr1 \cdot dr1\right) + dg1 \cdot dg1\right) + db1 \cdot db1\right) + da1 \cdot da1\right) + dr2 \cdot dr2\right) + dg2 \cdot dg2\right) + db2 \cdot db2\right) + da2 \cdot da2\]
\left(\left(\left(\left(\left(\left(\left(total - dr1 \cdot dr1\right) + dg1 \cdot dg1\right) + db1 \cdot db1\right) + da1 \cdot da1\right) + dr2 \cdot dr2\right) + dg2 \cdot dg2\right) + db2 \cdot db2\right) + da2 \cdot da2
\left(\left(\left(\left(\left(\left(\left(total - dr1 \cdot dr1\right) + dg1 \cdot dg1\right) + db1 \cdot db1\right) + da1 \cdot da1\right) + dr2 \cdot dr2\right) + dg2 \cdot dg2\right) + db2 \cdot db2\right) + da2 \cdot da2
double code(double total, double dr1, double dg1, double db1, double da1, double dr2, double dg2, double db2, double da2) {
	return ((double) (((double) (((double) (((double) (((double) (((double) (((double) (((double) (total - ((double) (dr1 * dr1)))) + ((double) (dg1 * dg1)))) + ((double) (db1 * db1)))) + ((double) (da1 * da1)))) + ((double) (dr2 * dr2)))) + ((double) (dg2 * dg2)))) + ((double) (db2 * db2)))) + ((double) (da2 * da2))));
}
double code(double total, double dr1, double dg1, double db1, double da1, double dr2, double dg2, double db2, double da2) {
	return ((double) (((double) (((double) (((double) (((double) (((double) (((double) (((double) (total - ((double) (dr1 * dr1)))) + ((double) (dg1 * dg1)))) + ((double) (db1 * db1)))) + ((double) (da1 * da1)))) + ((double) (dr2 * dr2)))) + ((double) (dg2 * dg2)))) + ((double) (db2 * db2)))) + ((double) (da2 * da2))));
}

Error

Bits error versus total

Bits error versus dr1

Bits error versus dg1

Bits error versus db1

Bits error versus da1

Bits error versus dr2

Bits error versus dg2

Bits error versus db2

Bits error versus da2

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[\left(\left(\left(\left(\left(\left(\left(total - dr1 \cdot dr1\right) + dg1 \cdot dg1\right) + db1 \cdot db1\right) + da1 \cdot da1\right) + dr2 \cdot dr2\right) + dg2 \cdot dg2\right) + db2 \cdot db2\right) + da2 \cdot da2\]
  2. Final simplification0.0

    \[\leadsto \left(\left(\left(\left(\left(\left(\left(total - dr1 \cdot dr1\right) + dg1 \cdot dg1\right) + db1 \cdot db1\right) + da1 \cdot da1\right) + dr2 \cdot dr2\right) + dg2 \cdot dg2\right) + db2 \cdot db2\right) + da2 \cdot da2\]

Reproduce

herbie shell --seed 2020153 
(FPCore (total dr1 dg1 db1 da1 dr2 dg2 db2 da2)
  :name "(+ (+ (+ (+ (+ (+ (+ (- total (* dr1 dr1)) (* dg1 dg1)) (* db1 db1)) (* da1 da1)) (* dr2 dr2)) (* dg2 dg2)) (* db2 db2)) (* da2 da2))"
  :precision binary64
  (+ (+ (+ (+ (+ (+ (+ (- total (* dr1 dr1)) (* dg1 dg1)) (* db1 db1)) (* da1 da1)) (* dr2 dr2)) (* dg2 dg2)) (* db2 db2)) (* da2 da2)))