\[\frac{b \cdot c - a \cdot d}{c \cdot c + d \cdot d}\]
\frac{b \cdot c - a \cdot d}{c \cdot c + d \cdot d}
double f(double a, double b, double c, double d) {
        double r91679 = b;
        double r91680 = c;
        double r91681 = r91679 * r91680;
        double r91682 = a;
        double r91683 = d;
        double r91684 = r91682 * r91683;
        double r91685 = r91681 - r91684;
        double r91686 = r91680 * r91680;
        double r91687 = r91683 * r91683;
        double r91688 = r91686 + r91687;
        double r91689 = r91685 / r91688;
        return r91689;
}

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, imag part"
  :precision binary64

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

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

Backtrace

dict-ref: no value for key: 'branch91678 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