Details

Time bar (total: 2.8s)

analyze1.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%0.1%99.9%0%0%0%0
100%0.1%0%99.9%0%0%0%1
Compiler

Compiled 33 to 24 computations (27.3% saved)

sample1.3s (48.8%)

Results
1.3s8256×body256valid
Bogosity

preprocess12.0ms (0.4%)

Algorithm
egg-herbie
Rules
rational.json-simplify-1
rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01776
12576
033
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
2
Call 2
Inputs
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
(+.f32 (-.f32 1 uy) (*.f32 uy maxCos))
(+.f32 (-.f32 1 maxCos) (*.f32 maxCos ux))
(+.f32 (-.f32 1 ux) (*.f32 ux uy))
Outputs
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
(+.f32 (-.f32 1 uy) (*.f32 uy maxCos))
(+.f32 (-.f32 1 uy) (*.f32 maxCos uy))
(+.f32 (-.f32 1 maxCos) (*.f32 maxCos ux))
(+.f32 (-.f32 1 maxCos) (*.f32 ux maxCos))
(+.f32 (-.f32 1 ux) (*.f32 ux uy))
Compiler

Compiled 13 to 10 computations (23.1% saved)

simplify8.0ms (0.3%)

Algorithm
egg-herbie
Rules
rational.json-simplify-2
rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0819
11019
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
Outputs
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))

eval0.0ms (0%)

Compiler

Compiled 10 to 7 computations (30% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
0.0b
Counts
2 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
Compiler

Compiled 10 to 7 computations (30% saved)

localize20.0ms (0.7%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f32 ux maxCos)
0.0b
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
Compiler

Compiled 19 to 10 computations (47.4% saved)

series3.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
0.0ms
ux
@inf
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
0.0ms
ux
@-inf
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
0.0ms
ux
@0
(*.f32 ux maxCos)
0.0ms
ux
@0
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
0.0ms
maxCos
@inf
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))

rewrite115.0ms (4.2%)

Algorithm
batch-egg-rewrite
Rules
1482×exponential.json-3
1482×rational.json-1
1482×rational.json-2
1482×rational.json-4
1482×rational.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0826
16226
213926
326326
449226
5108426
6295526
7535426
8673826
Stop Event
node limit
Counts
2 → 36
Calls
Call 1
Inputs
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
(*.f32 ux maxCos)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (+.f32 (*.f32 ux maxCos) (neg.f32 (+.f32 ux -2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 2 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 4 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1/2 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1/4 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1/8 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 2 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 2 (*.f32 2 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 8)))) (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 ux maxCos) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (*.f32 ux maxCos))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 ux (*.f32 maxCos 1/2)) (*.f32 ux (*.f32 maxCos 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (*.f32 ux maxCos) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 ux maxCos) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 ux (+.f32 maxCos maxCos)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 ux (*.f32 maxCos 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 ux (*.f32 maxCos 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 2 (*.f32 ux (*.f32 maxCos 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 2 (*.f32 2 (*.f32 ux (*.f32 maxCos 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 ux (*.f32 maxCos 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 ux (*.f32 maxCos 8))))) (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 ux (*.f32 maxCos 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 ux maxCos) 1)))))

simplify325.0ms (11.8%)

Algorithm
egg-herbie
Rules
2134×rational.json-simplify-2
1730×rational.json-simplify-35
1620×rational.json-simplify-1
878×rational.json-simplify-48
696×rational.json-simplify-51
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0931096
12191096
26351092
315861092
430031092
538061092
642571092
747661092
852271092
955461092
1058291092
1163971092
1268331092
1372791092
1478231092
Stop Event
node limit
Counts
84 → 53
Calls
Call 1
Inputs
1
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(*.f32 (-.f32 maxCos 1) ux)
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos))))
(+.f32 1 (*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos)))))
(+.f32 1 (*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos)))))
(+.f32 1 (*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos)))))
(-.f32 1 ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(*.f32 maxCos ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(*.f32 maxCos ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(-.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 0)
(-.f32 (+.f32 (*.f32 ux maxCos) (neg.f32 (+.f32 ux -2))) 1)
(*.f32 1 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)))
(*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1)
(*.f32 2 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1/2))
(*.f32 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 2) 1/2)
(*.f32 4 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1/4))
(*.f32 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 4) 1/4)
(*.f32 1/2 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 2))
(*.f32 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 8) 1/8)
(*.f32 1/4 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 4))
(*.f32 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1/2) 2)
(*.f32 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1/4) 4)
(*.f32 1/8 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 8))
(/.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1)
(/.f32 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 2) 2)
(/.f32 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 4) 4)
(/.f32 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 8) 8)
(/.f32 (*.f32 2 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 8)) 16)
(/.f32 (*.f32 2 (*.f32 2 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 8))) 32)
(/.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 8)))) 64)
(/.f32 (+.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 8)))) (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 8))))) 128)
(pow.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1)
(+.f32 (*.f32 ux maxCos) 0)
(+.f32 0 (*.f32 ux maxCos))
(+.f32 (*.f32 ux (*.f32 maxCos 1/2)) (*.f32 ux (*.f32 maxCos 1/2)))
(-.f32 (*.f32 ux maxCos) 0)
(/.f32 (*.f32 ux maxCos) 1)
(/.f32 (*.f32 ux (+.f32 maxCos maxCos)) 2)
(/.f32 (*.f32 ux (*.f32 maxCos 4)) 4)
(/.f32 (*.f32 ux (*.f32 maxCos 8)) 8)
(/.f32 (*.f32 2 (*.f32 ux (*.f32 maxCos 8))) 16)
(/.f32 (*.f32 2 (*.f32 2 (*.f32 ux (*.f32 maxCos 8)))) 32)
(/.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 ux (*.f32 maxCos 8))))) 64)
(/.f32 (+.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 ux (*.f32 maxCos 8))))) (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 ux (*.f32 maxCos 8)))))) 128)
(pow.f32 (*.f32 ux maxCos) 1)
Outputs
1
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(*.f32 (-.f32 maxCos 1) ux)
(*.f32 (+.f32 maxCos -1) ux)
(*.f32 ux (+.f32 maxCos -1))
(-.f32 (*.f32 maxCos ux) ux)
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos))))
(*.f32 (+.f32 maxCos -1) ux)
(*.f32 ux (+.f32 maxCos -1))
(-.f32 (*.f32 maxCos ux) ux)
(+.f32 1 (*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos)))))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(+.f32 1 (*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos)))))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(+.f32 1 (*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos)))))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(-.f32 1 ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(*.f32 maxCos ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(*.f32 maxCos ux)
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
(-.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 0)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(-.f32 (+.f32 (*.f32 ux maxCos) (neg.f32 (+.f32 ux -2))) 1)
(+.f32 (+.f32 (*.f32 maxCos ux) (neg.f32 (+.f32 ux -2))) -1)
(+.f32 (neg.f32 (+.f32 ux -2)) (+.f32 (*.f32 maxCos ux) -1))
(+.f32 (*.f32 maxCos ux) (-.f32 -1 (+.f32 ux -2)))
(*.f32 1 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(*.f32 2 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1/2))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(*.f32 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 2) 1/2)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(*.f32 4 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1/4))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(*.f32 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 4) 1/4)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(*.f32 1/2 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 2))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(*.f32 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 8) 1/8)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(*.f32 1/4 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 4))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(*.f32 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1/2) 2)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(*.f32 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1/4) 4)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(*.f32 1/8 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 8))
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(/.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(/.f32 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 2) 2)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(/.f32 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 4) 4)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(/.f32 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 8) 8)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(/.f32 (*.f32 2 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 8)) 16)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(/.f32 (*.f32 2 (*.f32 2 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 8))) 32)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(/.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 8)))) 64)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(/.f32 (+.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 8)))) (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 8))))) 128)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(pow.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 1)
(+.f32 1 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(+.f32 (*.f32 ux maxCos) 0)
(*.f32 maxCos ux)
(+.f32 0 (*.f32 ux maxCos))
(*.f32 maxCos ux)
(+.f32 (*.f32 ux (*.f32 maxCos 1/2)) (*.f32 ux (*.f32 maxCos 1/2)))
(*.f32 maxCos ux)
(-.f32 (*.f32 ux maxCos) 0)
(*.f32 maxCos ux)
(/.f32 (*.f32 ux maxCos) 1)
(*.f32 maxCos ux)
(/.f32 (*.f32 ux (+.f32 maxCos maxCos)) 2)
(*.f32 maxCos ux)
(/.f32 (*.f32 ux (*.f32 maxCos 4)) 4)
(*.f32 maxCos ux)
(/.f32 (*.f32 ux (*.f32 maxCos 8)) 8)
(*.f32 maxCos ux)
(/.f32 (*.f32 2 (*.f32 ux (*.f32 maxCos 8))) 16)
(*.f32 maxCos ux)
(/.f32 (*.f32 2 (*.f32 2 (*.f32 ux (*.f32 maxCos 8)))) 32)
(*.f32 maxCos ux)
(/.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 ux (*.f32 maxCos 8))))) 64)
(*.f32 maxCos ux)
(/.f32 (+.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 ux (*.f32 maxCos 8))))) (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 ux (*.f32 maxCos 8)))))) 128)
(*.f32 maxCos ux)
(pow.f32 (*.f32 ux maxCos) 1)
(*.f32 maxCos ux)

eval9.0ms (0.3%)

Compiler

Compiled 557 to 369 computations (33.8% saved)

prune8.0ms (0.3%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New49453
Fresh000
Picked101
Done000
Total50454
Error
0.0b
Counts
54 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
0.7b
(-.f32 1 ux)
0.0b
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
9.1b
1
Compiler

Compiled 30 to 24 computations (20% saved)

localize21.0ms (0.7%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
0.0b
(*.f32 (-.f32 maxCos 1) ux)
Compiler

Compiled 21 to 14 computations (33.3% saved)

series2.0ms (0.1%)

Counts
2 → 27
Calls

12 calls:

TimeVariablePointExpression
1.0ms
ux
@-inf
(*.f32 (-.f32 maxCos 1) ux)
0.0ms
maxCos
@inf
(*.f32 (-.f32 maxCos 1) ux)
0.0ms
ux
@inf
(*.f32 (-.f32 maxCos 1) ux)
0.0ms
maxCos
@-inf
(*.f32 (-.f32 maxCos 1) ux)
0.0ms
ux
@0
(*.f32 (-.f32 maxCos 1) ux)

rewrite223.0ms (8.1%)

Algorithm
batch-egg-rewrite
Rules
2580×rational.json-simplify-35
1358×rational.json-simplify-1
1174×exponential.json-3
1174×rational.json-1
1174×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0832
16532
214832
326932
451032
5111932
6251132
7390532
8517432
9642832
10697532
11697532
12697532
Stop Event
node limit
Counts
2 → 40
Calls
Call 1
Inputs
(*.f32 (-.f32 maxCos 1) ux)
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 (+.f32 maxCos -1) ux) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (*.f32 (+.f32 maxCos -1) ux))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 (+.f32 maxCos -1) (*.f32 ux 1/2)) (*.f32 (+.f32 maxCos -1) (*.f32 ux 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (*.f32 (+.f32 maxCos -1) ux) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (+.f32 maxCos -1) ux) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (+.f32 maxCos -1) (+.f32 ux ux)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (+.f32 maxCos -1) (*.f32 ux 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (+.f32 maxCos -1) (*.f32 ux 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 2 (*.f32 (+.f32 maxCos -1) (*.f32 ux 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 2 (*.f32 2 (*.f32 (+.f32 maxCos -1) (*.f32 ux 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 maxCos -1) (*.f32 ux 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 maxCos -1) (*.f32 ux 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 maxCos -1) (*.f32 ux 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 maxCos -1) (*.f32 ux 8))))))) (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 maxCos -1) (*.f32 ux 8)))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 (+.f32 maxCos -1) ux) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f32 (*.f32 (+.f32 maxCos -1) ux) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 2 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (+.f32 2 (*.f32 (+.f32 maxCos -1) (+.f32 ux ux))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 4 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1/2 (+.f32 2 (*.f32 (+.f32 maxCos -1) (+.f32 ux ux))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1/4 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1/8 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 2 (*.f32 (+.f32 maxCos -1) (+.f32 ux ux))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 2 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 8)))))) (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 8))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 1)))))

simplify333.0ms (12%)

Algorithm
egg-herbie
Rules
1954×rational.json-simplify-2
1938×rational.json-simplify-48
1918×rational.json-simplify-35
1584×rational.json-simplify-1
850×rational.json-simplify-51
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0951393
12241029
25981029
317501025
436551025
544591025
649501025
755231025
859491025
961301025
1066791025
1172061025
1273811025
1374681025
1479211025
Stop Event
node limit
Counts
67 → 55
Calls
Call 1
Inputs
(*.f32 -1 ux)
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(*.f32 maxCos ux)
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(*.f32 maxCos ux)
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(+.f32 (*.f32 -1 ux) 1)
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(*.f32 maxCos ux)
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(*.f32 maxCos ux)
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
1
(*.f32 (-.f32 maxCos 1) ux)
(*.f32 (-.f32 maxCos 1) ux)
(+.f32 (*.f32 (+.f32 maxCos -1) ux) 0)
(+.f32 0 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 (*.f32 (+.f32 maxCos -1) (*.f32 ux 1/2)) (*.f32 (+.f32 maxCos -1) (*.f32 ux 1/2)))
(-.f32 (*.f32 (+.f32 maxCos -1) ux) 0)
(/.f32 (*.f32 (+.f32 maxCos -1) ux) 1)
(/.f32 (*.f32 (+.f32 maxCos -1) (+.f32 ux ux)) 2)
(/.f32 (*.f32 (+.f32 maxCos -1) (*.f32 ux 4)) 4)
(/.f32 (*.f32 (+.f32 maxCos -1) (*.f32 ux 8)) 8)
(/.f32 (*.f32 2 (*.f32 (+.f32 maxCos -1) (*.f32 ux 8))) 16)
(/.f32 (*.f32 2 (*.f32 2 (*.f32 (+.f32 maxCos -1) (*.f32 ux 8)))) 32)
(/.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 maxCos -1) (*.f32 ux 8))))) 64)
(/.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 maxCos -1) (*.f32 ux 8)))))) 128)
(/.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 maxCos -1) (*.f32 ux 8))))))) 256)
(/.f32 (+.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 maxCos -1) (*.f32 ux 8))))))) (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 maxCos -1) (*.f32 ux 8)))))))) 512)
(pow.f32 (*.f32 (+.f32 maxCos -1) ux) 1)
(-.f32 (*.f32 (+.f32 maxCos -1) ux) -1)
(-.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 0)
(*.f32 1 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)))
(*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 1)
(*.f32 2 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 1/2))
(*.f32 (+.f32 2 (*.f32 (+.f32 maxCos -1) (+.f32 ux ux))) 1/2)
(*.f32 4 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 1/4))
(*.f32 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 4) 1/4)
(*.f32 1/2 (+.f32 2 (*.f32 (+.f32 maxCos -1) (+.f32 ux ux))))
(*.f32 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 8) 1/8)
(*.f32 1/4 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 4))
(*.f32 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 1/2) 2)
(*.f32 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 1/4) 4)
(*.f32 1/8 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 8))
(/.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 1)
(/.f32 (+.f32 2 (*.f32 (+.f32 maxCos -1) (+.f32 ux ux))) 2)
(/.f32 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 4) 4)
(/.f32 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 8) 8)
(/.f32 (*.f32 2 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 8)) 16)
(/.f32 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 8))) 32)
(/.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 8)))) 64)
(/.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 8))))) 128)
(/.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 8)))))) 256)
(/.f32 (+.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 8)))))) (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 8))))))) 512)
(pow.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 1)
Outputs
(*.f32 -1 ux)
(neg.f32 ux)
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(+.f32 (*.f32 -1 ux) (*.f32 ux maxCos))
(*.f32 ux (+.f32 -1 maxCos))
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(+.f32 (*.f32 -1 ux) (*.f32 ux maxCos))
(*.f32 ux (+.f32 -1 maxCos))
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(+.f32 (*.f32 -1 ux) (*.f32 ux maxCos))
(*.f32 ux (+.f32 -1 maxCos))
(*.f32 maxCos ux)
(*.f32 ux maxCos)
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(+.f32 (*.f32 -1 ux) (*.f32 ux maxCos))
(*.f32 ux (+.f32 -1 maxCos))
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(+.f32 (*.f32 -1 ux) (*.f32 ux maxCos))
(*.f32 ux (+.f32 -1 maxCos))
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(+.f32 (*.f32 -1 ux) (*.f32 ux maxCos))
(*.f32 ux (+.f32 -1 maxCos))
(*.f32 maxCos ux)
(*.f32 ux maxCos)
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(+.f32 (*.f32 -1 ux) (*.f32 ux maxCos))
(*.f32 ux (+.f32 -1 maxCos))
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(+.f32 (*.f32 -1 ux) (*.f32 ux maxCos))
(*.f32 ux (+.f32 -1 maxCos))
(+.f32 (*.f32 -1 ux) (*.f32 maxCos ux))
(+.f32 (*.f32 -1 ux) (*.f32 ux maxCos))
(*.f32 ux (+.f32 -1 maxCos))
(+.f32 (*.f32 -1 ux) 1)
(+.f32 (neg.f32 ux) 1)
(-.f32 1 ux)
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(*.f32 maxCos ux)
(*.f32 ux maxCos)
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(*.f32 maxCos ux)
(*.f32 ux maxCos)
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(+.f32 (*.f32 -1 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
1
(*.f32 (-.f32 maxCos 1) ux)
(+.f32 (*.f32 -1 ux) (*.f32 ux maxCos))
(*.f32 ux (+.f32 -1 maxCos))
(*.f32 (-.f32 maxCos 1) ux)
(+.f32 (*.f32 -1 ux) (*.f32 ux maxCos))
(*.f32 ux (+.f32 -1 maxCos))
(+.f32 (*.f32 (+.f32 maxCos -1) ux) 0)
(+.f32 (*.f32 -1 ux) (*.f32 ux maxCos))
(*.f32 ux (+.f32 -1 maxCos))
(+.f32 0 (*.f32 (+.f32 maxCos -1) ux))
(+.f32 (*.f32 -1 ux) (*.f32 ux maxCos))
(*.f32 ux (+.f32 -1 maxCos))
(+.f32 (*.f32 (+.f32 maxCos -1) (*.f32 ux 1/2)) (*.f32 (+.f32 maxCos -1) (*.f32 ux 1/2)))
(+.f32 (*.f32 -1 ux) (*.f32 ux maxCos))
(*.f32 ux (+.f32 -1 maxCos))
(-.f32 (*.f32 (+.f32 maxCos -1) ux) 0)
(+.f32 (*.f32 -1 ux) (*.f32 ux maxCos))
(*.f32 ux (+.f32 -1 maxCos))
(/.f32 (*.f32 (+.f32 maxCos -1) ux) 1)
(+.f32 (*.f32 -1 ux) (*.f32 ux maxCos))
(*.f32 ux (+.f32 -1 maxCos))
(/.f32 (*.f32 (+.f32 maxCos -1) (+.f32 ux ux)) 2)
(+.f32 (*.f32 -1 ux) (*.f32 ux maxCos))
(*.f32 ux (+.f32 -1 maxCos))
(/.f32 (*.f32 (+.f32 maxCos -1) (*.f32 ux 4)) 4)
(+.f32 (*.f32 -1 ux) (*.f32 ux maxCos))
(*.f32 ux (+.f32 -1 maxCos))
(/.f32 (*.f32 (+.f32 maxCos -1) (*.f32 ux 8)) 8)
(+.f32 (*.f32 -1 ux) (*.f32 ux maxCos))
(*.f32 ux (+.f32 -1 maxCos))
(/.f32 (*.f32 2 (*.f32 (+.f32 maxCos -1) (*.f32 ux 8))) 16)
(+.f32 (*.f32 -1 ux) (*.f32 ux maxCos))
(*.f32 ux (+.f32 -1 maxCos))
(/.f32 (*.f32 2 (*.f32 2 (*.f32 (+.f32 maxCos -1) (*.f32 ux 8)))) 32)
(+.f32 (*.f32 -1 ux) (*.f32 ux maxCos))
(*.f32 ux (+.f32 -1 maxCos))
(/.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 maxCos -1) (*.f32 ux 8))))) 64)
(+.f32 (*.f32 -1 ux) (*.f32 ux maxCos))
(*.f32 ux (+.f32 -1 maxCos))
(/.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 maxCos -1) (*.f32 ux 8)))))) 128)
(+.f32 (*.f32 -1 ux) (*.f32 ux maxCos))
(*.f32 ux (+.f32 -1 maxCos))
(/.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 maxCos -1) (*.f32 ux 8))))))) 256)
(+.f32 (*.f32 -1 ux) (*.f32 ux maxCos))
(*.f32 ux (+.f32 -1 maxCos))
(/.f32 (+.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 maxCos -1) (*.f32 ux 8))))))) (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 maxCos -1) (*.f32 ux 8)))))))) 512)
(+.f32 (*.f32 -1 ux) (*.f32 ux maxCos))
(*.f32 ux (+.f32 -1 maxCos))
(pow.f32 (*.f32 (+.f32 maxCos -1) ux) 1)
(+.f32 (*.f32 -1 ux) (*.f32 ux maxCos))
(*.f32 ux (+.f32 -1 maxCos))
(-.f32 (*.f32 (+.f32 maxCos -1) ux) -1)
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(-.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 0)
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(*.f32 1 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)))
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 1)
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(*.f32 2 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 1/2))
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(*.f32 (+.f32 2 (*.f32 (+.f32 maxCos -1) (+.f32 ux ux))) 1/2)
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(*.f32 4 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 1/4))
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(*.f32 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 4) 1/4)
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(*.f32 1/2 (+.f32 2 (*.f32 (+.f32 maxCos -1) (+.f32 ux ux))))
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(*.f32 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 8) 1/8)
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(*.f32 1/4 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 4))
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(*.f32 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 1/2) 2)
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(*.f32 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 1/4) 4)
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(*.f32 1/8 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 8))
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(/.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 1)
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(/.f32 (+.f32 2 (*.f32 (+.f32 maxCos -1) (+.f32 ux ux))) 2)
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(/.f32 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 4) 4)
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(/.f32 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 8) 8)
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(/.f32 (*.f32 2 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 8)) 16)
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(/.f32 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 8))) 32)
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(/.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 8)))) 64)
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(/.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 8))))) 128)
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(/.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 8)))))) 256)
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(/.f32 (+.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 8)))))) (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 8))))))) 512)
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))
(pow.f32 (+.f32 1 (*.f32 (+.f32 maxCos -1) ux)) 1)
(+.f32 (*.f32 -1 ux) (+.f32 (*.f32 ux maxCos) 1))
(+.f32 1 (*.f32 ux (+.f32 -1 maxCos)))

localize7.0ms (0.3%)

Compiler

Compiled 8 to 6 computations (25% saved)

localize19.0ms (0.7%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f32 maxCos ux)
0.0b
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
Compiler

Compiled 21 to 10 computations (52.4% saved)

series1.0ms (0.1%)

Counts
2 → 15
Calls

12 calls:

TimeVariablePointExpression
1.0ms
maxCos
@0
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
0.0ms
ux
@-inf
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
0.0ms
maxCos
@inf
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
0.0ms
maxCos
@-inf
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
0.0ms
ux
@inf
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)

rewrite92.0ms (3.3%)

Algorithm
batch-egg-rewrite
Rules
1734×rational.json-simplify-35
1196×exponential.json-3
1196×rational.json-1
1196×rational.json-2
1196×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0826
16626
216126
332026
466426
5165026
6351226
7550726
Stop Event
node limit
Counts
2 → 58
Calls
Call 1
Inputs
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
(*.f32 maxCos ux)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f32 1 (-.f32 (*.f32 maxCos ux) ux))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 maxCos ux) (-.f32 1 ux))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (+.f32 1 (*.f32 maxCos ux)) (neg.f32 ux))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 -1 (+.f32 (*.f32 maxCos ux) (-.f32 2 ux)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (-.f32 1 ux) (*.f32 maxCos ux))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (-.f32 (*.f32 maxCos ux) ux) 1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (neg.f32 ux) (+.f32 1 (*.f32 maxCos ux)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (+.f32 (*.f32 maxCos ux) (-.f32 2 ux)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 maxCos (*.f32 ux 1/2)) (+.f32 (-.f32 1 ux) (*.f32 maxCos (*.f32 ux 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 1/2) (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 -2 (-.f32 (*.f32 maxCos ux) (-.f32 ux 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (-.f32 -1 (*.f32 1/2 (-.f32 ux (+.f32 1 (*.f32 maxCos ux))))) (-.f32 1 (*.f32 1/2 (-.f32 ux (+.f32 1 (*.f32 maxCos ux))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 -1 (-.f32 ux (+.f32 1 (*.f32 maxCos ux))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 2 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 4 (/.f32 (-.f32 ux (+.f32 1 (*.f32 maxCos ux))) -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 4 (-.f32 (/.f32 (+.f32 1 (*.f32 maxCos ux)) 4) (/.f32 ux 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (+.f32 2 (*.f32 ux (*.f32 2 (+.f32 maxCos -1)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (-.f32 ux (+.f32 1 (*.f32 maxCos ux))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1/2 (+.f32 2 (*.f32 ux (*.f32 2 (+.f32 maxCos -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1/2 (+.f32 (*.f32 (+.f32 ux -1) -2) (*.f32 maxCos (+.f32 ux ux))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1/4 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 1/2 (-.f32 ux (+.f32 1 (*.f32 maxCos ux)))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (-.f32 ux (+.f32 1 (*.f32 maxCos ux))) -4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (+.f32 (*.f32 (+.f32 ux -1) -2) (*.f32 maxCos (+.f32 ux ux))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 2 (*.f32 ux (*.f32 2 (+.f32 maxCos -1)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (-.f32 ux (+.f32 1 (*.f32 maxCos ux))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (-.f32 -2 (*.f32 ux (*.f32 2 (+.f32 maxCos -1)))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) -4) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 2 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 2 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) -4)) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) -4))) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 8)))) (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f32 (-.f32 ux (+.f32 1 (*.f32 maxCos ux))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 maxCos ux) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (*.f32 maxCos ux))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 maxCos (*.f32 ux 1/2)) (*.f32 maxCos (*.f32 ux 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (*.f32 maxCos ux) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 maxCos ux) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 maxCos (+.f32 ux ux)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 maxCos (*.f32 ux 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (*.f32 ux 8) maxCos) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 2 (*.f32 (*.f32 ux 8) maxCos)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 2 (*.f32 2 (*.f32 (*.f32 ux 8) maxCos))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (*.f32 ux 8) maxCos)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (*.f32 ux 8) maxCos)))) (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (*.f32 ux 8) maxCos))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (*.f32 maxCos ux) 1)))))

simplify125.0ms (4.5%)

Algorithm
egg-herbie
Rules
1468×rational.json-simplify-35
1278×rational.json-simplify-1
1014×rational.json-simplify-2
962×rational.json-simplify-45
914×rational.json-simplify-48
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01361231
13091231
26711231
322721231
445841231
556591231
666851231
Stop Event
node limit
Counts
73 → 75
Calls
Call 1
Inputs
(-.f32 1 ux)
(*.f32 maxCos ux)
(*.f32 maxCos ux)
1
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(*.f32 (-.f32 maxCos 1) ux)
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos))))
(+.f32 1 (*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos)))))
(+.f32 1 (*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos)))))
(+.f32 1 (*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos)))))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(+.f32 (*.f32 maxCos ux) (-.f32 1 ux))
(+.f32 (+.f32 1 (*.f32 maxCos ux)) (neg.f32 ux))
(+.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 0)
(+.f32 0 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)))
(+.f32 -1 (+.f32 (*.f32 maxCos ux) (-.f32 2 ux)))
(+.f32 (-.f32 1 ux) (*.f32 maxCos ux))
(+.f32 (-.f32 (*.f32 maxCos ux) ux) 1)
(+.f32 (neg.f32 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 (+.f32 (*.f32 maxCos ux) (-.f32 2 ux)) -1)
(+.f32 (*.f32 maxCos (*.f32 ux 1/2)) (+.f32 (-.f32 1 ux) (*.f32 maxCos (*.f32 ux 1/2))))
(+.f32 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 1/2) (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 1/2))
(+.f32 -2 (-.f32 (*.f32 maxCos ux) (-.f32 ux 3)))
(+.f32 (-.f32 -1 (*.f32 1/2 (-.f32 ux (+.f32 1 (*.f32 maxCos ux))))) (-.f32 1 (*.f32 1/2 (-.f32 ux (+.f32 1 (*.f32 maxCos ux))))))
(*.f32 1 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)))
(*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 1)
(*.f32 -1 (-.f32 ux (+.f32 1 (*.f32 maxCos ux))))
(*.f32 2 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 1/2))
(*.f32 4 (/.f32 (-.f32 ux (+.f32 1 (*.f32 maxCos ux))) -4))
(*.f32 4 (-.f32 (/.f32 (+.f32 1 (*.f32 maxCos ux)) 4) (/.f32 ux 4)))
(*.f32 (+.f32 2 (*.f32 ux (*.f32 2 (+.f32 maxCos -1)))) 1/2)
(*.f32 (-.f32 ux (+.f32 1 (*.f32 maxCos ux))) -1)
(*.f32 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 4) 1/4)
(*.f32 1/2 (+.f32 2 (*.f32 ux (*.f32 2 (+.f32 maxCos -1)))))
(*.f32 1/2 (+.f32 (*.f32 (+.f32 ux -1) -2) (*.f32 maxCos (+.f32 ux ux))))
(*.f32 1/4 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 4))
(*.f32 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 1/2) 2)
(*.f32 (*.f32 1/2 (-.f32 ux (+.f32 1 (*.f32 maxCos ux)))) -2)
(*.f32 (/.f32 (-.f32 ux (+.f32 1 (*.f32 maxCos ux))) -4) 4)
(*.f32 (+.f32 (*.f32 (+.f32 ux -1) -2) (*.f32 maxCos (+.f32 ux ux))) 1/2)
(/.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 1)
(/.f32 (+.f32 2 (*.f32 ux (*.f32 2 (+.f32 maxCos -1)))) 2)
(/.f32 (-.f32 ux (+.f32 1 (*.f32 maxCos ux))) -1)
(/.f32 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 4) 4)
(/.f32 (-.f32 -2 (*.f32 ux (*.f32 2 (+.f32 maxCos -1)))) -2)
(/.f32 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 8) 8)
(/.f32 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) -4) -4)
(/.f32 (*.f32 2 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 8)) 16)
(/.f32 (*.f32 2 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) -4)) -8)
(/.f32 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 8))) 32)
(/.f32 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) -4))) -16)
(/.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 8)))) 64)
(/.f32 (+.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 8)))) (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 8))))) 128)
(pow.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 1)
(neg.f32 (-.f32 ux (+.f32 1 (*.f32 maxCos ux))))
(+.f32 (*.f32 maxCos ux) 0)
(+.f32 0 (*.f32 maxCos ux))
(+.f32 (*.f32 maxCos (*.f32 ux 1/2)) (*.f32 maxCos (*.f32 ux 1/2)))
(-.f32 (*.f32 maxCos ux) 0)
(/.f32 (*.f32 maxCos ux) 1)
(/.f32 (*.f32 maxCos (+.f32 ux ux)) 2)
(/.f32 (*.f32 maxCos (*.f32 ux 4)) 4)
(/.f32 (*.f32 (*.f32 ux 8) maxCos) 8)
(/.f32 (*.f32 2 (*.f32 (*.f32 ux 8) maxCos)) 16)
(/.f32 (*.f32 2 (*.f32 2 (*.f32 (*.f32 ux 8) maxCos))) 32)
(/.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (*.f32 ux 8) maxCos)))) 64)
(/.f32 (+.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (*.f32 ux 8) maxCos)))) (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (*.f32 ux 8) maxCos))))) 128)
(pow.f32 (*.f32 maxCos ux) 1)
Outputs
(-.f32 1 ux)
(*.f32 maxCos ux)
(*.f32 ux maxCos)
(*.f32 maxCos ux)
(*.f32 ux maxCos)
1
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(*.f32 (-.f32 maxCos 1) ux)
(*.f32 ux (+.f32 maxCos -1))
(-.f32 (*.f32 ux maxCos) ux)
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos))))
(*.f32 ux (+.f32 maxCos -1))
(-.f32 (*.f32 ux maxCos) ux)
(+.f32 1 (*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos)))))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(+.f32 1 (*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos)))))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(+.f32 1 (*.f32 -1 (*.f32 ux (+.f32 1 (*.f32 -1 maxCos)))))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(+.f32 1 (-.f32 (*.f32 maxCos ux) ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(+.f32 (*.f32 maxCos ux) (-.f32 1 ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(+.f32 (+.f32 1 (*.f32 maxCos ux)) (neg.f32 ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(+.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 0)
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(+.f32 0 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(+.f32 -1 (+.f32 (*.f32 maxCos ux) (-.f32 2 ux)))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(+.f32 (-.f32 1 ux) (*.f32 maxCos ux))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(+.f32 (-.f32 (*.f32 maxCos ux) ux) 1)
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(+.f32 (neg.f32 ux) (+.f32 1 (*.f32 maxCos ux)))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(+.f32 (+.f32 (*.f32 maxCos ux) (-.f32 2 ux)) -1)
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(+.f32 (*.f32 maxCos (*.f32 ux 1/2)) (+.f32 (-.f32 1 ux) (*.f32 maxCos (*.f32 ux 1/2))))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(+.f32 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 1/2) (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 1/2))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(+.f32 -2 (-.f32 (*.f32 maxCos ux) (-.f32 ux 3)))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(+.f32 (-.f32 -1 (*.f32 1/2 (-.f32 ux (+.f32 1 (*.f32 maxCos ux))))) (-.f32 1 (*.f32 1/2 (-.f32 ux (+.f32 1 (*.f32 maxCos ux))))))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(*.f32 1 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 1)
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(*.f32 -1 (-.f32 ux (+.f32 1 (*.f32 maxCos ux))))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(*.f32 2 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 1/2))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(*.f32 4 (/.f32 (-.f32 ux (+.f32 1 (*.f32 maxCos ux))) -4))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(*.f32 4 (-.f32 (/.f32 (+.f32 1 (*.f32 maxCos ux)) 4) (/.f32 ux 4)))
(*.f32 4 (-.f32 (/.f32 (+.f32 1 (*.f32 ux maxCos)) 4) (/.f32 ux 4)))
(*.f32 (+.f32 2 (*.f32 ux (*.f32 2 (+.f32 maxCos -1)))) 1/2)
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(*.f32 (-.f32 ux (+.f32 1 (*.f32 maxCos ux))) -1)
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(*.f32 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 4) 1/4)
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(*.f32 1/2 (+.f32 2 (*.f32 ux (*.f32 2 (+.f32 maxCos -1)))))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(*.f32 1/2 (+.f32 (*.f32 (+.f32 ux -1) -2) (*.f32 maxCos (+.f32 ux ux))))
(*.f32 1/2 (+.f32 (*.f32 -2 (+.f32 ux -1)) (*.f32 maxCos (+.f32 ux ux))))
(*.f32 1/2 (+.f32 (*.f32 -2 (+.f32 ux -1)) (*.f32 ux (+.f32 maxCos maxCos))))
(*.f32 1/4 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 4))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(*.f32 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 1/2) 2)
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(*.f32 (*.f32 1/2 (-.f32 ux (+.f32 1 (*.f32 maxCos ux)))) -2)
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(*.f32 (/.f32 (-.f32 ux (+.f32 1 (*.f32 maxCos ux))) -4) 4)
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(*.f32 (+.f32 (*.f32 (+.f32 ux -1) -2) (*.f32 maxCos (+.f32 ux ux))) 1/2)
(*.f32 1/2 (+.f32 (*.f32 -2 (+.f32 ux -1)) (*.f32 maxCos (+.f32 ux ux))))
(*.f32 1/2 (+.f32 (*.f32 -2 (+.f32 ux -1)) (*.f32 ux (+.f32 maxCos maxCos))))
(/.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 1)
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(/.f32 (+.f32 2 (*.f32 ux (*.f32 2 (+.f32 maxCos -1)))) 2)
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(/.f32 (-.f32 ux (+.f32 1 (*.f32 maxCos ux))) -1)
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(/.f32 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 4) 4)
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(/.f32 (-.f32 -2 (*.f32 ux (*.f32 2 (+.f32 maxCos -1)))) -2)
(/.f32 (*.f32 (-.f32 1 (*.f32 ux (-.f32 1 maxCos))) -2) -2)
(/.f32 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 8) 8)
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(/.f32 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) -4) -4)
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(/.f32 (*.f32 2 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 8)) 16)
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(/.f32 (*.f32 2 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) -4)) -8)
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(/.f32 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 8))) 32)
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(/.f32 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) -4))) -16)
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(/.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 8)))) 64)
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(/.f32 (+.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 8)))) (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 8))))) 128)
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(pow.f32 (+.f32 1 (-.f32 (*.f32 maxCos ux) ux)) 1)
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(neg.f32 (-.f32 ux (+.f32 1 (*.f32 maxCos ux))))
(+.f32 1 (*.f32 ux (+.f32 maxCos -1)))
(+.f32 1 (-.f32 (*.f32 ux maxCos) ux))
(-.f32 1 (*.f32 ux (-.f32 1 maxCos)))
(+.f32 (*.f32 maxCos ux) 0)
(*.f32 ux maxCos)
(+.f32 0 (*.f32 maxCos ux))
(*.f32 ux maxCos)
(+.f32 (*.f32 maxCos (*.f32 ux 1/2)) (*.f32 maxCos (*.f32 ux 1/2)))
(*.f32 ux maxCos)
(-.f32 (*.f32 maxCos ux) 0)
(*.f32 ux maxCos)
(/.f32 (*.f32 maxCos ux) 1)
(*.f32 ux maxCos)
(/.f32 (*.f32 maxCos (+.f32 ux ux)) 2)
(*.f32 ux maxCos)
(/.f32 (*.f32 maxCos (*.f32 ux 4)) 4)
(*.f32 ux maxCos)
(/.f32 (*.f32 (*.f32 ux 8) maxCos) 8)
(*.f32 ux maxCos)
(/.f32 (*.f32 2 (*.f32 (*.f32 ux 8) maxCos)) 16)
(*.f32 ux maxCos)
(/.f32 (*.f32 2 (*.f32 2 (*.f32 (*.f32 ux 8) maxCos))) 32)
(*.f32 ux maxCos)
(/.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (*.f32 ux 8) maxCos)))) 64)
(*.f32 ux maxCos)
(/.f32 (+.f32 (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (*.f32 ux 8) maxCos)))) (*.f32 2 (*.f32 2 (*.f32 2 (*.f32 (*.f32 ux 8) maxCos))))) 128)
(*.f32 ux maxCos)
(pow.f32 (*.f32 maxCos ux) 1)
(*.f32 ux maxCos)

eval25.0ms (0.9%)

Compiler

Compiled 1436 to 1001 computations (30.3% saved)

prune19.0ms (0.7%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New1300130
Fresh011
Picked011
Done022
Total1304134
Error
0.0b
Counts
134 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
0.7b
(-.f32 1 ux)
0.0b
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
9.1b
1
Compiler

Compiled 30 to 24 computations (20% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune1.0ms (0.1%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done033
Total044
Error
0.0b
Counts
4 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
0.7b
(-.f32 1 ux)
0.0b
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
9.1b
1
Compiler

Compiled 30 to 24 computations (20% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune2.0ms (0.1%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done033
Total044
Error
0.0b
Counts
4 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
0.7b
(-.f32 1 ux)
0.0b
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
9.1b
1
Compiler

Compiled 30 to 24 computations (20% saved)

regimes17.0ms (0.6%)

Counts
5 → 1
Calls
Call 1
Inputs
1
(-.f32 1 ux)
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
(-.f32 (+.f32 1 (*.f32 maxCos ux)) ux)
Outputs
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
Calls

4 calls:

5.0ms
(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
4.0ms
ux
4.0ms
uy
4.0ms
maxCos
Results
ErrorSegmentsBranch
0.0b1ux
0.0b1uy
0.0b1maxCos
0.0b1(+.f32 (-.f32 1 ux) (*.f32 ux maxCos))
Compiler

Compiled 50 to 35 computations (30% saved)

regimes10.0ms (0.4%)

Accuracy

Total -8.5b remaining (-1285.5%)

Threshold costs -8.5b (-1285.5%)

Counts
2 → 1
Calls
Call 1
Inputs
1
(-.f32 1 ux)
Outputs
(-.f32 1 ux)
Calls

3 calls:

4.0ms
uy
3.0ms
maxCos
3.0ms
ux
Results
ErrorSegmentsBranch
0.7b1ux
0.7b1uy
0.7b1maxCos
Compiler

Compiled 19 to 15 computations (21.1% saved)

simplify2.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0927
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(-.f32 1 ux)
1
Outputs
(+.f32 1 (*.f32 (-.f32 maxCos 1) ux))
(-.f32 1 ux)
1
Compiler

Compiled 20 to 17 computations (15% saved)

soundness0.0ms (0%)

end15.0ms (0.5%)

Compiler

Compiled 14 to 11 computations (21.4% saved)

Profiling

Loading profile data...