\[\left(d1 \cdot 3 + d1 \cdot d2\right) + d1 \cdot d3\]
\left(d1 \cdot 3 + d1 \cdot d2\right) + d1 \cdot d3
double f(double d1, double d2, double d3) {
        double r56682 = d1;
        double r56683 = 3.0;
        double r56684 = r56682 * r56683;
        double r56685 = d2;
        double r56686 = r56682 * r56685;
        double r56687 = r56684 + r56686;
        double r56688 = d3;
        double r56689 = r56682 * r56688;
        double r56690 = r56687 + r56689;
        return r56690;
}

Reproduce

Please include this information when filing a bug report:

herbie shell --seed 2019315 +o rules:numerics
(FPCore (d1 d2 d3)
  :name "FastMath test3"
  :precision binary64

  :herbie-target
  (* d1 (+ (+ 3 d2) d3))

  (+ (+ (* d1 3) (* d1 d2)) (* d1 d3)))

Backtrace

argmin: contract violation expected: (and/c list? (not/c empty?)) given: '() argument position: 2nd other arguments...: #<procedure:composed>LC
argmin/opt/racket-7.2/collects/racket/list.rkt7650
infer-splitpoints/data/pavpan/nightlies/herbie/fix-interface-bugs/src/core/regimes.rkt340
get-final-combination/data/pavpan/nightlies/herbie/fix-interface-bugs/src/mainloop.rkt3700
(unnamed)/opt/racket-7.2/collects/racket/private/more-scheme.rkt26128
run/opt/racket-7.2/share/pkgs/profile-lib/main.rkt392
profile-thunk16/opt/racket-7.2/share/pkgs/profile-lib/main.rkt90
(unnamed)/opt/racket-7.2/collects/racket/private/more-scheme.rkt26128