Herbie run

Date:Thursday, May 23rd, 2024
Commit:f940d267 on brett-blog-post
Hostname:nightly with Racket 8.11.1
Seed:2024144
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: 17.4min)

sample5.7min (32.7%)

Results
2.0min25860×5exit
1.2min130062×1valid
41.8s270362×0valid
24.0s8195×3valid
19.0s19320×2valid
12.8s49623×0unsamplable
7.3s1371×4valid
3.6s18712×0invalid
2.8s11263×1invalid
1.5s1725×2invalid
114.0ms925×0precondition
45.0ms64×1unsamplable
16.0ms20×3invalid
3.0ms5valid
Precisions
Click to see histograms. Total time spent on operations: 4.4min
ival-pow: 1.9min (42.3% of total)
ival-mult: 26.4s (9.9% of total)
ival-sin: 23.8s (8.9% of total)
ival-cos: 21.5s (8.1% of total)
backward-pass: 17.3s (6.5% of total)
ival-div: 15.6s (5.9% of total)
ival-add: 9.2s (3.4% of total)
ival-sub: 8.4s (3.1% of total)
ival-exp: 6.9s (2.6% of total)
ival-log: 5.9s (2.2% of total)
ival-sqrt: 5.0s (1.9% of total)
ival-neg: 3.8s (1.4% of total)
ival-<: 2.7s (1% of total)
...c/correct-round.rkt:121:19: 1.9s (0.7% of total)
const: 1.0s (0.4% of total)
ival-atan2: 757.0ms (0.3% of total)
ival-pi: 697.0ms (0.3% of total)
ival-tan: 642.0ms (0.2% of total)
ival-acos: 465.0ms (0.2% of total)
ival-atan: 426.0ms (0.2% of total)
ival-and: 409.0ms (0.2% of total)
ival-cbrt: 315.0ms (0.1% of total)
ival-<=: 260.0ms (0.1% of total)
ival-asin: 149.0ms (0.1% of total)
ival-fabs: 146.0ms (0.1% of total)
ival-==: 4.0ms (0% of total)
ival-or: 0.0ms (0% of total)
Bogosity

simplify2.8min (16.1%)

Algorithm
447×egg-herbie
Rules
184460×fma-define
119337×fma-neg
103408×distribute-lft-in
90298×*-commutative
90032×distribute-rgt-in
Stop Event
125×saturated
321×node limit
unsound
Counts
146079 → 119931

soundness2.0min (11.5%)

Rules
90542×fma-define
64640×log1p-expm1-u
52061×*-commutative
52027×distribute-lft-in
50978×fma-neg
Stop Event
15×saturated
44×fuel
256×node limit
unsound
done
Compiler

Compiled 66302 to 19539 computations (70.5% saved)

localize1.5min (8.8%)

Results
23.7s13033×1valid
18.0s1875×5exit
12.8s27557×0valid
8.0s2766×2valid
4.2s4595×0invalid
2.9s507×3valid
860.0ms300×1invalid
522.0ms47×4valid
5.0ms0unsamplable
Compiler

Compiled 91642 to 7558 computations (91.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 48.4s
ival-mult: 8.8s (18.1% of total)
ival-sin: 7.5s (15.4% of total)
ival-pow: 7.4s (15.3% of total)
ival-cos: 5.7s (11.8% of total)
backward-pass: 3.9s (8.1% of total)
ival-div: 3.8s (7.8% of total)
ival-add: 1.6s (3.4% of total)
ival-sub: 1.5s (3% of total)
...c/correct-round.rkt:121:19: 1.3s (2.6% of total)
ival-sqrt: 1.1s (2.4% of total)
ival-log: 938.0ms (1.9% of total)
ival-fma: 809.0ms (1.7% of total)
ival-exp: 698.0ms (1.4% of total)
ival-cbrt: 565.0ms (1.2% of total)
ival-hypot: 538.0ms (1.1% of total)
ival-log1p: 367.0ms (0.8% of total)
ival-atan2: 354.0ms (0.7% of total)
ival-neg: 309.0ms (0.6% of total)
ival-expm1: 257.0ms (0.5% of total)
const: 210.0ms (0.4% of total)
ival-tan: 202.0ms (0.4% of total)
ival-atan: 194.0ms (0.4% of total)
ival-acos: 142.0ms (0.3% of total)
ival-fabs: 116.0ms (0.2% of total)
ival-pi: 83.0ms (0.2% of total)
ival-asin: 28.0ms (0.1% of total)

regimes1.0min (5.8%)

Counts
25426 → 923
Calls

155 calls:

4.1s
phi1
4.0s
lambda1
3.8s
phi2
3.5s
lambda2
2.8s
b
Compiler

Compiled 13933 to 8964 computations (35.7% saved)

rewrite53.4s (5.1%)

Algorithm
197×batch-egg-rewrite
Rules
127268×log1p-expm1-u
92081×expm1-log1p-u
52059×pow1
47892×add-exp-log
45702×add-log-exp
Stop Event
193×node limit
unsound
Counts
2994 → 77916

prune52.6s (5%)

Counts
189937 → 8439
Compiler

Compiled 588311 to 286067 computations (51.4% saved)

eval39.1s (3.7%)

Compiler

Compiled 8679022 to 838926 computations (90.3% saved)

series37.6s (3.6%)

Counts
2994 → 68163
Calls

17781 calls:

TimeVariablePointExpression
475.0ms
a
@inf
(log (+ 1 (* 180 (/ (atan (/ (- (* (pow (sqrt (+ (* (* a (cos (* angle (* (PI) 1/180)))) (* a (cos (* angle (* (PI) 1/180))))) (* (* b (sin (* angle (* (PI) 1/180)))) (* b (sin (* angle (* (PI) 1/180))))))) 2) (pow y-scale -2)) (+ (* (pow (sqrt (+ (* (* a (sin (* angle (* (PI) 1/180)))) (* a (sin (* angle (* (PI) 1/180))))) (* (* (cos (* angle (* (PI) 1/180))) b) (* (cos (* angle (* (PI) 1/180))) b)))) 2) (pow x-scale -2)) (sqrt (+ (* (- (* (pow (sqrt (+ (* (* a (sin (* angle (* (PI) 1/180)))) (* a (sin (* angle (* (PI) 1/180))))) (* (* (cos (* angle (* (PI) 1/180))) b) (* (cos (* angle (* (PI) 1/180))) b)))) 2) (pow x-scale -2)) (* (pow (sqrt (+ (* (* a (cos (* angle (* (PI) 1/180)))) (* a (cos (* angle (* (PI) 1/180))))) (* (* b (sin (* angle (* (PI) 1/180)))) (* b (sin (* angle (* (PI) 1/180))))))) 2) (pow y-scale -2))) (- (* (pow (sqrt (+ (* (* a (sin (* angle (* (PI) 1/180)))) (* a (sin (* angle (* (PI) 1/180))))) (* (* (cos (* angle (* (PI) 1/180))) b) (* (cos (* angle (* (PI) 1/180))) b)))) 2) (pow x-scale -2)) (* (pow (sqrt (+ (* (* a (cos (* angle (* (PI) 1/180)))) (* a (cos (* angle (* (PI) 1/180))))) (* (* b (sin (* angle (* (PI) 1/180)))) (* b (sin (* angle (* (PI) 1/180))))))) 2) (pow y-scale -2)))) (* (* 2 (/ (* (cos (* angle (* (PI) 1/180))) (* (sin (* angle (* (PI) 1/180))) (- (pow b 2) (pow a 2)))) (* y-scale x-scale))) (* 2 (/ (* (cos (* angle (* (PI) 1/180))) (* (sin (* angle (* (PI) 1/180))) (- (pow b 2) (pow a 2)))) (* y-scale x-scale)))))))) (* 2 (/ (* (cos (* angle (* (PI) 1/180))) (* (sin (* angle (* (PI) 1/180))) (- (pow b 2) (pow a 2)))) (* y-scale x-scale))))) (PI)))))
415.0ms
b
@-inf
(/ (- (- (/ (/ (+ (pow (* a (cos (* (/ angle 180) (PI)))) 2) (pow (* b (sin (* (/ angle 180) (PI)))) 2)) y-scale) y-scale) (/ (/ (+ (pow (* a (sin (* (/ angle 180) (PI)))) 2) (pow (* b (cos (* (/ angle 180) (PI)))) 2)) x-scale) x-scale)) (* (pow a 2) (sqrt (+ (* 4 (/ (* (pow (cos (* 1/180 (* angle (PI)))) 2) (pow (sin (* 1/180 (* angle (PI)))) 2)) (* (pow x-scale 2) (pow y-scale 2)))) (pow (- (/ (pow (sin (* 1/180 (* angle (PI)))) 2) (pow x-scale 2)) (/ (pow (cos (* 1/180 (* angle (PI)))) 2) (pow y-scale 2))) 2))))) (/ (/ (* (* (* 2 (- (pow b 2) (pow a 2))) (sin (* (/ angle 180) (PI)))) (cos (* (/ angle 180) (PI)))) x-scale) y-scale))
361.0ms
b
@-inf
(/ (- (* (pow (sqrt (+ (* (* a (cos (* angle (* (PI) 1/180)))) (* a (cos (* angle (* (PI) 1/180))))) (* (* b (sin (* angle (* (PI) 1/180)))) (* b (sin (* angle (* (PI) 1/180))))))) 2) (pow y-scale -2)) (+ (* (pow (sqrt (+ (* (* a (sin (* angle (* (PI) 1/180)))) (* a (sin (* angle (* (PI) 1/180))))) (* (* (cos (* angle (* (PI) 1/180))) b) (* (cos (* angle (* (PI) 1/180))) b)))) 2) (pow x-scale -2)) (sqrt (+ (* (- (* (pow (sqrt (+ (* (* a (sin (* angle (* (PI) 1/180)))) (* a (sin (* angle (* (PI) 1/180))))) (* (* (cos (* angle (* (PI) 1/180))) b) (* (cos (* angle (* (PI) 1/180))) b)))) 2) (pow x-scale -2)) (* (pow (sqrt (+ (* (* a (cos (* angle (* (PI) 1/180)))) (* a (cos (* angle (* (PI) 1/180))))) (* (* b (sin (* angle (* (PI) 1/180)))) (* b (sin (* angle (* (PI) 1/180))))))) 2) (pow y-scale -2))) (- (* (pow (sqrt (+ (* (* a (sin (* angle (* (PI) 1/180)))) (* a (sin (* angle (* (PI) 1/180))))) (* (* (cos (* angle (* (PI) 1/180))) b) (* (cos (* angle (* (PI) 1/180))) b)))) 2) (pow x-scale -2)) (* (pow (sqrt (+ (* (* a (cos (* angle (* (PI) 1/180)))) (* a (cos (* angle (* (PI) 1/180))))) (* (* b (sin (* angle (* (PI) 1/180)))) (* b (sin (* angle (* (PI) 1/180))))))) 2) (pow y-scale -2)))) (* (* 2 (/ (* (cos (* angle (* (PI) 1/180))) (* (sin (* angle (* (PI) 1/180))) (- (pow b 2) (pow a 2)))) (* y-scale x-scale))) (* 2 (/ (* (cos (* angle (* (PI) 1/180))) (* (sin (* angle (* (PI) 1/180))) (- (pow b 2) (pow a 2)))) (* y-scale x-scale)))))))) (* 2 (/ (* (cos (* angle (* (PI) 1/180))) (* (sin (* angle (* (PI) 1/180))) (- (pow b 2) (pow a 2)))) (* y-scale x-scale))))
359.0ms
b
@inf
(log (+ 1 (* 180 (/ (atan (/ (- (* (pow (sqrt (+ (* (* a (cos (* angle (* (PI) 1/180)))) (* a (cos (* angle (* (PI) 1/180))))) (* (* b (sin (* angle (* (PI) 1/180)))) (* b (sin (* angle (* (PI) 1/180))))))) 2) (pow y-scale -2)) (+ (* (pow (sqrt (+ (* (* a (sin (* angle (* (PI) 1/180)))) (* a (sin (* angle (* (PI) 1/180))))) (* (* (cos (* angle (* (PI) 1/180))) b) (* (cos (* angle (* (PI) 1/180))) b)))) 2) (pow x-scale -2)) (sqrt (+ (* (- (* (pow (sqrt (+ (* (* a (sin (* angle (* (PI) 1/180)))) (* a (sin (* angle (* (PI) 1/180))))) (* (* (cos (* angle (* (PI) 1/180))) b) (* (cos (* angle (* (PI) 1/180))) b)))) 2) (pow x-scale -2)) (* (pow (sqrt (+ (* (* a (cos (* angle (* (PI) 1/180)))) (* a (cos (* angle (* (PI) 1/180))))) (* (* b (sin (* angle (* (PI) 1/180)))) (* b (sin (* angle (* (PI) 1/180))))))) 2) (pow y-scale -2))) (- (* (pow (sqrt (+ (* (* a (sin (* angle (* (PI) 1/180)))) (* a (sin (* angle (* (PI) 1/180))))) (* (* (cos (* angle (* (PI) 1/180))) b) (* (cos (* angle (* (PI) 1/180))) b)))) 2) (pow x-scale -2)) (* (pow (sqrt (+ (* (* a (cos (* angle (* (PI) 1/180)))) (* a (cos (* angle (* (PI) 1/180))))) (* (* b (sin (* angle (* (PI) 1/180)))) (* b (sin (* angle (* (PI) 1/180))))))) 2) (pow y-scale -2)))) (* (* 2 (/ (* (cos (* angle (* (PI) 1/180))) (* (sin (* angle (* (PI) 1/180))) (- (pow b 2) (pow a 2)))) (* y-scale x-scale))) (* 2 (/ (* (cos (* angle (* (PI) 1/180))) (* (sin (* angle (* (PI) 1/180))) (- (pow b 2) (pow a 2)))) (* y-scale x-scale)))))))) (* 2 (/ (* (cos (* angle (* (PI) 1/180))) (* (sin (* angle (* (PI) 1/180))) (- (pow b 2) (pow a 2)))) (* y-scale x-scale))))) (PI)))))
292.0ms
delta
@0
(- (cos delta) (* (sin phi1) (sin (asin (+ (* (sin phi1) (cos delta)) (* (cos phi1) (* (sin delta) (cos theta))))))))

analyze24.2s (2.3%)

Algorithm
53×search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%79.4%20.6%0%0%0%0
14.8%11.8%67.6%20.6%0%0%0%1
22.6%17.7%60.4%21%0%0.9%0%2
32.7%24.7%50.8%21.2%0%3.3%0%3
39.8%29.8%45%21.2%0%4%0%4
45.4%33.8%40.6%21.2%0%4.5%0%5
48.4%35.7%38%21.2%0%5.1%0%6
51.8%37.8%35.2%21.2%0%5.7%0.1%7
53.5%38.9%33.8%21.3%0%6%0.1%8
56.4%40.6%31.4%21.3%0%6.6%0.2%9
57.7%41.4%30.3%21.3%0%6.8%0.2%10
59.8%42.7%28.7%21.3%0%7.1%0.3%11
61.3%43.5%27.5%21.3%0%7.5%0.3%12
Compiler

Compiled 1919 to 947 computations (50.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 15.7s
ival-mult: 5.3s (33.6% of total)
ival-pow: 2.3s (14.3% of total)
ival-cos: 1.7s (10.7% of total)
ival-sin: 1.2s (7.4% of total)
ival-div: 1.1s (7% of total)
ival-sqrt: 848.0ms (5.4% of total)
ival-sub: 781.0ms (5% of total)
ival-add: 771.0ms (4.9% of total)
ival-neg: 379.0ms (2.4% of total)
...c/correct-round.rkt:121:19: 309.0ms (2% of total)
ival-<: 287.0ms (1.8% of total)
ival-exp: 154.0ms (1% of total)
ival-atan2: 124.0ms (0.8% of total)
const: 92.0ms (0.6% of total)
ival-pi: 87.0ms (0.6% of total)
ival-asin: 66.0ms (0.4% of total)
ival-atan: 54.0ms (0.3% of total)
ival-tan: 54.0ms (0.3% of total)
ival-log: 53.0ms (0.3% of total)
ival-and: 51.0ms (0.3% of total)
ival-acos: 39.0ms (0.2% of total)
ival-fabs: 34.0ms (0.2% of total)
backward-pass: 23.0ms (0.1% of total)
ival-cbrt: 21.0ms (0.1% of total)
ival-<=: 3.0ms (0% of total)
ival-==: 1.0ms (0% of total)
ival-or: 0.0ms (0% of total)

bsearch22.0s (2.1%)

Algorithm
338×binary-search
67×left-value
Stop Event
predicate-same
336×narrow-enough
Results
9.0s10924×1valid
5.6s28506×0valid
1.9s1136×3valid
1.3s1258×2valid
209.0ms1921×0invalid
194.0ms48×4valid
Compiler

Compiled 113169 to 76738 computations (32.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 14.7s
ival-cos: 2.9s (19.9% of total)
ival-sin: 2.7s (18.4% of total)
ival-mult: 2.6s (17.5% of total)
ival-pow: 1.4s (9.2% of total)
ival-div: 1.1s (7.5% of total)
backward-pass: 863.0ms (5.9% of total)
ival-sub: 858.0ms (5.8% of total)
ival-add: 838.0ms (5.7% of total)
ival-sqrt: 470.0ms (3.2% of total)
ival-atan2: 200.0ms (1.4% of total)
ival-atan: 170.0ms (1.2% of total)
ival-acos: 134.0ms (0.9% of total)
ival-neg: 125.0ms (0.8% of total)
ival-tan: 93.0ms (0.6% of total)
ival-exp: 91.0ms (0.6% of total)
const: 78.0ms (0.5% of total)
ival-pi: 52.0ms (0.4% of total)
ival-log: 41.0ms (0.3% of total)
ival-fabs: 25.0ms (0.2% of total)
ival-asin: 13.0ms (0.1% of total)

explain18.8s (1.8%)

Results
5.0s8320×1valid
3.5s15710×0valid
3.0s1930×2valid
1.7s582×3valid
374.0ms82×4valid
Compiler

Compiled 20263 to 2450 computations (87.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 9.5s
ival-sin: 1.8s (18.6% of total)
ival-mult: 1.3s (14% of total)
ival-cos: 1.2s (13.2% of total)
backward-pass: 1.2s (13.1% of total)
ival-pow: 1.2s (12.3% of total)
ival-div: 642.0ms (6.8% of total)
ival-add: 406.0ms (4.3% of total)
ival-sub: 364.0ms (3.8% of total)
ival-sqrt: 321.0ms (3.4% of total)
ival-neg: 246.0ms (2.6% of total)
ival-exp: 226.0ms (2.4% of total)
ival-log: 208.0ms (2.2% of total)
ival-tan: 79.0ms (0.8% of total)
const: 56.0ms (0.6% of total)
ival-atan2: 45.0ms (0.5% of total)
ival-pi: 36.0ms (0.4% of total)
ival-atan: 33.0ms (0.3% of total)
ival-cbrt: 22.0ms (0.2% of total)
ival-acos: 21.0ms (0.2% of total)
ival-fabs: 18.0ms (0.2% of total)
ival-asin: 8.0ms (0.1% of total)

preprocess15.3s (1.5%)

Algorithm
52×egg-herbie
Rules
32328×fma-define
19274×fma-neg
13234×div-sub
11584×unsub-neg
11427×sub-neg
Stop Event
22×saturated
30×node limit
Compiler

Compiled 56360 to 20620 computations (63.4% saved)

end0.0ms (0%)

Profiling

Loading profile data...