\[wj - \frac{wj \cdot e^{wj} - x}{e^{wj} + wj \cdot e^{wj}}\]
wj - \frac{wj \cdot e^{wj} - x}{e^{wj} + wj \cdot e^{wj}}
double code(double wj, double x) {
	return ((double) (wj - ((double) (((double) (((double) (wj * ((double) exp(wj)))) - x)) / ((double) (((double) exp(wj)) + ((double) (wj * ((double) exp(wj))))))))));
}

Reproduce

Please include this information when filing a bug report:

herbie shell --seed 2020128 
(FPCore (wj x)
  :name "Jmat.Real.lambertw, newton loop step"
  :precision binary64

  :herbie-target
  (- wj (- (/ wj (+ wj 1.0)) (/ x (+ (exp wj) (* wj (exp wj))))))

  (- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))))

Backtrace

random-bits: contract violation expected: Positive-Integer given: 0LC
random-ranges/data/pavpan/nightlies/herbie/separate-biginterval/src/common.rkt1390
sample-multi-bounded/data/pavpan/nightlies/herbie/separate-biginterval/src/points.rkt140
(unnamed)/data/pavpan/nightlies/herbie/separate-biginterval/src/points.rkt1276
prepare-points-intervals/data/pavpan/nightlies/herbie/separate-biginterval/src/points.rkt1340
pred/data/pavpan/nightlies/herbie/separate-biginterval/src/core/regimes.rkt2004
for-loop/data/pavpan/nightlies/herbie/separate-biginterval/src/core/regimes.rkt2309
sindices->spoints/data/pavpan/nightlies/herbie/separate-biginterval/src/core/regimes.rkt1900
f37unknown
get-final-combination/data/pavpan/nightlies/herbie/separate-biginterval/src/mainloop.rkt3900
.../more-scheme.rkt:261:28unknown
run/opt/racket-7.5/share/pkgs/profile-lib/main.rkt392
profile-thunk16/opt/racket-7.5/share/pkgs/profile-lib/main.rkt90
(unnamed)/opt/racket-7.5/collects/racket/private/more-scheme.rkt26128

Reproduce

herbie shell --seed 2020128 
(FPCore (wj x)
  :name "Jmat.Real.lambertw, newton loop step"
  :precision binary64

  :herbie-target
  (- wj (- (/ wj (+ wj 1.0)) (/ x (+ (exp wj) (* wj (exp wj))))))

  (- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))))