Details

Time bar (total: 6.2s)

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)

sample1.7s (27.3%)

Results
1.7s8256×body256valid
Bogosity

preprocess13.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)

simplify9.0ms (0.2%)

Algorithm
egg-herbie
Rules
rational_best-simplify-1
rational_best-simplify-22
rational_best-simplify-19
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01027
11427
21527
Stop Event
saturated
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))))

eval2.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
17.1b
Counts
3 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
17.1b
(log.f32 (+.f32 x (sqrt.f32 (-.f32 (*.f32 x x) 1))))
Compiler

Compiled 10 to 7 computations (30% saved)

localize30.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(-.f32 (*.f32 x x) 1)
0.0b
(+.f32 x (sqrt.f32 (-.f32 (*.f32 x x) 1)))
0.1b
(log.f32 (+.f32 x (sqrt.f32 (-.f32 (*.f32 x x) 1))))
14.8b
(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
@0
(log.f32 (+.f32 x (sqrt.f32 (-.f32 (*.f32 x x) 1))))
1.0ms
x
@-inf
(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))

rewrite23.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
32×rational_best-simplify-2
28×rational_best-4
28×rational_best-2
28×rational_best-3
28×rational_best-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01080
16580
29880
310680
411180
512480
613680
715080
816780
Stop Event
saturated
Counts
4 → 27
Calls
Call 1
Inputs
(sqrt.f32 (-.f32 (*.f32 x x) 1))
(log.f32 (+.f32 x (sqrt.f32 (-.f32 (*.f32 x x) 1))))
(+.f32 x (sqrt.f32 (-.f32 (*.f32 x x) 1)))
(-.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 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 1)))) (#(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 (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 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (log.f32 (+.f32 x (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 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 1)))) (#(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 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 (+.f32 (*.f32 x x) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (+.f32 (*.f32 x x) -1) 1)))))

simplify385.0ms (6.2%)

Algorithm
egg-herbie
Rules
1116×exponential-simplify-31
546×rational_best-simplify-1
488×rational_best-simplify-43
46×rational_best-simplify-2
26×rational_best-simplify-3
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01462245
12352229
23442229
34982229
48622229
59712229
610422229
710542229
810542229
930102229
1031362229
1131512229
1231512229
1331512229
1431512229
1531512229
1631512229
Stop Event
node limit
Counts
75 → 124
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))))
(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)))))))
(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)
(+.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 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 1)
(pow.f32 (sqrt.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 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 1)
(pow.f32 (log.f32 (+.f32 x (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 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 1)
(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 1 (+.f32 (*.f32 x x) -1))
(*.f32 (+.f32 (*.f32 x x) -1) 1)
(/.f32 (+.f32 (*.f32 x x) -1) 1)
(pow.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 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 (*.f32 1/2 (/.f32 (pow.f32 x 2) (sqrt.f32 -1))) (*.f32 1/16 (/.f32 (pow.f32 x 6) (sqrt.f32 -1)))) (+.f32 (sqrt.f32 -1) (*.f32 -1/8 (/.f32 (pow.f32 x 4) (sqrt.f32 -1)))))
(+.f32 (+.f32 (sqrt.f32 -1) (*.f32 1/2 (/.f32 (pow.f32 x 2) (sqrt.f32 -1)))) (+.f32 (*.f32 1/16 (/.f32 (pow.f32 x 6) (sqrt.f32 -1))) (*.f32 -1/8 (/.f32 (pow.f32 x 4) (sqrt.f32 -1)))))
(+.f32 (+.f32 (sqrt.f32 -1) (*.f32 1/2 (/.f32 (pow.f32 x 2) (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)))))
(+.f32 (sqrt.f32 -1) (+.f32 (*.f32 1/16 (/.f32 (pow.f32 x 6) (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))))))
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)) (*.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))))
(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 (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 (log.f32 (sqrt.f32 -1)) (/.f32 x (sqrt.f32 -1))) (+.f32 (*.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 (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 (sqrt.f32 -1)) (+.f32 (/.f32 x (sqrt.f32 -1)) (+.f32 (*.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 (+.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 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 (+.f32 (log.f32 2) (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 (*.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 (+.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 (*.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 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 (+.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 (log.f32 (/.f32 -1 x)) (+.f32 (+.f32 (*.f32 3/32 (/.f32 1 (pow.f32 x 4))) (*.f32 5/96 (/.f32 1 (pow.f32 x 6)))) (+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (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 5/96 (/.f32 1 (pow.f32 x 6)))) (+.f32 (log.f32 -1/2) (log.f32 (/.f32 -1 x)))))
(+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (+.f32 (log.f32 (/.f32 -1 x)) (+.f32 (*.f32 3/32 (/.f32 1 (pow.f32 x 4))) (+.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 (+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (*.f32 3/32 (/.f32 1 (pow.f32 x 4)))) (+.f32 (*.f32 5/96 (/.f32 1 (pow.f32 x 6))) (+.f32 (log.f32 -1/2) (log.f32 (/.f32 -1 x)))))
(+.f32 (+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (log.f32 -1/2)) (+.f32 (log.f32 (/.f32 -1 x)) (+.f32 (*.f32 3/32 (/.f32 1 (pow.f32 x 4))) (*.f32 5/96 (/.f32 1 (pow.f32 x 6))))))
(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 (*.f32 -1/8 (/.f32 (pow.f32 x 4) (sqrt.f32 -1))) (+.f32 (sqrt.f32 -1) (+.f32 x (*.f32 1/2 (/.f32 (pow.f32 x 2) (sqrt.f32 -1))))))
(+.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 x (+.f32 (*.f32 1/2 (/.f32 (pow.f32 x 2) (sqrt.f32 -1))) (*.f32 -1/8 (/.f32 (pow.f32 x 4) (sqrt.f32 -1))))))
(+.f32 x (+.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 2 x)
(*.f32 x 2)
(-.f32 (*.f32 2 x) (*.f32 1/2 (/.f32 1 x)))
(-.f32 (*.f32 x 2) (*.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 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 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 (*.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 1/16 (/.f32 1 (pow.f32 x 5)))))
(+.f32 (+.f32 (*.f32 1/2 (/.f32 1 x)) (*.f32 1/8 (/.f32 1 (pow.f32 x 3)))) (+.f32 (*.f32 5/128 (/.f32 1 (pow.f32 x 7))) (*.f32 1/16 (/.f32 1 (pow.f32 x 5)))))
(+.f32 (+.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 5/128 (/.f32 1 (pow.f32 x 7)))))
(+.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))) (*.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))
(+.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 (sqrt.f32 (+.f32 (*.f32 x x) -1)) 1)
(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 (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 (log.f32 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1)))) 1)
(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)))))
(-.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 (+.f32 x (sqrt.f32 (+.f32 (*.f32 x x) -1))) 1)
(+.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 1 (+.f32 (*.f32 x x) -1))
(+.f32 -1 (*.f32 x x))
(*.f32 (+.f32 (*.f32 x x) -1) 1)
(+.f32 -1 (*.f32 x x))
(/.f32 (+.f32 (*.f32 x x) -1) 1)
(+.f32 -1 (*.f32 x x))
(pow.f32 (+.f32 (*.f32 x x) -1) 1)
(+.f32 -1 (*.f32 x x))

eval74.0ms (1.2%)

Compiler

Compiled 2200 to 1803 computations (18% saved)

prune22.0ms (0.4%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New1195124
Fresh000
Picked011
Done000
Total1196125
Error
0.0b
Counts
125 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
0.9b
(+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x))))
31.0b
(log.f32 (/.f32 1/2 x))
0.5b
(log.f32 (-.f32 (*.f32 x 2) (*.f32 1/2 (/.f32 1 x))))
0.5b
(log.f32 (+.f32 x (-.f32 x (*.f32 1/2 (/.f32 1 x)))))
17.1b
(log.f32 (+.f32 x (sqrt.f32 (-.f32 (*.f32 x x) 1))))
0.8b
(log.f32 (+.f32 x x))
Compiler

Compiled 92 to 71 computations (22.8% saved)

localize58.0ms (0.9%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(/.f32 1 x)
0.1b
(log.f32 (-.f32 (*.f32 x 2) (*.f32 1/2 (/.f32 1 x))))
Compiler

Compiled 35 to 27 computations (22.9% saved)

series2.0ms (0%)

Counts
2 → 12
Calls

6 calls:

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

rewrite83.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
1322×rational_best-4
1322×rational_best-2
1322×rational_best-3
1322×rational_best-1
1322×exponential-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01236
17536
210636
314936
424636
544536
683836
7168336
8344636
9561336
Stop Event
node limit
Counts
2 → 39
Calls
Call 1
Inputs
(log.f32 (-.f32 (*.f32 x 2) (*.f32 1/2 (/.f32 1 x))))
(/.f32 1 x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f32 (/.f32 1 x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 1/2 (/.f32 1 x)) (*.f32 1/2 (/.f32 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (/.f32 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (/.f32 -1 x) (*.f32 2 (/.f32 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 (*.f32 2 (/.f32 1 x)) (/.f32 -1 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 2 (*.f32 1/2 (/.f32 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1/2 (*.f32 2 (/.f32 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1/2 (+.f32 (*.f32 (/.f32 1 x) 4) (*.f32 (/.f32 1 x) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (/.f32 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 1 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 1/2 (/.f32 1 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 -1 (/.f32 -1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 -1 (+.f32 (/.f32 1 x) (*.f32 (/.f32 1 x) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 1/2 (/.f32 -1 x)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 4 (*.f32 (/.f32 1 x) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 -1/2 (*.f32 (/.f32 1 x) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 -1/2 (+.f32 (*.f32 2 (/.f32 1 x)) (*.f32 2 (*.f32 (/.f32 1 x) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 -1 x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 -2 (*.f32 1/2 (/.f32 -1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 2 (/.f32 1 x)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1/4 (*.f32 (/.f32 1 x) 4))))) (#(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 x) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (*.f32 (/.f32 1 x) -2) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (+.f32 (/.f32 1 x) (*.f32 (/.f32 1 x) -2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (+.f32 (*.f32 (/.f32 1 x) 4) (*.f32 (/.f32 1 x) -2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (+.f32 (*.f32 2 (/.f32 1 x)) (*.f32 2 (*.f32 (/.f32 1 x) -2))) -1/2)))) (#(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))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f32 (+.f32 (/.f32 1 x) (*.f32 (/.f32 1 x) -2)))))))

simplify410.0ms (6.6%)

Algorithm
egg-herbie
Rules
2028×rational_best-simplify-1
1660×rational_best-simplify-43
1312×rational_best-simplify-2
1294×rational_best-simplify-49
992×rational_best-simplify-47
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01161123
11711099
23061099
37531099
414081099
518131099
624521099
729151099
831821099
934951099
1049221099
1152491099
1257881099
1361751099
1468691099
1576151099
Stop Event
node limit
Counts
51 → 83
Calls
Call 1
Inputs
(+.f32 (log.f32 -1/2) (*.f32 -1 (log.f32 x)))
(+.f32 (log.f32 -1/2) (+.f32 (*.f32 -4 (pow.f32 x 2)) (*.f32 -1 (log.f32 x))))
(+.f32 (log.f32 -1/2) (+.f32 (*.f32 -4 (pow.f32 x 2)) (+.f32 (*.f32 -8 (pow.f32 x 4)) (*.f32 -1 (log.f32 x)))))
(+.f32 (log.f32 -1/2) (+.f32 (*.f32 -4 (pow.f32 x 2)) (+.f32 (*.f32 -8 (pow.f32 x 4)) (+.f32 (*.f32 -64/3 (pow.f32 x 6)) (*.f32 -1 (log.f32 x))))))
(+.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 1/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 1/32 (/.f32 1 (pow.f32 x 4))) (+.f32 (*.f32 1/192 (/.f32 1 (pow.f32 x 6))) (*.f32 1/4 (/.f32 1 (pow.f32 x 2))))))
(+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (log.f32 -2))
(-.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 1/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 1/32 (/.f32 1 (pow.f32 x 4))) (+.f32 (*.f32 1/192 (/.f32 1 (pow.f32 x 6))) (*.f32 1/4 (/.f32 1 (pow.f32 x 2))))))
(+.f32 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))) 0)
(+.f32 0 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))))
(-.f32 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))) 0)
(*.f32 1 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))))
(*.f32 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))) 1)
(/.f32 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))) 1)
(pow.f32 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))) 1)
(+.f32 (/.f32 1 x) 0)
(+.f32 (*.f32 1/2 (/.f32 1 x)) (*.f32 1/2 (/.f32 1 x)))
(+.f32 0 (/.f32 1 x))
(+.f32 (/.f32 -1 x) (*.f32 2 (/.f32 1 x)))
(+.f32 (*.f32 2 (/.f32 1 x)) (/.f32 -1 x))
(-.f32 (/.f32 1 x) 0)
(-.f32 0 (/.f32 -1 x))
(*.f32 2 (*.f32 1/2 (/.f32 1 x)))
(*.f32 1/2 (*.f32 2 (/.f32 1 x)))
(*.f32 1/2 (+.f32 (*.f32 (/.f32 1 x) 4) (*.f32 (/.f32 1 x) -2)))
(*.f32 1 (/.f32 1 x))
(*.f32 (/.f32 1 x) 1)
(*.f32 (*.f32 1/2 (/.f32 1 x)) 2)
(*.f32 -1 (/.f32 -1 x))
(*.f32 -1 (+.f32 (/.f32 1 x) (*.f32 (/.f32 1 x) -2)))
(*.f32 (*.f32 1/2 (/.f32 -1 x)) -2)
(*.f32 4 (*.f32 (/.f32 1 x) 1/4))
(*.f32 -1/2 (*.f32 (/.f32 1 x) -2))
(*.f32 -1/2 (+.f32 (*.f32 2 (/.f32 1 x)) (*.f32 2 (*.f32 (/.f32 1 x) -2))))
(*.f32 (/.f32 -1 x) -1)
(*.f32 -2 (*.f32 1/2 (/.f32 -1 x)))
(*.f32 (*.f32 2 (/.f32 1 x)) 1/2)
(*.f32 1/4 (*.f32 (/.f32 1 x) 4))
(*.f32 (*.f32 (/.f32 1 x) 1/4) 4)
(*.f32 (*.f32 (/.f32 1 x) 4) 1/4)
(*.f32 (*.f32 (/.f32 1 x) -2) -1/2)
(*.f32 (+.f32 (/.f32 1 x) (*.f32 (/.f32 1 x) -2)) -1)
(*.f32 (+.f32 (*.f32 (/.f32 1 x) 4) (*.f32 (/.f32 1 x) -2)) 1/2)
(*.f32 (+.f32 (*.f32 2 (/.f32 1 x)) (*.f32 2 (*.f32 (/.f32 1 x) -2))) -1/2)
(pow.f32 (/.f32 1 x) 1)
(neg.f32 (/.f32 -1 x))
(neg.f32 (+.f32 (/.f32 1 x) (*.f32 (/.f32 1 x) -2)))
Outputs
(+.f32 (log.f32 -1/2) (*.f32 -1 (log.f32 x)))
(+.f32 (log.f32 -1/2) (neg.f32 (log.f32 x)))
(+.f32 (log.f32 -1/2) (+.f32 (*.f32 -4 (pow.f32 x 2)) (*.f32 -1 (log.f32 x))))
(+.f32 (log.f32 -1/2) (+.f32 (*.f32 -1 (log.f32 x)) (*.f32 -4 (pow.f32 x 2))))
(+.f32 (log.f32 -1/2) (+.f32 (neg.f32 (log.f32 x)) (*.f32 -4 (pow.f32 x 2))))
(+.f32 (log.f32 -1/2) (+.f32 (*.f32 -4 (pow.f32 x 2)) (+.f32 (*.f32 -8 (pow.f32 x 4)) (*.f32 -1 (log.f32 x)))))
(+.f32 (+.f32 (*.f32 -1 (log.f32 x)) (*.f32 -8 (pow.f32 x 4))) (+.f32 (*.f32 -4 (pow.f32 x 2)) (log.f32 -1/2)))
(+.f32 (log.f32 -1/2) (+.f32 (*.f32 -8 (pow.f32 x 4)) (+.f32 (neg.f32 (log.f32 x)) (*.f32 -4 (pow.f32 x 2)))))
(+.f32 (log.f32 -1/2) (+.f32 (+.f32 (neg.f32 (log.f32 x)) (*.f32 -4 (pow.f32 x 2))) (*.f32 -8 (pow.f32 x 4))))
(+.f32 (log.f32 -1/2) (+.f32 (*.f32 -4 (pow.f32 x 2)) (+.f32 (neg.f32 (log.f32 x)) (*.f32 -8 (pow.f32 x 4)))))
(+.f32 (+.f32 (log.f32 -1/2) (neg.f32 (log.f32 x))) (+.f32 (*.f32 -4 (pow.f32 x 2)) (*.f32 -8 (pow.f32 x 4))))
(+.f32 (log.f32 -1/2) (+.f32 (neg.f32 (log.f32 x)) (+.f32 (*.f32 -4 (pow.f32 x 2)) (*.f32 -8 (pow.f32 x 4)))))
(+.f32 (log.f32 -1/2) (+.f32 (*.f32 -4 (pow.f32 x 2)) (+.f32 (*.f32 -8 (pow.f32 x 4)) (+.f32 (*.f32 -64/3 (pow.f32 x 6)) (*.f32 -1 (log.f32 x))))))
(+.f32 (+.f32 (*.f32 -1 (log.f32 x)) (+.f32 (*.f32 -64/3 (pow.f32 x 6)) (*.f32 -8 (pow.f32 x 4)))) (+.f32 (*.f32 -4 (pow.f32 x 2)) (log.f32 -1/2)))
(+.f32 (+.f32 (neg.f32 (log.f32 x)) (+.f32 (*.f32 -8 (pow.f32 x 4)) (*.f32 -64/3 (pow.f32 x 6)))) (+.f32 (log.f32 -1/2) (*.f32 -4 (pow.f32 x 2))))
(+.f32 (+.f32 (neg.f32 (log.f32 x)) (*.f32 -4 (pow.f32 x 2))) (+.f32 (+.f32 (*.f32 -8 (pow.f32 x 4)) (*.f32 -64/3 (pow.f32 x 6))) (log.f32 -1/2)))
(+.f32 (log.f32 -1/2) (+.f32 (neg.f32 (log.f32 x)) (+.f32 (*.f32 -4 (pow.f32 x 2)) (+.f32 (*.f32 -8 (pow.f32 x 4)) (*.f32 -64/3 (pow.f32 x 6))))))
(+.f32 (neg.f32 (log.f32 x)) (+.f32 (+.f32 (log.f32 -1/2) (*.f32 -64/3 (pow.f32 x 6))) (+.f32 (*.f32 -4 (pow.f32 x 2)) (*.f32 -8 (pow.f32 x 4)))))
(+.f32 (+.f32 (*.f32 -4 (pow.f32 x 2)) (*.f32 -8 (pow.f32 x 4))) (+.f32 (log.f32 -1/2) (+.f32 (neg.f32 (log.f32 x)) (*.f32 -64/3 (pow.f32 x 6)))))
(+.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 1/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 1/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 1/32 (/.f32 1 (pow.f32 x 4)))))
(-.f32 (+.f32 (*.f32 -1 (log.f32 (/.f32 1 x))) (log.f32 2)) (+.f32 (*.f32 1/32 (/.f32 1 (pow.f32 x 4))) (+.f32 (*.f32 1/192 (/.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 1/4 (/.f32 1 (pow.f32 x 2))) (+.f32 (*.f32 1/192 (/.f32 1 (pow.f32 x 6))) (*.f32 1/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 (*.f32 1/32 (/.f32 1 (pow.f32 x 4))) (*.f32 1/192 (/.f32 1 (pow.f32 x 6))))))
(+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (log.f32 -2))
(+.f32 (neg.f32 (log.f32 (/.f32 -1 x))) (log.f32 -2))
(-.f32 (+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (log.f32 -2)) (*.f32 1/4 (/.f32 1 (pow.f32 x 2))))
(-.f32 (+.f32 (neg.f32 (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 1/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 1/4 (/.f32 1 (pow.f32 x 2))) (*.f32 1/32 (/.f32 1 (pow.f32 x 4)))))
(-.f32 (+.f32 (neg.f32 (log.f32 (/.f32 -1 x))) (log.f32 -2)) (+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (*.f32 1/32 (/.f32 1 (pow.f32 x 4)))))
(-.f32 (+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (log.f32 -2)) (+.f32 (*.f32 1/32 (/.f32 1 (pow.f32 x 4))) (+.f32 (*.f32 1/192 (/.f32 1 (pow.f32 x 6))) (*.f32 1/4 (/.f32 1 (pow.f32 x 2))))))
(-.f32 (+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (log.f32 -2)) (+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (+.f32 (*.f32 1/192 (/.f32 1 (pow.f32 x 6))) (*.f32 1/32 (/.f32 1 (pow.f32 x 4))))))
(-.f32 (+.f32 (neg.f32 (log.f32 (/.f32 -1 x))) (log.f32 -2)) (+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (+.f32 (*.f32 1/32 (/.f32 1 (pow.f32 x 4))) (*.f32 1/192 (/.f32 1 (pow.f32 x 6))))))
(+.f32 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))) 0)
(log.f32 (+.f32 (+.f32 x x) (*.f32 (/.f32 -1 x) 1/2)))
(log.f32 (+.f32 x (+.f32 x (*.f32 (/.f32 -1 x) 1/2))))
(log.f32 (+.f32 x (+.f32 x (*.f32 -1/2 (/.f32 1 x)))))
(+.f32 0 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))))
(log.f32 (+.f32 (+.f32 x x) (*.f32 (/.f32 -1 x) 1/2)))
(log.f32 (+.f32 x (+.f32 x (*.f32 (/.f32 -1 x) 1/2))))
(log.f32 (+.f32 x (+.f32 x (*.f32 -1/2 (/.f32 1 x)))))
(-.f32 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))) 0)
(log.f32 (+.f32 (+.f32 x x) (*.f32 (/.f32 -1 x) 1/2)))
(log.f32 (+.f32 x (+.f32 x (*.f32 (/.f32 -1 x) 1/2))))
(log.f32 (+.f32 x (+.f32 x (*.f32 -1/2 (/.f32 1 x)))))
(*.f32 1 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))))
(log.f32 (+.f32 (+.f32 x x) (*.f32 (/.f32 -1 x) 1/2)))
(log.f32 (+.f32 x (+.f32 x (*.f32 (/.f32 -1 x) 1/2))))
(log.f32 (+.f32 x (+.f32 x (*.f32 -1/2 (/.f32 1 x)))))
(*.f32 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))) 1)
(log.f32 (+.f32 (+.f32 x x) (*.f32 (/.f32 -1 x) 1/2)))
(log.f32 (+.f32 x (+.f32 x (*.f32 (/.f32 -1 x) 1/2))))
(log.f32 (+.f32 x (+.f32 x (*.f32 -1/2 (/.f32 1 x)))))
(/.f32 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))) 1)
(log.f32 (+.f32 (+.f32 x x) (*.f32 (/.f32 -1 x) 1/2)))
(log.f32 (+.f32 x (+.f32 x (*.f32 (/.f32 -1 x) 1/2))))
(log.f32 (+.f32 x (+.f32 x (*.f32 -1/2 (/.f32 1 x)))))
(pow.f32 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))) 1)
(log.f32 (+.f32 (+.f32 x x) (*.f32 (/.f32 -1 x) 1/2)))
(log.f32 (+.f32 x (+.f32 x (*.f32 (/.f32 -1 x) 1/2))))
(log.f32 (+.f32 x (+.f32 x (*.f32 -1/2 (/.f32 1 x)))))
(+.f32 (/.f32 1 x) 0)
(/.f32 1 x)
(+.f32 (*.f32 1/2 (/.f32 1 x)) (*.f32 1/2 (/.f32 1 x)))
(/.f32 1 x)
(+.f32 0 (/.f32 1 x))
(/.f32 1 x)
(+.f32 (/.f32 -1 x) (*.f32 2 (/.f32 1 x)))
(/.f32 1 x)
(+.f32 (*.f32 2 (/.f32 1 x)) (/.f32 -1 x))
(/.f32 1 x)
(-.f32 (/.f32 1 x) 0)
(/.f32 1 x)
(-.f32 0 (/.f32 -1 x))
(/.f32 1 x)
(*.f32 2 (*.f32 1/2 (/.f32 1 x)))
(/.f32 1 x)
(*.f32 1/2 (*.f32 2 (/.f32 1 x)))
(/.f32 1 x)
(*.f32 1/2 (+.f32 (*.f32 (/.f32 1 x) 4) (*.f32 (/.f32 1 x) -2)))
(/.f32 1 x)
(*.f32 1 (/.f32 1 x))
(/.f32 1 x)
(*.f32 (/.f32 1 x) 1)
(/.f32 1 x)
(*.f32 (*.f32 1/2 (/.f32 1 x)) 2)
(/.f32 1 x)
(*.f32 -1 (/.f32 -1 x))
(/.f32 1 x)
(*.f32 -1 (+.f32 (/.f32 1 x) (*.f32 (/.f32 1 x) -2)))
(/.f32 1 x)
(*.f32 (*.f32 1/2 (/.f32 -1 x)) -2)
(/.f32 1 x)
(*.f32 4 (*.f32 (/.f32 1 x) 1/4))
(/.f32 1 x)
(*.f32 -1/2 (*.f32 (/.f32 1 x) -2))
(/.f32 1 x)
(*.f32 -1/2 (+.f32 (*.f32 2 (/.f32 1 x)) (*.f32 2 (*.f32 (/.f32 1 x) -2))))
(/.f32 1 x)
(*.f32 (/.f32 -1 x) -1)
(/.f32 1 x)
(*.f32 -2 (*.f32 1/2 (/.f32 -1 x)))
(/.f32 1 x)
(*.f32 (*.f32 2 (/.f32 1 x)) 1/2)
(/.f32 1 x)
(*.f32 1/4 (*.f32 (/.f32 1 x) 4))
(/.f32 1 x)
(*.f32 (*.f32 (/.f32 1 x) 1/4) 4)
(/.f32 1 x)
(*.f32 (*.f32 (/.f32 1 x) 4) 1/4)
(/.f32 1 x)
(*.f32 (*.f32 (/.f32 1 x) -2) -1/2)
(/.f32 1 x)
(*.f32 (+.f32 (/.f32 1 x) (*.f32 (/.f32 1 x) -2)) -1)
(/.f32 1 x)
(*.f32 (+.f32 (*.f32 (/.f32 1 x) 4) (*.f32 (/.f32 1 x) -2)) 1/2)
(/.f32 1 x)
(*.f32 (+.f32 (*.f32 2 (/.f32 1 x)) (*.f32 2 (*.f32 (/.f32 1 x) -2))) -1/2)
(/.f32 1 x)
(pow.f32 (/.f32 1 x) 1)
(/.f32 1 x)
(neg.f32 (/.f32 -1 x))
(/.f32 1 x)
(neg.f32 (+.f32 (/.f32 1 x) (*.f32 (/.f32 1 x) -2)))
(/.f32 1 x)

localize11.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(log.f32 (+.f32 x x))
Compiler

Compiled 9 to 3 computations (66.7% saved)

series42.0ms (0.7%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
20.0ms
x
@0
(log.f32 (+.f32 x x))
16.0ms
x
@-inf
(log.f32 (+.f32 x x))
6.0ms
x
@inf
(log.f32 (+.f32 x x))

rewrite11.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
14×rational_best-simplify-2
12×rational_best-4
12×rational_best-2
12×rational_best-3
12×rational_best-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0611
13811
26011
36311
46911
57011
Stop Event
saturated
Counts
1 → 7
Calls
Call 1
Inputs
(log.f32 (+.f32 x x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (+.f32 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (log.f32 (+.f32 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (log.f32 (+.f32 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (log.f32 (+.f32 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (log.f32 (+.f32 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (log.f32 (+.f32 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (log.f32 (+.f32 x x)) 1)))))

simplify13.0ms (0.2%)

Algorithm
egg-herbie
Rules
rational_best-simplify-1
rational_best-simplify-2
rational_best-simplify-12
rational_best-simplify-10
rational_best-simplify-9
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
030353
135337
241337
345337
Stop Event
saturated
Counts
19 → 13
Calls
Call 1
Inputs
(+.f32 (log.f32 2) (log.f32 x))
(+.f32 (log.f32 2) (log.f32 x))
(+.f32 (log.f32 2) (log.f32 x))
(+.f32 (log.f32 2) (log.f32 x))
(+.f32 (log.f32 2) (*.f32 -1 (log.f32 (/.f32 1 x))))
(+.f32 (log.f32 2) (*.f32 -1 (log.f32 (/.f32 1 x))))
(+.f32 (log.f32 2) (*.f32 -1 (log.f32 (/.f32 1 x))))
(+.f32 (log.f32 2) (*.f32 -1 (log.f32 (/.f32 1 x))))
(+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (log.f32 -2))
(+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (log.f32 -2))
(+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (log.f32 -2))
(+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (log.f32 -2))
(+.f32 (log.f32 (+.f32 x x)) 0)
(+.f32 0 (log.f32 (+.f32 x x)))
(-.f32 (log.f32 (+.f32 x x)) 0)
(*.f32 (log.f32 (+.f32 x x)) 1)
(*.f32 1 (log.f32 (+.f32 x x)))
(/.f32 (log.f32 (+.f32 x x)) 1)
(pow.f32 (log.f32 (+.f32 x x)) 1)
Outputs
(+.f32 (log.f32 2) (log.f32 x))
(+.f32 (log.f32 2) (log.f32 x))
(+.f32 (log.f32 2) (log.f32 x))
(+.f32 (log.f32 2) (log.f32 x))
(+.f32 (log.f32 2) (*.f32 -1 (log.f32 (/.f32 1 x))))
(+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x))))
(+.f32 (log.f32 2) (*.f32 -1 (log.f32 (/.f32 1 x))))
(+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x))))
(+.f32 (log.f32 2) (*.f32 -1 (log.f32 (/.f32 1 x))))
(+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x))))
(+.f32 (log.f32 2) (*.f32 -1 (log.f32 (/.f32 1 x))))
(+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x))))
(+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (log.f32 -2))
(+.f32 (neg.f32 (log.f32 (/.f32 -1 x))) (log.f32 -2))
(+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (log.f32 -2))
(+.f32 (neg.f32 (log.f32 (/.f32 -1 x))) (log.f32 -2))
(+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (log.f32 -2))
(+.f32 (neg.f32 (log.f32 (/.f32 -1 x))) (log.f32 -2))
(+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (log.f32 -2))
(+.f32 (neg.f32 (log.f32 (/.f32 -1 x))) (log.f32 -2))
(+.f32 (log.f32 (+.f32 x x)) 0)
(log.f32 (+.f32 x x))
(+.f32 0 (log.f32 (+.f32 x x)))
(log.f32 (+.f32 x x))
(-.f32 (log.f32 (+.f32 x x)) 0)
(log.f32 (+.f32 x x))
(*.f32 (log.f32 (+.f32 x x)) 1)
(log.f32 (+.f32 x x))
(*.f32 1 (log.f32 (+.f32 x x)))
(log.f32 (+.f32 x x))
(/.f32 (log.f32 (+.f32 x x)) 1)
(log.f32 (+.f32 x x))
(pow.f32 (log.f32 (+.f32 x x)) 1)
(log.f32 (+.f32 x x))

localize54.0ms (0.9%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(log.f32 (/.f32 1/2 x))
Compiler

Compiled 10 to 7 computations (30% saved)

series97.0ms (1.6%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
63.0ms
x
@inf
(log.f32 (/.f32 1/2 x))
24.0ms
x
@-inf
(log.f32 (/.f32 1/2 x))
10.0ms
x
@0
(log.f32 (/.f32 1/2 x))

rewrite11.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
12×rational_best-4
12×rational_best-2
12×rational_best-3
12×rational_best-simplify-2
12×rational_best-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
14411
26611
Stop Event
saturated
Counts
1 → 7
Calls
Call 1
Inputs
(log.f32 (/.f32 1/2 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (/.f32 1/2 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (log.f32 (/.f32 1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (log.f32 (/.f32 1/2 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (log.f32 (/.f32 1/2 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (log.f32 (/.f32 1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (log.f32 (/.f32 1/2 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (log.f32 (/.f32 1/2 x)) 1)))))

simplify14.0ms (0.2%)

Algorithm
egg-herbie
Rules
rational_best-simplify-1
rational_best-simplify-2
rational_best-simplify-5
rational_best-simplify-4
rational_best-simplify-3
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
029329
133321
238321
340321
Stop Event
saturated
Counts
19 → 13
Calls
Call 1
Inputs
(+.f32 (log.f32 1/2) (*.f32 -1 (log.f32 x)))
(+.f32 (log.f32 1/2) (*.f32 -1 (log.f32 x)))
(+.f32 (log.f32 1/2) (*.f32 -1 (log.f32 x)))
(+.f32 (log.f32 1/2) (*.f32 -1 (log.f32 x)))
(+.f32 (log.f32 (/.f32 1 x)) (log.f32 1/2))
(+.f32 (log.f32 (/.f32 1 x)) (log.f32 1/2))
(+.f32 (log.f32 (/.f32 1 x)) (log.f32 1/2))
(+.f32 (log.f32 (/.f32 1 x)) (log.f32 1/2))
(+.f32 (log.f32 -1/2) (log.f32 (/.f32 -1 x)))
(+.f32 (log.f32 -1/2) (log.f32 (/.f32 -1 x)))
(+.f32 (log.f32 -1/2) (log.f32 (/.f32 -1 x)))
(+.f32 (log.f32 -1/2) (log.f32 (/.f32 -1 x)))
(+.f32 (log.f32 (/.f32 1/2 x)) 0)
(+.f32 0 (log.f32 (/.f32 1/2 x)))
(-.f32 (log.f32 (/.f32 1/2 x)) 0)
(*.f32 (log.f32 (/.f32 1/2 x)) 1)
(*.f32 1 (log.f32 (/.f32 1/2 x)))
(/.f32 (log.f32 (/.f32 1/2 x)) 1)
(pow.f32 (log.f32 (/.f32 1/2 x)) 1)
Outputs
(+.f32 (log.f32 1/2) (*.f32 -1 (log.f32 x)))
(+.f32 (log.f32 1/2) (neg.f32 (log.f32 x)))
(+.f32 (log.f32 1/2) (*.f32 -1 (log.f32 x)))
(+.f32 (log.f32 1/2) (neg.f32 (log.f32 x)))
(+.f32 (log.f32 1/2) (*.f32 -1 (log.f32 x)))
(+.f32 (log.f32 1/2) (neg.f32 (log.f32 x)))
(+.f32 (log.f32 1/2) (*.f32 -1 (log.f32 x)))
(+.f32 (log.f32 1/2) (neg.f32 (log.f32 x)))
(+.f32 (log.f32 (/.f32 1 x)) (log.f32 1/2))
(+.f32 (log.f32 1/2) (log.f32 (/.f32 1 x)))
(+.f32 (log.f32 (/.f32 1 x)) (log.f32 1/2))
(+.f32 (log.f32 1/2) (log.f32 (/.f32 1 x)))
(+.f32 (log.f32 (/.f32 1 x)) (log.f32 1/2))
(+.f32 (log.f32 1/2) (log.f32 (/.f32 1 x)))
(+.f32 (log.f32 (/.f32 1 x)) (log.f32 1/2))
(+.f32 (log.f32 1/2) (log.f32 (/.f32 1 x)))
(+.f32 (log.f32 -1/2) (log.f32 (/.f32 -1 x)))
(+.f32 (log.f32 -1/2) (log.f32 (/.f32 -1 x)))
(+.f32 (log.f32 -1/2) (log.f32 (/.f32 -1 x)))
(+.f32 (log.f32 -1/2) (log.f32 (/.f32 -1 x)))
(+.f32 (log.f32 (/.f32 1/2 x)) 0)
(log.f32 (/.f32 1/2 x))
(+.f32 0 (log.f32 (/.f32 1/2 x)))
(log.f32 (/.f32 1/2 x))
(-.f32 (log.f32 (/.f32 1/2 x)) 0)
(log.f32 (/.f32 1/2 x))
(*.f32 (log.f32 (/.f32 1/2 x)) 1)
(log.f32 (/.f32 1/2 x))
(*.f32 1 (log.f32 (/.f32 1/2 x)))
(log.f32 (/.f32 1/2 x))
(/.f32 (log.f32 (/.f32 1/2 x)) 1)
(log.f32 (/.f32 1/2 x))
(pow.f32 (log.f32 (/.f32 1/2 x)) 1)
(log.f32 (/.f32 1/2 x))

localize39.0ms (0.6%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(/.f32 1 x)
0.0b
(+.f32 x (-.f32 x (*.f32 1/2 (/.f32 1 x))))
0.1b
(log.f32 (+.f32 x (-.f32 x (*.f32 1/2 (/.f32 1 x)))))
Compiler

Compiled 38 to 27 computations (28.9% saved)

series1.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite88.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
1232×rational_best-4
1232×rational_best-2
1232×rational_best-3
1232×rational_best-1
1230×exponential-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01154
16954
210054
313854
422354
539854
672354
7142354
8272154
9407254
10582454
Stop Event
node limit
Counts
2 → 23
Calls
Call 1
Inputs
(log.f32 (+.f32 x (-.f32 x (*.f32 1/2 (/.f32 1 x)))))
(+.f32 x (-.f32 x (*.f32 1/2 (/.f32 1 x))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 0 (+.f32 (*.f32 -1/2 (/.f32 -1 x)) (*.f32 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 -1 (+.f32 (*.f32 -1/2 (/.f32 -1 x)) (*.f32 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 2 (+.f32 x (*.f32 (/.f32 -1 x) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 2 (+.f32 (*.f32 1/2 (/.f32 -1 x)) (+.f32 x (*.f32 (/.f32 1 x) 1/4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 -2 (+.f32 (neg.f32 x) (*.f32 (/.f32 1 x) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (+.f32 (*.f32 -1/2 (/.f32 -1 x)) (*.f32 x -2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (+.f32 (neg.f32 x) (*.f32 (/.f32 1 x) 1/4)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (+.f32 x (*.f32 (/.f32 -1 x) 1/4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (+.f32 (*.f32 1/2 (/.f32 -1 x)) (+.f32 x (*.f32 (/.f32 1 x) 1/4))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 (*.f32 -1/2 (/.f32 -1 x)) (*.f32 x -2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f32 (+.f32 (*.f32 -1/2 (/.f32 -1 x)) (*.f32 x -2)))))))

simplify37.0ms (0.6%)

Algorithm
egg-herbie
Rules
224×rational_best-simplify-1
172×rational_best-simplify-43
46×rational_best-simplify-2
10×rational_best-simplify-10
rational_best-simplify-12
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01051609
11571585
21951585
32481585
43091585
53491585
63541585
Stop Event
saturated
Counts
47 → 72
Calls
Call 1
Inputs
(+.f32 (log.f32 -1/2) (*.f32 -1 (log.f32 x)))
(+.f32 (log.f32 -1/2) (+.f32 (*.f32 -4 (pow.f32 x 2)) (*.f32 -1 (log.f32 x))))
(+.f32 (log.f32 -1/2) (+.f32 (*.f32 -4 (pow.f32 x 2)) (+.f32 (*.f32 -8 (pow.f32 x 4)) (*.f32 -1 (log.f32 x)))))
(+.f32 (log.f32 -1/2) (+.f32 (*.f32 -4 (pow.f32 x 2)) (+.f32 (*.f32 -8 (pow.f32 x 4)) (+.f32 (*.f32 -64/3 (pow.f32 x 6)) (*.f32 -1 (log.f32 x))))))
(+.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 1/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 1/32 (/.f32 1 (pow.f32 x 4))) (+.f32 (*.f32 1/192 (/.f32 1 (pow.f32 x 6))) (*.f32 1/4 (/.f32 1 (pow.f32 x 2))))))
(+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (log.f32 -2))
(-.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 1/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 1/32 (/.f32 1 (pow.f32 x 4))) (+.f32 (*.f32 1/192 (/.f32 1 (pow.f32 x 6))) (*.f32 1/4 (/.f32 1 (pow.f32 x 2))))))
(/.f32 -1/2 x)
(-.f32 (*.f32 2 x) (*.f32 1/2 (/.f32 1 x)))
(-.f32 (*.f32 2 x) (*.f32 1/2 (/.f32 1 x)))
(-.f32 (*.f32 2 x) (*.f32 1/2 (/.f32 1 x)))
(*.f32 2 x)
(-.f32 (*.f32 2 x) (*.f32 1/2 (/.f32 1 x)))
(-.f32 (*.f32 2 x) (*.f32 1/2 (/.f32 1 x)))
(-.f32 (*.f32 2 x) (*.f32 1/2 (/.f32 1 x)))
(*.f32 2 x)
(-.f32 (*.f32 2 x) (*.f32 1/2 (/.f32 1 x)))
(-.f32 (*.f32 2 x) (*.f32 1/2 (/.f32 1 x)))
(-.f32 (*.f32 2 x) (*.f32 1/2 (/.f32 1 x)))
(+.f32 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))) 0)
(+.f32 0 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))))
(-.f32 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))) 0)
(*.f32 1 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))))
(*.f32 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))) 1)
(/.f32 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))) 1)
(pow.f32 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))) 1)
(-.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x))) 0)
(-.f32 0 (+.f32 (*.f32 -1/2 (/.f32 -1 x)) (*.f32 x -2)))
(*.f32 1 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x))))
(*.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x))) 1)
(*.f32 -1 (+.f32 (*.f32 -1/2 (/.f32 -1 x)) (*.f32 x -2)))
(*.f32 2 (+.f32 x (*.f32 (/.f32 -1 x) 1/4)))
(*.f32 2 (+.f32 (*.f32 1/2 (/.f32 -1 x)) (+.f32 x (*.f32 (/.f32 1 x) 1/4))))
(*.f32 -2 (+.f32 (neg.f32 x) (*.f32 (/.f32 1 x) 1/4)))
(*.f32 (+.f32 (*.f32 -1/2 (/.f32 -1 x)) (*.f32 x -2)) -1)
(*.f32 (+.f32 (neg.f32 x) (*.f32 (/.f32 1 x) 1/4)) -2)
(*.f32 (+.f32 x (*.f32 (/.f32 -1 x) 1/4)) 2)
(*.f32 (+.f32 (*.f32 1/2 (/.f32 -1 x)) (+.f32 x (*.f32 (/.f32 1 x) 1/4))) 2)
(/.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x))) 1)
(/.f32 (+.f32 (*.f32 -1/2 (/.f32 -1 x)) (*.f32 x -2)) -1)
(pow.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x))) 1)
(neg.f32 (+.f32 (*.f32 -1/2 (/.f32 -1 x)) (*.f32 x -2)))
Outputs
(+.f32 (log.f32 -1/2) (*.f32 -1 (log.f32 x)))
(+.f32 (log.f32 -1/2) (neg.f32 (log.f32 x)))
(+.f32 (log.f32 -1/2) (+.f32 (*.f32 -4 (pow.f32 x 2)) (*.f32 -1 (log.f32 x))))
(+.f32 (log.f32 -1/2) (+.f32 (*.f32 -1 (log.f32 x)) (*.f32 -4 (pow.f32 x 2))))
(+.f32 (log.f32 -1/2) (+.f32 (neg.f32 (log.f32 x)) (*.f32 -4 (pow.f32 x 2))))
(+.f32 (log.f32 -1/2) (+.f32 (*.f32 -4 (pow.f32 x 2)) (+.f32 (*.f32 -8 (pow.f32 x 4)) (*.f32 -1 (log.f32 x)))))
(+.f32 (+.f32 (*.f32 -1 (log.f32 x)) (*.f32 -8 (pow.f32 x 4))) (+.f32 (*.f32 -4 (pow.f32 x 2)) (log.f32 -1/2)))
(+.f32 (log.f32 -1/2) (+.f32 (*.f32 -8 (pow.f32 x 4)) (+.f32 (neg.f32 (log.f32 x)) (*.f32 -4 (pow.f32 x 2)))))
(+.f32 (log.f32 -1/2) (+.f32 (+.f32 (neg.f32 (log.f32 x)) (*.f32 -4 (pow.f32 x 2))) (*.f32 -8 (pow.f32 x 4))))
(+.f32 (log.f32 -1/2) (+.f32 (*.f32 -4 (pow.f32 x 2)) (+.f32 (*.f32 -8 (pow.f32 x 4)) (+.f32 (*.f32 -64/3 (pow.f32 x 6)) (*.f32 -1 (log.f32 x))))))
(+.f32 (+.f32 (*.f32 -1 (log.f32 x)) (+.f32 (*.f32 -64/3 (pow.f32 x 6)) (*.f32 -8 (pow.f32 x 4)))) (+.f32 (*.f32 -4 (pow.f32 x 2)) (log.f32 -1/2)))
(+.f32 (+.f32 (neg.f32 (log.f32 x)) (+.f32 (*.f32 -8 (pow.f32 x 4)) (*.f32 -64/3 (pow.f32 x 6)))) (+.f32 (log.f32 -1/2) (*.f32 -4 (pow.f32 x 2))))
(+.f32 (*.f32 -8 (pow.f32 x 4)) (+.f32 (*.f32 -4 (pow.f32 x 2)) (+.f32 (*.f32 -64/3 (pow.f32 x 6)) (+.f32 (log.f32 -1/2) (neg.f32 (log.f32 x))))))
(+.f32 (*.f32 -8 (pow.f32 x 4)) (+.f32 (+.f32 (log.f32 -1/2) (neg.f32 (log.f32 x))) (+.f32 (*.f32 -4 (pow.f32 x 2)) (*.f32 -64/3 (pow.f32 x 6)))))
(+.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 1/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 1/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 1/32 (/.f32 1 (pow.f32 x 4)))))
(-.f32 (+.f32 (*.f32 -1 (log.f32 (/.f32 1 x))) (log.f32 2)) (+.f32 (*.f32 1/32 (/.f32 1 (pow.f32 x 4))) (+.f32 (*.f32 1/192 (/.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 1/4 (/.f32 1 (pow.f32 x 2))) (+.f32 (*.f32 1/192 (/.f32 1 (pow.f32 x 6))) (*.f32 1/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 (*.f32 1/32 (/.f32 1 (pow.f32 x 4))) (*.f32 1/192 (/.f32 1 (pow.f32 x 6))))))
(+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (log.f32 -2))
(+.f32 (neg.f32 (log.f32 (/.f32 -1 x))) (log.f32 -2))
(-.f32 (+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (log.f32 -2)) (*.f32 1/4 (/.f32 1 (pow.f32 x 2))))
(-.f32 (+.f32 (neg.f32 (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 1/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 1/4 (/.f32 1 (pow.f32 x 2))) (*.f32 1/32 (/.f32 1 (pow.f32 x 4)))))
(-.f32 (+.f32 (neg.f32 (log.f32 (/.f32 -1 x))) (log.f32 -2)) (+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (*.f32 1/32 (/.f32 1 (pow.f32 x 4)))))
(-.f32 (+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (log.f32 -2)) (+.f32 (*.f32 1/32 (/.f32 1 (pow.f32 x 4))) (+.f32 (*.f32 1/192 (/.f32 1 (pow.f32 x 6))) (*.f32 1/4 (/.f32 1 (pow.f32 x 2))))))
(-.f32 (+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (log.f32 -2)) (+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (+.f32 (*.f32 1/192 (/.f32 1 (pow.f32 x 6))) (*.f32 1/32 (/.f32 1 (pow.f32 x 4))))))
(-.f32 (+.f32 (neg.f32 (log.f32 (/.f32 -1 x))) (log.f32 -2)) (+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (+.f32 (*.f32 1/32 (/.f32 1 (pow.f32 x 4))) (*.f32 1/192 (/.f32 1 (pow.f32 x 6))))))
(/.f32 -1/2 x)
(-.f32 (*.f32 2 x) (*.f32 1/2 (/.f32 1 x)))
(-.f32 (*.f32 x 2) (*.f32 (/.f32 1 x) 1/2))
(-.f32 (*.f32 2 x) (*.f32 1/2 (/.f32 1 x)))
(-.f32 (*.f32 x 2) (*.f32 (/.f32 1 x) 1/2))
(-.f32 (*.f32 2 x) (*.f32 1/2 (/.f32 1 x)))
(-.f32 (*.f32 x 2) (*.f32 (/.f32 1 x) 1/2))
(*.f32 2 x)
(*.f32 x 2)
(-.f32 (*.f32 2 x) (*.f32 1/2 (/.f32 1 x)))
(-.f32 (*.f32 x 2) (*.f32 (/.f32 1 x) 1/2))
(-.f32 (*.f32 2 x) (*.f32 1/2 (/.f32 1 x)))
(-.f32 (*.f32 x 2) (*.f32 (/.f32 1 x) 1/2))
(-.f32 (*.f32 2 x) (*.f32 1/2 (/.f32 1 x)))
(-.f32 (*.f32 x 2) (*.f32 (/.f32 1 x) 1/2))
(*.f32 2 x)
(*.f32 x 2)
(-.f32 (*.f32 2 x) (*.f32 1/2 (/.f32 1 x)))
(-.f32 (*.f32 x 2) (*.f32 (/.f32 1 x) 1/2))
(-.f32 (*.f32 2 x) (*.f32 1/2 (/.f32 1 x)))
(-.f32 (*.f32 x 2) (*.f32 (/.f32 1 x) 1/2))
(-.f32 (*.f32 2 x) (*.f32 1/2 (/.f32 1 x)))
(-.f32 (*.f32 x 2) (*.f32 (/.f32 1 x) 1/2))
(+.f32 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))) 0)
(log.f32 (+.f32 (+.f32 x x) (*.f32 (/.f32 -1 x) 1/2)))
(log.f32 (+.f32 x (+.f32 x (*.f32 (/.f32 -1 x) 1/2))))
(+.f32 0 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))))
(log.f32 (+.f32 (+.f32 x x) (*.f32 (/.f32 -1 x) 1/2)))
(log.f32 (+.f32 x (+.f32 x (*.f32 (/.f32 -1 x) 1/2))))
(-.f32 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))) 0)
(log.f32 (+.f32 (+.f32 x x) (*.f32 (/.f32 -1 x) 1/2)))
(log.f32 (+.f32 x (+.f32 x (*.f32 (/.f32 -1 x) 1/2))))
(*.f32 1 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))))
(log.f32 (+.f32 (+.f32 x x) (*.f32 (/.f32 -1 x) 1/2)))
(log.f32 (+.f32 x (+.f32 x (*.f32 (/.f32 -1 x) 1/2))))
(*.f32 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))) 1)
(log.f32 (+.f32 (+.f32 x x) (*.f32 (/.f32 -1 x) 1/2)))
(log.f32 (+.f32 x (+.f32 x (*.f32 (/.f32 -1 x) 1/2))))
(/.f32 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))) 1)
(log.f32 (+.f32 (+.f32 x x) (*.f32 (/.f32 -1 x) 1/2)))
(log.f32 (+.f32 x (+.f32 x (*.f32 (/.f32 -1 x) 1/2))))
(pow.f32 (log.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x)))) 1)
(log.f32 (+.f32 (+.f32 x x) (*.f32 (/.f32 -1 x) 1/2)))
(log.f32 (+.f32 x (+.f32 x (*.f32 (/.f32 -1 x) 1/2))))
(-.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x))) 0)
(+.f32 (+.f32 x x) (*.f32 (/.f32 -1 x) 1/2))
(+.f32 x (+.f32 x (*.f32 (/.f32 -1 x) 1/2)))
(-.f32 0 (+.f32 (*.f32 -1/2 (/.f32 -1 x)) (*.f32 x -2)))
(neg.f32 (+.f32 (*.f32 -1/2 (/.f32 -1 x)) (*.f32 x -2)))
(*.f32 1 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x))))
(+.f32 (+.f32 x x) (*.f32 (/.f32 -1 x) 1/2))
(+.f32 x (+.f32 x (*.f32 (/.f32 -1 x) 1/2)))
(*.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x))) 1)
(+.f32 (+.f32 x x) (*.f32 (/.f32 -1 x) 1/2))
(+.f32 x (+.f32 x (*.f32 (/.f32 -1 x) 1/2)))
(*.f32 -1 (+.f32 (*.f32 -1/2 (/.f32 -1 x)) (*.f32 x -2)))
(neg.f32 (+.f32 (*.f32 -1/2 (/.f32 -1 x)) (*.f32 x -2)))
(*.f32 2 (+.f32 x (*.f32 (/.f32 -1 x) 1/4)))
(*.f32 2 (+.f32 x (*.f32 1/4 (/.f32 -1 x))))
(*.f32 2 (+.f32 (*.f32 1/2 (/.f32 -1 x)) (+.f32 x (*.f32 (/.f32 1 x) 1/4))))
(*.f32 2 (+.f32 (*.f32 (/.f32 -1 x) 1/2) (+.f32 x (*.f32 (/.f32 1 x) 1/4))))
(*.f32 2 (+.f32 x (+.f32 (*.f32 (/.f32 1 x) 1/4) (*.f32 (/.f32 -1 x) 1/2))))
(*.f32 2 (+.f32 x (+.f32 (*.f32 (/.f32 -1 x) 1/2) (*.f32 (/.f32 1 x) 1/4))))
(*.f32 -2 (+.f32 (neg.f32 x) (*.f32 (/.f32 1 x) 1/4)))
(*.f32 -2 (+.f32 (*.f32 (/.f32 1 x) 1/4) (neg.f32 x)))
(*.f32 (+.f32 (*.f32 -1/2 (/.f32 -1 x)) (*.f32 x -2)) -1)
(neg.f32 (+.f32 (*.f32 -1/2 (/.f32 -1 x)) (*.f32 x -2)))
(*.f32 (+.f32 (neg.f32 x) (*.f32 (/.f32 1 x) 1/4)) -2)
(*.f32 -2 (+.f32 (*.f32 (/.f32 1 x) 1/4) (neg.f32 x)))
(*.f32 (+.f32 x (*.f32 (/.f32 -1 x) 1/4)) 2)
(*.f32 2 (+.f32 x (*.f32 1/4 (/.f32 -1 x))))
(*.f32 (+.f32 (*.f32 1/2 (/.f32 -1 x)) (+.f32 x (*.f32 (/.f32 1 x) 1/4))) 2)
(*.f32 2 (+.f32 (*.f32 (/.f32 -1 x) 1/2) (+.f32 x (*.f32 (/.f32 1 x) 1/4))))
(*.f32 2 (+.f32 x (+.f32 (*.f32 (/.f32 1 x) 1/4) (*.f32 (/.f32 -1 x) 1/2))))
(*.f32 2 (+.f32 x (+.f32 (*.f32 (/.f32 -1 x) 1/2) (*.f32 (/.f32 1 x) 1/4))))
(/.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x))) 1)
(+.f32 (+.f32 x x) (*.f32 (/.f32 -1 x) 1/2))
(+.f32 x (+.f32 x (*.f32 (/.f32 -1 x) 1/2)))
(/.f32 (+.f32 (*.f32 -1/2 (/.f32 -1 x)) (*.f32 x -2)) -1)
(neg.f32 (+.f32 (*.f32 -1/2 (/.f32 -1 x)) (*.f32 x -2)))
(pow.f32 (+.f32 (+.f32 x x) (*.f32 1/2 (/.f32 -1 x))) 1)
(+.f32 (+.f32 x x) (*.f32 (/.f32 -1 x) 1/2))
(+.f32 x (+.f32 x (*.f32 (/.f32 -1 x) 1/2)))
(neg.f32 (+.f32 (*.f32 -1/2 (/.f32 -1 x)) (*.f32 x -2)))

localize34.0ms (0.6%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(/.f32 1 x)
0.0b
(log.f32 (/.f32 1 x))
0.3b
(+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x))))
Compiler

Compiled 26 to 21 computations (19.2% saved)

series401.0ms (6.5%)

Counts
2 → 20
Calls

6 calls:

TimeVariablePointExpression
382.0ms
x
@-inf
(+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x))))
15.0ms
x
@0
(+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x))))
5.0ms
x
@inf
(+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x))))
0.0ms
x
@0
(log.f32 (/.f32 1 x))
0.0ms
x
@-inf
(log.f32 (/.f32 1 x))

rewrite13.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
22×rational_best-2
22×rational_best-3
22×rational_best-simplify-2
22×rational_best-1
22×rational_best-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01136
17236
210436
310736
411436
511636
Stop Event
saturated
Counts
2 → 12
Calls
Call 1
Inputs
(+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x))))
(log.f32 (/.f32 1 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f32 (+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x)))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (/.f32 1 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (log.f32 (/.f32 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (log.f32 (/.f32 1 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (log.f32 (/.f32 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (log.f32 (/.f32 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (log.f32 (/.f32 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (log.f32 (/.f32 1 x)) 1)))))

simplify169.0ms (2.7%)

Algorithm
egg-herbie
Rules
1534×rational_best-simplify-51
1484×rational_best-simplify-1
1440×rational_best-simplify-2
1082×rational_best-simplify-49
1012×rational_best-simplify-46
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
034602
140586
256586
368586
480570
590570
6111570
7166570
8249570
9387570
10632570
111031570
121517570
132453570
143800570
155522570
167202570
177449570
187569570
Stop Event
node limit
Counts
32 → 21
Calls
Call 1
Inputs
(-.f32 (log.f32 2) (*.f32 -1 (log.f32 x)))
(-.f32 (log.f32 2) (*.f32 -1 (log.f32 x)))
(-.f32 (log.f32 2) (*.f32 -1 (log.f32 x)))
(-.f32 (log.f32 2) (*.f32 -1 (log.f32 x)))
(-.f32 (log.f32 2) (log.f32 (/.f32 1 x)))
(-.f32 (log.f32 2) (log.f32 (/.f32 1 x)))
(-.f32 (log.f32 2) (log.f32 (/.f32 1 x)))
(-.f32 (log.f32 2) (log.f32 (/.f32 1 x)))
(-.f32 (log.f32 2) (+.f32 (log.f32 (/.f32 -1 x)) (log.f32 -1)))
(-.f32 (log.f32 2) (+.f32 (log.f32 (/.f32 -1 x)) (log.f32 -1)))
(-.f32 (log.f32 2) (+.f32 (log.f32 (/.f32 -1 x)) (log.f32 -1)))
(-.f32 (log.f32 2) (+.f32 (log.f32 (/.f32 -1 x)) (log.f32 -1)))
(*.f32 -1 (log.f32 x))
(*.f32 -1 (log.f32 x))
(*.f32 -1 (log.f32 x))
(*.f32 -1 (log.f32 x))
(+.f32 (log.f32 (/.f32 -1 x)) (log.f32 -1))
(+.f32 (log.f32 (/.f32 -1 x)) (log.f32 -1))
(+.f32 (log.f32 (/.f32 -1 x)) (log.f32 -1))
(+.f32 (log.f32 (/.f32 -1 x)) (log.f32 -1))
(-.f32 (+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x)))) 0)
(*.f32 1 (+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x)))))
(*.f32 (+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x)))) 1)
(/.f32 (+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x)))) 1)
(pow.f32 (+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x)))) 1)
(+.f32 (log.f32 (/.f32 1 x)) 0)
(+.f32 0 (log.f32 (/.f32 1 x)))
(-.f32 (log.f32 (/.f32 1 x)) 0)
(*.f32 1 (log.f32 (/.f32 1 x)))
(*.f32 (log.f32 (/.f32 1 x)) 1)
(/.f32 (log.f32 (/.f32 1 x)) 1)
(pow.f32 (log.f32 (/.f32 1 x)) 1)
Outputs
(-.f32 (log.f32 2) (*.f32 -1 (log.f32 x)))
(-.f32 (log.f32 2) (neg.f32 (log.f32 x)))
(+.f32 (log.f32 2) (log.f32 x))
(-.f32 (log.f32 2) (*.f32 -1 (log.f32 x)))
(-.f32 (log.f32 2) (neg.f32 (log.f32 x)))
(+.f32 (log.f32 2) (log.f32 x))
(-.f32 (log.f32 2) (*.f32 -1 (log.f32 x)))
(-.f32 (log.f32 2) (neg.f32 (log.f32 x)))
(+.f32 (log.f32 2) (log.f32 x))
(-.f32 (log.f32 2) (*.f32 -1 (log.f32 x)))
(-.f32 (log.f32 2) (neg.f32 (log.f32 x)))
(+.f32 (log.f32 2) (log.f32 x))
(-.f32 (log.f32 2) (log.f32 (/.f32 1 x)))
(-.f32 (log.f32 2) (log.f32 (/.f32 1 x)))
(-.f32 (log.f32 2) (log.f32 (/.f32 1 x)))
(-.f32 (log.f32 2) (log.f32 (/.f32 1 x)))
(-.f32 (log.f32 2) (+.f32 (log.f32 (/.f32 -1 x)) (log.f32 -1)))
(-.f32 (log.f32 2) (+.f32 (log.f32 (/.f32 -1 x)) (log.f32 -1)))
(-.f32 (log.f32 2) (+.f32 (log.f32 (/.f32 -1 x)) (log.f32 -1)))
(-.f32 (log.f32 2) (+.f32 (log.f32 (/.f32 -1 x)) (log.f32 -1)))
(*.f32 -1 (log.f32 x))
(neg.f32 (log.f32 x))
(*.f32 -1 (log.f32 x))
(neg.f32 (log.f32 x))
(*.f32 -1 (log.f32 x))
(neg.f32 (log.f32 x))
(*.f32 -1 (log.f32 x))
(neg.f32 (log.f32 x))
(+.f32 (log.f32 (/.f32 -1 x)) (log.f32 -1))
(+.f32 (log.f32 (/.f32 -1 x)) (log.f32 -1))
(+.f32 (log.f32 (/.f32 -1 x)) (log.f32 -1))
(+.f32 (log.f32 (/.f32 -1 x)) (log.f32 -1))
(-.f32 (+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x)))) 0)
(-.f32 (log.f32 2) (log.f32 (/.f32 1 x)))
(*.f32 1 (+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x)))))
(-.f32 (log.f32 2) (log.f32 (/.f32 1 x)))
(*.f32 (+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x)))) 1)
(-.f32 (log.f32 2) (log.f32 (/.f32 1 x)))
(/.f32 (+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x)))) 1)
(-.f32 (log.f32 2) (log.f32 (/.f32 1 x)))
(pow.f32 (+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x)))) 1)
(-.f32 (log.f32 2) (log.f32 (/.f32 1 x)))
(+.f32 (log.f32 (/.f32 1 x)) 0)
(log.f32 (/.f32 1 x))
(+.f32 0 (log.f32 (/.f32 1 x)))
(log.f32 (/.f32 1 x))
(-.f32 (log.f32 (/.f32 1 x)) 0)
(log.f32 (/.f32 1 x))
(*.f32 1 (log.f32 (/.f32 1 x)))
(log.f32 (/.f32 1 x))
(*.f32 (log.f32 (/.f32 1 x)) 1)
(log.f32 (/.f32 1 x))
(/.f32 (log.f32 (/.f32 1 x)) 1)
(log.f32 (/.f32 1 x))
(pow.f32 (log.f32 (/.f32 1 x)) 1)
(log.f32 (/.f32 1 x))

eval385.0ms (6.2%)

Compiler

Compiled 3791 to 3078 computations (18.8% saved)

prune227.0ms (3.7%)

Pruning

7 alts after pruning (2 fresh and 5 done)

PrunedKeptTotal
New2662268
Fresh000
Picked101
Done055
Total2677274
Error
0.0b
Counts
274 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
0.9b
(+.f32 (log.f32 2) (log.f32 x))
31.0b
(log.f32 (/.f32 1/2 x))
0.5b
(log.f32 (-.f32 (*.f32 x 2) (*.f32 1/2 (/.f32 1 x))))
0.5b
(log.f32 (+.f32 x (-.f32 x (*.f32 1/2 (/.f32 1 x)))))
17.1b
(log.f32 (+.f32 x (sqrt.f32 (-.f32 (*.f32 x x) 1))))
0.8b
(log.f32 (+.f32 x x))
0.5b
(log.f32 (*.f32 (+.f32 (*.f32 1/2 (/.f32 -1 x)) (+.f32 x (*.f32 (/.f32 1 x) 1/4))) 2))
Compiler

Compiled 65 to 50 computations (23.1% saved)

localize140.0ms (2.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(/.f32 -1 x)
0.0b
(/.f32 1 x)
0.0b
(+.f32 (*.f32 1/2 (/.f32 -1 x)) (+.f32 x (*.f32 (/.f32 1 x) 1/4)))
0.1b
(log.f32 (*.f32 (+.f32 (*.f32 1/2 (/.f32 -1 x)) (+.f32 x (*.f32 (/.f32 1 x) 1/4))) 2))
Compiler

Compiled 74 to 58 computations (21.6% saved)

series2.0ms (0%)

Counts
3 → 24
Calls

9 calls:

TimeVariablePointExpression
0.0ms
x
@0
(log.f32 (*.f32 (+.f32 (*.f32 1/2 (/.f32 -1 x)) (+.f32 x (*.f32 (/.f32 1 x) 1/4))) 2))
0.0ms
x
@-inf
(log.f32 (*.f32 (+.f32 (*.f32 1/2 (/.f32 -1 x)) (+.f32 x (*.f32 (/.f32 1 x) 1/4))) 2))
0.0ms
x
@inf
(log.f32 (*.f32 (+.f32 (*.f32 1/2 (/.f32 -1 x)) (+.f32 x (*.f32 (/.f32 1 x) 1/4))) 2))
0.0ms
x
@0
(/.f32 -1 x)
0.0ms
x
@0
(+.f32 (*.f32 1/2 (/.f32 -1 x)) (+.f32 x (*.f32 (/.f32 1 x) 1/4)))

rewrite14.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
36×rational_best-simplify-1
34×rational_best-simplify-2
28×rational_best-4
28×rational_best-2
28×rational_best-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01791
111091
214991
316191
416291
Stop Event
saturated
Counts
3 → 18
Calls
Call 1
Inputs
(log.f32 (*.f32 (+.f32 (*.f32 1/2 (/.f32 -1 x)) (+.f32 x (*.f32 (/.f32 1 x) 1/4))) 2))
(+.f32 (*.f32 1/2 (/.f32 -1 x)) (+.f32 x (*.f32 (/.f32 1 x) 1/4)))
(/.f32 -1 x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f32 (log.f32 (*.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f32 0 (log.f32 (*.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f32 (log.f32 (*.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (log.f32 (*.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (log.f32 (*.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (log.f32 (*.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (log.f32 (*.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 2)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 1)))))
((#(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 (/.f32 -1 x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (/.f32 -1 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (/.f32 -1 x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (/.f32 -1 x) 1)))))

simplify34.0ms (0.5%)

Algorithm
egg-herbie
Rules
216×rational_best-simplify-1
170×rational_best-simplify-43
40×rational_best-simplify-2
10×rational_best-simplify-5
rational_best-simplify-4
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0921432
11331408
21761408
32371408
43011408
53431408
63491408
Stop Event
saturated
Counts
42 → 58
Calls
Call 1
Inputs
(+.f32 (log.f32 -1/2) (*.f32 -1 (log.f32 x)))
(+.f32 (log.f32 -1/2) (+.f32 (*.f32 -4 (pow.f32 x 2)) (*.f32 -1 (log.f32 x))))
(+.f32 (log.f32 -1/2) (+.f32 (*.f32 -4 (pow.f32 x 2)) (+.f32 (*.f32 -8 (pow.f32 x 4)) (*.f32 -1 (log.f32 x)))))
(+.f32 (log.f32 -1/2) (+.f32 (*.f32 -4 (pow.f32 x 2)) (+.f32 (*.f32 -8 (pow.f32 x 4)) (+.f32 (*.f32 -64/3 (pow.f32 x 6)) (*.f32 -1 (log.f32 x))))))
(+.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 1/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 1/32 (/.f32 1 (pow.f32 x 4))) (+.f32 (*.f32 1/192 (/.f32 1 (pow.f32 x 6))) (*.f32 1/4 (/.f32 1 (pow.f32 x 2))))))
(+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (log.f32 -2))
(-.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 1/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 1/32 (/.f32 1 (pow.f32 x 4))) (+.f32 (*.f32 1/192 (/.f32 1 (pow.f32 x 6))) (*.f32 1/4 (/.f32 1 (pow.f32 x 2))))))
(/.f32 -1/4 x)
(-.f32 x (*.f32 1/4 (/.f32 1 x)))
(-.f32 x (*.f32 1/4 (/.f32 1 x)))
(-.f32 x (*.f32 1/4 (/.f32 1 x)))
x
(-.f32 x (*.f32 1/4 (/.f32 1 x)))
(-.f32 x (*.f32 1/4 (/.f32 1 x)))
(-.f32 x (*.f32 1/4 (/.f32 1 x)))
x
(-.f32 x (*.f32 1/4 (/.f32 1 x)))
(-.f32 x (*.f32 1/4 (/.f32 1 x)))
(-.f32 x (*.f32 1/4 (/.f32 1 x)))
(+.f32 (log.f32 (*.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 2)) 0)
(+.f32 0 (log.f32 (*.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 2)))
(-.f32 (log.f32 (*.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 2)) 0)
(*.f32 1 (log.f32 (*.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 2)))
(*.f32 (log.f32 (*.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 2)) 1)
(/.f32 (log.f32 (*.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 2)) 1)
(pow.f32 (log.f32 (*.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 2)) 1)
(-.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 0)
(*.f32 1 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))))
(*.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 1)
(/.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 1)
(pow.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 1)
(+.f32 (/.f32 -1 x) 0)
(+.f32 0 (/.f32 -1 x))
(-.f32 (/.f32 -1 x) 0)
(*.f32 (/.f32 -1 x) 1)
(*.f32 1 (/.f32 -1 x))
(pow.f32 (/.f32 -1 x) 1)
Outputs
(+.f32 (log.f32 -1/2) (*.f32 -1 (log.f32 x)))
(+.f32 (log.f32 -1/2) (neg.f32 (log.f32 x)))
(+.f32 (log.f32 -1/2) (+.f32 (*.f32 -4 (pow.f32 x 2)) (*.f32 -1 (log.f32 x))))
(+.f32 (log.f32 -1/2) (+.f32 (*.f32 -1 (log.f32 x)) (*.f32 -4 (pow.f32 x 2))))
(+.f32 (log.f32 -1/2) (+.f32 (neg.f32 (log.f32 x)) (*.f32 -4 (pow.f32 x 2))))
(+.f32 (log.f32 -1/2) (+.f32 (*.f32 -4 (pow.f32 x 2)) (+.f32 (*.f32 -8 (pow.f32 x 4)) (*.f32 -1 (log.f32 x)))))
(+.f32 (log.f32 -1/2) (+.f32 (*.f32 -4 (pow.f32 x 2)) (+.f32 (*.f32 -1 (log.f32 x)) (*.f32 -8 (pow.f32 x 4)))))
(+.f32 (log.f32 -1/2) (+.f32 (*.f32 -4 (pow.f32 x 2)) (+.f32 (neg.f32 (log.f32 x)) (*.f32 -8 (pow.f32 x 4)))))
(+.f32 (log.f32 -1/2) (+.f32 (*.f32 -4 (pow.f32 x 2)) (+.f32 (*.f32 -8 (pow.f32 x 4)) (+.f32 (*.f32 -64/3 (pow.f32 x 6)) (*.f32 -1 (log.f32 x))))))
(+.f32 (log.f32 -1/2) (+.f32 (*.f32 -4 (pow.f32 x 2)) (+.f32 (*.f32 -8 (pow.f32 x 4)) (+.f32 (*.f32 -1 (log.f32 x)) (*.f32 -64/3 (pow.f32 x 6))))))
(+.f32 (log.f32 -1/2) (+.f32 (*.f32 -4 (pow.f32 x 2)) (+.f32 (*.f32 -8 (pow.f32 x 4)) (+.f32 (neg.f32 (log.f32 x)) (*.f32 -64/3 (pow.f32 x 6))))))
(+.f32 (log.f32 -1/2) (+.f32 (neg.f32 (log.f32 x)) (+.f32 (*.f32 -64/3 (pow.f32 x 6)) (+.f32 (*.f32 -4 (pow.f32 x 2)) (*.f32 -8 (pow.f32 x 4))))))
(+.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 1/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 1/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 1/32 (/.f32 1 (pow.f32 x 4)))))
(-.f32 (+.f32 (*.f32 -1 (log.f32 (/.f32 1 x))) (log.f32 2)) (+.f32 (*.f32 1/32 (/.f32 1 (pow.f32 x 4))) (+.f32 (*.f32 1/192 (/.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 1/4 (/.f32 1 (pow.f32 x 2))) (+.f32 (*.f32 1/192 (/.f32 1 (pow.f32 x 6))) (*.f32 1/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 (*.f32 1/32 (/.f32 1 (pow.f32 x 4))) (*.f32 1/192 (/.f32 1 (pow.f32 x 6))))))
(+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (log.f32 -2))
(+.f32 (neg.f32 (log.f32 (/.f32 -1 x))) (log.f32 -2))
(-.f32 (+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (log.f32 -2)) (*.f32 1/4 (/.f32 1 (pow.f32 x 2))))
(-.f32 (+.f32 (neg.f32 (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 1/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 1/4 (/.f32 1 (pow.f32 x 2))) (*.f32 1/32 (/.f32 1 (pow.f32 x 4)))))
(-.f32 (+.f32 (neg.f32 (log.f32 (/.f32 -1 x))) (log.f32 -2)) (+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (*.f32 1/32 (/.f32 1 (pow.f32 x 4)))))
(-.f32 (+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (log.f32 -2)) (+.f32 (*.f32 1/32 (/.f32 1 (pow.f32 x 4))) (+.f32 (*.f32 1/192 (/.f32 1 (pow.f32 x 6))) (*.f32 1/4 (/.f32 1 (pow.f32 x 2))))))
(-.f32 (+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (log.f32 -2)) (+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (+.f32 (*.f32 1/192 (/.f32 1 (pow.f32 x 6))) (*.f32 1/32 (/.f32 1 (pow.f32 x 4))))))
(-.f32 (+.f32 (neg.f32 (log.f32 (/.f32 -1 x))) (log.f32 -2)) (+.f32 (*.f32 1/4 (/.f32 1 (pow.f32 x 2))) (+.f32 (*.f32 1/32 (/.f32 1 (pow.f32 x 4))) (*.f32 1/192 (/.f32 1 (pow.f32 x 6))))))
(/.f32 -1/4 x)
(-.f32 x (*.f32 1/4 (/.f32 1 x)))
(-.f32 x (*.f32 (/.f32 1 x) 1/4))
(-.f32 x (*.f32 1/4 (/.f32 1 x)))
(-.f32 x (*.f32 (/.f32 1 x) 1/4))
(-.f32 x (*.f32 1/4 (/.f32 1 x)))
(-.f32 x (*.f32 (/.f32 1 x) 1/4))
x
(-.f32 x (*.f32 1/4 (/.f32 1 x)))
(-.f32 x (*.f32 (/.f32 1 x) 1/4))
(-.f32 x (*.f32 1/4 (/.f32 1 x)))
(-.f32 x (*.f32 (/.f32 1 x) 1/4))
(-.f32 x (*.f32 1/4 (/.f32 1 x)))
(-.f32 x (*.f32 (/.f32 1 x) 1/4))
x
(-.f32 x (*.f32 1/4 (/.f32 1 x)))
(-.f32 x (*.f32 (/.f32 1 x) 1/4))
(-.f32 x (*.f32 1/4 (/.f32 1 x)))
(-.f32 x (*.f32 (/.f32 1 x) 1/4))
(-.f32 x (*.f32 1/4 (/.f32 1 x)))
(-.f32 x (*.f32 (/.f32 1 x) 1/4))
(+.f32 (log.f32 (*.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 2)) 0)
(log.f32 (*.f32 2 (+.f32 x (+.f32 (*.f32 (/.f32 -1 x) 1/2) (*.f32 (/.f32 1 x) 1/4)))))
(+.f32 0 (log.f32 (*.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 2)))
(log.f32 (*.f32 2 (+.f32 x (+.f32 (*.f32 (/.f32 -1 x) 1/2) (*.f32 (/.f32 1 x) 1/4)))))
(-.f32 (log.f32 (*.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 2)) 0)
(log.f32 (*.f32 2 (+.f32 x (+.f32 (*.f32 (/.f32 -1 x) 1/2) (*.f32 (/.f32 1 x) 1/4)))))
(*.f32 1 (log.f32 (*.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 2)))
(log.f32 (*.f32 2 (+.f32 x (+.f32 (*.f32 (/.f32 -1 x) 1/2) (*.f32 (/.f32 1 x) 1/4)))))
(*.f32 (log.f32 (*.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 2)) 1)
(log.f32 (*.f32 2 (+.f32 x (+.f32 (*.f32 (/.f32 -1 x) 1/2) (*.f32 (/.f32 1 x) 1/4)))))
(/.f32 (log.f32 (*.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 2)) 1)
(log.f32 (*.f32 2 (+.f32 x (+.f32 (*.f32 (/.f32 -1 x) 1/2) (*.f32 (/.f32 1 x) 1/4)))))
(pow.f32 (log.f32 (*.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 2)) 1)
(log.f32 (*.f32 2 (+.f32 x (+.f32 (*.f32 (/.f32 -1 x) 1/2) (*.f32 (/.f32 1 x) 1/4)))))
(-.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 0)
(+.f32 x (+.f32 (*.f32 (/.f32 -1 x) 1/2) (*.f32 (/.f32 1 x) 1/4)))
(*.f32 1 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))))
(+.f32 x (+.f32 (*.f32 (/.f32 -1 x) 1/2) (*.f32 (/.f32 1 x) 1/4)))
(*.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 1)
(+.f32 x (+.f32 (*.f32 (/.f32 -1 x) 1/2) (*.f32 (/.f32 1 x) 1/4)))
(/.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 1)
(+.f32 x (+.f32 (*.f32 (/.f32 -1 x) 1/2) (*.f32 (/.f32 1 x) 1/4)))
(pow.f32 (+.f32 x (+.f32 (*.f32 1/2 (/.f32 -1 x)) (*.f32 (/.f32 1 x) 1/4))) 1)
(+.f32 x (+.f32 (*.f32 (/.f32 -1 x) 1/2) (*.f32 (/.f32 1 x) 1/4)))
(+.f32 (/.f32 -1 x) 0)
(/.f32 -1 x)
(+.f32 0 (/.f32 -1 x))
(/.f32 -1 x)
(-.f32 (/.f32 -1 x) 0)
(/.f32 -1 x)
(*.f32 (/.f32 -1 x) 1)
(/.f32 -1 x)
(*.f32 1 (/.f32 -1 x))
(/.f32 -1 x)
(pow.f32 (/.f32 -1 x) 1)
(/.f32 -1 x)

localize17.0ms (0.3%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.3b
(+.f32 (log.f32 2) (log.f32 x))
Compiler

Compiled 12 to 8 computations (33.3% saved)

series7.0ms (0.1%)

Counts
1 → 8
Calls

3 calls:

TimeVariablePointExpression
6.0ms
x
@-inf
(+.f32 (log.f32 2) (log.f32 x))
0.0ms
x
@0
(+.f32 (log.f32 2) (log.f32 x))
0.0ms
x
@inf
(+.f32 (log.f32 2) (log.f32 x))

rewrite89.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
16×rational_best-simplify-1
14×rational_best-4
14×rational_best-2
14×rational_best-3
14×rational_best-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0815
15115
27515
Stop Event
saturated
Counts
1 → 5
Calls
Call 1
Inputs
(+.f32 (log.f32 2) (log.f32 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f32 (+.f32 (log.f32 2) (log.f32 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 (+.f32 (log.f32 2) (log.f32 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f32 1 (+.f32 (log.f32 2) (log.f32 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f32 (+.f32 (log.f32 2) (log.f32 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f32 (+.f32 (log.f32 2) (log.f32 x)) 1)))))

simplify13.0ms (0.2%)

Algorithm
egg-herbie
Rules
16×rational_best-simplify-1
rational_best-simplify-2
rational_best-simplify-12
rational_best-simplify-10
rational_best-simplify-43
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
026331
134315
243315
349315
Stop Event
saturated
Counts
13 → 11
Calls
Call 1
Inputs
(+.f32 (log.f32 2) (*.f32 -1 (log.f32 (/.f32 1 x))))
(+.f32 (log.f32 2) (*.f32 -1 (log.f32 (/.f32 1 x))))
(+.f32 (log.f32 2) (*.f32 -1 (log.f32 (/.f32 1 x))))
(+.f32 (log.f32 2) (*.f32 -1 (log.f32 (/.f32 1 x))))
(+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (+.f32 (log.f32 2) (log.f32 -1)))
(+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (+.f32 (log.f32 2) (log.f32 -1)))
(+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (+.f32 (log.f32 2) (log.f32 -1)))
(+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (+.f32 (log.f32 2) (log.f32 -1)))
(-.f32 (+.f32 (log.f32 2) (log.f32 x)) 0)
(*.f32 (+.f32 (log.f32 2) (log.f32 x)) 1)
(*.f32 1 (+.f32 (log.f32 2) (log.f32 x)))
(/.f32 (+.f32 (log.f32 2) (log.f32 x)) 1)
(pow.f32 (+.f32 (log.f32 2) (log.f32 x)) 1)
Outputs
(+.f32 (log.f32 2) (*.f32 -1 (log.f32 (/.f32 1 x))))
(+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x))))
(+.f32 (log.f32 2) (*.f32 -1 (log.f32 (/.f32 1 x))))
(+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x))))
(+.f32 (log.f32 2) (*.f32 -1 (log.f32 (/.f32 1 x))))
(+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x))))
(+.f32 (log.f32 2) (*.f32 -1 (log.f32 (/.f32 1 x))))
(+.f32 (log.f32 2) (neg.f32 (log.f32 (/.f32 1 x))))
(+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (+.f32 (log.f32 2) (log.f32 -1)))
(+.f32 (log.f32 2) (+.f32 (log.f32 -1) (neg.f32 (log.f32 (/.f32 -1 x)))))
(+.f32 (log.f32 2) (+.f32 (neg.f32 (log.f32 (/.f32 -1 x))) (log.f32 -1)))
(+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (+.f32 (log.f32 2) (log.f32 -1)))
(+.f32 (log.f32 2) (+.f32 (log.f32 -1) (neg.f32 (log.f32 (/.f32 -1 x)))))
(+.f32 (log.f32 2) (+.f32 (neg.f32 (log.f32 (/.f32 -1 x))) (log.f32 -1)))
(+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (+.f32 (log.f32 2) (log.f32 -1)))
(+.f32 (log.f32 2) (+.f32 (log.f32 -1) (neg.f32 (log.f32 (/.f32 -1 x)))))
(+.f32 (log.f32 2) (+.f32 (neg.f32 (log.f32 (/.f32 -1 x))) (log.f32 -1)))
(+.f32 (*.f32 -1 (log.f32 (/.f32 -1 x))) (+.f32 (log.f32 2) (log.f32 -1)))
(+.f32 (log.f32 2) (+.f32 (log.f32 -1) (neg.f32 (log.f32 (/.f32 -1 x)))))
(+.f32 (log.f32 2) (+.f32 (neg.f32 (log.f32 (/.f32 -1 x))) (log.f32 -1)))
(-.f32 (+.f32 (log.f32 2) (log.f32 x)) 0)
(+.f32 (log.f32 2) (log.f32 x))
(*.f32 (+.f32 (log.f32 2) (log.f32 x)) 1)
(+.f32 (log.f32 2) (log.f32 x))
(*.f32 1 (+.f32 (log.f32 2) (log.f32 x)))
(+.f32 (log.f32 2) (log.f32 x))
(/.f32 (+.f32 (log.f32 2) (log.f32 x)) 1)
(+.f32 (log.f32 2) (log.f32 x))
(pow.f32 (+.f32 (log.f32 2) (log.f32 x)) 1)
(+.f32 (log.f32 2) (log.f32 x))

eval38.0ms (0.6%)

Compiler

Compiled 1842 to 1543 computations (16.2% saved)

prune91.0ms (1.5%)

Pruning

7 alts after pruning (0 fresh and 7 done)

PrunedKeptTotal
New1020102
Fresh000
Picked011
Done066
Total1027109
Error
0.0b
Counts
109 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
0.9b
(+.f32 (log.f32 2) (log.f32 x))
31.0b
(log.f32 (/.f32 1/2 x))
0.5b
(log.f32 (-.f32 (*.f32 x 2) (*.f32 1/2 (/.f32 1 x))))
0.5b
(log.f32 (+.f32 x (-.f32 x (*.f32 1/2 (/.f32 1 x)))))
17.1b
(log.f32 (+.f32 x (sqrt.f32 (-.f32 (*.f32 x x) 1))))
0.8b
(log.f32 (+.f32 x x))
0.5b
(log.f32 (*.f32 (+.f32 (*.f32 1/2 (/.f32 -1 x)) (+.f32 x (*.f32 (/.f32 1 x) 1/4))) 2))
Compiler

Compiled 65 to 50 computations (23.1% saved)

regimes16.0ms (0.3%)

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

3 calls:

6.0ms
x
4.0ms
(log.f32 (+.f32 x (sqrt.f32 (-.f32 (*.f32 x x) 1))))
4.0ms
(+.f32 x (sqrt.f32 (-.f32 (*.f32 x x) 1)))
Results
ErrorSegmentsBranch
0.5b1x
0.5b1(log.f32 (+.f32 x (sqrt.f32 (-.f32 (*.f32 x x) 1))))
0.5b1(+.f32 x (sqrt.f32 (-.f32 (*.f32 x x) 1)))
Compiler

Compiled 88 to 65 computations (26.1% saved)

regimes4.0ms (0.1%)

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

1 calls:

3.0ms
x
Results
ErrorSegmentsBranch
0.5b1x
Compiler

Compiled 21 to 14 computations (33.3% saved)

regimes3.0ms (0.1%)

Accuracy

Total -30.3b remaining (-3894.3%)

Threshold costs -30.3b (-3894.3%)

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

1 calls:

3.0ms
x
Results
ErrorSegmentsBranch
0.8b1x
Compiler

Compiled 11 to 7 computations (36.4% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

Compiled 27 to 20 computations (25.9% saved)

soundness1.3s (20.3%)

Algorithm
egg-herbie
Rules
1116×exponential-simplify-31
546×rational_best-simplify-1
488×rational_best-simplify-43
46×rational_best-simplify-2
26×rational_best-simplify-3
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01462245
12352229
23442229
34982229
48622229
59712229
610422229
710542229
810542229
930102229
1031362229
1131512229
1231512229
1331512229
1431512229
1531512229
1631512229
Stop Event
node limit
Compiler

Compiled 21 to 17 computations (19% saved)

end20.0ms (0.3%)

Compiler

Compiled 25 to 18 computations (28% saved)

Profiling

Loading profile data...