Given's Rotation SVD example

Specification

?
\[10^{-150} < \left|x\right| \land \left|x\right| < 10^{+150}\]
\[\begin{array}{l} \\ \sqrt{0.5 \cdot \left(1 + \frac{x}{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}}\right)} \end{array} \]
(FPCore (p x)
 :precision binary64
 (sqrt (* 0.5 (+ 1.0 (/ x (sqrt (+ (* (* 4.0 p) p) (* x x))))))))
double code(double p, double x) {
	return sqrt((0.5 * (1.0 + (x / sqrt((((4.0 * p) * p) + (x * x)))))));
}
real(8) function code(p, x)
    real(8), intent (in) :: p
    real(8), intent (in) :: x
    code = sqrt((0.5d0 * (1.0d0 + (x / sqrt((((4.0d0 * p) * p) + (x * x)))))))
end function
public static double code(double p, double x) {
	return Math.sqrt((0.5 * (1.0 + (x / Math.sqrt((((4.0 * p) * p) + (x * x)))))));
}
def code(p, x):
	return math.sqrt((0.5 * (1.0 + (x / math.sqrt((((4.0 * p) * p) + (x * x)))))))
function code(p, x)
	return sqrt(Float64(0.5 * Float64(1.0 + Float64(x / sqrt(Float64(Float64(Float64(4.0 * p) * p) + Float64(x * x)))))))
end
function tmp = code(p, x)
	tmp = sqrt((0.5 * (1.0 + (x / sqrt((((4.0 * p) * p) + (x * x)))))));
end
code[p_, x_] := N[Sqrt[N[(0.5 * N[(1.0 + N[(x / N[Sqrt[N[(N[(N[(4.0 * p), $MachinePrecision] * p), $MachinePrecision] + N[(x * x), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
\begin{array}{l}

\\
\sqrt{0.5 \cdot \left(1 + \frac{x}{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}}\right)}
\end{array}

Reproduce

?
herbie shell --seed 2024196 
(FPCore (p x)
  :name "Given's Rotation SVD example"
  :precision binary64
  :pre (and (< 1e-150 (fabs x)) (< (fabs x) 1e+150))

  :alt
  (! :herbie-platform default (sqrt (+ 1/2 (/ (copysign 1/2 x) (hypot 1 (/ (* 2 p) x))))))

  (sqrt (* 0.5 (+ 1.0 (/ x (sqrt (+ (* (* 4.0 p) p) (* x x))))))))

Please file a bug report with this information.

Backtrace

vector-set!: contract violation expected: exact-nonnegative-integer? given: -1 argument position: 2nd first argument...: '#(#f #t #f #f #f #f #f #f #f #f #f #f #f #f)LC
backward-pass/home/nightlies/rival/main/eval/adjust.rkt80
rival-machine-adjust/home/nightlies/rival/main/eval/run.rkt980
rival-machine-full/home/nightlies/rival/main/eval/main.rkt160
rival-apply/home/nightlies/rival/main/eval/main.rkt560
(unnamed)/usr/local/racket/collects/racket/contract/private/arrow-val-first.rkt48618
(unnamed)/home/nightlies/herbie/zane-odyssey-timeline/src/sampling.rkt1594
ival-eval/home/nightlies/herbie/zane-odyssey-timeline/src/sampling.rkt1530
<eval-prog-real>/home/nightlies/herbie/zane-odyssey-timeline/src/sampling.rkt1882
predict-errors/home/nightlies/herbie/zane-odyssey-timeline/src/explain.rkt860
explain/home/nightlies/herbie/zane-odyssey-timeline/src/explain.rkt7360
explain!/home/nightlies/herbie/zane-odyssey-timeline/src/mainloop.rkt3390
mutate!/home/nightlies/herbie/zane-odyssey-timeline/src/mainloop.rkt620
run-improve!/home/nightlies/herbie/zane-odyssey-timeline/src/mainloop.rkt480
get-alternatives/report/home/nightlies/herbie/zane-odyssey-timeline/src/sandbox.rkt1670
(unnamed)/home/nightlies/herbie/zane-odyssey-timeline/src/sandbox.rkt2616
(unnamed)/usr/local/racket/share/pkgs/profile-lib/main.rkt4010
profile-thunk/usr/local/racket/share/pkgs/profile-lib/main.rkt90
(unnamed)/usr/local/racket/collects/racket/engine.rkt4224