\left(\left(\left(\left(\left(\left(ar \cdot ar - br \cdot br\right) + ag \cdot ag\right) - bg \cdot bg\right) + ab \cdot ab\right) - bb \cdot bb\right) + aa \cdot aa\right) - ba \cdot ba
\left(\left(\left(\left(\left(\left(ar \cdot ar - br \cdot br\right) + ag \cdot ag\right) - bg \cdot bg\right) + ab \cdot ab\right) - bb \cdot bb\right) + aa \cdot aa\right) - ba \cdot ba
double code(double ar, double br, double ag, double bg, double ab, double bb, double aa, double ba) {
return ((double) (((double) (((double) (((double) (((double) (((double) (((double) (((double) (ar * ar)) - ((double) (br * br)))) + ((double) (ag * ag)))) - ((double) (bg * bg)))) + ((double) (ab * ab)))) - ((double) (bb * bb)))) + ((double) (aa * aa)))) - ((double) (ba * ba))));
}
double code(double ar, double br, double ag, double bg, double ab, double bb, double aa, double ba) {
return ((double) (((double) (((double) (((double) (((double) (((double) (((double) (((double) (ar * ar)) - ((double) (br * br)))) + ((double) (ag * ag)))) - ((double) (bg * bg)))) + ((double) (ab * ab)))) - ((double) (bb * bb)))) + ((double) (aa * aa)))) - ((double) (ba * ba))));
}



Bits error versus ar



Bits error versus br



Bits error versus ag



Bits error versus bg



Bits error versus ab



Bits error versus bb



Bits error versus aa



Bits error versus ba
Results
Initial program 0.0
Final simplification0.0
herbie shell --seed 2020153
(FPCore (ar br ag bg ab bb aa ba)
:name "(- (+ (- (+ (- (+ (- (* ar ar) (* br br)) (* ag ag)) (* bg bg)) (* ab ab)) (* bb bb)) (* aa aa)) (* ba ba))"
:precision binary64
(- (+ (- (+ (- (+ (- (* ar ar) (* br br)) (* ag ag)) (* bg bg)) (* ab ab)) (* bb bb)) (* aa aa)) (* ba ba)))