Herbie run

Date:Friday, May 24th, 2024
Commit:7841f259 on main
Hostname:nightly with Racket 8.11.1
Seed:2024145
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: 10.1min)

simplify2.6min (26%)

Algorithm
268×egg-herbie
Rules
211904×fma-define
120428×distribute-lft-in
116402×*-commutative
115944×times-frac
109948×fma-neg
Stop Event
63×saturated
205×node limit
Counts
106406 → 74700

sample1.6min (15.4%)

Results
1.2min247619×0valid
1.2s8335×0invalid
1.0s2049×0precondition
11.0ms61×1valid
Precisions
Click to see histograms. Total time spent on operations: 58.9s
ival-mult: 12.7s (21.6% of total)
ival-<=: 10.7s (18.2% of total)
...c/correct-round.rkt:121:19: 8.5s (14.4% of total)
ival-div: 4.9s (8.3% of total)
ival-fabs: 2.6s (4.5% of total)
ival-sub: 2.3s (3.9% of total)
ival-add: 2.1s (3.6% of total)
ival-sin: 2.0s (3.3% of total)
ival-log: 1.9s (3.3% of total)
ival-and: 1.6s (2.7% of total)
ival-sqrt: 1.5s (2.6% of total)
ival-pi: 928.0ms (1.6% of total)
ival-floor: 914.0ms (1.6% of total)
ival-cos: 895.0ms (1.5% of total)
ival-exp: 883.0ms (1.5% of total)
ival-neg: 742.0ms (1.3% of total)
ival-if: 537.0ms (0.9% of total)
const: 510.0ms (0.9% of total)
ival-tan: 397.0ms (0.7% of total)
ival-fmax: 368.0ms (0.6% of total)
ival->: 344.0ms (0.6% of total)
ival-<: 339.0ms (0.6% of total)
ival-sinh: 278.0ms (0.5% of total)
ival-log2: 241.0ms (0.4% of total)
ival-asin: 178.0ms (0.3% of total)
ival->=: 171.0ms (0.3% of total)
ival-==: 170.0ms (0.3% of total)
ival-atan: 126.0ms (0.2% of total)
backward-pass: 74.0ms (0.1% of total)
Bogosity

soundness1.5min (15.3%)

Rules
98304×fma-define
67054×*-commutative
65614×times-frac
61184×associate-*r*
56408×distribute-lft-in
Stop Event
saturated
167×node limit
29×fuel
done
Compiler

Compiled 63515 to 12661 computations (80.1% saved)

prune44.6s (7.4%)

Counts
145593 → 4294
Compiler

Compiled 394856 to 142644 computations (63.9% saved)

localize41.2s (6.8%)

Results
18.8s26645×0valid
4.6s706×5exit
1.6s586×1valid
1.5s1940×0invalid
240.0ms587×0unsamplable
Compiler

Compiled 106809 to 5587 computations (94.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 16.1s
ival-mult: 4.6s (28.3% of total)
ival-div: 2.2s (13.5% of total)
ival-pow: 1.6s (10.1% of total)
ival-add: 758.0ms (4.7% of total)
ival-sqrt: 661.0ms (4.1% of total)
ival-hypot: 564.0ms (3.5% of total)
...c/correct-round.rkt:121:19: 538.0ms (3.3% of total)
ival-exp: 537.0ms (3.3% of total)
backward-pass: 516.0ms (3.2% of total)
ival-sin: 471.0ms (2.9% of total)
ival-sub: 450.0ms (2.8% of total)
ival-fma: 410.0ms (2.5% of total)
ival-log1p: 387.0ms (2.4% of total)
ival-tan: 382.0ms (2.4% of total)
ival-log: 339.0ms (2.1% of total)
ival-neg: 274.0ms (1.7% of total)
ival-cos: 196.0ms (1.2% of total)
ival-fmax: 167.0ms (1% of total)
ival-if: 139.0ms (0.9% of total)
ival-expm1: 122.0ms (0.8% of total)
ival-log2: 114.0ms (0.7% of total)
ival-floor: 108.0ms (0.7% of total)
ival->=: 104.0ms (0.6% of total)
const: 98.0ms (0.6% of total)
ival-atan: 97.0ms (0.6% of total)
ival-cbrt: 96.0ms (0.6% of total)
ival-pi: 82.0ms (0.5% of total)
ival-asin: 49.0ms (0.3% of total)
ival->: 37.0ms (0.2% of total)
ival-fabs: 35.0ms (0.2% of total)
ival-sinh: 12.0ms (0.1% of total)
ival-<: 11.0ms (0.1% of total)
ival-e: 4.0ms (0% of total)

series36.7s (6.1%)

Counts
2057 → 60576
Calls

14868 calls:

TimeVariablePointExpression
719.0ms
d
@0
(pow (cbrt (sqrt (fmax (pow (sqrt (+ (* (* (floor d) dX.w) (* (floor d) dX.w)) (* (sqrt (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v)))) (sqrt (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))))))) 2) (pow (sqrt (+ (* (* (floor d) dY.w) (* (floor d) dY.w)) (* (* (floor w) dY.u) (* (floor w) dY.u)))) 2)))) 3)
305.0ms
w
@-inf
(log (+ 1 (sqrt (fmax (pow (sqrt (+ (* (* (floor d) dX.w) (* (floor d) dX.w)) (* (sqrt (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v)))) (sqrt (+ (* (* (floor w) dX.u) (* (floor w) dX.u)) (* (* (floor h) dX.v) (* (floor h) dX.v))))))) 2) (pow (sqrt (+ (* (* (floor d) dY.w) (* (floor d) dY.w)) (* (sqrt (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) (sqrt (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v))))))) 2)))))
303.0ms
u1
@-inf
(* (pow u2 2) (+ (* -9740909103402808085817682884085781839780052161/18750000000000000000000000000000000000000000 (/ (* u1 (pow u2 2)) (- 1 u1))) (* 98696044010906577398881/2500000000000000000000 (/ u1 (- 1 u1)))))
298.0ms
dY.u
@-inf
(if (< (if (> (/ (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)))) (fabs (- (* (* (floor w) dX.u) (* (floor h) dY.v)) (* (* (floor h) dX.v) (* (floor w) dY.u))))) (floor maxAniso)) (/ (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 maxAniso)) (/ (fabs (* (* (neg dX.v) (* (floor h) dY.u)) (floor w))) (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))))))) 1) (fmax 1 (* (if (> (/ (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)))) (fabs (- (* (* (floor w) dX.u) (* (floor h) dY.v)) (* (* (floor h) dX.v) (* (floor w) dY.u))))) (floor maxAniso)) (floor maxAniso) (/ (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)))) (fabs (- (* (* (floor w) dX.u) (* (floor h) dY.v)) (* (* (floor h) dX.v) (* (floor w) dY.u)))))) (if (> (/ (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)))) (fabs (- (* (* (floor w) dX.u) (* (floor h) dY.v)) (* (* (floor h) dX.v) (* (floor w) dY.u))))) (floor maxAniso)) (/ (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 maxAniso)) (/ (fabs (- (* (* (floor w) dX.u) (* (floor h) dY.v)) (* (* (floor h) dX.v) (* (floor w) dY.u)))) (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))))))))) (if (> (/ (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)))) (fabs (- (* (* (floor w) dX.u) (* (floor h) dY.v)) (* (* (floor h) dX.v) (* (floor w) dY.u))))) (floor maxAniso)) (floor maxAniso) (/ (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)))) (fabs (- (* (* (floor w) dX.u) (* (floor h) dY.v)) (* (* (floor h) dX.v) (* (floor w) dY.u)))))))
201.0ms
dX.v
@inf
(log (fmax (pow (sqrt (+ (* (* dX.v (floor h)) (* dX.v (floor h))) (* (* dX.u (floor w)) (* dX.u (floor w))))) 2) (pow (sqrt (+ (* (* (floor w) dY.u) (* (floor w) dY.u)) (* (* (floor h) dY.v) (* (floor h) dY.v)))) 2)))

analyze32.8s (5.4%)

Algorithm
30×search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
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%0%6
69.5%1.8%0.8%97.4%0%0%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
Compiler

Compiled 2668 to 1046 computations (60.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 21.5s
ival-mult: 4.8s (22.1% of total)
ival-<=: 4.4s (20.4% of total)
...c/correct-round.rkt:121:19: 2.3s (10.7% of total)
ival-fabs: 1.4s (6.3% of total)
ival-div: 1.2s (5.4% of total)
ival-add: 974.0ms (4.5% of total)
ival-floor: 917.0ms (4.3% of total)
ival-and: 711.0ms (3.3% of total)
ival-sub: 672.0ms (3.1% of total)
ival-sqrt: 561.0ms (2.6% of total)
ival-if: 467.0ms (2.2% of total)
ival-log: 436.0ms (2% of total)
ival-fmax: 403.0ms (1.9% of total)
ival-sin: 395.0ms (1.8% of total)
ival-cos: 364.0ms (1.7% of total)
ival->=: 314.0ms (1.5% of total)
ival-==: 275.0ms (1.3% of total)
ival-log2: 201.0ms (0.9% of total)
ival->: 172.0ms (0.8% of total)
const: 142.0ms (0.7% of total)
ival-tan: 104.0ms (0.5% of total)
ival-pi: 101.0ms (0.5% of total)
ival-exp: 78.0ms (0.4% of total)
ival-neg: 78.0ms (0.4% of total)
ival-<: 62.0ms (0.3% of total)
ival-sinh: 42.0ms (0.2% of total)
ival-atan: 38.0ms (0.2% of total)
backward-pass: 24.0ms (0.1% of total)
ival-asin: 18.0ms (0.1% of total)

rewrite32.0s (5.3%)

Algorithm
119×batch-egg-rewrite
Rules
62619×log1p-expm1-u
51140×expm1-log1p-u
37978×pow1
36666×log-prod
36517×add-exp-log
Stop Event
119×node limit
Counts
2057 → 45830

eval29.4s (4.9%)

Compiler

Compiled 14089995 to 624935 computations (95.6% saved)

regimes29.1s (4.8%)

Counts
10173 → 399
Calls

145 calls:

803.0ms
s
770.0ms
ux
733.0ms
uy
687.0ms
u2
683.0ms
maxCos
Compiler

Compiled 14154 to 9859 computations (30.3% saved)

preprocess8.8s (1.4%)

Algorithm
30×egg-herbie
Rules
30630×fma-define
21782×fma-neg
15892×unsub-neg
14706×distribute-lft-neg-in
11858×distribute-rgt-neg-in
Stop Event
11×saturated
19×node limit
Compiler

Compiled 52656 to 15352 computations (70.8% saved)

explain7.5s (1.2%)

Results
4.1s15284×0valid
40.0ms76×1valid
Compiler

Compiled 16652 to 1662 computations (90% saved)

Precisions
Click to see histograms. Total time spent on operations: 2.0s
ival-mult: 612.0ms (31.1% of total)
ival-add: 222.0ms (11.3% of total)
ival-div: 201.0ms (10.2% of total)
ival-sqrt: 175.0ms (8.9% of total)
ival-sub: 149.0ms (7.6% of total)
ival-log: 85.0ms (4.3% of total)
ival-sin: 83.0ms (4.2% of total)
ival-exp: 79.0ms (4% of total)
ival-floor: 79.0ms (4% of total)
ival-cos: 45.0ms (2.3% of total)
ival-neg: 32.0ms (1.6% of total)
ival-pi: 29.0ms (1.5% of total)
const: 28.0ms (1.4% of total)
...c/correct-round.rkt:121:19: 25.0ms (1.3% of total)
ival-fmax: 21.0ms (1.1% of total)
ival-tan: 20.0ms (1% of total)
ival-if: 15.0ms (0.8% of total)
ival-log2: 14.0ms (0.7% of total)
ival-asin: 10.0ms (0.5% of total)
ival-fabs: 10.0ms (0.5% of total)
backward-pass: 8.0ms (0.4% of total)
ival-atan: 7.0ms (0.4% of total)
ival->=: 6.0ms (0.3% of total)
ival-sinh: 6.0ms (0.3% of total)
ival->: 5.0ms (0.3% of total)
ival-<: 2.0ms (0.1% of total)

bsearch43.0ms (0%)

Algorithm
51×binary-search
23×left-value
Stop Event
51×narrow-enough
Compiler

Compiled 4787 to 1924 computations (59.8% saved)

end0.0ms (0%)

Profiling

Loading profile data...