Average Error: 0 → 0
Time: 27.9s
Precision: 64
\[\Re(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(-1.0 + 1.0 i\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) + \left(\left(\left(\left(\left(\left(6.0 + 0.0 i\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right)\right) + \left(\left(\left(\left(\left(15.0 + 0.0 i\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right)\right) + \left(\left(\left(\left(20.0 + 0.0 i\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right)\right) + \left(\left(\left(15.0 + 0.0 i\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right)\right) + \left(\left(6.0 + 0.0 i\right) \cdot \left(-1.0 + 1.0 i\right)\right)\right) + \left(1.0 + 0.0 i\right)\right))\]
\[\Re(\left(\left(\left(-1.0 \cdot 6.0 - 0.0 \cdot 1.0\right) + \mathsf{fma}\left(0.0, -1.0, 6.0 \cdot 1.0\right) i\right) + \left(\left(\left(1.0 + \left(\left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) \cdot 15.0 - \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right) \cdot 0.0\right)\right) + \left(\mathsf{fma}\left(15.0, 1.0 \cdot -1.0 + 1.0 \cdot -1.0, 0.0 \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right)\right) + 0.0\right) i\right) + \left(\left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right) + \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right) i\right) \cdot \left(\left(\left(\left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right) + \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right)\right) \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right) - \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right)\right) + \left(\left(-1.0 \cdot 6.0 - 0.0 \cdot 1.0\right) \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) - \mathsf{fma}\left(0.0, -1.0, 6.0 \cdot 1.0\right) \cdot \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right)\right)\right) + \left(\left(-1.0 \cdot 20.0 - 0.0 \cdot 1.0\right) + \left(\left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) \cdot 15.0 - \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right) \cdot 0.0\right)\right)\right) + \left(\left(\left(\left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right) \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) + \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right) \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right)\right) + \mathsf{fma}\left(-1.0 \cdot 6.0 - 0.0 \cdot 1.0, 1.0 \cdot -1.0 + 1.0 \cdot -1.0, \mathsf{fma}\left(0.0, -1.0, 6.0 \cdot 1.0\right) \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right)\right)\right) + \left(\mathsf{fma}\left(20.0, 1.0, 0.0 \cdot -1.0\right) + \mathsf{fma}\left(15.0, 1.0 \cdot -1.0 + 1.0 \cdot -1.0, 0.0 \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right)\right)\right)\right) i\right)\right)\right)\right))\]
\Re(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(-1.0 + 1.0 i\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) + \left(\left(\left(\left(\left(\left(6.0 + 0.0 i\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right)\right) + \left(\left(\left(\left(\left(15.0 + 0.0 i\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right)\right) + \left(\left(\left(\left(20.0 + 0.0 i\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right)\right) + \left(\left(\left(15.0 + 0.0 i\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right)\right) + \left(\left(6.0 + 0.0 i\right) \cdot \left(-1.0 + 1.0 i\right)\right)\right) + \left(1.0 + 0.0 i\right)\right))
\Re(\left(\left(\left(-1.0 \cdot 6.0 - 0.0 \cdot 1.0\right) + \mathsf{fma}\left(0.0, -1.0, 6.0 \cdot 1.0\right) i\right) + \left(\left(\left(1.0 + \left(\left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) \cdot 15.0 - \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right) \cdot 0.0\right)\right) + \left(\mathsf{fma}\left(15.0, 1.0 \cdot -1.0 + 1.0 \cdot -1.0, 0.0 \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right)\right) + 0.0\right) i\right) + \left(\left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right) + \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right) i\right) \cdot \left(\left(\left(\left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right) + \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right)\right) \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right) - \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right)\right) + \left(\left(-1.0 \cdot 6.0 - 0.0 \cdot 1.0\right) \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) - \mathsf{fma}\left(0.0, -1.0, 6.0 \cdot 1.0\right) \cdot \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right)\right)\right) + \left(\left(-1.0 \cdot 20.0 - 0.0 \cdot 1.0\right) + \left(\left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) \cdot 15.0 - \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right) \cdot 0.0\right)\right)\right) + \left(\left(\left(\left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right) \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) + \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right) \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right)\right) + \mathsf{fma}\left(-1.0 \cdot 6.0 - 0.0 \cdot 1.0, 1.0 \cdot -1.0 + 1.0 \cdot -1.0, \mathsf{fma}\left(0.0, -1.0, 6.0 \cdot 1.0\right) \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right)\right)\right) + \left(\mathsf{fma}\left(20.0, 1.0, 0.0 \cdot -1.0\right) + \mathsf{fma}\left(15.0, 1.0 \cdot -1.0 + 1.0 \cdot -1.0, 0.0 \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right)\right)\right)\right) i\right)\right)\right)\right))
double f() {
        double r3470048 = -1.0;
        double r3470049 = 1.0;
        double r3470050 = /* ERROR: no complex support in C */;
        double r3470051 = r3470050 * r3470050;
        double r3470052 = r3470051 * r3470050;
        double r3470053 = r3470052 * r3470050;
        double r3470054 = r3470053 * r3470050;
        double r3470055 = r3470054 * r3470050;
        double r3470056 = 6.0;
        double r3470057 = 0.0;
        double r3470058 = /* ERROR: no complex support in C */;
        double r3470059 = r3470058 * r3470050;
        double r3470060 = r3470059 * r3470050;
        double r3470061 = r3470060 * r3470050;
        double r3470062 = r3470061 * r3470050;
        double r3470063 = r3470062 * r3470050;
        double r3470064 = r3470055 + r3470063;
        double r3470065 = 15.0;
        double r3470066 = /* ERROR: no complex support in C */;
        double r3470067 = r3470066 * r3470050;
        double r3470068 = r3470067 * r3470050;
        double r3470069 = r3470068 * r3470050;
        double r3470070 = r3470069 * r3470050;
        double r3470071 = r3470064 + r3470070;
        double r3470072 = 20.0;
        double r3470073 = /* ERROR: no complex support in C */;
        double r3470074 = r3470073 * r3470050;
        double r3470075 = r3470074 * r3470050;
        double r3470076 = r3470075 * r3470050;
        double r3470077 = r3470071 + r3470076;
        double r3470078 = r3470077 + r3470068;
        double r3470079 = r3470078 + r3470059;
        double r3470080 = /* ERROR: no complex support in C */;
        double r3470081 = r3470079 + r3470080;
        double r3470082 = /* ERROR: no complex support in C */;
        return r3470082;
}

double f() {
        double r3470083 = -1.0;
        double r3470084 = 6.0;
        double r3470085 = r3470083 * r3470084;
        double r3470086 = 0.0;
        double r3470087 = 1.0;
        double r3470088 = r3470086 * r3470087;
        double r3470089 = r3470085 - r3470088;
        double r3470090 = r3470084 * r3470087;
        double r3470091 = fma(r3470086, r3470083, r3470090);
        double r3470092 = /* ERROR: no complex support in C */;
        double r3470093 = r3470087 + r3470083;
        double r3470094 = r3470083 - r3470087;
        double r3470095 = r3470093 * r3470094;
        double r3470096 = 15.0;
        double r3470097 = r3470095 * r3470096;
        double r3470098 = r3470087 * r3470083;
        double r3470099 = r3470098 + r3470098;
        double r3470100 = r3470099 * r3470086;
        double r3470101 = r3470097 - r3470100;
        double r3470102 = r3470087 + r3470101;
        double r3470103 = r3470086 * r3470095;
        double r3470104 = fma(r3470096, r3470099, r3470103);
        double r3470105 = r3470104 + r3470086;
        double r3470106 = /* ERROR: no complex support in C */;
        double r3470107 = /* ERROR: no complex support in C */;
        double r3470108 = r3470095 + r3470099;
        double r3470109 = r3470095 - r3470099;
        double r3470110 = r3470108 * r3470109;
        double r3470111 = r3470089 * r3470095;
        double r3470112 = r3470091 * r3470099;
        double r3470113 = r3470111 - r3470112;
        double r3470114 = r3470110 + r3470113;
        double r3470115 = 20.0;
        double r3470116 = r3470083 * r3470115;
        double r3470117 = r3470116 - r3470088;
        double r3470118 = r3470117 + r3470101;
        double r3470119 = r3470114 + r3470118;
        double r3470120 = r3470099 * r3470095;
        double r3470121 = r3470120 + r3470120;
        double r3470122 = r3470091 * r3470095;
        double r3470123 = fma(r3470089, r3470099, r3470122);
        double r3470124 = r3470121 + r3470123;
        double r3470125 = r3470086 * r3470083;
        double r3470126 = fma(r3470115, r3470087, r3470125);
        double r3470127 = r3470126 + r3470104;
        double r3470128 = r3470124 + r3470127;
        double r3470129 = /* ERROR: no complex support in C */;
        double r3470130 = r3470107 * r3470129;
        double r3470131 = r3470106 + r3470130;
        double r3470132 = r3470092 + r3470131;
        double r3470133 = /* ERROR: no complex support in C */;
        return r3470133;
}

Error

Derivation

  1. Initial program 0

    \[\Re(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(-1.0 + 1.0 i\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) + \left(\left(\left(\left(\left(\left(6.0 + 0.0 i\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right)\right) + \left(\left(\left(\left(\left(15.0 + 0.0 i\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right)\right) + \left(\left(\left(\left(20.0 + 0.0 i\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right)\right) + \left(\left(\left(15.0 + 0.0 i\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right)\right) + \left(\left(6.0 + 0.0 i\right) \cdot \left(-1.0 + 1.0 i\right)\right)\right) + \left(1.0 + 0.0 i\right)\right))\]
  2. Simplified0

    \[\leadsto \color{blue}{\Re(\left(\left(\left(\left(1.0 + \left(15.0 \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) - 0.0 \cdot \left(-1.0 \cdot 1.0 + -1.0 \cdot 1.0\right)\right)\right) + \left(0.0 + \mathsf{fma}\left(15.0, -1.0 \cdot 1.0 + -1.0 \cdot 1.0, \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) \cdot 0.0\right)\right) i\right) + \left(\left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right) + \left(-1.0 \cdot 1.0 + -1.0 \cdot 1.0\right) i\right) \cdot \left(\left(\left(\left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right) + \left(-1.0 \cdot 1.0 + -1.0 \cdot 1.0\right)\right) \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right) - \left(-1.0 \cdot 1.0 + -1.0 \cdot 1.0\right)\right) + \left(\left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) \cdot \left(-1.0 \cdot 6.0 - 1.0 \cdot 0.0\right) - \left(-1.0 \cdot 1.0 + -1.0 \cdot 1.0\right) \cdot \mathsf{fma}\left(0.0, -1.0, 6.0 \cdot 1.0\right)\right)\right) + \left(\left(15.0 \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) - 0.0 \cdot \left(-1.0 \cdot 1.0 + -1.0 \cdot 1.0\right)\right) + \left(-1.0 \cdot 20.0 - 1.0 \cdot 0.0\right)\right)\right) + \left(\left(\left(\left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) \cdot \left(-1.0 \cdot 1.0 + -1.0 \cdot 1.0\right) + \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) \cdot \left(-1.0 \cdot 1.0 + -1.0 \cdot 1.0\right)\right) + \mathsf{fma}\left(-1.0 \cdot 6.0 - 1.0 \cdot 0.0, -1.0 \cdot 1.0 + -1.0 \cdot 1.0, \mathsf{fma}\left(0.0, -1.0, 6.0 \cdot 1.0\right) \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right)\right)\right) + \left(\mathsf{fma}\left(15.0, -1.0 \cdot 1.0 + -1.0 \cdot 1.0, \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) \cdot 0.0\right) + \mathsf{fma}\left(20.0, 1.0, 0.0 \cdot -1.0\right)\right)\right) i\right)\right)\right) + \left(\left(-1.0 \cdot 6.0 - 1.0 \cdot 0.0\right) + \mathsf{fma}\left(0.0, -1.0, 6.0 \cdot 1.0\right) i\right)\right))}\]
  3. Final simplification0

    \[\leadsto \Re(\left(\left(\left(-1.0 \cdot 6.0 - 0.0 \cdot 1.0\right) + \mathsf{fma}\left(0.0, -1.0, 6.0 \cdot 1.0\right) i\right) + \left(\left(\left(1.0 + \left(\left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) \cdot 15.0 - \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right) \cdot 0.0\right)\right) + \left(\mathsf{fma}\left(15.0, 1.0 \cdot -1.0 + 1.0 \cdot -1.0, 0.0 \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right)\right) + 0.0\right) i\right) + \left(\left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right) + \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right) i\right) \cdot \left(\left(\left(\left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right) + \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right)\right) \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right) - \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right)\right) + \left(\left(-1.0 \cdot 6.0 - 0.0 \cdot 1.0\right) \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) - \mathsf{fma}\left(0.0, -1.0, 6.0 \cdot 1.0\right) \cdot \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right)\right)\right) + \left(\left(-1.0 \cdot 20.0 - 0.0 \cdot 1.0\right) + \left(\left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) \cdot 15.0 - \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right) \cdot 0.0\right)\right)\right) + \left(\left(\left(\left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right) \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) + \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right) \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right)\right) + \mathsf{fma}\left(-1.0 \cdot 6.0 - 0.0 \cdot 1.0, 1.0 \cdot -1.0 + 1.0 \cdot -1.0, \mathsf{fma}\left(0.0, -1.0, 6.0 \cdot 1.0\right) \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right)\right)\right) + \left(\mathsf{fma}\left(20.0, 1.0, 0.0 \cdot -1.0\right) + \mathsf{fma}\left(15.0, 1.0 \cdot -1.0 + 1.0 \cdot -1.0, 0.0 \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right)\right)\right)\right) i\right)\right)\right)\right))\]

Reproduce

herbie shell --seed 2019165 +o rules:numerics
(FPCore ()
  :name "3.9.1 real part (p56)"
  (re (+.c (+.c (+.c (+.c (+.c (+.c (*.c (*.c (*.c (*.c (*.c (complex -1.0 1.0) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0)) (*.c (*.c (*.c (*.c (*.c (complex 6.0 0.0) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0))) (*.c (*.c (*.c (*.c (complex 15.0 0.0) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0))) (*.c (*.c (*.c (complex 20.0 0.0) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0))) (*.c (*.c (complex 15.0 0.0) (complex -1.0 1.0)) (complex -1.0 1.0))) (*.c (complex 6.0 0.0) (complex -1.0 1.0))) (complex 1.0 0.0))))