
| Date: | Wednesday, September 11th, 2024 |
|---|---|
| Commit: | b5881a3c on zane-concrete-values |
| Hostname: | nightly with Racket 8.11.1 |
| Seed: | 2024255 |
| Parameters: | 256 points for 4 iterations |
| Flags: | localize:costslocalize:errorsreduce:regimesreduce:avg-errorreduce:binary-searchreduce:branch-expressionssetup:simplifysetup:searchrules:arithmeticrules:polynomialsrules:fractionsrules:exponentsrules:trigonometryrules:hyperbolicrules:numericsrules:specialrules:boolsrules:branchesgenerate:rrgenerate:taylorgenerate:simplifygenerate:proofs default |
Time bar (total: 8.9min)
Compiled 43 541 757 to 642 478 computations (98.5% saved)
| 56.5s | 247 589× | 0 | valid |
| 1.9s | 10 388× | 0 | invalid |
| 13.0ms | 91× | 1 | valid |
ival-mult: 10.6s (22.8% of total)const: 7.1s (15.1% of total)ival-<=: 6.5s (13.8% of total)ival-div: 3.7s (8% of total)ival-sqrt: 2.1s (4.6% of total)ival-add: 2.0s (4.3% of total)ival-sub: 1.9s (4.2% of total)ival-fabs: 1.9s (4% of total)ival-log: 1.5s (3.1% of total)ival-and: 1.2s (2.6% of total)ival-sin: 1.0s (2.2% of total)ival-exp: 766.0ms (1.6% of total)ival-floor: 752.0ms (1.6% of total)ival-cosu: 687.0ms (1.5% of total)ival-sinu: 620.0ms (1.3% of total)ival-neg: 560.0ms (1.2% of total)ival-cos: 453.0ms (1% of total)exact: 441.0ms (0.9% of total)ival-pi: 362.0ms (0.8% of total)ival-fmax: 358.0ms (0.8% of total)ival-tan: 331.0ms (0.7% of total)ival-log2: 273.0ms (0.6% of total)ival->: 268.0ms (0.6% of total)ival-<: 260.0ms (0.6% of total)ival-if: 258.0ms (0.6% of total)ival-asin: 185.0ms (0.4% of total)ival-atan: 140.0ms (0.3% of total)ival-==: 140.0ms (0.3% of total)ival-assert: 101.0ms (0.2% of total)ival->=: 96.0ms (0.2% of total)ival-sinh: 90.0ms (0.2% of total)adjust: 2.0ms (0% of total)| 270× | egg-herbie |
| 2 322 658× | lower-fma.f64 |
| 2 322 262× | lower-fma.f32 |
| 1 051 552× | lower-*.f64 |
| 1 048 630× | lower-*.f32 |
| 579 400× | lower-+.f64 |
| 364× | iter limit |
| 201× | node limit |
| 65× | saturated |
| 4× | unsound |
145 calls:
| 2.1s | s |
| 1.2s | u |
| 1.1s | cosTheta_i |
| 975.0ms | x |
| 927.0ms | (*.f32 cosTheta_i cosTheta_O) |
Compiled 24 822 to 16 033 computations (35.4% saved)
| 1 502 456× | lower-fma.f64 |
| 1 502 142× | lower-fma.f32 |
| 984 394× | lower-*.f64 |
| 982 200× | lower-*.f32 |
| 485 950× | lower-/.f64 |
| 282× | iter limit |
| 186× | node limit |
| 29× | fuel |
| 1× | done |
Compiled 42 820 to 13 851 computations (67.7% saved)
Compiled 808 580 to 299 122 computations (63% saved)
| 555 580× | lower-fma.f64 |
| 555 188× | lower-fma.f32 |
| 509 260× | lower-*.f64 |
| 506 486× | lower-*.f32 |
| 400 924× | lower-/.f64 |
| 246× | iter limit |
| 116× | node limit |
| 4× | unsound |
| 13.0s | 27 617× | 0 | valid |
| 1.8s | 1 382× | 1 | valid |
| 695.0ms | 1 407× | 0 | invalid |
| 188.0ms | 89× | 5 | exit |
| 95.0ms | 220× | 0 | exit |
| 4.0ms | 5× | 1 | exit |
Compiled 135 671 to 5 970 computations (95.6% saved)
ival-mult: 3.7s (30.1% of total)ival-div: 2.2s (17.8% of total)ival-add: 901.0ms (7.4% of total)ival-pow2: 494.0ms (4.1% of total)ival-sqrt: 483.0ms (4% of total)ival-sub: 477.0ms (3.9% of total)ival-log: 467.0ms (3.8% of total)ival-pow: 371.0ms (3.1% of total)ival-log1p: 314.0ms (2.6% of total)ival-floor: 307.0ms (2.5% of total)ival-exp: 300.0ms (2.5% of total)ival-sin: 284.0ms (2.3% of total)ival-neg: 215.0ms (1.8% of total)const: 206.0ms (1.7% of total)ival-cos: 197.0ms (1.6% of total)adjust: 178.0ms (1.5% of total)ival-fmax: 156.0ms (1.3% of total)ival-cosu: 143.0ms (1.2% of total)ival-tan: 125.0ms (1% of total)ival-sinu: 107.0ms (0.9% of total)ival-log2: 93.0ms (0.8% of total)ival-if: 82.0ms (0.7% of total)ival-pi: 70.0ms (0.6% of total)ival-tanu: 57.0ms (0.5% of total)ival-atan: 55.0ms (0.5% of total)exact: 55.0ms (0.5% of total)ival-fabs: 43.0ms (0.4% of total)ival-true: 29.0ms (0.2% of total)ival-asin: 20.0ms (0.2% of total)ival-e: 17.0ms (0.1% of total)ival->: 14.0ms (0.1% of total)ival-assert: 14.0ms (0.1% of total)ival-acos: 13.0ms (0.1% of total)ival->=: 10.0ms (0.1% of total)ival-sinh: 9.0ms (0.1% of total)ival-cbrt: 8.0ms (0.1% of total)ival-expm1: 7.0ms (0.1% of total)ival-<: 6.0ms (0% of total)| 30× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 2.6% | 97.4% | 0% | 0% | 0% | 0 |
| 0% | 0% | 2.6% | 97.4% | 0% | 0% | 0% | 1 |
| 7.8% | 0.2% | 2.4% | 97.4% | 0% | 0% | 0% | 2 |
| 8.5% | 0.2% | 2.4% | 97.4% | 0% | 0% | 0% | 3 |
| 12.8% | 0.3% | 2.3% | 97.4% | 0% | 0% | 0% | 4 |
| 47% | 1.2% | 1.4% | 97.4% | 0% | 0% | 0% | 5 |
| 51.8% | 1.3% | 1.2% | 97.4% | 0% | 0.1% | 0% | 6 |
| 69.5% | 1.8% | 0.8% | 97.4% | 0% | 0.1% | 0% | 7 |
| 71.6% | 1.8% | 0.7% | 97.4% | 0% | 0.1% | 0% | 8 |
| 81.1% | 2.1% | 0.5% | 97.4% | 0% | 0.1% | 0% | 9 |
| 82.6% | 2.1% | 0.4% | 97.4% | 0% | 0.1% | 0% | 10 |
| 88.3% | 2.2% | 0.3% | 97.4% | 0% | 0.1% | 0% | 11 |
| 89.1% | 2.2% | 0.3% | 97.4% | 0% | 0.1% | 0% | 12 |
Compiled 2 586 to 1 062 computations (58.9% saved)
1251 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 450.0ms | w | @ | -inf | ((/ (* (neg dY.u) (floor w)) -1) (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v)) (* (* (floor w) dY.u) (* (floor w) dY.u)) (pow (exp 2) (log (* dY.u (floor w)))) (* (* (floor h) dY.v) (* (floor h) dY.v)) (exp (+ (* (log dY.u) 2) (* (log (floor w)) 2))) (+ (* (log dY.u) 2) (* (log (floor w)) 2)) (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))))) (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)))) (>= (+ (* (* (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))) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (pow (exp 2) (log (* dY.u (floor w)))) (* (* (floor h) dY.v) (* (floor h) dY.v))))) (+ (* (* (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))) (+ (pow (exp 2) (log (* dY.u (floor w)))) (* (* (floor h) dY.v) (* (floor h) dY.v))))) (sqrt (fmax (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (+ (exp (+ (* (log dY.u) 2) (* (log (floor w)) 2))) (* (* (floor h) dY.v) (* (floor h) dY.v))))) (+ (* (* (* dX.v (floor h)) dX.v) (floor h)) (pow (* dX.u (floor w)) 2)) (sqrt (fmax (+ (* (* (* dX.v (floor h)) dX.v) (floor h)) (pow (* dX.u (floor w)) 2)) (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))))) |
| 283.0ms | dX.u | @ | 0 | ((exp (* (log (fmax (+ (+ (pow (* (floor h) dX.v) 2) (pow (* (floor w) dX.u) 2)) (pow (* (floor d) dX.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))))) 1/2)) (log2 (exp (* (log (fmax (+ (+ (pow (* (floor h) dX.v) 2) (pow (* (floor w) dX.u) 2)) (pow (* (floor d) dX.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))))) 1/2))) (* (log (fmax (+ (+ (pow (* (floor h) dX.v) 2) (pow (* (floor w) dX.u) 2)) (pow (* (floor d) dX.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))))) 1/2) (log (fmax (+ (+ (pow (* (floor h) dX.v) 2) (pow (* (floor w) dX.u) 2)) (pow (* (floor d) dX.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))))) (* (* (pow (floor d) 2) dX.w) dX.w) (log2 (sqrt (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (pow (* dX.w (floor d)) 2)) (+ (+ (pow (* dY.u (floor w)) 2) (pow (* dY.v (floor h)) 2)) (pow (* dY.w (floor d)) 2))))) (sqrt (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (pow (* dX.w (floor d)) 2)) (+ (+ (pow (* dY.u (floor w)) 2) (pow (* dY.v (floor h)) 2)) (pow (* dY.w (floor d)) 2)))) (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (pow (* dX.w (floor d)) 2)) (+ (+ (pow (* dY.u (floor w)) 2) (pow (* dY.v (floor h)) 2)) (pow (* dY.w (floor d)) 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)) (+ (* (* dY.u dY.u) (pow (floor w) 2)) (pow (* (floor h) dY.v) 2)) (* (* dY.v (pow (floor h) 2)) dY.v) (+ (* (* (pow (floor w) 2) dX.u) dX.u) (+ (* (* (pow (floor h) 2) dX.v) dX.v) (* (* (pow (floor d) 2) dX.w) dX.w))) (+ (* (* (pow (floor h) 2) dX.v) dX.v) (* (* (pow (floor d) 2) dX.w) dX.w)) (exp (+ (* (log (floor w)) 2) (* (log dX.u) 2))) (+ (* (log (floor w)) 2) (* (log dX.u) 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))) (pow (* dY.u (floor w)) 2) (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (pow (* dX.w (floor d)) 2)) (pow (* dY.v (floor h)) 2) (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) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (* (* (floor d) dY.w) (* (floor d) dY.w))) (+ (* (* dY.w (pow (floor d) 2)) dY.w) (* (* dY.v (pow (floor h) 2)) dY.v)) (+ (* (* dY.u (pow (floor w) 2)) dY.u) (+ (* (* dY.w (pow (floor d) 2)) dY.w) (* (* dY.v (pow (floor h) 2)) dY.v))) (sqrt (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (pow (* dX.w (floor d)) 2)) (+ (+ (pow (* dY.u (floor w)) 2) (pow (* dY.v (floor h)) 2)) (pow (* dY.w (floor d)) 2)))) (+ (* (* (pow (floor w) 2) dY.u) dY.u) (+ (pow (* dY.w (floor d)) 2) (pow (* dY.v (floor h)) 2))) (sqrt (fmax (+ (+ (exp (+ (* (log (floor w)) 2) (* (log dX.u) 2))) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor d) dX.w) (* (floor d) dX.w))) (+ (* (* (pow (floor w) 2) dY.u) dY.u) (+ (pow (* dY.w (floor d)) 2) (pow (* dY.v (floor h)) 2)))))) |
| 269.0ms | h | @ | -inf | ((exp (* (log (fmax (+ (+ (pow (* (floor h) dX.v) 2) (pow (* (floor w) dX.u) 2)) (pow (* (floor d) dX.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))))) 1/2)) (log2 (exp (* (log (fmax (+ (+ (pow (* (floor h) dX.v) 2) (pow (* (floor w) dX.u) 2)) (pow (* (floor d) dX.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))))) 1/2))) (* (log (fmax (+ (+ (pow (* (floor h) dX.v) 2) (pow (* (floor w) dX.u) 2)) (pow (* (floor d) dX.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))))) 1/2) (log (fmax (+ (+ (pow (* (floor h) dX.v) 2) (pow (* (floor w) dX.u) 2)) (pow (* (floor d) dX.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))))) (* (* (pow (floor d) 2) dX.w) dX.w) (log2 (sqrt (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (pow (* dX.w (floor d)) 2)) (+ (+ (pow (* dY.u (floor w)) 2) (pow (* dY.v (floor h)) 2)) (pow (* dY.w (floor d)) 2))))) (sqrt (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (pow (* dX.w (floor d)) 2)) (+ (+ (pow (* dY.u (floor w)) 2) (pow (* dY.v (floor h)) 2)) (pow (* dY.w (floor d)) 2)))) (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (pow (* dX.w (floor d)) 2)) (+ (+ (pow (* dY.u (floor w)) 2) (pow (* dY.v (floor h)) 2)) (pow (* dY.w (floor d)) 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)) (+ (* (* dY.u dY.u) (pow (floor w) 2)) (pow (* (floor h) dY.v) 2)) (* (* dY.v (pow (floor h) 2)) dY.v) (+ (* (* (pow (floor w) 2) dX.u) dX.u) (+ (* (* (pow (floor h) 2) dX.v) dX.v) (* (* (pow (floor d) 2) dX.w) dX.w))) (+ (* (* (pow (floor h) 2) dX.v) dX.v) (* (* (pow (floor d) 2) dX.w) dX.w)) (exp (+ (* (log (floor w)) 2) (* (log dX.u) 2))) (+ (* (log (floor w)) 2) (* (log dX.u) 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))) (pow (* dY.u (floor w)) 2) (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (pow (* dX.w (floor d)) 2)) (pow (* dY.v (floor h)) 2) (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) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))) (* (* (floor d) dY.w) (* (floor d) dY.w))) (+ (* (* dY.w (pow (floor d) 2)) dY.w) (* (* dY.v (pow (floor h) 2)) dY.v)) (+ (* (* dY.u (pow (floor w) 2)) dY.u) (+ (* (* dY.w (pow (floor d) 2)) dY.w) (* (* dY.v (pow (floor h) 2)) dY.v))) (sqrt (fmax (+ (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))) (pow (* dX.w (floor d)) 2)) (+ (+ (pow (* dY.u (floor w)) 2) (pow (* dY.v (floor h)) 2)) (pow (* dY.w (floor d)) 2)))) (+ (* (* (pow (floor w) 2) dY.u) dY.u) (+ (pow (* dY.w (floor d)) 2) (pow (* dY.v (floor h)) 2))) (sqrt (fmax (+ (+ (exp (+ (* (log (floor w)) 2) (* (log dX.u) 2))) (* (* (floor h) dX.v) (* (floor h) dX.v))) (* (* (floor d) dX.w) (* (floor d) dX.w))) (+ (* (* (pow (floor w) 2) dY.u) dY.u) (+ (pow (* dY.w (floor d)) 2) (pow (* dY.v (floor h)) 2)))))) |
| 256.0ms | normAngle | @ | inf | ((* (sin (- normAngle (* normAngle u))) (/ 1 (sin normAngle))) (+ (* (* (sin (- normAngle (* normAngle u))) (/ 1 (sin normAngle))) n0_i) (* (* (sin (* u normAngle)) (/ 1 (sin normAngle))) n1_i)) (* (* (sin (- normAngle (* normAngle u))) (/ 1 (sin normAngle))) n0_i) (sin (- normAngle (* normAngle u))) (+ (* (* (sin (* (- 1 u) normAngle)) (/ 1 (sin normAngle))) n0_i) (* (* (sin (* u normAngle)) (/ 1 (sin normAngle))) n1_i)) (+ (* (- 1 u) n0_i) (* u n1_i)) (* u n1_i) (+ (* n1_i u) (* n0_i (- 1 u))) (+ (* (* (sin (* (- 1 u) normAngle)) (/ 1 (sin normAngle))) n0_i) (* (* (sin (* u normAngle)) (/ 1 (sin normAngle))) n1_i)) (* n1_i u) (* n0_i (- 1 u)) (+ (* (* (sin (+ (* (neg u) normAngle) normAngle)) (/ 1 (sin normAngle))) n0_i) (* (* (sin (* u normAngle)) (/ 1 (sin normAngle))) n1_i)) (* (sin (* u normAngle)) (/ n1_i (sin normAngle))) (sin (* u normAngle)) (* u normAngle) (+ (* (* (sin (* (- 1 u) normAngle)) (/ 1 (sin normAngle))) n0_i) (* (* (sin (* u normAngle)) (/ 1 (sin normAngle))) n1_i)) (* (* (sin (* (- 1 u) normAngle)) (/ 1 (sin normAngle))) n0_i) (* (sin (* (- 1 u) normAngle)) (/ n0_i (sin normAngle))) (sin (* (- 1 u) normAngle)) (* (sin (* u normAngle)) (/ 1 (sin normAngle))) (/ n1_i (sin normAngle)) (* (- 1 u) normAngle)) |
| 156.0ms | s | @ | 0 | ((* (* 3 s) (log (/ 1 (+ (* -4/3 (- u 1/4)) 1)))) (/ 1 (+ (* -4/3 (- u 1/4)) 1)) (+ (* -4/3 (- u 1/4)) 1) (* -4/3 (- u 1/4)) (* (* 3 s) (log (/ 1 (- 1 (/ (- u 1/4) 3/4))))) (* (* (log 3/4) s) 3) (* (log 3/4) s) (log 3/4) (* (* 3 s) (log (/ 1 (- 1 (/ (- u 1/4) 3/4))))) (* (log (+ (* -4/3 u) 4/3)) (* -3 s)) (log (+ (* -4/3 u) 4/3)) (+ (* -4/3 u) 4/3) (* (* 3 s) (log (/ 1 (- 1 (/ (- u 1/4) 3/4))))) (* 3 s) (log (/ 1 (- 1 (/ (- u 1/4) 3/4)))) (+ (* (+ (* 1/2 u) 1) u) (log 3/4)) (* (* 3 s) (log (/ 1 (- 1 (+ (* 4/3 u) -1/3))))) (/ 1 (- 1 (+ (* 4/3 u) -1/3))) (- 1 (+ (* 4/3 u) -1/3)) (log (/ 1 (+ (* -4/3 (- u 1/4)) 1))) (+ (* 1/2 u) 1) (+ (* 4/3 u) -1/3) (log (/ 1 (- 1 (+ (* 4/3 u) -1/3))))) |
| 30× | egg-herbie |
| 132 696× | lower-fma.f64 |
| 132 696× | lower-fma.f32 |
| 46 474× | lower-*.f64 |
| 46 188× | lower-*.f32 |
| 27 984× | unsub-neg |
| 60× | iter limit |
| 31× | saturated |
| 29× | node limit |
Compiled 59 166 to 18 540 computations (68.7% saved)
| Operator | Subexpression | Explanation | Count | |
|---|---|---|---|---|
log.f32 | #f | sensitivity | 1029 | 55 |
-.f32 | #f | cancellation | 381 | 38 |
sqrt.f32 | #f | oflow-rescue | 342 | 0 |
cos.f32 | (cos.f32 (atan.f32 (*.f32 (/.f32 alphay alphax) (tan.f32 (+.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) u1) (*.f32 #s(literal 1/2 binary32) (PI.f32))))))) | sensitivity | 197 | 14 |
tan.f32 | (tan.f32 (+.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) u1) (*.f32 #s(literal 1/2 binary32) (PI.f32)))) | cancellation | 191 | 8 |
/.f32 | #f | o/n | 120 | 0 |
exp.f32 | #f | sensitivity | 38 | 19 |
/.f32 | #f | u/n | 28 | 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 | 19 | 0 |
| ↳ | (*.f32 sinTheta_O sinTheta_O) | underflow | 290 | |
| ↳ | (-.f32 (*.f32 eta eta) (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 sinTheta_O sinTheta_O))))) | underflow | 19 | |
| ↳ | (/.f32 (*.f32 sinTheta_O sinTheta_O) (sqrt.f32 (-.f32 #s(literal 1 binary32) (*.f32 sinTheta_O sinTheta_O)))) | underflow | 145 | |
| ↳ | (*.f32 eta eta) | underflow | 19 | |
/.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 | 7 | 0 |
| ↳ | (/.f32 sin2phi (*.f32 alphay alphay)) | overflow | 12 | |
| ↳ | (+.f32 (/.f32 cos2phi (*.f32 alphax alphax)) (/.f32 sin2phi (*.f32 alphay alphay))) | overflow | 12 | |
*.f32 | (*.f32 (sin.f32 (*.f32 u normAngle)) (/.f32 #s(literal 1 binary32) (sin.f32 normAngle))) | n*u | 5 | 0 |
/.f32 | #f | o/o | 4 | 0 |
log.f32 | (log.f32 (/.f32 #s(literal 1 binary32) (*.f32 #s(literal 2 binary32) v))) | oflow-rescue | 1 | 0 |
| ↳ | (/.f32 #s(literal 1 binary32) (*.f32 #s(literal 2 binary32) v)) | overflow | 1 |
| Predicted + | Predicted - | |
|---|---|---|
| + | 1651 | 64 |
| - | 400 | 5565 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 1651 | 35 | 29 |
| - | 400 | 86 | 5479 |
| number | freq |
|---|---|
| 0 | 5629 |
| 1 | 1744 |
| 2 | 303 |
| 3 | 4 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 20 | 1 | 1 |
| - | 3 | 1 | 4 |
| 2.5s | 15 306× | 0 | valid |
| 17.0ms | 54× | 1 | valid |
Compiled 16 376 to 1 722 computations (89.5% saved)
ival-mult: 574.0ms (33.6% of total)ival-div: 226.0ms (13.2% of total)ival-add: 114.0ms (6.7% of total)ival-sub: 106.0ms (6.2% of total)ival-sqrt: 93.0ms (5.4% of total)ival-log: 78.0ms (4.6% of total)const: 61.0ms (3.6% of total)ival-sinu: 47.0ms (2.8% of total)ival-sin: 44.0ms (2.6% of total)ival-exp: 42.0ms (2.5% of total)ival-floor: 42.0ms (2.5% of total)ival-neg: 42.0ms (2.5% of total)ival-fabs: 32.0ms (1.9% of total)ival-pi: 28.0ms (1.6% of total)ival-cos: 24.0ms (1.4% of total)ival-cosu: 24.0ms (1.4% of total)ival-tan: 21.0ms (1.2% of total)ival-fmax: 16.0ms (0.9% of total)ival-if: 16.0ms (0.9% of total)ival-true: 15.0ms (0.9% of total)exact: 14.0ms (0.8% of total)ival-log2: 13.0ms (0.8% of total)ival-atan: 8.0ms (0.5% of total)ival-assert: 7.0ms (0.4% of total)ival-sinh: 6.0ms (0.4% of total)ival-asin: 4.0ms (0.2% of total)ival->=: 4.0ms (0.2% of total)ival->: 3.0ms (0.2% of total)adjust: 2.0ms (0.1% of total)ival-<: 1.0ms (0.1% of total)| 55× | left-value |
| 37× | binary-search |
| 37× | narrow-enough |
Compiled 4 327 to 2 052 computations (52.6% saved)
Loading profile data...