(FPCore (w h dX.u dX.v dY.u dY.v maxAniso) :precision binary32 (let* ((t_0 (* (floor h) dX.v)) (t_1 (* (floor w) dY.u)) (t_2 (* (floor w) dX.u)) (t_3 (+ (* t_2 t_2) (* t_0 t_0))) (t_4 (* (floor h) dY.v)) (t_5 (+ (* t_1 t_1) (* t_4 t_4))) (t_6 (/ 1.0 (sqrt (fmax t_3 t_5))))) (if (>= t_3 t_5) (* t_6 t_0) (* t_6 t_4))))
float code(float w, float h, float dX_46_u, float dX_46_v, float dY_46_u, float dY_46_v, float maxAniso) { float t_0 = floorf(h) * dX_46_v; float t_1 = floorf(w) * dY_46_u; float t_2 = floorf(w) * dX_46_u; float t_3 = (t_2 * t_2) + (t_0 * t_0); float t_4 = floorf(h) * dY_46_v; float t_5 = (t_1 * t_1) + (t_4 * t_4); float t_6 = 1.0f / sqrtf(fmaxf(t_3, t_5)); float tmp; if (t_3 >= t_5) { tmp = t_6 * t_0; } else { tmp = t_6 * t_4; } return tmp; }
function code(w, h, dX_46_u, dX_46_v, dY_46_u, dY_46_v, maxAniso) t_0 = Float32(floor(h) * dX_46_v) t_1 = Float32(floor(w) * dY_46_u) t_2 = Float32(floor(w) * dX_46_u) t_3 = Float32(Float32(t_2 * t_2) + Float32(t_0 * t_0)) t_4 = Float32(floor(h) * dY_46_v) t_5 = Float32(Float32(t_1 * t_1) + Float32(t_4 * t_4)) t_6 = Float32(Float32(1.0) / sqrt(fmax(t_3, t_5))) tmp = Float32(0.0) if (t_3 >= t_5) tmp = Float32(t_6 * t_0); else tmp = Float32(t_6 * t_4); end return tmp end
function tmp_2 = code(w, h, dX_46_u, dX_46_v, dY_46_u, dY_46_v, maxAniso) t_0 = floor(h) * dX_46_v; t_1 = floor(w) * dY_46_u; t_2 = floor(w) * dX_46_u; t_3 = (t_2 * t_2) + (t_0 * t_0); t_4 = floor(h) * dY_46_v; t_5 = (t_1 * t_1) + (t_4 * t_4); t_6 = single(1.0) / sqrt(max(t_3, t_5)); tmp = single(0.0); if (t_3 >= t_5) tmp = t_6 * t_0; else tmp = t_6 * t_4; end tmp_2 = tmp; end
\begin{array}{l} \\ \begin{array}{l} t_0 := \left\lfloor h\right\rfloor \cdot dX.v\\ t_1 := \left\lfloor w\right\rfloor \cdot dY.u\\ t_2 := \left\lfloor w\right\rfloor \cdot dX.u\\ t_3 := t\_2 \cdot t\_2 + t\_0 \cdot t\_0\\ t_4 := \left\lfloor h\right\rfloor \cdot dY.v\\ t_5 := t\_1 \cdot t\_1 + t\_4 \cdot t\_4\\ t_6 := \frac{1}{\sqrt{\mathsf{max}\left(t\_3, t\_5\right)}}\\ \mathbf{if}\;t\_3 \geq t\_5:\\ \;\;\;\;t\_6 \cdot t\_0\\ \mathbf{else}:\\ \;\;\;\;t\_6 \cdot t\_4\\ \end{array} \end{array}
herbie shell --seed 2024347
(FPCore (w h dX.u dX.v dY.u dY.v maxAniso)
:name "Anisotropic x16 LOD (line direction, v)"
:precision binary32
:pre (and (and (and (and (and (and (and (<= 1.0 w) (<= w 16384.0)) (and (<= 1.0 h) (<= h 16384.0))) (and (<= 1e-20 (fabs dX.u)) (<= (fabs dX.u) 1e+20))) (and (<= 1e-20 (fabs dX.v)) (<= (fabs dX.v) 1e+20))) (and (<= 1e-20 (fabs dY.u)) (<= (fabs dY.u) 1e+20))) (and (<= 1e-20 (fabs dY.v)) (<= (fabs dY.v) 1e+20))) (== maxAniso 16.0))
(if (>= (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (* (/ 1.0 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor h) dX.v)) (* (/ 1.0 (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) (* (floor h) dY.v))))
Please file a bug report with this information.
egglog executable not found in PATH | L | C | |
---|---|---|---|
run-egglog-equal? | /home/nightlies/herbie/varun10p-egglog-multi/src/core/egglog-herbie.rkt | 394 | 0 |
find-preprocessing | /home/nightlies/herbie/varun10p-egglog-multi/src/core/preprocess.rkt | 89 | 0 |
run-improve! | /home/nightlies/herbie/varun10p-egglog-multi/src/core/mainloop.rkt | 46 | 0 |
get-alternatives/report | /home/nightlies/herbie/varun10p-egglog-multi/src/api/sandbox.rkt | 186 | 0 |
(unnamed) | /home/nightlies/herbie/varun10p-egglog-multi/src/api/sandbox.rkt | 282 | 6 |
(unnamed) | /usr/share/racket/pkgs/profile-lib/main.rkt | 40 | 10 |
profile-thunk | /usr/share/racket/pkgs/profile-lib/main.rkt | 9 | 0 |
(unnamed) | /usr/share/racket/collects/racket/engine.rkt | 42 | 24 |