Details

Time bar (total: 38.9s)

analyze797.0ms (2%)

Algorithm
search
Search
TrueOtherFalseIter
0%0.1%99.9%0
0%0.1%99.9%1
0%0.1%99.9%2
0%0.1%99.9%3
0%0%99.9%4
0%0%99.9%5
0%0%99.9%6
0.1%0%99.9%7
0.1%0%99.9%8
0.1%0%99.9%9
0.1%0%99.9%10
0.1%0%99.9%11
0.1%0%99.9%12
0.1%0%99.9%13
0.1%0%99.9%14
Compiler

Compiled 41 to 30 computations (26.8% saved)

sample75.0ms (0.2%)

Algorithm
intervals
Results
35.0ms256×body128valid
8.0ms256×pre128true
Compiler

Compiled 72 to 53 computations (26.4% saved)

simplify67.0ms (0.2%)

Algorithm
egg-herbie
Rules
575×associate-+l-_binary32
416×associate-+r-_binary32
386×associate--l-_binary32
320×neg-mul-1_binary32
316×distribute-rgt-in_binary32
Counts
1 → 1
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01739
14139
211339
340239
4150236
5468736
6494436
7502436

prune9.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
0.5b
Counts
2 → 2
Alt Table
StatusErrorProgram
13.5b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) (sqrt.f32 (-.f32 1 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) (+.f32 (-.f32 1 ux) (*.f32 ux maxCos))))))
0.5b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) (sqrt.f32 (*.f32 (-.f32 ux (*.f32 ux maxCos)) (+.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1))))
Compiler

Compiled 134 to 94 computations (29.9% saved)

localize62.0ms (0.2%)

Local error

Found 4 expressions with local error:

0.2b
(+.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1)
0.2b
(*.f32 (-.f32 ux (*.f32 ux maxCos)) (+.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1))
0.3b
(*.f32 (*.f32 uy 2) PI.f32)
0.3b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) (sqrt.f32 (*.f32 (-.f32 ux (*.f32 ux maxCos)) (+.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1))))

rewrite265.0ms (0.7%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
13×*-un-lft-identity_binary32
13×add-sqr-sqrt_binary32
13×add-cbrt-cube_binary32
13×add-log-exp_binary32
13×add-exp-log_binary32
Counts
4 → 90
Calls

4 calls:

15.0ms
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) (sqrt.f32 (*.f32 (-.f32 ux (*.f32 ux maxCos)) (+.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1))))
12.0ms
(*.f32 (-.f32 ux (*.f32 ux maxCos)) (+.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1))
8.0ms
(+.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1)
4.0ms
(*.f32 (*.f32 uy 2) PI.f32)
Compiler

Compiled 3166 to 1687 computations (46.7% saved)

series413.0ms (1.1%)

Error
0.3b
Counts
4 → 41
Calls

4 calls:

166.0ms
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) (sqrt.f32 (*.f32 (-.f32 ux (*.f32 ux maxCos)) (+.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1))))
38.0ms
(*.f32 (-.f32 ux (*.f32 ux maxCos)) (+.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1))
27.0ms
(+.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1)
10.0ms
(*.f32 (*.f32 uy 2) PI.f32)
Compiler

Compiled 3451 to 2407 computations (30.3% saved)

simplify154.0ms (0.4%)

Algorithm
egg-herbie
Rules
484×associate-*l*_binary32
418×associate-*r*_binary32
400×cancel-sign-sub-inv_binary32
294×times-frac_binary32
275×*-commutative_binary32
Counts
131 → 116
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
03524993
19284417
236194408
347544378
452514378

prune207.0ms (0.5%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New10412116
Fresh101
Picked101
Done000
Total10612118
Error
0.0b
Counts
118 → 12
Alt Table
StatusErrorProgram
0.6b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) (sqrt.f32 (*.f32 (*.f32 (cbrt.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))) (cbrt.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux)))))) (cbrt.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))))))
0.7b
(*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (sqrt.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))))) (sqrt.f32 (sqrt.f32 (*.f32 (-.f32 ux (*.f32 ux maxCos)) (+.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1)))))
0.7b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) (sqrt.f32 (*.f32 (*.f32 (cbrt.f32 (-.f32 ux (*.f32 ux maxCos))) (cbrt.f32 (-.f32 ux (*.f32 ux maxCos)))) (*.f32 (-.f32 2 (-.f32 ux (*.f32 maxCos ux))) (cbrt.f32 (-.f32 ux (*.f32 maxCos ux)))))))
3.3b
(-.f32 (*.f32 2 (*.f32 (sqrt.f32 (*.f32 (-.f32 (+.f32 2 (*.f32 maxCos ux)) ux) (-.f32 ux (*.f32 maxCos ux)))) (*.f32 uy PI.f32))) (*.f32 4/3 (*.f32 (sqrt.f32 (*.f32 (-.f32 (+.f32 2 (*.f32 maxCos ux)) ux) (-.f32 ux (*.f32 maxCos ux)))) (pow.f32 (*.f32 uy PI.f32) 3))))
1.1b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) (sqrt.f32 (exp.f32 (log.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))))))
0.8b
(*.f32 (*.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32))) (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)))) (*.f32 (sqrt.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))) (cbrt.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))))))
0.6b
(/.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (*.f32 (-.f32 2 (-.f32 ux (*.f32 maxCos ux))) (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux))))))) (sqrt.f32 (+.f32 ux (*.f32 ux maxCos))))
0.6b
(/.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (*.f32 (-.f32 2 (-.f32 ux (*.f32 maxCos ux))) (-.f32 (pow.f32 ux 3) (pow.f32 (*.f32 maxCos ux) 3))))) (sqrt.f32 (+.f32 (*.f32 ux ux) (+.f32 (*.f32 (*.f32 ux maxCos) (*.f32 ux maxCos)) (*.f32 ux (*.f32 ux maxCos))))))
1.4b
(*.f32 (*.f32 (sqrt.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32)))) (sqrt.f32 (sqrt.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))))) (*.f32 (sqrt.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32)))) (sqrt.f32 (sqrt.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))))))
1.1b
(*.f32 (sqrt.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))))) (sqrt.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))))))
18.9b
(log.f32 (exp.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))))))
0.8b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) (sqrt.f32 (*.f32 (-.f32 ux (*.f32 ux maxCos)) (*.f32 (*.f32 (cbrt.f32 (-.f32 2 (-.f32 ux (*.f32 maxCos ux)))) (cbrt.f32 (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))) (cbrt.f32 (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))))))
Compiler

Compiled 4182 to 2181 computations (47.8% saved)

localize89.0ms (0.2%)

Local error

Found 4 expressions with local error:

0.3b
(*.f32 (-.f32 2 (-.f32 ux (*.f32 maxCos ux))) (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux)))))
0.3b
(/.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (*.f32 (-.f32 2 (-.f32 ux (*.f32 maxCos ux))) (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux))))))) (sqrt.f32 (+.f32 ux (*.f32 ux maxCos))))
0.3b
(*.f32 uy PI.f32)
0.3b
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (*.f32 (-.f32 2 (-.f32 ux (*.f32 maxCos ux))) (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux)))))))

rewrite323.0ms (0.8%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
40×associate-*r/_binary32
19×add-sqr-sqrt_binary32
18×flip--_binary32
18×sqrt-div_binary32
18×flip3--_binary32
Counts
4 → 119
Calls

4 calls:

17.0ms
(/.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (*.f32 (-.f32 2 (-.f32 ux (*.f32 maxCos ux))) (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux))))))) (sqrt.f32 (+.f32 ux (*.f32 ux maxCos))))
13.0ms
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (*.f32 (-.f32 2 (-.f32 ux (*.f32 maxCos ux))) (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux)))))))
12.0ms
(*.f32 (-.f32 2 (-.f32 ux (*.f32 maxCos ux))) (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux)))))
3.0ms
(*.f32 uy PI.f32)
Compiler

Compiled 5473 to 1702 computations (68.9% saved)

series712.0ms (1.8%)

Error
0.0b
Counts
4 → 48
Calls

4 calls:

254.0ms
(/.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (*.f32 (-.f32 2 (-.f32 ux (*.f32 maxCos ux))) (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux))))))) (sqrt.f32 (+.f32 ux (*.f32 ux maxCos))))
229.0ms
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (*.f32 (-.f32 2 (-.f32 ux (*.f32 maxCos ux))) (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux)))))))
62.0ms
(*.f32 (-.f32 2 (-.f32 ux (*.f32 maxCos ux))) (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux)))))
14.0ms
(*.f32 uy PI.f32)
Compiler

Compiled 8442 to 5954 computations (29.5% saved)

simplify172.0ms (0.4%)

Algorithm
egg-herbie
Rules
574×*-commutative_binary32
208×associate-+r+_binary32
180×associate-/l*_binary32
158×associate-+l+_binary32
132×associate-*l/_binary32
Counts
167 → 146
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
064010448
117639558
250179558

prune334.0ms (0.9%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New1406146
Fresh4711
Picked101
Done000
Total14513158
Error
0.0b
Counts
158 → 13
Alt Table
StatusErrorProgram
1.1b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) (sqrt.f32 (exp.f32 (log.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))))))
0.7b
(*.f32 (/.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (fabs.f32 (cbrt.f32 (+.f32 ux (*.f32 maxCos ux))))) (/.f32 (sqrt.f32 (*.f32 (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux)))) (+.f32 (-.f32 2 ux) (*.f32 maxCos ux)))) (sqrt.f32 (cbrt.f32 (+.f32 ux (*.f32 maxCos ux))))))
0.7b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) (sqrt.f32 (*.f32 (*.f32 (cbrt.f32 (-.f32 ux (*.f32 ux maxCos))) (cbrt.f32 (-.f32 ux (*.f32 ux maxCos)))) (*.f32 (-.f32 2 (-.f32 ux (*.f32 maxCos ux))) (cbrt.f32 (-.f32 ux (*.f32 maxCos ux)))))))
3.3b
(-.f32 (*.f32 2 (*.f32 (sqrt.f32 (*.f32 (-.f32 (+.f32 2 (*.f32 maxCos ux)) ux) (-.f32 ux (*.f32 maxCos ux)))) (*.f32 uy PI.f32))) (*.f32 4/3 (*.f32 (sqrt.f32 (*.f32 (-.f32 (+.f32 2 (*.f32 maxCos ux)) ux) (-.f32 ux (*.f32 maxCos ux)))) (pow.f32 (*.f32 uy PI.f32) 3))))
0.9b
(/.f32 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (*.f32 (cbrt.f32 (sqrt.f32 (*.f32 (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux)))) (+.f32 (-.f32 2 ux) (*.f32 maxCos ux))))) (cbrt.f32 (sqrt.f32 (*.f32 (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux)))) (+.f32 (-.f32 2 ux) (*.f32 maxCos ux))))))) (cbrt.f32 (sqrt.f32 (*.f32 (-.f32 2 (-.f32 ux (*.f32 maxCos ux))) (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux)))))))) (sqrt.f32 (+.f32 ux (*.f32 ux maxCos))))
0.7b
(*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (sqrt.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))))) (sqrt.f32 (sqrt.f32 (*.f32 (-.f32 ux (*.f32 ux maxCos)) (+.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1)))))
0.6b
(/.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (/.f32 (*.f32 (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux)))) (-.f32 8 (pow.f32 (-.f32 ux (*.f32 maxCos ux)) 3))) (+.f32 (*.f32 2 2) (+.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 ux (*.f32 maxCos ux))) (*.f32 2 (-.f32 ux (*.f32 maxCos ux)))))))) (sqrt.f32 (+.f32 ux (*.f32 ux maxCos))))
0.8b
(*.f32 (*.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32))) (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)))) (*.f32 (sqrt.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))) (cbrt.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))))))
1.9b
(/.f32 (*.f32 (*.f32 ux (sin.f32 (*.f32 2 (*.f32 uy PI.f32)))) (sqrt.f32 (-.f32 2 ux))) (sqrt.f32 (+.f32 ux (*.f32 maxCos ux))))
1.7b
(/.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (exp.f32 (log.f32 (*.f32 (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux)))) (+.f32 (-.f32 2 ux) (*.f32 maxCos ux))))))) (sqrt.f32 (+.f32 ux (*.f32 ux maxCos))))
0.7b
(/.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (sqrt.f32 uy) (*.f32 PI.f32 (sqrt.f32 uy))))) (sqrt.f32 (*.f32 (-.f32 2 (-.f32 ux (*.f32 maxCos ux))) (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux))))))) (sqrt.f32 (+.f32 ux (*.f32 ux maxCos))))
18.9b
(log.f32 (exp.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))))))
0.8b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) (sqrt.f32 (*.f32 (-.f32 ux (*.f32 ux maxCos)) (*.f32 (*.f32 (cbrt.f32 (-.f32 2 (-.f32 ux (*.f32 maxCos ux)))) (cbrt.f32 (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))) (cbrt.f32 (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))))))
Compiler

Compiled 7642 to 3458 computations (54.8% saved)

localize136.0ms (0.4%)

Local error

Found 4 expressions with local error:

0.3b
(/.f32 (*.f32 (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux)))) (-.f32 8 (pow.f32 (-.f32 ux (*.f32 maxCos ux)) 3))) (+.f32 (*.f32 2 2) (+.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 ux (*.f32 maxCos ux))) (*.f32 2 (-.f32 ux (*.f32 maxCos ux))))))
0.3b
(/.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (/.f32 (*.f32 (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux)))) (-.f32 8 (pow.f32 (-.f32 ux (*.f32 maxCos ux)) 3))) (+.f32 (*.f32 2 2) (+.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 ux (*.f32 maxCos ux))) (*.f32 2 (-.f32 ux (*.f32 maxCos ux)))))))) (sqrt.f32 (+.f32 ux (*.f32 ux maxCos))))
0.3b
(*.f32 uy PI.f32)
0.3b
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (/.f32 (*.f32 (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux)))) (-.f32 8 (pow.f32 (-.f32 ux (*.f32 maxCos ux)) 3))) (+.f32 (*.f32 2 2) (+.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 ux (*.f32 maxCos ux))) (*.f32 2 (-.f32 ux (*.f32 maxCos ux))))))))

rewrite374.0ms (1%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
22×add-sqr-sqrt_binary32
22×add-cbrt-cube_binary32
22×add-exp-log_binary32
16×sqrt-prod_binary32
16×*-un-lft-identity_binary32
Counts
4 → 111
Calls

4 calls:

24.0ms
(/.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (/.f32 (*.f32 (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux)))) (-.f32 8 (pow.f32 (-.f32 ux (*.f32 maxCos ux)) 3))) (+.f32 (*.f32 2 2) (+.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 ux (*.f32 maxCos ux))) (*.f32 2 (-.f32 ux (*.f32 maxCos ux)))))))) (sqrt.f32 (+.f32 ux (*.f32 ux maxCos))))
23.0ms
(/.f32 (*.f32 (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux)))) (-.f32 8 (pow.f32 (-.f32 ux (*.f32 maxCos ux)) 3))) (+.f32 (*.f32 2 2) (+.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 ux (*.f32 maxCos ux))) (*.f32 2 (-.f32 ux (*.f32 maxCos ux))))))
23.0ms
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (/.f32 (*.f32 (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux)))) (-.f32 8 (pow.f32 (-.f32 ux (*.f32 maxCos ux)) 3))) (+.f32 (*.f32 2 2) (+.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 ux (*.f32 maxCos ux))) (*.f32 2 (-.f32 ux (*.f32 maxCos ux))))))))
3.0ms
(*.f32 uy PI.f32)
Compiler

Compiled 8759 to 3045 computations (65.2% saved)

series6.6s (16.9%)

Error
0.0b
Counts
4 → 48
Calls

4 calls:

2.4s
(/.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (/.f32 (*.f32 (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux)))) (-.f32 8 (pow.f32 (-.f32 ux (*.f32 maxCos ux)) 3))) (+.f32 (*.f32 2 2) (+.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 ux (*.f32 maxCos ux))) (*.f32 2 (-.f32 ux (*.f32 maxCos ux)))))))) (sqrt.f32 (+.f32 ux (*.f32 ux maxCos))))
2.1s
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (/.f32 (*.f32 (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux)))) (-.f32 8 (pow.f32 (-.f32 ux (*.f32 maxCos ux)) 3))) (+.f32 (*.f32 2 2) (+.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 ux (*.f32 maxCos ux))) (*.f32 2 (-.f32 ux (*.f32 maxCos ux))))))))
596.0ms
(/.f32 (*.f32 (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux)))) (-.f32 8 (pow.f32 (-.f32 ux (*.f32 maxCos ux)) 3))) (+.f32 (*.f32 2 2) (+.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 ux (*.f32 maxCos ux))) (*.f32 2 (-.f32 ux (*.f32 maxCos ux))))))
15.0ms
(*.f32 uy PI.f32)
Compiler

Compiled 41039 to 31715 computations (22.7% saved)

simplify432.0ms (1.1%)

Algorithm
egg-herbie
Rules
405×associate-+r+_binary32
349×associate-*r*_binary32
309×associate-*l*_binary32
133×associate-/r*_binary32
99×associate-/l*_binary32
Counts
159 → 136
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0199435717
1496935717

prune1.2s (3.1%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New1342136
Fresh21012
Picked101
Done000
Total13712149
Error
0.0b
Counts
149 → 12
Alt Table
StatusErrorProgram
1.1b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) (sqrt.f32 (exp.f32 (log.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))))))
0.7b
(*.f32 (/.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (fabs.f32 (cbrt.f32 (+.f32 ux (*.f32 maxCos ux))))) (/.f32 (sqrt.f32 (*.f32 (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux)))) (+.f32 (-.f32 2 ux) (*.f32 maxCos ux)))) (sqrt.f32 (cbrt.f32 (+.f32 ux (*.f32 maxCos ux))))))
1.7b
(/.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (exp.f32 (log.f32 (/.f32 (*.f32 (*.f32 ux (-.f32 ux (*.f32 (*.f32 maxCos maxCos) ux))) (-.f32 8 (pow.f32 (-.f32 ux (*.f32 maxCos ux)) 3))) (+.f32 4 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (+.f32 (-.f32 ux (*.f32 maxCos ux)) 2)))))))) (sqrt.f32 (+.f32 ux (*.f32 ux maxCos))))
1.9b
(/.f32 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) ux) (sqrt.f32 (/.f32 (-.f32 8 (pow.f32 ux 3)) (+.f32 (*.f32 ux ux) (+.f32 4 (*.f32 2 ux)))))) (sqrt.f32 (+.f32 ux (*.f32 ux maxCos))))
0.7b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) (sqrt.f32 (*.f32 (*.f32 (cbrt.f32 (-.f32 ux (*.f32 ux maxCos))) (cbrt.f32 (-.f32 ux (*.f32 ux maxCos)))) (*.f32 (-.f32 2 (-.f32 ux (*.f32 maxCos ux))) (cbrt.f32 (-.f32 ux (*.f32 maxCos ux)))))))
3.3b
(-.f32 (*.f32 2 (*.f32 (sqrt.f32 (*.f32 (-.f32 (+.f32 2 (*.f32 maxCos ux)) ux) (-.f32 ux (*.f32 maxCos ux)))) (*.f32 uy PI.f32))) (*.f32 4/3 (*.f32 (sqrt.f32 (*.f32 (-.f32 (+.f32 2 (*.f32 maxCos ux)) ux) (-.f32 ux (*.f32 maxCos ux)))) (pow.f32 (*.f32 uy PI.f32) 3))))
0.9b
(/.f32 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (*.f32 (cbrt.f32 (sqrt.f32 (*.f32 (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux)))) (+.f32 (-.f32 2 ux) (*.f32 maxCos ux))))) (cbrt.f32 (sqrt.f32 (*.f32 (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux)))) (+.f32 (-.f32 2 ux) (*.f32 maxCos ux))))))) (cbrt.f32 (sqrt.f32 (*.f32 (-.f32 2 (-.f32 ux (*.f32 maxCos ux))) (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux)))))))) (sqrt.f32 (+.f32 ux (*.f32 ux maxCos))))
0.7b
(*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (sqrt.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))))) (sqrt.f32 (sqrt.f32 (*.f32 (-.f32 ux (*.f32 ux maxCos)) (+.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1)))))
0.8b
(*.f32 (*.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32))) (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)))) (*.f32 (sqrt.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))) (cbrt.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))))))
0.7b
(/.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (sqrt.f32 uy) (*.f32 PI.f32 (sqrt.f32 uy))))) (sqrt.f32 (*.f32 (-.f32 2 (-.f32 ux (*.f32 maxCos ux))) (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux))))))) (sqrt.f32 (+.f32 ux (*.f32 ux maxCos))))
18.9b
(log.f32 (exp.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))))))
0.8b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) (sqrt.f32 (*.f32 (-.f32 ux (*.f32 ux maxCos)) (*.f32 (*.f32 (cbrt.f32 (-.f32 2 (-.f32 ux (*.f32 maxCos ux)))) (cbrt.f32 (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))) (cbrt.f32 (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))))))
Compiler

Compiled 24413 to 14561 computations (40.4% saved)

localize228.0ms (0.6%)

Local error

Found 4 expressions with local error:

0.2b
(*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))
0.3b
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (sqrt.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux)))))))
0.3b
(*.f32 uy PI.f32)
0.4b
(*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (sqrt.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))))) (sqrt.f32 (sqrt.f32 (*.f32 (-.f32 ux (*.f32 ux maxCos)) (+.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1)))))

rewrite1.4s (3.7%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
304×sqrt-div_binary32
144×frac-times_binary32
128×associate-*r/_binary32
93×flip--_binary32
93×flip3--_binary32
Counts
4 → 193
Calls

4 calls:

74.0ms
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (sqrt.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux)))))))
65.0ms
(*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (sqrt.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))))) (sqrt.f32 (sqrt.f32 (*.f32 (-.f32 ux (*.f32 ux maxCos)) (+.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1)))))
24.0ms
(*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))
7.0ms
(*.f32 uy PI.f32)
Compiler

Compiled 13734 to 5991 computations (56.4% saved)

series1.3s (3.3%)

Error
0.0b
Counts
4 → 47
Calls

4 calls:

537.0ms
(*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (sqrt.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux)))))))
286.0ms
(*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (sqrt.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))))) (sqrt.f32 (sqrt.f32 (*.f32 (-.f32 ux (*.f32 ux maxCos)) (+.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1)))))
112.0ms
(*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))
30.0ms
(*.f32 uy PI.f32)
Compiler

Compiled 8718 to 6107 computations (29.9% saved)

simplify802.0ms (2.1%)

Algorithm
egg-herbie
Rules
433×*-commutative_binary32
243×distribute-rgt-in_binary32
236×distribute-lft-in_binary32
200×times-frac_binary32
150×associate-*l*_binary32
Counts
240 → 215
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
087620667
1238119865
2496719775
3497819775

prune1.3s (3.4%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New2132215
Fresh3811
Picked011
Done000
Total21611227
Error
0.0b
Counts
227 → 11
Alt Table
StatusErrorProgram
1.1b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) (sqrt.f32 (exp.f32 (log.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))))))
0.7b
(*.f32 (/.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (fabs.f32 (cbrt.f32 (+.f32 ux (*.f32 maxCos ux))))) (/.f32 (sqrt.f32 (*.f32 (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux)))) (+.f32 (-.f32 2 ux) (*.f32 maxCos ux)))) (sqrt.f32 (cbrt.f32 (+.f32 ux (*.f32 maxCos ux))))))
0.7b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) (sqrt.f32 (*.f32 (*.f32 (cbrt.f32 (-.f32 ux (*.f32 ux maxCos))) (cbrt.f32 (-.f32 ux (*.f32 ux maxCos)))) (*.f32 (-.f32 2 (-.f32 ux (*.f32 maxCos ux))) (cbrt.f32 (-.f32 ux (*.f32 maxCos ux)))))))
3.3b
(-.f32 (*.f32 2 (*.f32 (sqrt.f32 (*.f32 (-.f32 (+.f32 2 (*.f32 maxCos ux)) ux) (-.f32 ux (*.f32 maxCos ux)))) (*.f32 uy PI.f32))) (*.f32 4/3 (*.f32 (sqrt.f32 (*.f32 (-.f32 (+.f32 2 (*.f32 maxCos ux)) ux) (-.f32 ux (*.f32 maxCos ux)))) (pow.f32 (*.f32 uy PI.f32) 3))))
0.7b
(*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (sqrt.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))))) (sqrt.f32 (sqrt.f32 (*.f32 (-.f32 ux (*.f32 ux maxCos)) (+.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1)))))
0.8b
(*.f32 (*.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32))) (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)))) (*.f32 (sqrt.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))) (cbrt.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))))))
0.7b
(/.f32 (*.f32 (sqrt.f32 (sqrt.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (+.f32 1 (+.f32 (*.f32 maxCos ux) (-.f32 1 ux)))))) (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (sqrt.f32 (*.f32 (+.f32 (-.f32 2 ux) (*.f32 maxCos ux)) (*.f32 ux (-.f32 ux (*.f32 (*.f32 maxCos ux) maxCos)))))))) (sqrt.f32 (sqrt.f32 (+.f32 ux (*.f32 maxCos ux)))))
1.7b
(/.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (exp.f32 (log.f32 (/.f32 (*.f32 (*.f32 ux (-.f32 ux (*.f32 (*.f32 maxCos maxCos) ux))) (-.f32 8 (pow.f32 (-.f32 ux (*.f32 maxCos ux)) 3))) (+.f32 4 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (+.f32 (-.f32 ux (*.f32 maxCos ux)) 2)))))))) (sqrt.f32 (+.f32 ux (*.f32 ux maxCos))))
0.7b
(/.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (sqrt.f32 uy) (*.f32 PI.f32 (sqrt.f32 uy))))) (sqrt.f32 (*.f32 (-.f32 2 (-.f32 ux (*.f32 maxCos ux))) (*.f32 ux (-.f32 ux (*.f32 maxCos (*.f32 maxCos ux))))))) (sqrt.f32 (+.f32 ux (*.f32 ux maxCos))))
18.9b
(log.f32 (exp.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (*.f32 (-.f32 ux (*.f32 maxCos ux)) (-.f32 2 (-.f32 ux (*.f32 maxCos ux))))))))
0.7b
(/.f32 (*.f32 (sqrt.f32 (sqrt.f32 (*.f32 (+.f32 1 (+.f32 (*.f32 maxCos ux) (-.f32 1 ux))) (-.f32 (pow.f32 ux 3) (pow.f32 (*.f32 maxCos ux) 3))))) (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 (sqrt.f32 (*.f32 (+.f32 (-.f32 2 ux) (*.f32 maxCos ux)) (-.f32 (pow.f32 ux 3) (pow.f32 (*.f32 maxCos ux) 3))))))) (sqrt.f32 (+.f32 (*.f32 ux ux) (*.f32 (*.f32 maxCos ux) (+.f32 ux (*.f32 maxCos ux))))))
Compiler

Compiled 14443 to 7140 computations (50.6% saved)

regimes18.8s (48.2%)

Accuracy

Total 0.4b remaining (82.7%)

Threshold costs 0.4b (82.7%)

Compiler

Compiled 173800 to 108527 computations (37.6% saved)

simplify5.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary32
+-commutative_binary32
sub-neg_binary32
neg-sub0_binary32
neg-mul-1_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02141
13741
24741
35341
45741
55841
65741

end1.0ms (0%)

Compiler

Compiled 28 to 20 computations (28.6% saved)

sample2.7s (6.9%)

Algorithm
intervals
Results
1.1s8000×body128valid
267.0ms8000×pre128true
Compiler

Compiled 552 to 344 computations (37.7% saved)

Profiling

Loading profile data...