Details

Time bar (total: 10.9s)

analyze364.0ms (3.3%)

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

Compiled 37 to 28 computations (24.3% saved)

sample1.9s (17.5%)

Results
1.9s8256×body128valid
1.0msbody128invalid
Compiler

Compiled 88 to 67 computations (23.9% saved)

simplify8.0ms (0.1%)

Algorithm
egg-herbie
Rules
11×sub-neg_binary32
+-commutative_binary32
fma-def_binary32
*-commutative_binary32
div-sub_binary32
Counts
1 → 1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01117
11717
22117
32717
43417
54417
65417
76917
87617
97917
108017
116017

prune2.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
0.3b
Counts
2 → 1
Alt Table
StatusErrorProgram
0.3b
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
Compiler

Compiled 42 to 33 computations (21.4% saved)

localize28.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f32 (/.f32 u1 (-.f32 1 u1)))
0.2b
(/.f32 u1 (-.f32 1 u1))
0.2b
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.4b
(*.f32 314159265359/50000000000 u2)

series47.0ms (0.4%)

Counts
4 → 40
Calls

4 calls:

28.0ms
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
14.0ms
(sqrt.f32 (/.f32 u1 (-.f32 1 u1)))
2.0ms
(/.f32 u1 (-.f32 1 u1))
2.0ms
(*.f32 314159265359/50000000000 u2)

rewrite35.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
81×add-sqr-sqrt_binary32
69×*-un-lft-identity_binary32
56×times-frac_binary32
50×sqrt-prod_binary32
39×add-cube-cbrt_binary32
Counts
4 → 148
Calls

4 calls:

10.0ms
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
9.0ms
(sqrt.f32 (/.f32 u1 (-.f32 1 u1)))
4.0ms
(/.f32 u1 (-.f32 1 u1))
3.0ms
(*.f32 314159265359/50000000000 u2)

simplify141.0ms (1.3%)

Algorithm
egg-herbie
Rules
595×associate-/r*_binary32
481×fma-def_binary32
401×times-frac_binary32
261×associate-/l*_binary32
204×fma-neg_binary32
Counts
188 → 226
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02893681
16353497
218683373
348563373
449243373

prune303.0ms (2.8%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New2179226
Fresh000
Picked101
Done000
Total2189227
Error
0.0b
Counts
227 → 9
Alt Table
StatusErrorProgram
0.6b
(*.f32 (sqrt.f32 (/.f32 (sqrt.f32 u1) (*.f32 (cbrt.f32 (-.f32 1 u1)) (cbrt.f32 (-.f32 1 u1))))) (*.f32 (sqrt.f32 (/.f32 (sqrt.f32 u1) (cbrt.f32 (-.f32 1 u1)))) (cos.f32 (*.f32 314159265359/50000000000 u2))))
1.2b
(*.f32 (exp.f32 (log.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.9b
(*.f32 (*.f32 (cbrt.f32 (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))) (cbrt.f32 (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2))))) (cbrt.f32 (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))))
0.6b
(*.f32 (sqrt.f32 (/.f32 (sqrt.f32 u1) (+.f32 1 (sqrt.f32 u1)))) (*.f32 (sqrt.f32 (/.f32 (sqrt.f32 u1) (-.f32 1 (sqrt.f32 u1)))) (cos.f32 (*.f32 314159265359/50000000000 u2))))
0.6b
(*.f32 (sqrt.f32 (/.f32 (*.f32 (cbrt.f32 u1) (cbrt.f32 u1)) (*.f32 (cbrt.f32 (-.f32 1 u1)) (cbrt.f32 (-.f32 1 u1))))) (*.f32 (sqrt.f32 (/.f32 (cbrt.f32 u1) (cbrt.f32 (-.f32 1 u1)))) (cos.f32 (*.f32 314159265359/50000000000 u2))))
0.3b
(*.f32 (sqrt.f32 (/.f32 1 (+.f32 (/.f32 1 u1) -1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.3b
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2)))))
0.6b
(*.f32 (*.f32 (sqrt.f32 (/.f32 (sqrt.f32 u1) (+.f32 1 (sqrt.f32 u1)))) (sqrt.f32 (/.f32 (sqrt.f32 u1) (-.f32 1 (sqrt.f32 u1))))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
2.5b
(exp.f32 (log.f32 (*.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) (sqrt.f32 (/.f32 u1 (-.f32 1 u1))))))
Compiler

Compiled 5131 to 3753 computations (26.9% saved)

localize42.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(/.f32 u1 (-.f32 1 u1))
0.2b
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2)))))
0.4b
(+.f32 (log.f32 314159265359/50000000000) (log.f32 u2))
1.4b
(exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2)))

series301.0ms (2.8%)

Counts
3 → 36
Calls

3 calls:

117.0ms
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2)))))
115.0ms
(exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2)))
69.0ms
(+.f32 (log.f32 314159265359/50000000000) (log.f32 u2))

rewrite29.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
36×*-un-lft-identity_binary32
35×add-sqr-sqrt_binary32
27×associate-*l*_binary32
26×sqrt-prod_binary32
19×times-frac_binary32
Counts
3 → 93
Calls

3 calls:

13.0ms
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2)))))
4.0ms
(exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2)))
4.0ms
(+.f32 (log.f32 314159265359/50000000000) (log.f32 u2))

simplify94.0ms (0.9%)

Algorithm
egg-herbie
Rules
299×associate-/r*_binary32
291×associate-*l*_binary32
288×distribute-neg-frac_binary32
274×fma-neg_binary32
273×fma-def_binary32
Counts
129 → 154
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02052257
14262069
211281983
336441983
449591983

prune306.0ms (2.8%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New2134217
Fresh268
Picked011
Done000
Total21511226
Error
0.0b
Counts
226 → 11
Alt Table
StatusErrorProgram
0.6b
(*.f32 (sqrt.f32 (/.f32 (sqrt.f32 u1) (*.f32 (cbrt.f32 (-.f32 1 u1)) (cbrt.f32 (-.f32 1 u1))))) (*.f32 (sqrt.f32 (/.f32 (sqrt.f32 u1) (cbrt.f32 (-.f32 1 u1)))) (cos.f32 (*.f32 314159265359/50000000000 u2))))
1.2b
(*.f32 (exp.f32 (log.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.9b
(*.f32 (*.f32 (cbrt.f32 (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))) (cbrt.f32 (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2))))) (cbrt.f32 (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (*.f32 314159265359/50000000000 u2)))))
2.5b
(exp.f32 (log.f32 (*.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) (sqrt.f32 (/.f32 u1 (-.f32 1 u1))))))
0.5b
(*.f32 (sqrt.f32 u1) (*.f32 (sqrt.f32 (/.f32 1 (-.f32 1 u1))) (cos.f32 (exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2))))))
0.6b
(*.f32 (*.f32 (sqrt.f32 (/.f32 (sqrt.f32 u1) (+.f32 1 (sqrt.f32 u1)))) (sqrt.f32 (/.f32 (sqrt.f32 u1) (-.f32 1 (sqrt.f32 u1))))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
0.5b
(*.f32 (sqrt.f32 (*.f32 (cbrt.f32 (/.f32 u1 (-.f32 1 u1))) (cbrt.f32 (/.f32 u1 (-.f32 1 u1))))) (*.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) (sqrt.f32 (cbrt.f32 (/.f32 u1 (-.f32 1 u1))))))
0.3b
(*.f32 (sqrt.f32 (/.f32 1 (+.f32 (/.f32 1 u1) -1))) (cos.f32 (exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2)))))
14.6b
(*.f32 (sqrt.f32 (log.f32 (exp.f32 (/.f32 u1 (-.f32 1 u1))))) (cos.f32 (exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2)))))
0.6b
(*.f32 (sqrt.f32 (/.f32 (sqrt.f32 u1) (+.f32 1 (sqrt.f32 u1)))) (*.f32 (sqrt.f32 (/.f32 (sqrt.f32 u1) (-.f32 1 (sqrt.f32 u1)))) (cos.f32 (*.f32 314159265359/50000000000 u2))))
0.3b
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))) (cos.f32 (exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2)))))
Compiler

Compiled 5231 to 3818 computations (27% saved)

localize48.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f32 (sqrt.f32 (/.f32 1 (+.f32 (/.f32 1 u1) -1))) (cos.f32 (exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2)))))
0.3b
(/.f32 1 (+.f32 (/.f32 1 u1) -1))
0.4b
(+.f32 (log.f32 314159265359/50000000000) (log.f32 u2))
1.4b
(exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2)))

series139.0ms (1.3%)

Counts
2 → 32
Calls

2 calls:

136.0ms
(*.f32 (sqrt.f32 (/.f32 1 (+.f32 (/.f32 1 u1) -1))) (cos.f32 (exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2)))))
2.0ms
(/.f32 1 (+.f32 (/.f32 1 u1) -1))

rewrite33.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
66×add-sqr-sqrt_binary32
64×times-frac_binary32
58×*-un-lft-identity_binary32
33×associate-*l*_binary32
33×sqrt-prod_binary32
Counts
2 → 109
Calls

2 calls:

16.0ms
(*.f32 (sqrt.f32 (/.f32 1 (+.f32 (/.f32 1 u1) -1))) (cos.f32 (exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2)))))
7.0ms
(/.f32 1 (+.f32 (/.f32 1 u1) -1))

simplify120.0ms (1.1%)

Algorithm
egg-herbie
Rules
682×fma-neg_binary32
563×times-frac_binary32
321×associate-*l*_binary32
301×fma-def_binary32
285×associate-/l*_binary32
Counts
141 → 177
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01873664
14282934
212602831
345952831
451242831

prune365.0ms (3.4%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New2403243
Fresh369
Picked011
Done101
Total24410254
Error
0.0b
Counts
254 → 10
Alt Table
StatusErrorProgram
0.5b
(*.f32 (sqrt.f32 (/.f32 1 (-.f32 (*.f32 (/.f32 1 u1) (/.f32 1 u1)) (*.f32 -1 -1)))) (*.f32 (sqrt.f32 (-.f32 (/.f32 1 u1) -1)) (cos.f32 (exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2))))))
0.5b
(*.f32 (sqrt.f32 (*.f32 (cbrt.f32 (/.f32 u1 (-.f32 1 u1))) (cbrt.f32 (/.f32 u1 (-.f32 1 u1))))) (*.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) (sqrt.f32 (cbrt.f32 (/.f32 u1 (-.f32 1 u1))))))
0.5b
(*.f32 (sqrt.f32 (/.f32 1 (+.f32 (pow.f32 (/.f32 1 u1) 3) (pow.f32 -1 3)))) (*.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) (sqrt.f32 (+.f32 1 (/.f32 (+.f32 1 (/.f32 1 u1)) u1)))))
0.3b
(*.f32 (sqrt.f32 (/.f32 1 (+.f32 (/.f32 1 u1) -1))) (cos.f32 (exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2)))))
2.5b
(exp.f32 (log.f32 (*.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) (sqrt.f32 (/.f32 u1 (-.f32 1 u1))))))
0.5b
(*.f32 (sqrt.f32 u1) (*.f32 (sqrt.f32 (/.f32 1 (-.f32 1 u1))) (cos.f32 (exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2))))))
0.6b
(*.f32 (*.f32 (sqrt.f32 (/.f32 (sqrt.f32 u1) (+.f32 1 (sqrt.f32 u1)))) (sqrt.f32 (/.f32 (sqrt.f32 u1) (-.f32 1 (sqrt.f32 u1))))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
1.2b
(*.f32 (exp.f32 (log.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
14.6b
(*.f32 (sqrt.f32 (log.f32 (exp.f32 (/.f32 u1 (-.f32 1 u1))))) (cos.f32 (exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2)))))
0.5b
(*.f32 (sqrt.f32 (*.f32 (/.f32 1 (+.f32 -1 (/.f32 1 (pow.f32 u1 3)))) (+.f32 (*.f32 (/.f32 1 u1) (/.f32 1 u1)) (-.f32 (*.f32 -1 -1) (*.f32 (/.f32 1 u1) -1))))) (cos.f32 (exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2)))))
Compiler

Compiled 6411 to 5330 computations (16.9% saved)

localize52.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f32 (sqrt.f32 (/.f32 1 (-.f32 1 u1))) (cos.f32 (exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2)))))
0.4b
(+.f32 (log.f32 314159265359/50000000000) (log.f32 u2))
0.4b
(*.f32 (sqrt.f32 u1) (*.f32 (sqrt.f32 (/.f32 1 (-.f32 1 u1))) (cos.f32 (exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2))))))
1.4b
(exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2)))

series255.0ms (2.3%)

Counts
2 → 32
Calls

2 calls:

139.0ms
(*.f32 (sqrt.f32 (/.f32 1 (-.f32 1 u1))) (cos.f32 (exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2)))))
116.0ms
(*.f32 (sqrt.f32 u1) (*.f32 (sqrt.f32 (/.f32 1 (-.f32 1 u1))) (cos.f32 (exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2))))))

rewrite31.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
34×add-sqr-sqrt_binary32
33×associate-*l*_binary32
30×sqrt-prod_binary32
26×*-un-lft-identity_binary32
20×times-frac_binary32
Counts
2 → 72
Calls

2 calls:

12.0ms
(*.f32 (sqrt.f32 (/.f32 1 (-.f32 1 u1))) (cos.f32 (exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2)))))
12.0ms
(*.f32 (sqrt.f32 u1) (*.f32 (sqrt.f32 (/.f32 1 (-.f32 1 u1))) (cos.f32 (exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2))))))

simplify172.0ms (1.6%)

Algorithm
egg-herbie
Rules
853×times-frac_binary32
417×associate-/r*_binary32
334×fma-def_binary32
311×fma-neg_binary32
272×associate-/l*_binary32
Counts
104 → 134
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01743204
14022283
213302227
346352227
449632227
549982227
649992227
749312227

prune295.0ms (2.7%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New1982200
Fresh268
Picked101
Done101
Total2028210
Error
0.0b
Counts
210 → 8
Alt Table
StatusErrorProgram
0.5b
(*.f32 (sqrt.f32 (/.f32 1 (-.f32 (*.f32 (/.f32 1 u1) (/.f32 1 u1)) (*.f32 -1 -1)))) (*.f32 (sqrt.f32 (-.f32 (/.f32 1 u1) -1)) (cos.f32 (exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2))))))
0.5b
(*.f32 (sqrt.f32 (*.f32 (cbrt.f32 (/.f32 u1 (-.f32 1 u1))) (cbrt.f32 (/.f32 u1 (-.f32 1 u1))))) (*.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) (sqrt.f32 (cbrt.f32 (/.f32 u1 (-.f32 1 u1))))))
0.3b
(/.f32 (*.f32 (sqrt.f32 u1) (*.f32 (sqrt.f32 1) (cos.f32 (exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2)))))) (sqrt.f32 (-.f32 1 u1)))
0.5b
(*.f32 (sqrt.f32 (/.f32 1 (+.f32 (pow.f32 (/.f32 1 u1) 3) (pow.f32 -1 3)))) (*.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) (sqrt.f32 (+.f32 1 (/.f32 (+.f32 1 (/.f32 1 u1)) u1)))))
1.2b
(*.f32 (exp.f32 (log.f32 (sqrt.f32 (/.f32 u1 (-.f32 1 u1))))) (cos.f32 (*.f32 314159265359/50000000000 u2)))
14.6b
(*.f32 (sqrt.f32 (log.f32 (exp.f32 (/.f32 u1 (-.f32 1 u1))))) (cos.f32 (exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2)))))
0.5b
(*.f32 (sqrt.f32 (*.f32 (/.f32 1 (+.f32 -1 (/.f32 1 (pow.f32 u1 3)))) (+.f32 (*.f32 (/.f32 1 u1) (/.f32 1 u1)) (-.f32 (*.f32 -1 -1) (*.f32 (/.f32 1 u1) -1))))) (cos.f32 (exp.f32 (+.f32 (log.f32 314159265359/50000000000) (log.f32 u2)))))
1.8b
(*.f32 (sqrt.f32 u1) (exp.f32 (log.f32 (*.f32 (cos.f32 (*.f32 314159265359/50000000000 u2)) (sqrt.f32 (/.f32 1 (-.f32 1 u1)))))))
Compiler

Compiled 5158 to 3887 computations (24.6% saved)

regimes5.6s (51.6%)

Accuracy

Total 0.3b remaining (74%)

Threshold costs 0.3b (74%)

Counts
430 → 1
Compiler

Compiled 95117 to 77112 computations (18.9% saved)

simplify3.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
01423
12023
22423
32623
42723
52623

end154.0ms (1.4%)

Compiler

Compiled 241 to 203 computations (15.8% saved)

Profiling

Loading profile data...