\[\left(x.re \cdot x.re - x.im \cdot x.im\right) \cdot x.re - \left(x.re \cdot x.im + x.im \cdot x.re\right) \cdot x.im\]
\left(x.re \cdot x.re - x.im \cdot x.im\right) \cdot x.re - \left(x.re \cdot x.im + x.im \cdot x.re\right) \cdot x.im
double f(double x_re, double x_im) {
        double r8404 = x_re;
        double r8405 = r8404 * r8404;
        double r8406 = x_im;
        double r8407 = r8406 * r8406;
        double r8408 = r8405 - r8407;
        double r8409 = r8408 * r8404;
        double r8410 = r8404 * r8406;
        double r8411 = r8406 * r8404;
        double r8412 = r8410 + r8411;
        double r8413 = r8412 * r8406;
        double r8414 = r8409 - r8413;
        return r8414;
}

Reproduce

Please include this information when filing a bug report:

herbie shell --seed 2019194 
(FPCore (x.re x.im)
  :name "math.cube on complex, real part"

  :herbie-target
  (+ (* (* x.re x.re) (- x.re x.im)) (* (* x.re x.im) (- x.re (* 3.0 x.im))))

  (- (* (- (* x.re x.re) (* x.im x.im)) x.re) (* (+ (* x.re x.im) (* x.im x.re)) x.im)))

Backtrace

result arity mismatch; expected number of values not received expected: 2 received: 1 in: local-binding form values...: 0LC
loop/data/pavpan/nightlies/herbie/various-cleanup/src/core/extraction.rkt252
(unnamed)/data/pavpan/nightlies/herbie/various-cleanup/src/core/simplify.rkt260
simplify!/data/pavpan/nightlies/herbie/various-cleanup/src/mainloop.rkt2200
run-improve47/data/pavpan/nightlies/herbie/various-cleanup/src/mainloop.rkt3420
(unnamed)/opt/racket-7.0/collects/racket/private/more-scheme.rkt26128
run/opt/racket-7.0/share/pkgs/profile-lib/main.rkt392
profile-thunk16/opt/racket-7.0/share/pkgs/profile-lib/main.rkt90
(unnamed)/opt/racket-7.0/collects/racket/private/more-scheme.rkt26128