Details

Time bar (total: 18.5s)

analyze302.0ms (1.6%)

Algorithm
search
Search
TrueOtherFalseIter
0%0%100%0
0%0%100%1
Compiler

Compiled 96 to 69 computations (28.1% saved)

sample110.0ms (0.6%)

Algorithm
intervals
Results
59.0ms256×body128valid
16.0ms256×pre128true
Compiler

Compiled 173 to 125 computations (27.7% saved)

simplify72.0ms (0.4%)

Algorithm
egg-herbie
Rules
493×associate--l+_binary32
415×unsub-neg_binary32
384×associate--l-_binary32
362×distribute-rgt-in_binary32
356×distribute-neg-in_binary32
Counts
1 → 1
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
027101
166101
218972
360672
4160272
5225972
6486972
7495172

prune19.0ms (0.1%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New011
Fresh101
Picked000
Done000
Total112
Error
0.4b
Counts
2 → 1
Alt Table
StatusErrorProgram
0.4b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) yi))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
Compiler

Compiled 156 to 111 computations (28.8% saved)

localize82.0ms (0.4%)

Local error

Found 4 expressions with local error:

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

rewrite313.0ms (1.7%)

Algorithm
rewrite-expression-head
Error
0.1b
Rules
21×pow1_binary32 add-exp-log_binary32 add-cbrt-cube_binary32
11×add-sqr-sqrt_binary32
10×pow-prod-down_binary32 prod-exp_binary32 cbrt-unprod_binary32 associate-*r*_binary32
add-cube-cbrt_binary32 *-un-lft-identity_binary32
associate-*l*_binary32
Counts
4 → 74
Calls

4 calls:

8.0ms
(*.f32 ux (*.f32 (-.f32 1 ux) maxCos))
7.0ms
(*.f32 (*.f32 uy 2) PI.f32)
5.0ms
(*.f32 (*.f32 uy 2) PI.f32)
5.0ms
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) yi)
Compiler

Compiled 3439 to 2256 computations (34.4% saved)

series227.0ms (1.2%)

Error
0.3b
Counts
4 → 24
Calls

4 calls:

69.0ms
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) yi)
59.0ms
(*.f32 ux (*.f32 (-.f32 1 ux) maxCos))
29.0ms
(*.f32 (*.f32 uy 2) PI.f32)
24.0ms
(*.f32 (*.f32 uy 2) PI.f32)
Compiler

Compiled 2786 to 1950 computations (30% saved)

simplify91.0ms (0.5%)

Algorithm
egg-herbie
Rules
391×unsub-neg_binary32
309×neg-mul-1_binary32
299×neg-sub0_binary32
258×associate-*l*_binary32
253×+-commutative_binary32
Counts
98 → 77
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01571431
13791230
213001215
323211206
441861206
551061206

prune288.0ms (1.6%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New661177
Fresh000
Picked101
Done000
Total671178
Error
0.1b
Counts
78 → 11
Alt Table
StatusErrorProgram
0.4b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 (+.f32 uy uy) (*.f32 (cbrt.f32 PI.f32) (cbrt.f32 PI.f32))) (cbrt.f32 PI.f32))) xi) (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) yi))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
2.8b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 2 (*.f32 uy (*.f32 PI.f32 yi))))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
0.4b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) yi))) (*.f32 (*.f32 (sqrt.f32 ux) (*.f32 (-.f32 maxCos (*.f32 maxCos ux)) (sqrt.f32 ux))) zi))
18.6b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 yi)) (sqrt.f32 yi)))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
0.5b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (sin.f32 (*.f32 (*.f32 (+.f32 uy uy) (sqrt.f32 PI.f32)) (sqrt.f32 PI.f32))) yi))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
0.5b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (*.f32 (cbrt.f32 yi) (cbrt.f32 yi))) (cbrt.f32 yi)))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
1.8b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (-.f32 (*.f32 2 (*.f32 uy (*.f32 PI.f32 yi))) (*.f32 4/3 (*.f32 yi (pow.f32 (*.f32 uy PI.f32) 3)))))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
0.4b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (*.f32 (cbrt.f32 (*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy PI.f32))))) (cbrt.f32 (*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy PI.f32)))))) (cbrt.f32 (*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy PI.f32)))))))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
0.4b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (sin.f32 (*.f32 (*.f32 (+.f32 uy uy) (*.f32 (cbrt.f32 PI.f32) (cbrt.f32 PI.f32))) (cbrt.f32 PI.f32))) yi))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
0.4b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) yi))) (*.f32 (*.f32 (*.f32 (cbrt.f32 ux) (cbrt.f32 ux)) (*.f32 (-.f32 maxCos (*.f32 maxCos ux)) (cbrt.f32 ux))) zi))
0.4b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) yi))) (*.f32 (/.f32 (*.f32 maxCos (-.f32 ux (pow.f32 ux 3))) (+.f32 1 ux)) zi))
Compiler

Compiled 3897 to 2495 computations (36% saved)

localize104.0ms (0.6%)

Local error

Found 4 expressions with local error:

0.2b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) yi)
0.3b
(*.f32 (*.f32 (+.f32 uy uy) (*.f32 (cbrt.f32 PI.f32) (cbrt.f32 PI.f32))) (cbrt.f32 PI.f32))
0.3b
(*.f32 (*.f32 uy 2) PI.f32)
0.6b
(*.f32 (+.f32 uy uy) (*.f32 (cbrt.f32 PI.f32) (cbrt.f32 PI.f32)))

rewrite503.0ms (2.7%)

Algorithm
rewrite-expression-head
Error
0.1b
Rules
25×pow1_binary32 add-exp-log_binary32
18×add-cbrt-cube_binary32
17×add-sqr-sqrt_binary32 associate-*l*_binary32
16×*-un-lft-identity_binary32
14×add-cube-cbrt_binary32
Counts
4 → 92
Calls

4 calls:

15.0ms
(*.f32 (*.f32 (+.f32 uy uy) (*.f32 (cbrt.f32 PI.f32) (cbrt.f32 PI.f32))) (cbrt.f32 PI.f32))
12.0ms
(*.f32 (+.f32 uy uy) (*.f32 (cbrt.f32 PI.f32) (cbrt.f32 PI.f32)))
6.0ms
(*.f32 (*.f32 uy 2) PI.f32)
5.0ms
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) yi)
Compiler

Compiled 4783 to 2404 computations (49.7% saved)

series199.0ms (1.1%)

Error
0.1b
Counts
4 → 18
Calls

4 calls:

66.0ms
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) yi)
40.0ms
(*.f32 (+.f32 uy uy) (*.f32 (cbrt.f32 PI.f32) (cbrt.f32 PI.f32)))
24.0ms
(*.f32 (*.f32 uy 2) PI.f32)
23.0ms
(*.f32 (*.f32 (+.f32 uy uy) (*.f32 (cbrt.f32 PI.f32) (cbrt.f32 PI.f32))) (cbrt.f32 PI.f32))
Compiler

Compiled 2352 to 1557 computations (33.8% saved)

simplify154.0ms (0.8%)

Algorithm
egg-herbie
Rules
386×associate-*l*_binary32
358×distribute-rgt-out_binary32
315×associate-*r*_binary32
245×count-2_binary32
189×unswap-sqr_binary32
Counts
110 → 90
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01791798
14211566
215611482
326461476
448381476
548801476
650001476
749161476

prune389.0ms (2.1%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New89190
Fresh01010
Picked101
Done000
Total9011101
Error
0.1b
Counts
101 → 11
Alt Table
StatusErrorProgram
2.8b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 2 (*.f32 uy (*.f32 PI.f32 yi))))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
0.4b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) yi))) (*.f32 (*.f32 (sqrt.f32 ux) (*.f32 (-.f32 maxCos (*.f32 maxCos ux)) (sqrt.f32 ux))) zi))
18.6b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 yi)) (sqrt.f32 yi)))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
0.5b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (sin.f32 (*.f32 (*.f32 (+.f32 uy uy) (sqrt.f32 PI.f32)) (sqrt.f32 PI.f32))) yi))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
0.5b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (*.f32 (cbrt.f32 yi) (cbrt.f32 yi))) (cbrt.f32 yi)))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
1.8b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (-.f32 (*.f32 2 (*.f32 uy (*.f32 PI.f32 yi))) (*.f32 4/3 (*.f32 yi (pow.f32 (*.f32 uy PI.f32) 3)))))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
0.4b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (*.f32 (cbrt.f32 (*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy PI.f32))))) (cbrt.f32 (*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy PI.f32)))))) (cbrt.f32 (*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy PI.f32)))))))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
0.4b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 (sqrt.f32 (+.f32 uy uy)) (*.f32 (cbrt.f32 (pow.f32 PI.f32 2)) (sqrt.f32 (+.f32 uy uy)))) (cbrt.f32 PI.f32))) xi) (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) yi))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
0.4b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (sin.f32 (*.f32 (*.f32 (+.f32 uy uy) (*.f32 (cbrt.f32 PI.f32) (cbrt.f32 PI.f32))) (cbrt.f32 PI.f32))) yi))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
0.4b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) yi))) (*.f32 (*.f32 (*.f32 (cbrt.f32 ux) (cbrt.f32 ux)) (*.f32 (-.f32 maxCos (*.f32 maxCos ux)) (cbrt.f32 ux))) zi))
0.4b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) yi))) (*.f32 (/.f32 (*.f32 maxCos (-.f32 ux (pow.f32 ux 3))) (+.f32 1 ux)) zi))
Compiler

Compiled 4655 to 2772 computations (40.5% saved)

localize102.0ms (0.5%)

Local error

Found 4 expressions with local error:

0.2b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) yi)
0.3b
(/.f32 (*.f32 maxCos (-.f32 ux (pow.f32 ux 3))) (+.f32 1 ux))
0.3b
(*.f32 (*.f32 uy 2) PI.f32)
0.3b
(*.f32 (*.f32 uy 2) PI.f32)

rewrite526.0ms (2.8%)

Algorithm
rewrite-expression-head
Error
0.1b
Rules
21×add-exp-log_binary32 add-cbrt-cube_binary32
16×pow1_binary32
14×*-un-lft-identity_binary32
12×add-sqr-sqrt_binary32
10×add-cube-cbrt_binary32
Counts
4 → 81
Calls

4 calls:

15.0ms
(/.f32 (*.f32 maxCos (-.f32 ux (pow.f32 ux 3))) (+.f32 1 ux))
9.0ms
(*.f32 (*.f32 uy 2) PI.f32)
6.0ms
(*.f32 (*.f32 uy 2) PI.f32)
5.0ms
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) yi)
Compiler

Compiled 4202 to 2801 computations (33.3% saved)

series241.0ms (1.3%)

Error
0.1b
Counts
4 → 24
Calls

4 calls:

71.0ms
(/.f32 (*.f32 maxCos (-.f32 ux (pow.f32 ux 3))) (+.f32 1 ux))
67.0ms
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) yi)
24.0ms
(*.f32 (*.f32 uy 2) PI.f32)
23.0ms
(*.f32 (*.f32 uy 2) PI.f32)
Compiler

Compiled 2896 to 2038 computations (29.6% saved)

simplify87.0ms (0.5%)

Algorithm
egg-herbie
Rules
617×times-frac_binary32
506×*-commutative_binary32
430×associate-/l*_binary32
315×div-sub_binary32
221×associate-*l*_binary32
Counts
105 → 83
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01761748
14531506
215711492
342791489
450861489

prune437.0ms (2.4%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New82183
Fresh1910
Picked011
Done000
Total831194
Error
0.1b
Counts
94 → 11
Alt Table
StatusErrorProgram
0.4b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) yi))) (*.f32 (/.f32 (*.f32 maxCos (-.f32 (pow.f32 ux 3) (pow.f32 (pow.f32 ux 3) 3))) (*.f32 (+.f32 ux 1) (+.f32 (*.f32 ux ux) (+.f32 (pow.f32 ux 6) (pow.f32 ux 4))))) zi))
2.8b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 2 (*.f32 uy (*.f32 PI.f32 yi))))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
0.4b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) yi))) (*.f32 (*.f32 (sqrt.f32 ux) (*.f32 (-.f32 maxCos (*.f32 maxCos ux)) (sqrt.f32 ux))) zi))
18.6b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 yi)) (sqrt.f32 yi)))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
0.5b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (sin.f32 (*.f32 (*.f32 (+.f32 uy uy) (sqrt.f32 PI.f32)) (sqrt.f32 PI.f32))) yi))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
0.5b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (*.f32 (cbrt.f32 yi) (cbrt.f32 yi))) (cbrt.f32 yi)))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
1.8b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (-.f32 (*.f32 2 (*.f32 uy (*.f32 PI.f32 yi))) (*.f32 4/3 (*.f32 yi (pow.f32 (*.f32 uy PI.f32) 3)))))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
0.4b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (*.f32 (cbrt.f32 (*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy PI.f32))))) (cbrt.f32 (*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy PI.f32)))))) (cbrt.f32 (*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy PI.f32)))))))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
0.4b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 (sqrt.f32 (+.f32 uy uy)) (*.f32 (cbrt.f32 (pow.f32 PI.f32 2)) (sqrt.f32 (+.f32 uy uy)))) (cbrt.f32 PI.f32))) xi) (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) yi))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
0.4b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (sin.f32 (*.f32 (*.f32 (+.f32 uy uy) (*.f32 (cbrt.f32 PI.f32) (cbrt.f32 PI.f32))) (cbrt.f32 PI.f32))) yi))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
0.4b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) yi))) (*.f32 (/.f32 (*.f32 maxCos (-.f32 ux (pow.f32 ux 3))) (+.f32 1 ux)) zi))
Compiler

Compiled 4530 to 3007 computations (33.6% saved)

localize100.0ms (0.5%)

Local error

Found 4 expressions with local error:

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

rewrite485.0ms (2.6%)

Algorithm
rewrite-expression-head
Error
0.1b
Rules
21×pow1_binary32 add-exp-log_binary32 add-cbrt-cube_binary32
15×add-sqr-sqrt_binary32
13×associate-*r*_binary32
11×add-cube-cbrt_binary32 *-un-lft-identity_binary32 associate-*l*_binary32
10×pow-prod-down_binary32 prod-exp_binary32 cbrt-unprod_binary32
Counts
4 → 83
Calls

4 calls:

10.0ms
(*.f32 (sqrt.f32 ux) (*.f32 (-.f32 maxCos (*.f32 maxCos ux)) (sqrt.f32 ux)))
7.0ms
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) (sqrt.f32 ux))
5.0ms
(*.f32 (*.f32 uy 2) PI.f32)
5.0ms
(*.f32 (*.f32 uy 2) PI.f32)
Compiler

Compiled 4104 to 2081 computations (49.3% saved)

series202.0ms (1.1%)

Error
0.1b
Counts
4 → 20
Calls

4 calls:

55.0ms
(*.f32 (sqrt.f32 ux) (*.f32 (-.f32 maxCos (*.f32 maxCos ux)) (sqrt.f32 ux)))
50.0ms
(*.f32 (-.f32 maxCos (*.f32 maxCos ux)) (sqrt.f32 ux))
23.0ms
(*.f32 (*.f32 uy 2) PI.f32)
22.0ms
(*.f32 (*.f32 uy 2) PI.f32)
Compiler

Compiled 2661 to 1825 computations (31.4% saved)

simplify120.0ms (0.6%)

Algorithm
egg-herbie
Rules
492×*-commutative_binary32
230×associate-*l*_binary32
219×exp-prod_binary32
209×distribute-rgt-neg-in_binary32
208×distribute-lft-neg-out_binary32 distribute-rgt-in_binary32
Counts
103 → 83
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01411521
13471234
211631222
322641222
444011210
549421210
649501210

prune349.0ms (1.9%)

Pruning

11 alts after pruning (9 fresh and 2 done)

PrunedKeptTotal
New83083
Fresh099
Picked011
Done011
Total831194
Error
0.1b
Counts
94 → 11
Alt Table
StatusErrorProgram
0.4b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) yi))) (*.f32 (/.f32 (*.f32 maxCos (-.f32 (pow.f32 ux 3) (pow.f32 (pow.f32 ux 3) 3))) (*.f32 (+.f32 ux 1) (+.f32 (*.f32 ux ux) (+.f32 (pow.f32 ux 6) (pow.f32 ux 4))))) zi))
2.8b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 2 (*.f32 uy (*.f32 PI.f32 yi))))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
0.4b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) yi))) (*.f32 (*.f32 (sqrt.f32 ux) (*.f32 (-.f32 maxCos (*.f32 maxCos ux)) (sqrt.f32 ux))) zi))
18.6b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (sqrt.f32 yi)) (sqrt.f32 yi)))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
0.5b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (sin.f32 (*.f32 (*.f32 (+.f32 uy uy) (sqrt.f32 PI.f32)) (sqrt.f32 PI.f32))) yi))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
0.5b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy PI.f32))) (*.f32 (cbrt.f32 yi) (cbrt.f32 yi))) (cbrt.f32 yi)))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
1.8b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (-.f32 (*.f32 2 (*.f32 uy (*.f32 PI.f32 yi))) (*.f32 4/3 (*.f32 yi (pow.f32 (*.f32 uy PI.f32) 3)))))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
0.4b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (*.f32 (cbrt.f32 (*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy PI.f32))))) (cbrt.f32 (*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy PI.f32)))))) (cbrt.f32 (*.f32 yi (sin.f32 (*.f32 2 (*.f32 uy PI.f32)))))))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
0.4b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 (sqrt.f32 (+.f32 uy uy)) (*.f32 (cbrt.f32 (pow.f32 PI.f32 2)) (sqrt.f32 (+.f32 uy uy)))) (cbrt.f32 PI.f32))) xi) (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) yi))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
0.4b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (sin.f32 (*.f32 (*.f32 (+.f32 uy uy) (*.f32 (cbrt.f32 PI.f32) (cbrt.f32 PI.f32))) (cbrt.f32 PI.f32))) yi))) (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) zi))
0.4b
(+.f32 (*.f32 (sqrt.f32 (-.f32 1 (*.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) (*.f32 ux (*.f32 (-.f32 1 ux) maxCos))))) (+.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) PI.f32)) xi) (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) PI.f32)) yi))) (*.f32 (/.f32 (*.f32 maxCos (-.f32 ux (pow.f32 ux 3))) (+.f32 1 ux)) zi))
Compiler

Compiled 3524 to 2095 computations (40.6% saved)

regimes8.8s (47.7%)

Accuracy

Total 0.2b remaining (52.2%)

Threshold costs 0.2b (52.2%)

Compiler

Compiled 129696 to 89922 computations (30.7% saved)

simplify12.0ms (0.1%)

Algorithm
egg-herbie
Rules
39×distribute-rgt-neg-in_binary32
26×distribute-lft-neg-in_binary32
25×cancel-sign-sub-inv_binary32
19×neg-mul-1_binary32 neg-sub0_binary32 *-commutative_binary32
18×distribute-neg-in_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03294
15494
26894
38294
49594
511094
611994
713594
816194
918794
1019994
1120694
1220894
1320494

end4.0ms (0%)

Compiler

Compiled 65 to 46 computations (29.2% saved)

sample4.2s (22.5%)

Algorithm
intervals
Results
1.7s8000×body128valid
475.0ms8000×pre128true
Compiler

Compiled 830 to 579 computations (30.2% saved)

Profiling

Loading profile data...