\[\frac{a \cdot c + b \cdot d}{c \cdot c + d \cdot d}\]
\frac{a \cdot c + b \cdot d}{c \cdot c + d \cdot d}
double f(double a, double b, double c, double d) {
        double r68698 = a;
        double r68699 = c;
        double r68700 = r68698 * r68699;
        double r68701 = b;
        double r68702 = d;
        double r68703 = r68701 * r68702;
        double r68704 = r68700 + r68703;
        double r68705 = r68699 * r68699;
        double r68706 = r68702 * r68702;
        double r68707 = r68705 + r68706;
        double r68708 = r68704 / r68707;
        return r68708;
}

Reproduce

Please include this information when filing a bug report:

herbie shell --seed 2019323 +o rules:numerics
(FPCore (a b c d)
  :name "Complex division, real part"
  :precision binary64

  :herbie-target
  (if (< (fabs d) (fabs c)) (/ (+ a (* b (/ d c))) (+ c (* d (/ d c)))) (/ (+ b (* a (/ c d))) (+ d (* c (/ c d)))))

  (/ (+ (* a c) (* b d)) (+ (* c c) (* d d))))

Backtrace

dict-ref: no value for key: 'branch68697 in: '((a . binary64) (b . binary64) (c . binary64) (d . binary64))LC
for-loop/data/pavpan/nightlies/herbie/fix-interface-bugs/src/points.rkt1064
make-sampler/data/pavpan/nightlies/herbie/fix-interface-bugs/src/points.rkt990
prepare-points-intervals/data/pavpan/nightlies/herbie/fix-interface-bugs/src/points.rkt1210
for-loop/data/pavpan/nightlies/herbie/fix-interface-bugs/src/core/regimes.rkt2339
sindices->spoints/data/pavpan/nightlies/herbie/fix-interface-bugs/src/core/regimes.rkt1940
f33/opt/racket-7.2/collects/racket/match/compiler.rkt50740
get-final-combination/data/pavpan/nightlies/herbie/fix-interface-bugs/src/mainloop.rkt3690
(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