\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))));
}



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
Results
Initial program 0.0
Final simplification0.0
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)))