
| Date: | Wednesday, November 27th, 2024 |
|---|---|
| Commit: | 27374272 on bhargav-bigfloat |
| Hostname: | nightly with Racket 8.10 |
| Seed: | 2024332 |
| Parameters: | 256 points for 4 iterations |
| Flags: | localize:costslocalize:errorsreduce:regimesreduce:binary-searchreduce:branch-expressionssetup:simplifysetup:searchrules:arithmeticrules:polynomialsrules:fractionsrules:exponentsrules:trigonometryrules:hyperbolicrules:numericsrules:specialrules:boolsrules:branchesgenerate:rrgenerate:taylorgenerate:simplifygenerate:proofs default |
Time bar (total: 4.5min)
| 37.4s | 262 406× | 0 | valid |
| 1.6s | 7 878× | 1 | valid |
| 1.3s | 11 141× | 0 | invalid |
| 517.0ms | 2 163× | 2 | valid |
| 201.0ms | 667× | 1 | invalid |
| 180.0ms | 1 580× | 1 | exit |
| 0.0ms | 1× | 4 | valid |
ival-mult: 6.7s (20.3% of total)const: 4.8s (14.5% of total)ival-<=: 4.0s (12.1% of total)ival-div: 2.9s (8.8% of total)ival-add: 1.4s (4.4% of total)ival-sub: 1.4s (4.3% of total)ival-sqrt: 1.1s (3.4% of total)ival-and: 1.1s (3.2% of total)ival-fabs: 1.0s (3.2% of total)ival-log: 967.0ms (2.9% of total)ival-sin: 748.0ms (2.3% of total)ival-floor: 629.0ms (1.9% of total)ival-pow: 610.0ms (1.9% of total)ival-exp: 584.0ms (1.8% of total)ival-sinu: 454.0ms (1.4% of total)exact: 394.0ms (1.2% of total)ival-neg: 368.0ms (1.1% of total)ival-pow2: 342.0ms (1% of total)ival-cosu: 335.0ms (1% of total)adjust: 324.0ms (1% of total)ival-cos: 312.0ms (0.9% of total)ival-if: 302.0ms (0.9% of total)ival-e: 268.0ms (0.8% of total)ival-tan: 256.0ms (0.8% of total)ival-fmax: 240.0ms (0.7% of total)ival-pi: 206.0ms (0.6% of total)ival-asin: 191.0ms (0.6% of total)ival-log2: 177.0ms (0.5% of total)ival-<: 136.0ms (0.4% of total)ival->: 130.0ms (0.4% of total)ival-log1p: 123.0ms (0.4% of total)ival-assert: 93.0ms (0.3% of total)ival-==: 89.0ms (0.3% of total)ival-atan: 80.0ms (0.2% of total)ival-sinh: 61.0ms (0.2% of total)ival->=: 43.0ms (0.1% of total)ival-true: 17.0ms (0.1% of total)| 297× | egg-herbie |
| 401× | iter limit |
| 220× | node limit |
| 72× | saturated |
| 5× | unsound |
160 calls:
| 1.2s | s |
| 841.0ms | x |
| 754.0ms | uy |
| 753.0ms | (*.f32 uy #s(literal 2 binary32)) |
| 752.0ms | (*.f32 (*.f32 uy #s(literal 2 binary32)) (PI.f32)) |
Compiled 28 402 to 17 547 computations (38.2% saved)
| 300× | iter limit |
| 190× | node limit |
| 32× | fuel |
| 4× | unsound |
| 1× | done |
Compiled 79 431 to 20 167 computations (74.6% saved)
Compiled 30 246 327 to 588 231 computations (98.1% saved)
| 286× | iter limit |
| 121× | node limit |
| 11× | unsound |
| 9.2s | 29 362× | 0 | valid |
| 1.1s | 1 511× | 1 | valid |
| 928.0ms | 2 176× | 0 | invalid |
| 347.0ms | 355× | 2 | valid |
| 193.0ms | 68× | 5 | exit |
| 146.0ms | 200× | 1 | exit |
| 29.0ms | 18× | 3 | valid |
| 24.0ms | 101× | 0 | exit |
| 0.0ms | 1× | 4 | valid |
Compiled 293 481 to 14 266 computations (95.1% saved)
ival-mult: 2.7s (30.5% of total)ival-div: 1.3s (14.6% of total)ival-add: 735.0ms (8.2% of total)ival-pow: 451.0ms (5% of total)ival-pow2: 437.0ms (4.9% of total)ival-sub: 407.0ms (4.6% of total)ival-sqrt: 388.0ms (4.3% of total)adjust: 277.0ms (3.1% of total)ival-log: 274.0ms (3.1% of total)ival-exp: 228.0ms (2.6% of total)ival-sin: 183.0ms (2% of total)ival-cos: 169.0ms (1.9% of total)ival-neg: 149.0ms (1.7% of total)const: 129.0ms (1.4% of total)ival-log1p: 114.0ms (1.3% of total)ival-fmax: 107.0ms (1.2% of total)ival-sinu: 88.0ms (1% of total)ival-log2: 83.0ms (0.9% of total)ival-cosu: 80.0ms (0.9% of total)ival-if: 77.0ms (0.9% of total)ival-floor: 75.0ms (0.8% of total)ival-expm1: 57.0ms (0.6% of total)exact: 57.0ms (0.6% of total)ival-tan: 55.0ms (0.6% of total)ival-fabs: 53.0ms (0.6% of total)ival-pi: 42.0ms (0.5% of total)ival-atan: 32.0ms (0.4% of total)ival-e: 30.0ms (0.3% of total)ival-true: 26.0ms (0.3% of total)ival-asin: 19.0ms (0.2% of total)ival->: 15.0ms (0.2% of total)ival-sinh: 14.0ms (0.2% of total)ival-assert: 12.0ms (0.1% of total)ival-tanu: 10.0ms (0.1% of total)ival->=: 10.0ms (0.1% of total)ival-<: 10.0ms (0.1% of total)ival-cbrt: 9.0ms (0.1% of total)ival-acos: 6.0ms (0.1% of total)| 33× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 11.5% | 88.5% | 0% | 0% | 0% | 0 |
| 52.8% | 6.1% | 5.4% | 88.5% | 0% | 0% | 0% | 1 |
| 54.4% | 6.2% | 5.2% | 88.5% | 0% | 0% | 0% | 2 |
| 54.5% | 6.3% | 5.2% | 88.5% | 0% | 0% | 0% | 3 |
| 55.4% | 6.4% | 5.1% | 88.5% | 0% | 0% | 0% | 4 |
| 62.6% | 7.2% | 4.3% | 88.5% | 0% | 0% | 0% | 5 |
| 66.9% | 7.6% | 3.8% | 88.5% | 0% | 0.1% | 0% | 6 |
| 76.4% | 8.4% | 2.6% | 88.5% | 0% | 0.4% | 0% | 7 |
| 76.8% | 8.5% | 2.6% | 88.5% | 0% | 0.4% | 0% | 8 |
| 81.4% | 9% | 2% | 88.5% | 0% | 0.4% | 0% | 9 |
| 85.1% | 9.3% | 1.6% | 88.5% | 0% | 0.5% | 0% | 10 |
| 86.3% | 9.4% | 1.5% | 88.5% | 0% | 0.5% | 0% | 11 |
| 87.3% | 9.5% | 1.4% | 88.5% | 0% | 0.6% | 0% | 12 |
Compiled 2 648 to 1 114 computations (57.9% saved)
1452 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 159.0ms | s | @ | 0 | ((* (- (exp (neg (log (+ 1 (exp (/ (neg (PI)) s)))))) (exp (neg (log (+ 1 (exp (/ (PI) s))))))) u) (/ 1 (/ (+ (pow (+ (exp (/ (PI) s)) 1) -3) (pow (* (- (exp (neg (log (+ 1 (exp (/ (neg (PI)) s)))))) (exp (neg (log (+ 1 (exp (/ (PI) s))))))) u) 3)) (+ (pow (+ (exp (/ (PI) s)) 1) -2) (- (pow (* (- (exp (neg (log (+ 1 (exp (/ (neg (PI)) s)))))) (exp (neg (log (+ 1 (exp (/ (PI) s))))))) u) 2) (/ (* (- (exp (neg (log (+ 1 (exp (/ (neg (PI)) s)))))) (exp (neg (log (+ 1 (exp (/ (PI) s))))))) u) (+ (exp (/ (PI) s)) 1)))))) (+ (pow (+ (exp (/ (PI) s)) 1) -2) (- (pow (* (- (exp (neg (log (+ 1 (exp (/ (neg (PI)) s)))))) (exp (neg (log (+ 1 (exp (/ (PI) s))))))) u) 2) (/ (* (- (exp (neg (log (+ 1 (exp (/ (neg (PI)) s)))))) (exp (neg (log (+ 1 (exp (/ (PI) s))))))) u) (+ (exp (/ (PI) s)) 1)))) (* (neg s) (log (- (/ 1 (/ (+ (pow (+ (exp (/ (PI) s)) 1) -3) (pow (* (- (exp (neg (log (+ 1 (exp (/ (neg (PI)) s)))))) (exp (neg (log (+ 1 (exp (/ (PI) s))))))) u) 3)) (+ (pow (+ (exp (/ (PI) s)) 1) -2) (- (pow (* (- (exp (neg (log (+ 1 (exp (/ (neg (PI)) s)))))) (exp (neg (log (+ 1 (exp (/ (PI) s))))))) u) 2) (/ (* (- (exp (neg (log (+ 1 (exp (/ (neg (PI)) s)))))) (exp (neg (log (+ 1 (exp (/ (PI) s))))))) u) (+ (exp (/ (PI) s)) 1)))))) 1))) (* 0 s) (* (neg s) (log (- (exp (neg (log (+ (* u (- (/ 1 (+ 1 (exp (/ (neg (PI)) s)))) (/ 1 (+ 1 (exp (/ (PI) s)))))) (/ 1 (+ 1 (exp (/ (PI) s)))))))) 1))) (+ (* (sqrt (PI)) (* (sqrt (PI)) (* -1/2 u))) (* 1/4 (PI))) (* (+ (* (sqrt (PI)) (* (sqrt (PI)) (* -1/2 u))) (* 1/4 (PI))) -4) (* (neg s) (log (- (/ 1 (+ (* u (- (/ 1 (+ 1 (exp (/ (neg (PI)) s)))) (/ 1 (+ 1 (exp (/ (PI) s)))))) (/ 1 (+ 1 (exp (* (pow (cbrt (PI)) 2) (/ (cbrt (PI)) s))))))) 1))) (sqrt (PI)) (- (pow (* (* (PI) u) -1/2) 2) (* 1/16 (* (PI) (PI)))) (/ 1 (/ (* (PI) (+ (* -1/2 u) -1/4)) (- (pow (* (* (PI) u) -1/2) 2) (* 1/16 (* (PI) (PI)))))) (/ (* (PI) (+ (* -1/2 u) -1/4)) (- (pow (* (* (PI) u) -1/2) 2) (* 1/16 (* (PI) (PI))))) (* (neg s) (log (- (/ 1 (+ (* u (- (/ 1 (+ 1 (exp (/ (neg (PI)) s)))) (/ 1 (+ 1 (exp (/ (PI) s)))))) (/ 1 (+ 1 (exp (* (pow (cbrt (PI)) 2) (/ (cbrt (PI)) s))))))) 1))) (+ (* -1/2 (* 1 (* (PI) u))) (* 1/4 (PI))) (* 1 (* (PI) u)) (- 1/2 (/ (+ (* -1/2 (* 1 (* (PI) u))) (* 1/4 (PI))) s)) (* (neg s) (log (- (exp (neg (log (+ (* u (- (/ 1 (+ 1 (exp (/ (neg (PI)) s)))) (/ 1 (+ 1 (exp (/ (PI) s)))))) (/ 1 (+ 1 (exp (/ (PI) s)))))))) 1))) (PI) (log (+ 1 (exp (/ (neg (PI)) s)))) (log (+ 1 (exp (/ (PI) s)))) (exp (/ (neg (PI)) s)) (* (sqrt (PI)) (* -1/2 u)) (+ (* -1/2 u) -1/4) (* (PI) (PI)) (+ (* u (- (/ 1 (+ 1 (exp (/ (neg (PI)) s)))) (/ 1 (+ 1 (exp (/ (PI) s)))))) (/ 1 (+ 1 (exp (/ (PI) s))))) (- (exp (neg (log (+ (* u (- (/ 1 (+ 1 (exp (/ (neg (PI)) s)))) (/ 1 (+ 1 (exp (/ (PI) s)))))) (/ 1 (+ 1 (exp (/ (PI) s)))))))) 1)) |
| 156.0ms | dY.v | @ | -inf | ((* (* (floor d) dY.w) (* (floor d) dY.w)) (* (* (pow (floor w) 2) dX.u) dX.u) (log2 (sqrt (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor d) dX.w) (* (floor d) dX.w))) (+ (+ (pow (* dY.u (floor w)) 2) (pow (* dY.v (floor h)) 2)) (* (* (floor d) dY.w) (* (floor d) dY.w)))))) (sqrt (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor d) dX.w) (* (floor d) dX.w))) (+ (+ (pow (* dY.u (floor w)) 2) (pow (* dY.v (floor h)) 2)) (* (* (floor d) dY.w) (* (floor d) dY.w))))) (pow (pow (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor d) dX.w) (* (floor d) dX.w))) (+ (+ (pow (* dY.v (floor h)) 2) (pow (* dY.u (floor w)) 2)) (pow (* dY.w (floor d)) 2))) 1/4) 2) (log2 (pow (pow (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor d) dX.w) (* (floor d) dX.w))) (+ (+ (pow (* dY.v (floor h)) 2) (pow (* dY.u (floor w)) 2)) (pow (* dY.w (floor d)) 2))) 1/4) 2)) (pow (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor d) dX.w) (* (floor d) dX.w))) (+ (+ (pow (* dY.v (floor h)) 2) (pow (* dY.u (floor w)) 2)) (pow (* dY.w (floor d)) 2))) 1/4) (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor d) dX.w) (* (floor d) dX.w))) (+ (+ (pow (* dY.v (floor h)) 2) (pow (* dY.u (floor w)) 2)) (pow (* dY.w (floor d)) 2))) (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)) (+ (* (* (pow (floor w) 2) dX.u) dX.u) (* (* (pow (floor h) 2) dX.v) dX.v)) (log2 (sqrt (fmax (+ (* dX.v (* (pow (floor h) 2) dX.v)) (+ (pow (* dX.w (floor d)) 2) (pow (* dX.u (floor w)) 2))) (+ (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (* (* (floor d) dY.w) (* (floor d) dY.w)))))) (exp (+ (* (log (floor h)) 2) (* (log dY.v) 2))) (+ (* (log (floor h)) 2) (* (log dY.v) 2)) (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor d) dX.w) (* (floor d) dX.w))) (pow (* dY.u (floor w)) 2) (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor d) dX.w) (* (floor d) dX.w))) (sqrt (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor d) dX.w) (* (floor d) dX.w))) (+ (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (* (* (floor d) dY.w) (* (floor d) dY.w))))) (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor d) dX.w) (* (floor d) dX.w))) (sqrt (fmax (+ (* dX.v (* (pow (floor h) 2) dX.v)) (+ (pow (* dX.w (floor d)) 2) (pow (* dX.u (floor w)) 2))) (+ (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (* (* (floor d) dY.w) (* (floor d) dY.w))))) (+ (* dX.v (* (pow (floor h) 2) dX.v)) (+ (pow (* dX.w (floor d)) 2) (pow (* dX.u (floor w)) 2))) (sqrt (fmax (+ (* (pow (floor h) 2) (* dX.v dX.v)) (+ (pow (* dX.u (floor w)) 2) (pow (* dX.w (floor d)) 2))) (+ (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (exp (+ (* (log (floor h)) 2) (* (log dY.v) 2)))) (* (* (floor d) dY.w) (* (floor d) dY.w))))) (+ (* (pow (floor h) 2) (* dX.v dX.v)) (+ (pow (* dX.u (floor w)) 2) (pow (* dX.w (floor d)) 2)))) |
| 128.0ms | dY.u | @ | inf | ((/ 1 (/ (sqrt (fmax (+ (pow (* dX.v (floor h)) 2) (pow (* dX.u (floor w)) 2)) (+ (pow (* dY.v (floor h)) 2) (pow (* dY.u (floor w)) 2)))) (* dY.v (floor h)))) (* (* (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)) (exp (+ (* (log (floor w)) 2) (* (log dX.u) 2))) (/ (/ dY.v 1) (/ 1 (floor h))) (/ dY.v 1) (sqrt (fmax (+ (pow (* dX.v (floor h)) 2) (pow (* dX.u (floor w)) 2)) (+ (pow (* dY.v (floor h)) 2) (pow (* dY.u (floor w)) 2)))) (sqrt (fmax (+ (pow (* (floor w) dX.u) 2) (pow (* (floor h) dX.v) 2)) (+ (pow (* dY.u (floor w)) 2) (pow (* dY.v (floor h)) 2)))) (pow (* dY.u (floor w)) 2) (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (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 w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (pow (fmax (+ (pow (* dX.v (floor h)) 2) (pow (* dX.u (floor w)) 2)) (+ (pow (* dY.u (floor w)) 2) (pow (* (floor h) dY.v) 2))) -1/4) (pow (pow (fmax (+ (pow (* dX.v (floor h)) 2) (pow (* dX.u (floor w)) 2)) (+ (pow (* dY.u (floor w)) 2) (pow (* (floor h) dY.v) 2))) -1/4) -2) (+ (* (log (floor w)) 2) (* (log dX.u) 2)) (sqrt (fmax (+ (exp (+ (* (log (floor w)) 2) (* (log dX.u) 2))) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) |
| 114.0ms | c | @ | 0 | ((* (log (+ 1 (* y (- (exp x) 1)))) c) (log (+ 1 (* y (- (exp x) 1)))) (* y (- (exp x) 1)) (- (exp x) 1) (* c (log (+ 1 (* (- (pow (E) x) 1) y)))) (* (* c y) x) (* c y) (+ (* (* c (+ (* (* 1/6 x) (+ (* (* y y) (+ (* 2 y) -3)) y)) (* (- y (* y y)) 1/2))) x) (* c y)) (+ (* (* 1/6 x) (+ (* (* y y) (+ (* 2 y) -3)) y)) (* (- y (* y y)) 1/2)) (* (- y (* y y)) 1/2) (* c (log (+ 1 (* (- (pow (E) x) 1) y)))) (+ 1 (* (- (pow (E) x) 1) y)) (log (+ 1 (* (- (pow (E) x) 1) y))) (* c (log (+ 1 (* (- (pow (E) x) 1) y)))) (* (- (pow (E) x) 1) y) (* c (- (log (+ 1 (pow (* y (- (exp x) 1)) 3))) (log (+ 1 (* (+ (* y (- (exp x) 1)) -1) (* y (- (exp x) 1))))))) (- (log (+ 1 (pow (* y (- (exp x) 1)) 3))) (log (+ 1 (* (+ (* y (- (exp x) 1)) -1) (* y (- (exp x) 1)))))) (log (+ 1 (pow (* y (- (exp x) 1)) 3))) (pow (* y (- (exp x) 1)) 3) (* (+ (* (* c (+ (* (* 1/6 x) (+ (* (* y y) (+ (* 2 y) -3)) y)) (* (- y (* y y)) 1/2))) x) (* c y)) x) (- (pow (E) x) 1) (pow (E) x) (log (+ 1 (* (+ (* y (- (exp x) 1)) -1) (* y (- (exp x) 1)))))) |
| 113.0ms | h | @ | -inf | ((* (* (floor d) dY.w) (* (floor d) dY.w)) (* (* (pow (floor w) 2) dX.u) dX.u) (log2 (sqrt (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor d) dX.w) (* (floor d) dX.w))) (+ (+ (pow (* dY.u (floor w)) 2) (pow (* dY.v (floor h)) 2)) (* (* (floor d) dY.w) (* (floor d) dY.w)))))) (sqrt (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor d) dX.w) (* (floor d) dX.w))) (+ (+ (pow (* dY.u (floor w)) 2) (pow (* dY.v (floor h)) 2)) (* (* (floor d) dY.w) (* (floor d) dY.w))))) (pow (pow (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor d) dX.w) (* (floor d) dX.w))) (+ (+ (pow (* dY.v (floor h)) 2) (pow (* dY.u (floor w)) 2)) (pow (* dY.w (floor d)) 2))) 1/4) 2) (log2 (pow (pow (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor d) dX.w) (* (floor d) dX.w))) (+ (+ (pow (* dY.v (floor h)) 2) (pow (* dY.u (floor w)) 2)) (pow (* dY.w (floor d)) 2))) 1/4) 2)) (pow (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor d) dX.w) (* (floor d) dX.w))) (+ (+ (pow (* dY.v (floor h)) 2) (pow (* dY.u (floor w)) 2)) (pow (* dY.w (floor d)) 2))) 1/4) (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor d) dX.w) (* (floor d) dX.w))) (+ (+ (pow (* dY.v (floor h)) 2) (pow (* dY.u (floor w)) 2)) (pow (* dY.w (floor d)) 2))) (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)) (+ (* (* (pow (floor w) 2) dX.u) dX.u) (* (* (pow (floor h) 2) dX.v) dX.v)) (log2 (sqrt (fmax (+ (* dX.v (* (pow (floor h) 2) dX.v)) (+ (pow (* dX.w (floor d)) 2) (pow (* dX.u (floor w)) 2))) (+ (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (* (* (floor d) dY.w) (* (floor d) dY.w)))))) (exp (+ (* (log (floor h)) 2) (* (log dY.v) 2))) (+ (* (log (floor h)) 2) (* (log dY.v) 2)) (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor d) dX.w) (* (floor d) dX.w))) (pow (* dY.u (floor w)) 2) (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor d) dX.w) (* (floor d) dX.w))) (sqrt (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor d) dX.w) (* (floor d) dX.w))) (+ (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (* (* (floor d) dY.w) (* (floor d) dY.w))))) (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor d) dX.w) (* (floor d) dX.w))) (sqrt (fmax (+ (* dX.v (* (pow (floor h) 2) dX.v)) (+ (pow (* dX.w (floor d)) 2) (pow (* dX.u (floor w)) 2))) (+ (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (* (* (floor d) dY.w) (* (floor d) dY.w))))) (+ (* dX.v (* (pow (floor h) 2) dX.v)) (+ (pow (* dX.w (floor d)) 2) (pow (* dX.u (floor w)) 2))) (sqrt (fmax (+ (* (pow (floor h) 2) (* dX.v dX.v)) (+ (pow (* dX.u (floor w)) 2) (pow (* dX.w (floor d)) 2))) (+ (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (exp (+ (* (log (floor h)) 2) (* (log dY.v) 2)))) (* (* (floor d) dY.w) (* (floor d) dY.w))))) (+ (* (pow (floor h) 2) (* dX.v dX.v)) (+ (pow (* dX.u (floor w)) 2) (pow (* dX.w (floor d)) 2)))) |
Compiled 1 109 661 to 389 443 computations (64.9% saved)
| 33× | egg-herbie |
| 66× | iter limit |
| 35× | saturated |
| 31× | node limit |
Compiled 124 730 to 24 403 computations (80.4% saved)
| Operator | Subexpression | Explanation | Count | |
|---|---|---|---|---|
log.f32 | #f | sensitivity | 1011 | 85 |
-.f32 | #f | cancellation | 393 | 30 |
sqrt.f32 | #f | oflow-rescue | 347 | 0 |
sqrt.f64 | #f | oflow-rescue | 284 | 0 |
log.f64 | (log.f64 (+.f64 #s(literal 1 binary64) (*.f64 (-.f64 (pow.f64 (E.f64) x) #s(literal 1 binary64)) y))) | sensitivity | 212 | 1 |
tan.f32 | (tan.f32 (+.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) u1) (*.f32 #s(literal 1/2 binary32) (PI.f32)))) | cancellation | 202 | 11 |
cos.f32 | #f | sensitivity | 200 | 10 |
-.f64 | #f | cancellation | 160 | 0 |
/.f32 | #f | o/n | 122 | 0 |
exp.f32 | #f | sensitivity | 41 | 36 |
/.f32 | #f | u/n | 23 | 0 |
*.f64 | (*.f64 c (log.f64 (+.f64 #s(literal 1 binary64) (*.f64 (-.f64 (pow.f64 (E.f64) x) #s(literal 1 binary64)) y)))) | n*u | 16 | 0 |
sqrt.f32 | (sqrt.f32 (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 sinTheta_O sinTheta_O)))))) | uflow-rescue | 14 | 0 |
| ↳ | (*.f32 sinTheta_O sinTheta_O) | underflow | 278 | |
| ↳ | (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 sinTheta_O sinTheta_O))))) | underflow | 14 | |
| ↳ | (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 sinTheta_O sinTheta_O)))) | underflow | 139 | |
| ↳ | (*.f32 eta eta) | underflow | 14 | |
/.f32 | #f | o/o | 14 | 0 |
/.f32 | (/.f32 (neg.f32 (log.f32 (-.f32 #s(literal 1 binary32) u0))) (+.f32 (/.f32 cos2phi (*.f32 alphax alphax)) (/.f32 sin2phi (*.f32 alphay alphay)))) | n/o | 10 | 0 |
| ↳ | (/.f32 sin2phi (*.f32 alphay alphay)) | overflow | 20 | |
| ↳ | (+.f32 (/.f32 cos2phi (*.f32 alphax alphax)) (/.f32 sin2phi (*.f32 alphay alphay))) | overflow | 20 | |
sqrt.f64 | #f | uflow-rescue | 6 | 0 |
*.f64 | #f | n*o | 3 | 0 |
*.f32 | #f | n*u | 2 | 0 |
*.f32 | (*.f32 (sin.f32 (*.f32 u normAngle)) (/.f32 #s(literal 1 binary32) (sin.f32 normAngle))) | u*o | 1 | 0 |
| ↳ | (*.f32 u normAngle) | underflow | 2 | |
| ↳ | (sin.f32 (*.f32 u normAngle)) | underflow | 2 | |
| ↳ | (/.f32 #s(literal 1 binary32) (sin.f32 normAngle)) | overflow | 1 | |
log.f64 | (log.f64 (+.f64 #s(literal 1 binary64) (*.f64 (-.f64 (pow.f64 (E.f64) x) #s(literal 1 binary64)) y))) | oflow-rescue | 1 | 0 |
| ↳ | (*.f64 (-.f64 (pow.f64 (E.f64) x) #s(literal 1 binary64)) y) | overflow | 1 | |
| ↳ | (+.f64 #s(literal 1 binary64) (*.f64 (-.f64 (pow.f64 (E.f64) x) #s(literal 1 binary64)) y)) | overflow | 1 | |
| ↳ | (pow.f64 (E.f64) x) | overflow | 1 | |
| ↳ | (-.f64 (pow.f64 (E.f64) x) #s(literal 1 binary64)) | overflow | 1 | |
*.f32 | (*.f32 (sin.f32 (*.f32 (-.f32 #s(literal 1 binary32) u) normAngle)) (/.f32 #s(literal 1 binary32) (sin.f32 normAngle))) | n*o | 1 | 0 |
| Predicted + | Predicted - | |
|---|---|---|
| + | 2136 | 57 |
| - | 495 | 5760 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 2136 | 37 | 20 |
| - | 495 | 119 | 5641 |
| number | freq |
|---|---|
| 0 | 5817 |
| 1 | 2213 |
| 2 | 404 |
| 3 | 14 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 21 | 1 | 1 |
| - | 6 | 1 | 3 |
| 1.8s | 16 150× | 0 | valid |
| 146.0ms | 606× | 1 | valid |
| 41.0ms | 136× | 2 | valid |
| 1.0ms | 2× | 4 | valid |
| 1.0ms | 2× | 3 | valid |
Compiled 24 467 to 2 456 computations (90% saved)
ival-mult: 405.0ms (30.4% of total)ival-div: 168.0ms (12.6% of total)ival-add: 92.0ms (6.9% of total)ival-sub: 82.0ms (6.2% of total)ival-sqrt: 63.0ms (4.7% of total)ival-log: 60.0ms (4.5% of total)ival-sin: 40.0ms (3% of total)ival-exp: 36.0ms (2.7% of total)ival-floor: 35.0ms (2.6% of total)ival-pow: 34.0ms (2.6% of total)ival-sinu: 30.0ms (2.3% of total)adjust: 23.0ms (1.7% of total)ival-pow2: 23.0ms (1.7% of total)ival-neg: 22.0ms (1.7% of total)ival-cosu: 21.0ms (1.6% of total)const: 20.0ms (1.5% of total)ival-pi: 20.0ms (1.5% of total)ival-cos: 19.0ms (1.4% of total)ival-tan: 16.0ms (1.2% of total)ival-e: 15.0ms (1.1% of total)ival-fmax: 15.0ms (1.1% of total)ival-fabs: 15.0ms (1.1% of total)ival-true: 13.0ms (1% of total)exact: 13.0ms (1% of total)ival-if: 11.0ms (0.8% of total)ival-log2: 10.0ms (0.8% of total)ival-assert: 6.0ms (0.5% of total)ival-log1p: 6.0ms (0.5% of total)ival-atan: 5.0ms (0.4% of total)ival-asin: 4.0ms (0.3% of total)ival-sinh: 4.0ms (0.3% of total)ival->=: 3.0ms (0.2% of total)ival->: 2.0ms (0.2% of total)ival-<: 1.0ms (0.1% of total)| 64× | left-value |
| 37× | binary-search |
| 36× | narrow-enough |
| 1× | predicate-same |
| 75.0ms | 921× | 0 | valid |
| 5.0ms | 74× | 0 | invalid |
| 2.0ms | 7× | 1 | valid |
Compiled 8 982 to 5 640 computations (37.2% saved)
ival-mult: 11.0ms (18.9% of total)ival-pow: 10.0ms (17.2% of total)ival-pow2: 7.0ms (12% of total)ival-e: 5.0ms (8.6% of total)ival-add: 5.0ms (8.6% of total)ival-sub: 4.0ms (6.9% of total)ival-fabs: 4.0ms (6.9% of total)ival-log1p: 4.0ms (6.9% of total)ival-div: 3.0ms (5.2% of total)ival-sqrt: 3.0ms (5.2% of total)ival-true: 1.0ms (1.7% of total)exact: 1.0ms (1.7% of total)adjust: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)Loading profile data...