Details

Time bar (total: 4.9s)

analyze0.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%25%75%0%0%0%0
100%25%0%75%0%0%0%1
Compiler

Compiled 6 to 4 computations (33.3% saved)

sample2.5s (50.4%)

Results
2.5s8256×body256valid
Bogosity

preprocess11.0ms (0.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
045
011
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(acosh.f32 x)
Outputs
(acosh.f32 x)
Compiler

Compiled 11 to 8 computations (27.3% saved)

simplify141.0ms (2.9%)

Algorithm
egg-herbie
Rules
1814×rational.json-simplify-35
1350×rational.json-simplify-53
1016×rational.json-simplify-39
864×rational.json-simplify-59
750×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01027
11427
21927
33727
418527
5195727
6590427
7784327
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(log.f32 (+.f32 x (sqrt.f32 (-.f32 (*.f32 x x) 1))))
Outputs
(log.f32 (+.f32 x (sqrt.f32 (-.f32 (*.f32 x x) 1))))
(log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))))

eval1.0ms (0%)

Compiler

Compiled 19 to 12 computations (36.8% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
16.6b
Counts
3 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
16.6b
(log.f32 (+.f32 x (sqrt.f32 (-.f32 (*.f32 x x) 1))))
Compiler

Compiled 10 to 7 computations (30% saved)

localize30.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(log.f32 (+.f32 x (sqrt.f32 (-.f32 (*.f32 x x) 1))))
0.0b
(-.f32 (*.f32 x x) 1)
0.0b
(+.f32 x (sqrt.f32 (-.f32 (*.f32 x x) 1)))
14.5b
(sqrt.f32 (-.f32 (*.f32 x x) 1))
Compiler

Compiled 34 to 17 computations (50% saved)

series4.0ms (0.1%)

Counts
4 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(log.f32 (+.f32 x (sqrt.f32 (-.f32 (*.f32 x x) 1))))
1.0ms
x
@0
(log.f32 (+.f32 x (sqrt.f32 (-.f32 (*.f32 x x) 1))))
0.0ms
x
@0
(sqrt.f32 (-.f32 (*.f32 x x) 1))
0.0ms
x
@-inf
(log.f32 (+.f32 x (sqrt.f32 (-.f32 (*.f32 x x) 1))))
0.0ms
x
@inf
(sqrt.f32 (-.f32 (*.f32 x x) 1))

rewrite75.0ms (1.5%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01080
17580
216780
336180
4125480
5467780
Stop Event
node limit
Counts
4 → 64
Calls
Call 1
Inputs
(sqrt.f32 (-.f32 (*.f32 x x) 1))
(+.f32 x (sqrt.f32 (-.f32 (*.f32 x x) 1)))
(-.f32 (*.f32 x x) 1)
(log.f32 (+.f32 x (sqrt.f32 (-.f32 (*.f32 x x) 1))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (sqrt.f32 (+.f32 (*.f32 x x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (sqrt.f32 (+.f32 (*.f32 x x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 2 (/.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 2 (*.f32 (/.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1/2 (*.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 2 (*.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 (*.f32 2 (*.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 4)) (*.f32 2 (*.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 2 (/.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 2 (*.f32 (/.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1/2 (*.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 2 (*.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 (*.f32 2 (*.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 4)) (*.f32 2 (*.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 x x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (+.f32 (*.f32 x x) -1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (+.f32 (*.f32 x x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 -1 (*.f32 x x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 -2 (-.f32 1 (*.f32 x (neg.f32 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (+.f32 (*.f32 x x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (+.f32 (*.f32 x x) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 2 (/.f32 (+.f32 (*.f32 x x) -1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 2 (*.f32 (/.f32 (+.f32 (*.f32 x x) -1) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (+.f32 (*.f32 x x) -1) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1/2 (*.f32 (+.f32 (*.f32 x x) -1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (+.f32 (*.f32 x x) -1) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 (*.f32 x x) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (+.f32 (*.f32 x x) -1) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (+.f32 (*.f32 x x) -1) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 2 (*.f32 (+.f32 (*.f32 x x) -1) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 (*.f32 2 (*.f32 (+.f32 (*.f32 x x) -1) 4)) (*.f32 2 (*.f32 (+.f32 (*.f32 x x) -1) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (+.f32 (*.f32 x x) -1) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 2 (/.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 2 (*.f32 (/.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1/2 (*.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (*.f32 2 (*.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 (*.f32 2 (*.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 4)) (*.f32 2 (*.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 1)))))

simplify203.0ms (4.1%)

Algorithm
egg-herbie
Rules
1032×rational.json-simplify-2
858×rational.json-simplify-35
846×rational.json-simplify-41
748×rational.json-simplify-59
692×rational.json-simplify-51
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
02132980
14352972
28252972
319582972
440982972
562872968
Stop Event
node limit
Counts
112 → 168
Calls
Call 1
Inputs
(sqrt.f32 -1)
(+.f32 (sqrt.f32 -1) (*.f32 1/2 (/.f32 (pow.f32 x 2) (sqrt.f32 -1))))
(+.f32 (*.f32 -1/8 (/.f32 (pow.f32 x 4) (pow.f32 (sqrt.f32 -1) 3))) (+.f32 (sqrt.f32 -1) (*.f32 1/2 (/.f32 (pow.f32 x 2) (sqrt.f32 -1)))))
(+.f32 (*.f32 -1/8 (/.f32 (pow.f32 x 4) (pow.f32 (sqrt.f32 -1) 3))) (+.f32 (sqrt.f32 -1) (+.f32 (*.f32 1/2 (/.f32 (pow.f32 x 2) (sqrt.f32 -1))) (*.f32 1/16 (/.f32 (pow.f32 x 6) (pow.f32 (sqrt.f32 -1) 5))))))
x
(-.f32 x (*.f32 1/2 (/.f32 1 x)))
(-.f32 x (+.f32 (*.f32 1/2 (/.f32 1 x)) (*.f32 1/8 (/.f32 1 (pow.f32 x 3)))))
(-.f32 x (+.f32 (*.f32 1/2 (/.f32 1 x)) (+.f32 (*.f32 1/16 (/.f32 1 (pow.f32 x 5))) (*.f32 1/8 (/.f32 1 (pow.f32 x 3))))))
(*.f32 -1 x)
(+.f32 (*.f32 -1 x) (*.f32 1/2 (/.f32 1 x)))
(+.f32 (*.f32 1/2 (/.f32 1 x)) (+.f32 (*.f32 1/8 (/.f32 1 (pow.f32 x 3))) (*.f32 -1 x)))
(+.f32 (*.f32 1/2 (/.f32 1 x)) (+.f32 (*.f32 1/16 (/.f32 1 (pow.f32 x 5))) (+.f32 (*.f32 1/8 (/.f32 1 (pow.f32 x 3))) (*.f32 -1 x))))
(sqrt.f32 -1)
(+.f32 (sqrt.f32 -1) x)
(+.f32 (sqrt.f32 -1) (+.f32 (*.f32 1/2 (/.f32 (pow.f32 x 2) (sqrt.f32 -1))) x))
(+.f32 (*.f32 -1/8 (/.f32 (pow.f32 x 4) (pow.f32 (sqrt.f32 -1) 3))) (+.f32 (sqrt.f32 -1) (+.f32 (*.f32 1/2 (/.f32 (pow.f32 x 2) (sqrt.f32 -1))) x)))
(*.f32 2 x)
(-.f32 (*.f32 2 x) (*.f32 1/2 (/.f32 1 x)))
(-.f32 (*.f32 2 x) (+.f32 (*.f32 1/2 (/.f32 1 x)) (*.f32 1/8 (/.f32 1 (pow.f32 x 3)))))
(-.f32 (*.f32 2 x) (+.f32 (*.f32 1/2 (/.f32 1 x)) (+.f32 (*.f32 1/16 (/.f32 1 (pow.f32 x 5))) (*.f32 1/8 (/.f32 1 (pow.f32 x 3))))))
(/.f32 1/2 x)
(+.f32 (*.f32 1/8 (/.f32 1 (pow.f32 x 3))) (*.f32 1/2 (/.f32 1 x)))
(+.f32 (*.f32 1/16 (/.f32 1 (pow.f32 x 5))) (+.f32 (*.f32 1/8 (/.f32 1 (pow.f32 x 3))) (*.f32 1/2 (/.f32 1 x))))
(+.f32 (*.f32 1/16 (/.f32 1 (pow.f32 x 5))) (+.f32 (*.f32 1/8 (/.f32 1 (pow.f32 x 3))) (+.f32 (*.f32 1/2 (/.f32 1 x)) (*.f32 5/128 (/.f32 1 (pow.f32 x 7))))))
-1
(-.f32 (pow.f32 x 2) 1)
(-.f32 (pow.f32 x 2) 1)
(-.f32 (pow.f32 x 2) 1)
(pow.f32 x 2)
(-.f32 (pow.f32 x 2) 1)
(-.f32 (pow.f32 x 2) 1)
(-.f32 (pow.f32 x 2) 1)
(pow.f32 x 2)
(-.f32 (pow.f32 x 2) 1)
(-.f32 (pow.f32 x 2) 1)
(-.f32 (pow.f32 x 2) 1)
(log.f32 (sqrt.f32 -1))
(+.f32 (/.f32 x (sqrt.f32 -1)) (log.f32 (sqrt.f32 -1)))
(+.f32 (*.f32 -1/6 (/.f32 (pow.f32 x 3) (pow.f32 (sqrt.f32 -1) 3))) (+.f32 (/.f32 x (sqrt.f32 -1)) (log.f32 (sqrt.f32 -1))))
(+.f32 (*.f32 3/40 (/.f32 (pow.f32 x 5) (pow.f32 (sqrt.f32 -1) 5))) (+.f32 (*.f32 -1/6 (/.f32 (pow.f32 x 3) (pow.f32 (sqrt.f32 -1) 3))) (+.f32 (/.f32 x (sqrt.f32 -1)) (log.f32 (sqrt.f32 -1)))))
(+.f32 (log.f32 2) (*.f32 -1 (log.f32 (/.f32 1 x))))
(-.f32 (+.f32 (*.f32 -1 (log.f32 (/.f32 1 x))) (log.f32 2)) (*.f32 1/4 (/.f32 1 (pow.f32 x 2))))
(-.f32 (+.f32 (*.f32 -1 (log.f32 (/.f32 1 x))) (log.f32 2)) (+.f32 (*.f32 3/32 (/.f32 1 (pow.f32 x 4))) (*.f32 1/4 (/.f32 1 (pow.f32 x 2)))))
(-.f32 (+.f32 (*.f32 -1 (log.f32 (/.f32 1 x))) (log.f32 2)) (+.f32 (*.f32 3/32 (/.f32 1 (pow.f32 x 4))) (+.f32 (*.f32 5/96 (/.f32 1 (pow.f32 x 6))) (*.f32 1/4 (/.f32 1 (pow.f32 x 2))))))
(+.f32 (log.f32 -1/2) (log.f32 (/.f32 -1 x)))
(+.f32 (log.f32 (/.f32 -1 x)) (+.f32 (log.f32 -1/2) (*.f32 1/4 (/.f32 1 (pow.f32 x 2)))))
(+.f32 (log.f32 (/.f32 -1 x)) (+.f32 (log.f32 -1/2) (+.f32 (*.f32 3/32 (/.f32 1 (pow.f32 x 4))) (*.f32 1/4 (/.f32 1 (pow.f32 x 2))))))
(+.f32 (log.f32 (/.f32 -1 x)) (+.f32 (log.f32 -1/2) (+.f32 (*.f32 3/32 (/.f32 1 (pow.f32 x 4))) (+.f32 (*.f32 5/96 (/.f32 1 (pow.f32 x 6))) (*.f32 1/4 (/.f32 1 (pow.f32 x 2)))))))
(+.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 0)
(+.f32 0 (sqrt.f32 (+.f32 (*.f32 x x) -1)))
(-.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 0)
(*.f32 1 (sqrt.f32 (+.f32 (*.f32 x x) -1)))
(*.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 1)
(*.f32 2 (/.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 2))
(*.f32 2 (*.f32 (/.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 2) 1))
(*.f32 (*.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 2) 1/2)
(*.f32 1/2 (*.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 2))
(*.f32 (/.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 2) 2)
(/.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 1)
(/.f32 (*.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 2) 2)
(/.f32 (*.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 4) 4)
(/.f32 (*.f32 2 (*.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 4)) 8)
(/.f32 (+.f32 (*.f32 2 (*.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 4)) (*.f32 2 (*.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 4))) 16)
(pow.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 1)
(-.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 0)
(*.f32 1 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))))
(*.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 1)
(*.f32 2 (/.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 2))
(*.f32 2 (*.f32 (/.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 2) 1))
(*.f32 (*.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 2) 1/2)
(*.f32 1/2 (*.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 2))
(*.f32 (/.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 2) 2)
(/.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 1)
(/.f32 (*.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 2) 2)
(/.f32 (*.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 4) 4)
(/.f32 (*.f32 2 (*.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 4)) 8)
(/.f32 (+.f32 (*.f32 2 (*.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 4)) (*.f32 2 (*.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 4))) 16)
(pow.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 1)
(+.f32 (*.f32 x x) -1)
(+.f32 (+.f32 (*.f32 x x) -1) 0)
(+.f32 0 (+.f32 (*.f32 x x) -1))
(+.f32 -1 (*.f32 x x))
(+.f32 -2 (-.f32 1 (*.f32 x (neg.f32 x))))
(*.f32 1 (+.f32 (*.f32 x x) -1))
(*.f32 (+.f32 (*.f32 x x) -1) 1)
(*.f32 2 (/.f32 (+.f32 (*.f32 x x) -1) 2))
(*.f32 2 (*.f32 (/.f32 (+.f32 (*.f32 x x) -1) 2) 1))
(*.f32 (*.f32 (+.f32 (*.f32 x x) -1) 2) 1/2)
(*.f32 1/2 (*.f32 (+.f32 (*.f32 x x) -1) 2))
(*.f32 (/.f32 (+.f32 (*.f32 x x) -1) 2) 2)
(/.f32 (+.f32 (*.f32 x x) -1) 1)
(/.f32 (*.f32 (+.f32 (*.f32 x x) -1) 2) 2)
(/.f32 (*.f32 (+.f32 (*.f32 x x) -1) 4) 4)
(/.f32 (*.f32 2 (*.f32 (+.f32 (*.f32 x x) -1) 4)) 8)
(/.f32 (+.f32 (*.f32 2 (*.f32 (+.f32 (*.f32 x x) -1) 4)) (*.f32 2 (*.f32 (+.f32 (*.f32 x x) -1) 4))) 16)
(pow.f32 (+.f32 (*.f32 x x) -1) 1)
(+.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 0)
(+.f32 0 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))))
(-.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 0)
(*.f32 1 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))))
(*.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 1)
(*.f32 2 (/.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 2))
(*.f32 2 (*.f32 (/.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 2) 1))
(*.f32 (*.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 2) 1/2)
(*.f32 1/2 (*.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 2))
(*.f32 (/.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 2) 2)
(/.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 1)
(/.f32 (*.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 2) 2)
(/.f32 (*.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 4) 4)
(/.f32 (*.f32 2 (*.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 4)) 8)
(/.f32 (+.f32 (*.f32 2 (*.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 4)) (*.f32 2 (*.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 4))) 16)
(pow.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 1)
Outputs
(sqrt.f32 -1)
(+.f32 (sqrt.f32 -1) (*.f32 1/2 (/.f32 (pow.f32 x 2) (sqrt.f32 -1))))
(+.f32 (*.f32 -1/8 (/.f32 (pow.f32 x 4) (pow.f32 (sqrt.f32 -1) 3))) (+.f32 (sqrt.f32 -1) (*.f32 1/2 (/.f32 (pow.f32 x 2) (sqrt.f32 -1)))))
(+.f32 (+.f32 (sqrt.f32 -1) (*.f32 1/2 (/.f32 (pow.f32 x 2) (sqrt.f32 -1)))) (*.f32 -1/8 (/.f32 (pow.f32 x 4) (sqrt.f32 -1))))
(+.f32 (*.f32 1/2 (/.f32 (pow.f32 x 2) (sqrt.f32 -1))) (+.f32 (sqrt.f32 -1) (*.f32 -1/8 (/.f32 (pow.f32 x 4) (sqrt.f32 -1)))))
(+.f32 (sqrt.f32 -1) (+.f32 (*.f32 1/2 (/.f32 (pow.f32 x 2) (sqrt.f32 -1))) (*.f32 -1/8 (/.f32 (pow.f32 x 4) (sqrt.f32 -1)))))
(+.f32 (*.f32 -1/8 (/.f32 (pow.f32 x 4) (pow.f32 (sqrt.f32 -1) 3))) (+.f32 (sqrt.f32 -1) (+.f32 (*.f32 1/2 (/.f32 (pow.f32 x 2) (sqrt.f32 -1))) (*.f32 1/16 (/.f32 (pow.f32 x 6) (pow.f32 (sqrt.f32 -1) 5))))))
(+.f32 (*.f32 -1/8 (/.f32 (pow.f32 x 4) (sqrt.f32 -1))) (+.f32 (sqrt.f32 -1) (+.f32 (*.f32 1/2 (/.f32 (pow.f32 x 2) (sqrt.f32 -1))) (*.f32 1/16 (/.f32 (pow.f32 x 6) (sqrt.f32 -1))))))
(+.f32 (*.f32 1/2 (/.f32 (pow.f32 x 2) (sqrt.f32 -1))) (+.f32 (+.f32 (sqrt.f32 -1) (*.f32 1/16 (/.f32 (pow.f32 x 6) (sqrt.f32 -1)))) (*.f32 -1/8 (/.f32 (pow.f32 x 4) (sqrt.f32 -1)))))
(+.f32 (*.f32 1/2 (/.f32 (pow.f32 x 2) (sqrt.f32 -1))) (+.f32 (*.f32 -1/8 (/.f32 (pow.f32 x 4) (sqrt.f32 -1))) (+.f32 (sqrt.f32 -1) (*.f32 1/16 (/.f32 (pow.f32 x 6) (sqrt.f32 -1))))))
(+.f32 (*.f32 1/2 (/.f32 (pow.f32 x 2) (sqrt.f32 -1))) (+.f32 (sqrt.f32 -1) (+.f32 (*.f32 -1/8 (/.f32 (pow.f32 x 4) (sqrt.f32 -1))) (*.f32 1/16 (/.f32 (pow.f32 x 6) (sqrt.f32 -1))))))
x
(-.f32 x (*.f32 1/2 (/.f32 1 x)))
(-.f32 x (+.f32 (*.f32 1/2 (/.f32 1 x)) (*.f32 1/8 (/.f32 1 (pow.f32 x 3)))))
(-.f32 x (+.f32 (*.f32 1/2 (/.f32 1 x)) (+.f32 (*.f32 1/16 (/.f32 1 (pow.f32 x 5))) (*.f32 1/8 (/.f32 1 (pow.f32 x 3))))))
(-.f32 x (+.f32 (*.f32 1/2 (/.f32 1 x)) (+.f32 (*.f32 1/8 (/.f32 1 (pow.f32 x 3))) (*.f32 1/16 (/.f32 1 (pow.f32 x 5))))))
(*.f32 -1 x)
(neg.f32 x)
(+.f32 (*.f32 -1 x) (*.f32 1/2 (/.f32 1 x)))
(+.f32 (*.f32 1/2 (/.f32 1 x)) (neg.f32 x))
(+.f32 (*.f32 1/2 (/.f32 1 x)) (+.f32 (*.f32 1/8 (/.f32 1 (pow.f32 x 3))) (*.f32 -1 x)))
(+.f32 (*.f32 1/2 (/.f32 1 x)) (+.f32 (*.f32 1/8 (/.f32 1 (pow.f32 x 3))) (neg.f32 x)))
(+.f32 (*.f32 1/2 (/.f32 1 x)) (+.f32 (*.f32 1/16 (/.f32 1 (pow.f32 x 5))) (+.f32 (*.f32 1/8 (/.f32 1 (pow.f32 x 3))) (*.f32 -1 x))))
(+.f32 (*.f32 1/2 (/.f32 1 x)) (+.f32 (*.f32 1/8 (/.f32 1 (pow.f32 x 3))) (+.f32 (neg.f32 x) (*.f32 1/16 (/.f32 1 (pow.f32 x 5))))))
(+.f32 (*.f32 1/2 (/.f32 1 x)) (+.f32 (*.f32 1/8 (/.f32 1 (pow.f32 x 3))) (+.f32 (*.f32 1/16 (/.f32 1 (pow.f32 x 5))) (neg.f32 x))))
(+.f32 (*.f32 1/2 (/.f32 1 x)) (+.f32 (*.f32 1/16 (/.f32 1 (pow.f32 x 5))) (+.f32 (*.f32 1/8 (/.f32 1 (pow.f32 x 3))) (neg.f32 x))))
(sqrt.f32 -1)
(+.f32 (sqrt.f32 -1) x)
(+.f32 (sqrt.f32 -1) (+.f32 (*.f32 1/2 (/.f32 (pow.f32 x 2) (sqrt.f32 -1))) x))
(+.f32 (sqrt.f32 -1) (+.f32 x (*.f32 1/2 (/.f32 (pow.f32 x 2) (sqrt.f32 -1)))))
(+.f32 (*.f32 1/2 (/.f32 (pow.f32 x 2) (sqrt.f32 -1))) (+.f32 (sqrt.f32 -1) x))
(+.f32 (*.f32 -1/8 (/.f32 (pow.f32 x 4) (pow.f32 (sqrt.f32 -1) 3))) (+.f32 (sqrt.f32 -1) (+.f32 (*.f32 1/2 (/.f32 (pow.f32 x 2) (sqrt.f32 -1))) x)))
(+.f32 (sqrt.f32 -1) (+.f32 (+.f32 x (*.f32 1/2 (/.f32 (pow.f32 x 2) (sqrt.f32 -1)))) (*.f32 -1/8 (/.f32 (pow.f32 x 4) (sqrt.f32 -1)))))
(+.f32 (sqrt.f32 -1) (+.f32 (*.f32 -1/8 (/.f32 (pow.f32 x 4) (sqrt.f32 -1))) (+.f32 x (*.f32 1/2 (/.f32 (pow.f32 x 2) (sqrt.f32 -1))))))
(+.f32 (sqrt.f32 -1) (+.f32 (*.f32 1/2 (/.f32 (pow.f32 x 2) (sqrt.f32 -1))) (+.f32 x (*.f32 -1/8 (/.f32 (pow.f32 x 4) (sqrt.f32 -1))))))
(*.f32 2 x)
(*.f32 x 2)
(+.f32 x x)
(-.f32 (*.f32 2 x) (*.f32 1/2 (/.f32 1 x)))
(-.f32 (*.f32 x 2) (*.f32 1/2 (/.f32 1 x)))
(-.f32 (+.f32 x x) (*.f32 1/2 (/.f32 1 x)))
(-.f32 (*.f32 2 x) (+.f32 (*.f32 1/2 (/.f32 1 x)) (*.f32 1/8 (/.f32 1 (pow.f32 x 3)))))
(-.f32 (*.f32 x 2) (+.f32 (*.f32 1/2 (/.f32 1 x)) (*.f32 1/8 (/.f32 1 (pow.f32 x 3)))))
(-.f32 (+.f32 x x) (+.f32 (*.f32 1/2 (/.f32 1 x)) (*.f32 1/8 (/.f32 1 (pow.f32 x 3)))))
(-.f32 (*.f32 2 x) (+.f32 (*.f32 1/2 (/.f32 1 x)) (+.f32 (*.f32 1/16 (/.f32 1 (pow.f32 x 5))) (*.f32 1/8 (/.f32 1 (pow.f32 x 3))))))
(-.f32 (*.f32 x 2) (+.f32 (*.f32 1/2 (/.f32 1 x)) (+.f32 (*.f32 1/8 (/.f32 1 (pow.f32 x 3))) (*.f32 1/16 (/.f32 1 (pow.f32 x 5))))))
(-.f32 (+.f32 x x) (+.f32 (*.f32 1/2 (/.f32 1 x)) (+.f32 (*.f32 1/8 (/.f32 1 (pow.f32 x 3))) (*.f32 1/16 (/.f32 1 (pow.f32 x 5))))))
(/.f32 1/2 x)
(+.f32 (*.f32 1/8 (/.f32 1 (pow.f32 x 3))) (*.f32 1/2 (/.f32 1 x)))
(+.f32 (*.f32 1/2 (/.f32 1 x)) (*.f32 1/8 (/.f32 1 (pow.f32 x 3))))
(+.f32 (*.f32 1/16 (/.f32 1 (pow.f32 x 5))) (+.f32 (*.f32 1/8 (/.f32 1 (pow.f32 x 3))) (*.f32 1/2 (/.f32 1 x))))
(+.f32 (*.f32 1/2 (/.f32 1 x)) (+.f32 (*.f32 1/8 (/.f32 1 (pow.f32 x 3))) (*.f32 1/16 (/.f32 1 (pow.f32 x 5)))))
(+.f32 (*.f32 1/16 (/.f32 1 (pow.f32 x 5))) (+.f32 (*.f32 1/8 (/.f32 1 (pow.f32 x 3))) (+.f32 (*.f32 1/2 (/.f32 1 x)) (*.f32 5/128 (/.f32 1 (pow.f32 x 7))))))
(+.f32 (*.f32 1/8 (/.f32 1 (pow.f32 x 3))) (+.f32 (+.f32 (*.f32 1/2 (/.f32 1 x)) (*.f32 5/128 (/.f32 1 (pow.f32 x 7)))) (*.f32 1/16 (/.f32 1 (pow.f32 x 5)))))
(+.f32 (*.f32 1/8 (/.f32 1 (pow.f32 x 3))) (+.f32 (*.f32 1/16 (/.f32 1 (pow.f32 x 5))) (+.f32 (*.f32 1/2 (/.f32 1 x)) (*.f32 5/128 (/.f32 1 (pow.f32 x 7))))))
(+.f32 (*.f32 1/2 (/.f32 1 x)) (+.f32 (*.f32 1/16 (/.f32 1 (pow.f32 x 5))) (+.f32 (*.f32 1/8 (/.f32 1 (pow.f32 x 3))) (*.f32 5/128 (/.f32 1 (pow.f32 x 7))))))
-1
(-.f32 (pow.f32 x 2) 1)
(+.f32 (pow.f32 x 2) -1)
(+.f32 -1 (pow.f32 x 2))
(-.f32 (pow.f32 x 2) 1)
(+.f32 (pow.f32 x 2) -1)
(+.f32 -1 (pow.f32 x 2))
(-.f32 (pow.f32 x 2) 1)
(+.f32 (pow.f32 x 2) -1)
(+.f32 -1 (pow.f32 x 2))
(pow.f32 x 2)
(-.f32 (pow.f32 x 2) 1)
(+.f32 (pow.f32 x 2) -1)
(+.f32 -1 (pow.f32 x 2))
(-.f32 (pow.f32 x 2) 1)
(+.f32 (pow.f32 x 2) -1)
(+.f32 -1 (pow.f32 x 2))
(-.f32 (pow.f32 x 2) 1)
(+.f32 (pow.f32 x 2) -1)
(+.f32 -1 (pow.f32 x 2))
(pow.f32 x 2)
(-.f32 (pow.f32 x 2) 1)
(+.f32 (pow.f32 x 2) -1)
(+.f32 -1 (pow.f32 x 2))
(-.f32 (pow.f32 x 2) 1)
(+.f32 (pow.f32 x 2) -1)
(+.f32 -1 (pow.f32 x 2))
(-.f32 (pow.f32 x 2) 1)
(+.f32 (pow.f32 x 2) -1)
(+.f32 -1 (pow.f32 x 2))
(log.f32 (sqrt.f32 -1))
(+.f32 (/.f32 x (sqrt.f32 -1)) (log.f32 (sqrt.f32 -1)))
(+.f32 (log.f32 (sqrt.f32 -1)) (/.f32 x (sqrt.f32 -1)))
(+.f32 (*.f32 -1/6 (/.f32 (pow.f32 x 3) (pow.f32 (sqrt.f32 -1) 3))) (+.f32 (/.f32 x (sqrt.f32 -1)) (log.f32 (sqrt.f32 -1))))
(+.f32 (+.f32 (log.f32 (sqrt.f32 -1)) (/.f32 x (sqrt.f32 -1))) (*.f32 -1/6 (/.f32 (pow.f32 x 3) (sqrt.f32 -1))))
(+.f32 (log.f32 (sqrt.f32 -1)) (+.f32 (*.f32 -1/6 (/.f32 (pow.f32 x 3) (sqrt.f32 -1))) (/.f32 x (sqrt.f32 -1))))
(+.f32 (log.f32 (sqrt.f32 -1)) (+.f32 (/.f32 x (sqrt.f32 -1)) (*.f32 -1/6 (/.f32 (pow.f32 x 3) (sqrt.f32 -1)))))
(+.f32 (*.f32 3/40 (/.f32 (pow.f32 x 5) (pow.f32 (sqrt.f32 -1) 5))) (+.f32 (*.f32 -1/6 (/.f32 (pow.f32 x 3) (pow.f32 (sqrt.f32 -1) 3))) (+.f32 (/.f32 x (sqrt.f32 -1)) (log.f32 (sqrt.f32 -1)))))
(+.f32 (*.f32 -1/6 (/.f32 (pow.f32 x 3) (sqrt.f32 -1))) (+.f32 (+.f32 (log.f32 (sqrt.f32 -1)) (/.f32 x (sqrt.f32 -1))) (*.f32 3/40 (/.f32 (pow.f32 x 5) (sqrt.f32 -1)))))
(+.f32 (log.f32 (sqrt.f32 -1)) (+.f32 (+.f32 (/.f32 x (sqrt.f32 -1)) (*.f32 -1/6 (/.f32 (pow.f32 x 3) (sqrt.f32 -1)))) (*.f32 3/40 (/.f32 (pow.f32 x 5) (sqrt.f32 -1)))))
(+.f32 (log.f32 2) (*.f32 -1 (log.f32 (/.f32 1 x))))
(+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x))))
(-.f32 (+.f32 (*.f32 -1 (log.f32 (/.f32 1 x))) (log.f32 2)) (*.f32 1/4 (/.f32 1 (pow.f32 x 2))))
(-.f32 (+.f32 (log.f32 2) (*.f32 -1 (log.f32 (/.f32 1 x)))) (*.f32 1/4 (/.f32 1 (pow.f32 x 2))))
(-.f32 (+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x)))) (*.f32 1/4 (/.f32 1 (pow.f32 x 2))))
(-.f32 (+.f32 (*.f32 -1 (log.f32 (/.f32 1 x))) (log.f32 2)) (+.f32 (*.f32 3/32 (/.f32 1 (pow.f32 x 4))) (*.f32 1/4 (/.f32 1 (pow.f32 x 2)))))
(-.f32 (+.f32 (log.f32 2) (*.f32 -1 (log.f32 (/.f32 1 x)))) (+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (*.f32 3/32 (/.f32 1 (pow.f32 x 4)))))
(+.f32 (neg.f32 (log.f32 (/.f32 1 x))) (-.f32 (log.f32 2) (+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (*.f32 3/32 (/.f32 1 (pow.f32 x 4))))))
(+.f32 (log.f32 2) (-.f32 (neg.f32 (log.f32 (/.f32 1 x))) (+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (*.f32 3/32 (/.f32 1 (pow.f32 x 4))))))
(-.f32 (+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x)))) (+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (*.f32 3/32 (/.f32 1 (pow.f32 x 4)))))
(-.f32 (+.f32 (*.f32 -1 (log.f32 (/.f32 1 x))) (log.f32 2)) (+.f32 (*.f32 3/32 (/.f32 1 (pow.f32 x 4))) (+.f32 (*.f32 5/96 (/.f32 1 (pow.f32 x 6))) (*.f32 1/4 (/.f32 1 (pow.f32 x 2))))))
(-.f32 (+.f32 (log.f32 2) (*.f32 -1 (log.f32 (/.f32 1 x)))) (+.f32 (*.f32 3/32 (/.f32 1 (pow.f32 x 4))) (+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (*.f32 5/96 (/.f32 1 (pow.f32 x 6))))))
(-.f32 (+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x)))) (+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (+.f32 (*.f32 5/96 (/.f32 1 (pow.f32 x 6))) (*.f32 3/32 (/.f32 1 (pow.f32 x 4))))))
(+.f32 (log.f32 2) (-.f32 (neg.f32 (log.f32 (/.f32 1 x))) (+.f32 (*.f32 3/32 (/.f32 1 (pow.f32 x 4))) (+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (*.f32 5/96 (/.f32 1 (pow.f32 x 6)))))))
(-.f32 (+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x)))) (+.f32 (*.f32 3/32 (/.f32 1 (pow.f32 x 4))) (+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (*.f32 5/96 (/.f32 1 (pow.f32 x 6))))))
(+.f32 (log.f32 2) (-.f32 (neg.f32 (log.f32 (/.f32 1 x))) (+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (+.f32 (*.f32 3/32 (/.f32 1 (pow.f32 x 4))) (*.f32 5/96 (/.f32 1 (pow.f32 x 6)))))))
(+.f32 (log.f32 -1/2) (log.f32 (/.f32 -1 x)))
(+.f32 (log.f32 (/.f32 -1 x)) (+.f32 (log.f32 -1/2) (*.f32 1/4 (/.f32 1 (pow.f32 x 2)))))
(+.f32 (log.f32 -1/2) (+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (log.f32 (/.f32 -1 x))))
(+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (+.f32 (log.f32 -1/2) (log.f32 (/.f32 -1 x))))
(+.f32 (log.f32 (/.f32 -1 x)) (+.f32 (log.f32 -1/2) (+.f32 (*.f32 3/32 (/.f32 1 (pow.f32 x 4))) (*.f32 1/4 (/.f32 1 (pow.f32 x 2))))))
(+.f32 (log.f32 -1/2) (+.f32 (+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (*.f32 3/32 (/.f32 1 (pow.f32 x 4)))) (log.f32 (/.f32 -1 x))))
(+.f32 (*.f32 3/32 (/.f32 1 (pow.f32 x 4))) (+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (+.f32 (log.f32 -1/2) (log.f32 (/.f32 -1 x)))))
(+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (+.f32 (+.f32 (log.f32 -1/2) (log.f32 (/.f32 -1 x))) (*.f32 3/32 (/.f32 1 (pow.f32 x 4)))))
(+.f32 (+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (*.f32 3/32 (/.f32 1 (pow.f32 x 4)))) (+.f32 (log.f32 -1/2) (log.f32 (/.f32 -1 x))))
(+.f32 (log.f32 (/.f32 -1 x)) (+.f32 (log.f32 -1/2) (+.f32 (*.f32 3/32 (/.f32 1 (pow.f32 x 4))) (+.f32 (*.f32 5/96 (/.f32 1 (pow.f32 x 6))) (*.f32 1/4 (/.f32 1 (pow.f32 x 2)))))))
(+.f32 (log.f32 (/.f32 -1 x)) (+.f32 (+.f32 (*.f32 3/32 (/.f32 1 (pow.f32 x 4))) (+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (*.f32 5/96 (/.f32 1 (pow.f32 x 6))))) (log.f32 -1/2)))
(+.f32 (+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (+.f32 (*.f32 5/96 (/.f32 1 (pow.f32 x 6))) (*.f32 3/32 (/.f32 1 (pow.f32 x 4))))) (+.f32 (log.f32 -1/2) (log.f32 (/.f32 -1 x))))
(+.f32 (*.f32 3/32 (/.f32 1 (pow.f32 x 4))) (+.f32 (log.f32 (/.f32 -1 x)) (+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (+.f32 (*.f32 5/96 (/.f32 1 (pow.f32 x 6))) (log.f32 -1/2)))))
(+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (+.f32 (+.f32 (*.f32 3/32 (/.f32 1 (pow.f32 x 4))) (+.f32 (log.f32 -1/2) (log.f32 (/.f32 -1 x)))) (*.f32 5/96 (/.f32 1 (pow.f32 x 6)))))
(+.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 0)
(sqrt.f32 (+.f32 -1 (*.f32 x x)))
(+.f32 0 (sqrt.f32 (+.f32 (*.f32 x x) -1)))
(sqrt.f32 (+.f32 -1 (*.f32 x x)))
(-.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 0)
(sqrt.f32 (+.f32 -1 (*.f32 x x)))
(*.f32 1 (sqrt.f32 (+.f32 (*.f32 x x) -1)))
(sqrt.f32 (+.f32 -1 (*.f32 x x)))
(*.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 1)
(sqrt.f32 (+.f32 -1 (*.f32 x x)))
(*.f32 2 (/.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 2))
(sqrt.f32 (+.f32 -1 (*.f32 x x)))
(*.f32 2 (*.f32 (/.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 2) 1))
(sqrt.f32 (+.f32 -1 (*.f32 x x)))
(*.f32 (*.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 2) 1/2)
(sqrt.f32 (+.f32 -1 (*.f32 x x)))
(*.f32 1/2 (*.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 2))
(sqrt.f32 (+.f32 -1 (*.f32 x x)))
(*.f32 (/.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 2) 2)
(sqrt.f32 (+.f32 -1 (*.f32 x x)))
(/.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 1)
(sqrt.f32 (+.f32 -1 (*.f32 x x)))
(/.f32 (*.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 2) 2)
(sqrt.f32 (+.f32 -1 (*.f32 x x)))
(/.f32 (*.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 4) 4)
(sqrt.f32 (+.f32 -1 (*.f32 x x)))
(/.f32 (*.f32 2 (*.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 4)) 8)
(sqrt.f32 (+.f32 -1 (*.f32 x x)))
(/.f32 (+.f32 (*.f32 2 (*.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 4)) (*.f32 2 (*.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 4))) 16)
(sqrt.f32 (+.f32 -1 (*.f32 x x)))
(pow.f32 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 1)
(sqrt.f32 (+.f32 -1 (*.f32 x x)))
(-.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 0)
(+.f32 x (sqrt.f32 (+.f32 -1 (*.f32 x x))))
(*.f32 1 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))))
(+.f32 x (sqrt.f32 (+.f32 -1 (*.f32 x x))))
(*.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 1)
(+.f32 x (sqrt.f32 (+.f32 -1 (*.f32 x x))))
(*.f32 2 (/.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 2))
(+.f32 x (sqrt.f32 (+.f32 -1 (*.f32 x x))))
(*.f32 2 (*.f32 (/.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 2) 1))
(+.f32 x (sqrt.f32 (+.f32 -1 (*.f32 x x))))
(*.f32 (*.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 2) 1/2)
(+.f32 x (sqrt.f32 (+.f32 -1 (*.f32 x x))))
(*.f32 1/2 (*.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 2))
(+.f32 x (sqrt.f32 (+.f32 -1 (*.f32 x x))))
(*.f32 (/.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 2) 2)
(+.f32 x (sqrt.f32 (+.f32 -1 (*.f32 x x))))
(/.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 1)
(+.f32 x (sqrt.f32 (+.f32 -1 (*.f32 x x))))
(/.f32 (*.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 2) 2)
(+.f32 x (sqrt.f32 (+.f32 -1 (*.f32 x x))))
(/.f32 (*.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 4) 4)
(+.f32 x (sqrt.f32 (+.f32 -1 (*.f32 x x))))
(/.f32 (*.f32 2 (*.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 4)) 8)
(+.f32 x (sqrt.f32 (+.f32 -1 (*.f32 x x))))
(/.f32 (+.f32 (*.f32 2 (*.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 4)) (*.f32 2 (*.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 4))) 16)
(+.f32 x (sqrt.f32 (+.f32 -1 (*.f32 x x))))
(pow.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 1)
(+.f32 x (sqrt.f32 (+.f32 -1 (*.f32 x x))))
(+.f32 (*.f32 x x) -1)
(+.f32 -1 (*.f32 x x))
(+.f32 (+.f32 (*.f32 x x) -1) 0)
(+.f32 -1 (*.f32 x x))
(+.f32 0 (+.f32 (*.f32 x x) -1))
(+.f32 -1 (*.f32 x x))
(+.f32 -1 (*.f32 x x))
(+.f32 -2 (-.f32 1 (*.f32 x (neg.f32 x))))
(+.f32 -2 (-.f32 (*.f32 x x) -1))
(*.f32 1 (+.f32 (*.f32 x x) -1))
(+.f32 -1 (*.f32 x x))
(*.f32 (+.f32 (*.f32 x x) -1) 1)
(+.f32 -1 (*.f32 x x))
(*.f32 2 (/.f32 (+.f32 (*.f32 x x) -1) 2))
(+.f32 -1 (*.f32 x x))
(*.f32 2 (*.f32 (/.f32 (+.f32 (*.f32 x x) -1) 2) 1))
(+.f32 -1 (*.f32 x x))
(*.f32 (*.f32 (+.f32 (*.f32 x x) -1) 2) 1/2)
(+.f32 -1 (*.f32 x x))
(*.f32 1/2 (*.f32 (+.f32 (*.f32 x x) -1) 2))
(+.f32 -1 (*.f32 x x))
(*.f32 (/.f32 (+.f32 (*.f32 x x) -1) 2) 2)
(+.f32 -1 (*.f32 x x))
(/.f32 (+.f32 (*.f32 x x) -1) 1)
(+.f32 -1 (*.f32 x x))
(/.f32 (*.f32 (+.f32 (*.f32 x x) -1) 2) 2)
(+.f32 -1 (*.f32 x x))
(/.f32 (*.f32 (+.f32 (*.f32 x x) -1) 4) 4)
(+.f32 -1 (*.f32 x x))
(/.f32 (*.f32 2 (*.f32 (+.f32 (*.f32 x x) -1) 4)) 8)
(+.f32 -1 (*.f32 x x))
(/.f32 (+.f32 (*.f32 2 (*.f32 (+.f32 (*.f32 x x) -1) 4)) (*.f32 2 (*.f32 (+.f32 (*.f32 x x) -1) 4))) 16)
(+.f32 -1 (*.f32 x x))
(pow.f32 (+.f32 (*.f32 x x) -1) 1)
(+.f32 -1 (*.f32 x x))
(+.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 0)
(log.f32 (+.f32 x (sqrt.f32 (+.f32 -1 (*.f32 x x)))))
(+.f32 0 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))))
(log.f32 (+.f32 x (sqrt.f32 (+.f32 -1 (*.f32 x x)))))
(-.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 0)
(log.f32 (+.f32 x (sqrt.f32 (+.f32 -1 (*.f32 x x)))))
(*.f32 1 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))))
(log.f32 (+.f32 x (sqrt.f32 (+.f32 -1 (*.f32 x x)))))
(*.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 1)
(log.f32 (+.f32 x (sqrt.f32 (+.f32 -1 (*.f32 x x)))))
(*.f32 2 (/.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 2))
(log.f32 (+.f32 x (sqrt.f32 (+.f32 -1 (*.f32 x x)))))
(*.f32 2 (*.f32 (/.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 2) 1))
(log.f32 (+.f32 x (sqrt.f32 (+.f32 -1 (*.f32 x x)))))
(*.f32 (*.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 2) 1/2)
(log.f32 (+.f32 x (sqrt.f32 (+.f32 -1 (*.f32 x x)))))
(*.f32 1/2 (*.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 2))
(log.f32 (+.f32 x (sqrt.f32 (+.f32 -1 (*.f32 x x)))))
(*.f32 (/.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 2) 2)
(log.f32 (+.f32 x (sqrt.f32 (+.f32 -1 (*.f32 x x)))))
(/.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 1)
(log.f32 (+.f32 x (sqrt.f32 (+.f32 -1 (*.f32 x x)))))
(/.f32 (*.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 2) 2)
(log.f32 (+.f32 x (sqrt.f32 (+.f32 -1 (*.f32 x x)))))
(/.f32 (*.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 4) 4)
(log.f32 (+.f32 x (sqrt.f32 (+.f32 -1 (*.f32 x x)))))
(/.f32 (*.f32 2 (*.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 4)) 8)
(log.f32 (+.f32 x (sqrt.f32 (+.f32 -1 (*.f32 x x)))))
(/.f32 (+.f32 (*.f32 2 (*.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 4)) (*.f32 2 (*.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 4))) 16)
(log.f32 (+.f32 x (sqrt.f32 (+.f32 -1 (*.f32 x x)))))
(pow.f32 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 1)
(log.f32 (+.f32 x (sqrt.f32 (+.f32 -1 (*.f32 x x)))))

eval56.0ms (1.1%)

Compiler

Compiled 2853 to 2269 computations (20.5% saved)

prune106.0ms (2.2%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New1662168
Fresh000
Picked011
Done000
Total1663169
Error
0.0b
Counts
169 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.4b
(log.f32 (-.f32 (+.f32 x x) (*.f32 1/2 (/.f32 1 x))))
16.6b
(log.f32 (+.f32 x (sqrt.f32 (-.f32 (*.f32 x x) 1))))
0.8b
(log.f32 (+.f32 x x))
Compiler

Compiled 26 to 18 computations (30.8% saved)

localize11.0ms (0.2%)

Compiler

Compiled 9 to 3 computations (66.7% saved)

localize551.0ms (11.3%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(/.f32 1 x)
Compiler

Compiled 34 to 21 computations (38.2% saved)

series1.0ms (0%)

Counts
1 → 0
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@-inf
(/.f32 1 x)
0.0ms
x
@0
(/.f32 1 x)
0.0ms
x
@inf
(/.f32 1 x)

rewrite737.0ms (15.1%)

Algorithm
batch-egg-rewrite
Rules
1570×rational.json-simplify-35
1234×rational.json-simplify-2
1148×rational.json-1
1148×rational.json-2
1148×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057
1457
21207
32357
44777
512627
640887
Stop Event
node limit
Counts
1 → 51
Calls
Call 1
Inputs
(/.f32 1 x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f32 (/.f32 1 x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (/.f32 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 -1 (-.f32 1 (/.f32 -1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (/.f32 1/2 x) (/.f32 1/2 x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (/.f32 1 x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 0 (/.f32 -1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (/.f32 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 x (/.f32 1 (*.f32 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 x (*.f32 1/2 (/.f32 2 (*.f32 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 x (*.f32 1/4 (*.f32 2 (/.f32 2 (*.f32 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 1 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 2 (/.f32 1/2 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (+.f32 x x) (/.f32 (/.f32 1/2 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (+.f32 x x) (*.f32 1/2 (/.f32 1 (*.f32 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (+.f32 x x) (*.f32 1/4 (/.f32 2 (*.f32 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 4 (/.f32 1/4 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 4 (*.f32 1/2 (/.f32 1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 4 (*.f32 (/.f32 1 x) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 4 (*.f32 (/.f32 1 (*.f32 x x)) (*.f32 x 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 2 x) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 x 4) (*.f32 1/4 (/.f32 1 (*.f32 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 x 4) (*.f32 (/.f32 2 (*.f32 x x)) 1/8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 x 4) (*.f32 1/2 (/.f32 (/.f32 1/2 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 -1 (*.f32 (neg.f32 x) (/.f32 1 (*.f32 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (neg.f32 x) (*.f32 -1 (/.f32 1 (*.f32 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 x 8) (*.f32 (/.f32 1 (*.f32 x x)) 1/8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 4 x) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1/2 (/.f32 2 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 x 1/2) (/.f32 2 (*.f32 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1/4 (/.f32 4 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 1 (*.f32 x x)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 2 (*.f32 x x)) (*.f32 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 1/2 x) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 1/4 x) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 -1 x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 (/.f32 1/2 x) x) (+.f32 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 1/2 (/.f32 2 (*.f32 x x))) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 1/2 (/.f32 1 (*.f32 x x))) (+.f32 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 1/4 (/.f32 1 (*.f32 x x))) (*.f32 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 1/4 (/.f32 2 (*.f32 x x))) (+.f32 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (/.f32 2 (*.f32 x x)) 1/8) (*.f32 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 1/2 (/.f32 1/2 x)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 1/2 (/.f32 (/.f32 1/2 x) x)) (*.f32 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 1/4 (*.f32 2 (/.f32 2 (*.f32 x x)))) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (/.f32 1 x) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (/.f32 1 (*.f32 x x)) (*.f32 x 1/4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (neg.f32 x) (/.f32 1 (*.f32 x x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 -1 (/.f32 1 (*.f32 x x))) (neg.f32 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (/.f32 1 (*.f32 x x)) 1/8) (*.f32 x 8))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (/.f32 1 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f32 (/.f32 -1 x))))))

simplify148.0ms (3%)

Algorithm
egg-herbie
Rules
1200×rational.json-simplify-53
806×rational.json-simplify-19
756×rational.json-simplify-2
652×rational.json-simplify-51
564×rational.json-simplify-41
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
095417
1173417
2359417
3923417
43049417
56271417
Stop Event
node limit
Counts
51 → 52
Calls
Call 1
Inputs
(+.f32 (/.f32 1 x) 0)
(+.f32 0 (/.f32 1 x))
(+.f32 -1 (-.f32 1 (/.f32 -1 x)))
(+.f32 (/.f32 1/2 x) (/.f32 1/2 x))
(-.f32 (/.f32 1 x) 0)
(-.f32 0 (/.f32 -1 x))
(*.f32 1 (/.f32 1 x))
(*.f32 x (/.f32 1 (*.f32 x x)))
(*.f32 x (*.f32 1/2 (/.f32 2 (*.f32 x x))))
(*.f32 x (*.f32 1/4 (*.f32 2 (/.f32 2 (*.f32 x x)))))
(*.f32 (/.f32 1 x) 1)
(*.f32 2 (/.f32 1/2 x))
(*.f32 (+.f32 x x) (/.f32 (/.f32 1/2 x) x))
(*.f32 (+.f32 x x) (*.f32 1/2 (/.f32 1 (*.f32 x x))))
(*.f32 (+.f32 x x) (*.f32 1/4 (/.f32 2 (*.f32 x x))))
(*.f32 4 (/.f32 1/4 x))
(*.f32 4 (*.f32 1/2 (/.f32 1/2 x)))
(*.f32 4 (*.f32 (/.f32 1 x) 1/4))
(*.f32 4 (*.f32 (/.f32 1 (*.f32 x x)) (*.f32 x 1/4)))
(*.f32 (/.f32 2 x) 1/2)
(*.f32 (*.f32 x 4) (*.f32 1/4 (/.f32 1 (*.f32 x x))))
(*.f32 (*.f32 x 4) (*.f32 (/.f32 2 (*.f32 x x)) 1/8))
(*.f32 (*.f32 x 4) (*.f32 1/2 (/.f32 (/.f32 1/2 x) x)))
(*.f32 -1 (*.f32 (neg.f32 x) (/.f32 1 (*.f32 x x))))
(*.f32 (neg.f32 x) (*.f32 -1 (/.f32 1 (*.f32 x x))))
(*.f32 (*.f32 x 8) (*.f32 (/.f32 1 (*.f32 x x)) 1/8))
(*.f32 (/.f32 4 x) 1/4)
(*.f32 1/2 (/.f32 2 x))
(*.f32 (*.f32 x 1/2) (/.f32 2 (*.f32 x x)))
(*.f32 1/4 (/.f32 4 x))
(*.f32 (/.f32 1 (*.f32 x x)) x)
(*.f32 (/.f32 2 (*.f32 x x)) (*.f32 x 1/2))
(*.f32 (/.f32 1/2 x) 2)
(*.f32 (/.f32 1/4 x) 4)
(*.f32 (/.f32 -1 x) -1)
(*.f32 (/.f32 (/.f32 1/2 x) x) (+.f32 x x))
(*.f32 (*.f32 1/2 (/.f32 2 (*.f32 x x))) x)
(*.f32 (*.f32 1/2 (/.f32 1 (*.f32 x x))) (+.f32 x x))
(*.f32 (*.f32 1/4 (/.f32 1 (*.f32 x x))) (*.f32 x 4))
(*.f32 (*.f32 1/4 (/.f32 2 (*.f32 x x))) (+.f32 x x))
(*.f32 (*.f32 (/.f32 2 (*.f32 x x)) 1/8) (*.f32 x 4))
(*.f32 (*.f32 1/2 (/.f32 1/2 x)) 4)
(*.f32 (*.f32 1/2 (/.f32 (/.f32 1/2 x) x)) (*.f32 x 4))
(*.f32 (*.f32 1/4 (*.f32 2 (/.f32 2 (*.f32 x x)))) x)
(*.f32 (*.f32 (/.f32 1 x) 1/4) 4)
(*.f32 (*.f32 (/.f32 1 (*.f32 x x)) (*.f32 x 1/4)) 4)
(*.f32 (*.f32 (neg.f32 x) (/.f32 1 (*.f32 x x))) -1)
(*.f32 (*.f32 -1 (/.f32 1 (*.f32 x x))) (neg.f32 x))
(*.f32 (*.f32 (/.f32 1 (*.f32 x x)) 1/8) (*.f32 x 8))
(pow.f32 (/.f32 1 x) 1)
(neg.f32 (/.f32 -1 x))
Outputs
(+.f32 (/.f32 1 x) 0)
(/.f32 1 x)
(+.f32 0 (/.f32 1 x))
(/.f32 1 x)
(+.f32 -1 (-.f32 1 (/.f32 -1 x)))
(/.f32 1 x)
(+.f32 (/.f32 1/2 x) (/.f32 1/2 x))
(/.f32 1 x)
(-.f32 (/.f32 1 x) 0)
(/.f32 1 x)
(-.f32 0 (/.f32 -1 x))
(/.f32 1 x)
(*.f32 1 (/.f32 1 x))
(/.f32 1 x)
(*.f32 x (/.f32 1 (*.f32 x x)))
(/.f32 1 x)
(*.f32 x (*.f32 1/2 (/.f32 2 (*.f32 x x))))
(/.f32 1 x)
(*.f32 x (*.f32 1/4 (*.f32 2 (/.f32 2 (*.f32 x x)))))
(/.f32 1 x)
(*.f32 (/.f32 1 x) 1)
(/.f32 1 x)
(*.f32 2 (/.f32 1/2 x))
(*.f32 (/.f32 1/2 x) 2)
(*.f32 (+.f32 x x) (/.f32 (/.f32 1/2 x) x))
(/.f32 1 x)
(*.f32 (+.f32 x x) (*.f32 1/2 (/.f32 1 (*.f32 x x))))
(/.f32 1 x)
(*.f32 (+.f32 x x) (*.f32 1/4 (/.f32 2 (*.f32 x x))))
(/.f32 1 x)
(*.f32 4 (/.f32 1/4 x))
(*.f32 4 (*.f32 1/2 (/.f32 1/2 x)))
(*.f32 (/.f32 1/2 x) 2)
(*.f32 4 (*.f32 (/.f32 1 x) 1/4))
(/.f32 1 x)
(*.f32 4 (*.f32 (/.f32 1 (*.f32 x x)) (*.f32 x 1/4)))
(/.f32 1 x)
(*.f32 (/.f32 2 x) 1/2)
(*.f32 1/2 (/.f32 2 x))
(*.f32 (*.f32 x 4) (*.f32 1/4 (/.f32 1 (*.f32 x x))))
(/.f32 1 x)
(*.f32 (*.f32 x 4) (*.f32 (/.f32 2 (*.f32 x x)) 1/8))
(/.f32 1 x)
(*.f32 (*.f32 x 4) (*.f32 1/2 (/.f32 (/.f32 1/2 x) x)))
(/.f32 1 x)
(*.f32 -1 (*.f32 (neg.f32 x) (/.f32 1 (*.f32 x x))))
(/.f32 1 x)
(*.f32 (neg.f32 x) (*.f32 -1 (/.f32 1 (*.f32 x x))))
(/.f32 1 x)
(*.f32 (*.f32 x 8) (*.f32 (/.f32 1 (*.f32 x x)) 1/8))
(/.f32 1 x)
(*.f32 (/.f32 4 x) 1/4)
(*.f32 1/4 (/.f32 4 x))
(*.f32 1/2 (/.f32 2 x))
(*.f32 (*.f32 x 1/2) (/.f32 2 (*.f32 x x)))
(/.f32 1 x)
(*.f32 1/4 (/.f32 4 x))
(*.f32 (/.f32 1 (*.f32 x x)) x)
(/.f32 1 x)
(*.f32 (/.f32 2 (*.f32 x x)) (*.f32 x 1/2))
(/.f32 1 x)
(*.f32 (/.f32 1/2 x) 2)
(*.f32 (/.f32 1/4 x) 4)
(*.f32 4 (/.f32 1/4 x))
(*.f32 (/.f32 -1 x) -1)
(/.f32 1 x)
(*.f32 (/.f32 (/.f32 1/2 x) x) (+.f32 x x))
(/.f32 1 x)
(*.f32 (*.f32 1/2 (/.f32 2 (*.f32 x x))) x)
(/.f32 1 x)
(*.f32 (*.f32 1/2 (/.f32 1 (*.f32 x x))) (+.f32 x x))
(/.f32 1 x)
(*.f32 (*.f32 1/4 (/.f32 1 (*.f32 x x))) (*.f32 x 4))
(/.f32 1 x)
(*.f32 (*.f32 1/4 (/.f32 2 (*.f32 x x))) (+.f32 x x))
(/.f32 1 x)
(*.f32 (*.f32 (/.f32 2 (*.f32 x x)) 1/8) (*.f32 x 4))
(/.f32 1 x)
(*.f32 (*.f32 1/2 (/.f32 1/2 x)) 4)
(*.f32 (/.f32 1/2 x) 2)
(*.f32 (*.f32 1/2 (/.f32 (/.f32 1/2 x) x)) (*.f32 x 4))
(/.f32 1 x)
(*.f32 (*.f32 1/4 (*.f32 2 (/.f32 2 (*.f32 x x)))) x)
(/.f32 1 x)
(*.f32 (*.f32 (/.f32 1 x) 1/4) 4)
(/.f32 1 x)
(*.f32 (*.f32 (/.f32 1 (*.f32 x x)) (*.f32 x 1/4)) 4)
(/.f32 1 x)
(*.f32 (*.f32 (neg.f32 x) (/.f32 1 (*.f32 x x))) -1)
(/.f32 1 x)
(*.f32 (*.f32 -1 (/.f32 1 (*.f32 x x))) (neg.f32 x))
(/.f32 1 x)
(*.f32 (*.f32 (/.f32 1 (*.f32 x x)) 1/8) (*.f32 x 8))
(/.f32 1 x)
(pow.f32 (/.f32 1 x) 1)
(/.f32 1 x)
(neg.f32 (/.f32 -1 x))
(/.f32 1 x)

eval12.0ms (0.2%)

Compiler

Compiled 778 to 476 computations (38.8% saved)

prune85.0ms (1.7%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New52052
Fresh000
Picked011
Done022
Total52355
Error
0.0b
Counts
55 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.4b
(log.f32 (-.f32 (+.f32 x x) (*.f32 1/2 (/.f32 1 x))))
16.6b
(log.f32 (+.f32 x (sqrt.f32 (-.f32 (*.f32 x x) 1))))
0.8b
(log.f32 (+.f32 x x))
Compiler

Compiled 26 to 18 computations (30.8% saved)

regimes10.0ms (0.2%)

Accuracy

Total -17.1b remaining (-4672.1%)

Threshold costs -17.1b (-4672.1%)

Counts
3 → 1
Calls
Call 1
Inputs
(log.f32 (+.f32 x x))
(log.f32 (-.f32 (+.f32 x x) (*.f32 1/2 (/.f32 1 x))))
(log.f32 (+.f32 x (sqrt.f32 (-.f32 (*.f32 x x) 1))))
Outputs
(log.f32 (-.f32 (+.f32 x x) (*.f32 1/2 (/.f32 1 x))))
Calls

3 calls:

3.0ms
x
3.0ms
(log.f32 (+.f32 x (sqrt.f32 (-.f32 (*.f32 x x) 1))))
3.0ms
(+.f32 x (sqrt.f32 (-.f32 (*.f32 x x) 1)))
Results
ErrorSegmentsBranch
0.4b1x
0.4b1(log.f32 (+.f32 x (sqrt.f32 (-.f32 (*.f32 x x) 1))))
0.4b1(+.f32 x (sqrt.f32 (-.f32 (*.f32 x x) 1)))
Compiler

Compiled 45 to 29 computations (35.6% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01240
Stop Event
done
saturated
Calls
Call 1
Inputs
(log.f32 (-.f32 (+.f32 x x) (*.f32 1/2 (/.f32 1 x))))
(log.f32 (+.f32 x x))
Outputs
(log.f32 (-.f32 (+.f32 x x) (*.f32 1/2 (/.f32 1 x))))
(log.f32 (+.f32 x x))
Compiler

Compiled 16 to 11 computations (31.3% saved)

soundness189.0ms (3.9%)

Algorithm
egg-herbie
Rules
1032×rational.json-simplify-2
858×rational.json-simplify-35
846×rational.json-simplify-41
748×rational.json-simplify-59
692×rational.json-simplify-51
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
02132980
14352972
28252972
319582972
440982972
562872968
Stop Event
node limit
Compiler

Compiled 59 to 47 computations (20.3% saved)

end55.0ms (1.1%)

Compiler

Compiled 15 to 9 computations (40% saved)

Profiling

Loading profile data...