Average Error: 0.4 → 0.4
Time: 14.0s
Precision: 64
\[\left(\left(-8\right) \cdot M6 + \left(28 \cdot M5 + \left(\left(-56\right) \cdot M4 + \left(70 \cdot M3 + \left(\left(-56\right) \cdot M2 + \left(28 \cdot M1 + \left(\left(-7\right) \cdot M0\right) \cdot M0\right) \cdot M0\right) \cdot M0\right) \cdot M0\right) \cdot M0\right) \cdot M0\right) \cdot M0\]
\[\left(\left(-8\right) \cdot M6 + \left(28 \cdot M5 + \left(\left(-56\right) \cdot M4 + \left(70 \cdot M3 + \left(\left(-56\right) \cdot M2 + \left(28 \cdot M1 + \left(\left(-7\right) \cdot M0\right) \cdot M0\right) \cdot M0\right) \cdot M0\right) \cdot M0\right) \cdot M0\right) \cdot M0\right) \cdot M0\]
\left(\left(-8\right) \cdot M6 + \left(28 \cdot M5 + \left(\left(-56\right) \cdot M4 + \left(70 \cdot M3 + \left(\left(-56\right) \cdot M2 + \left(28 \cdot M1 + \left(\left(-7\right) \cdot M0\right) \cdot M0\right) \cdot M0\right) \cdot M0\right) \cdot M0\right) \cdot M0\right) \cdot M0\right) \cdot M0
\left(\left(-8\right) \cdot M6 + \left(28 \cdot M5 + \left(\left(-56\right) \cdot M4 + \left(70 \cdot M3 + \left(\left(-56\right) \cdot M2 + \left(28 \cdot M1 + \left(\left(-7\right) \cdot M0\right) \cdot M0\right) \cdot M0\right) \cdot M0\right) \cdot M0\right) \cdot M0\right) \cdot M0\right) \cdot M0
double f(double M6, double M5, double M4, double M3, double M2, double M1, double M0) {
        double r65205 = 8.0;
        double r65206 = -r65205;
        double r65207 = M6;
        double r65208 = r65206 * r65207;
        double r65209 = 28.0;
        double r65210 = M5;
        double r65211 = r65209 * r65210;
        double r65212 = 56.0;
        double r65213 = -r65212;
        double r65214 = M4;
        double r65215 = r65213 * r65214;
        double r65216 = 70.0;
        double r65217 = M3;
        double r65218 = r65216 * r65217;
        double r65219 = M2;
        double r65220 = r65213 * r65219;
        double r65221 = M1;
        double r65222 = r65209 * r65221;
        double r65223 = 7.0;
        double r65224 = -r65223;
        double r65225 = M0;
        double r65226 = r65224 * r65225;
        double r65227 = r65226 * r65225;
        double r65228 = r65222 + r65227;
        double r65229 = r65228 * r65225;
        double r65230 = r65220 + r65229;
        double r65231 = r65230 * r65225;
        double r65232 = r65218 + r65231;
        double r65233 = r65232 * r65225;
        double r65234 = r65215 + r65233;
        double r65235 = r65234 * r65225;
        double r65236 = r65211 + r65235;
        double r65237 = r65236 * r65225;
        double r65238 = r65208 + r65237;
        double r65239 = r65238 * r65225;
        return r65239;
}

double f(double M6, double M5, double M4, double M3, double M2, double M1, double M0) {
        double r65240 = 8.0;
        double r65241 = -r65240;
        double r65242 = M6;
        double r65243 = r65241 * r65242;
        double r65244 = 28.0;
        double r65245 = M5;
        double r65246 = r65244 * r65245;
        double r65247 = 56.0;
        double r65248 = -r65247;
        double r65249 = M4;
        double r65250 = r65248 * r65249;
        double r65251 = 70.0;
        double r65252 = M3;
        double r65253 = r65251 * r65252;
        double r65254 = M2;
        double r65255 = r65248 * r65254;
        double r65256 = M1;
        double r65257 = r65244 * r65256;
        double r65258 = 7.0;
        double r65259 = -r65258;
        double r65260 = M0;
        double r65261 = r65259 * r65260;
        double r65262 = r65261 * r65260;
        double r65263 = r65257 + r65262;
        double r65264 = r65263 * r65260;
        double r65265 = r65255 + r65264;
        double r65266 = r65265 * r65260;
        double r65267 = r65253 + r65266;
        double r65268 = r65267 * r65260;
        double r65269 = r65250 + r65268;
        double r65270 = r65269 * r65260;
        double r65271 = r65246 + r65270;
        double r65272 = r65271 * r65260;
        double r65273 = r65243 + r65272;
        double r65274 = r65273 * r65260;
        return r65274;
}

Error

Bits error versus M6

Bits error versus M5

Bits error versus M4

Bits error versus M3

Bits error versus M2

Bits error versus M1

Bits error versus M0

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.4

    \[\left(\left(-8\right) \cdot M6 + \left(28 \cdot M5 + \left(\left(-56\right) \cdot M4 + \left(70 \cdot M3 + \left(\left(-56\right) \cdot M2 + \left(28 \cdot M1 + \left(\left(-7\right) \cdot M0\right) \cdot M0\right) \cdot M0\right) \cdot M0\right) \cdot M0\right) \cdot M0\right) \cdot M0\right) \cdot M0\]
  2. Final simplification0.4

    \[\leadsto \left(\left(-8\right) \cdot M6 + \left(28 \cdot M5 + \left(\left(-56\right) \cdot M4 + \left(70 \cdot M3 + \left(\left(-56\right) \cdot M2 + \left(28 \cdot M1 + \left(\left(-7\right) \cdot M0\right) \cdot M0\right) \cdot M0\right) \cdot M0\right) \cdot M0\right) \cdot M0\right) \cdot M0\right) \cdot M0\]

Reproduce

herbie shell --seed 1 
(FPCore (M6 M5 M4 M3 M2 M1 M0)
  :name "(- 8 * M6 + (28 * M5 + (-56 * M4 + (70 * M3 + (-56 * M2 + (28 * M1 + (- 7 * M0) * M0) * M0) * M0) * M0) * M0) * M0) * M0"
  :precision binary32
  (* (+ (* (- 8) M6) (* (+ (* 28 M5) (* (+ (* (- 56) M4) (* (+ (* 70 M3) (* (+ (* (- 56) M2) (* (+ (* 28 M1) (* (* (- 7) M0) M0)) M0)) M0)) M0)) M0)) M0)) M0))