Details

Time bar (total: 9.5s)

analyze1.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
100%100%0%0%0%0%0%2
Compiler

Compiled 10 to 8 computations (20% saved)

sample3.8s (39.6%)

Results
3.7s8256×body256valid
Bogosity

preprocess596.0ms (6.3%)

Algorithm
egg-herbie
Rules
1152×rational_best-simplify-55
1050×rational_best-simplify-65
1000×rational_best-simplify-67
802×rational_best-simplify-53
722×rational_best-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01025
12225
23825
36325
412225
528925
651025
7119925
8319625
011
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Outputs
(/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Compiler

Compiled 10 to 8 computations (20% saved)

simplify367.0ms (3.9%)

Algorithm
egg-herbie
Rules
1152×rational_best-simplify-55
1050×rational_best-simplify-65
1000×rational_best-simplify-67
802×rational_best-simplify-53
722×rational_best-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01025
12225
23825
36325
412225
528925
651025
7119925
8319625
Stop Event
node limit
Counts
1 → 1
Calls
Call 1
Inputs
(/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Outputs
(/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))

eval1.0ms (0%)

Compiler

Compiled 9 to 7 computations (22.2% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
0.0b
Counts
2 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Compiler

Compiled 9 to 7 computations (22.2% saved)

localize26.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
0.0b
(/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Compiler

Compiled 24 to 8 computations (66.7% saved)

series3.0ms (0%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
(/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
1.0ms
x
@inf
(/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
1.0ms
x
@0
(/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
0.0ms
x
@0
(+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
0.0ms
x
@-inf
(+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))

rewrite678.0ms (7.1%)

Algorithm
batch-egg-rewrite
Rules
1268×rational_best-simplify-51
824×rational_best-simplify-1
718×rational_best-simplify-75
710×rational_best-simplify-76
652×rational_best-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01044
17244
215944
345744
4177744
5771044
Stop Event
node limit
Counts
2 → 75
Calls
Call 1
Inputs
(/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 1/2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 1/2 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 4 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (/.f64 1/4 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 1/2 (/.f64 1/2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (/.f64 4 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/4 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 8 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 16 (/.f64 1/2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 16 (*.f64 1/2 (/.f64 1/4 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (/.f64 8 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (/.f64 8 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 32 (/.f64 1 (*.f64 4 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 32 (/.f64 1/2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (/.f64 1/2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (/.f64 1/4 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 2 (/.f64 8 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 4 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 x) (/.f64 -1 (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (neg.f64 x)) (neg.f64 (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (-.f64 (/.f64 -1 (exp.f64 x)) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 2 (exp.f64 x)) (+.f64 (exp.f64 (neg.f64 x)) (neg.f64 (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 2 (exp.f64 x)) (+.f64 (exp.f64 x) (/.f64 -1 (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 1/2 (exp.f64 x)) (-.f64 (neg.f64 (exp.f64 x)) (/.f64 1/2 (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 1/2 (exp.f64 x)) (+.f64 (/.f64 -1/2 (exp.f64 x)) (neg.f64 (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (exp.f64 x) 2) (-.f64 (/.f64 (exp.f64 x) -2) (exp.f64 (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (exp.f64 x) 2) (+.f64 (/.f64 (exp.f64 x) -2) (/.f64 -1 (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (exp.f64 (neg.f64 x)) (/.f64 (exp.f64 x) 2)) (/.f64 (exp.f64 x) -2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (/.f64 -1/2 (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) -2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 3) 4) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) -4))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) -2)) (-.f64 0 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 (neg.f64 x))) (-.f64 (/.f64 -1 (exp.f64 x)) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (exp.f64 x) (exp.f64 x)) (-.f64 (/.f64 -1 (exp.f64 x)) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 (/.f64 -1 (exp.f64 x)) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (/.f64 -1 (exp.f64 x)) (exp.f64 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) -2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4)) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (/.f64 -1 (exp.f64 x)) (exp.f64 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (exp.f64 x) 4) (/.f64 -4 (exp.f64 x))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (/.f64 4 (exp.f64 x)) (neg.f64 (*.f64 (exp.f64 x) 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (/.f64 -1 (exp.f64 x)) (exp.f64 x)))))))

simplify312.0ms (3.3%)

Algorithm
egg-herbie
Rules
1308×rational_best-simplify-57
1214×rational_best-simplify-47
1056×rational_best-simplify-63
894×rational_best-simplify-75
740×rational_best-simplify-56
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01812295
13812295
29832295
336522295
Stop Event
node limit
Counts
99 → 98
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 5/24 (pow.f64 x 4))))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 -61/720 (pow.f64 x 6)) (*.f64 5/24 (pow.f64 x 4)))))
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))
(/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))
(/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))
(/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))
2
(+.f64 2 (pow.f64 x 2))
(+.f64 2 (+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4))))
(+.f64 2 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(+.f64 (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 0)
(+.f64 0 (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(+.f64 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(-.f64 (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 0)
(-.f64 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) -2))
(*.f64 2 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(*.f64 2 (*.f64 (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 1/2))
(*.f64 (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 1)
(*.f64 1 (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(*.f64 4 (/.f64 1/2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(*.f64 4 (*.f64 1/2 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))
(*.f64 (/.f64 4 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 1/2)
(*.f64 8 (/.f64 1/4 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(*.f64 8 (*.f64 1/2 (/.f64 1/2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))
(*.f64 1/2 (/.f64 4 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(*.f64 (/.f64 1/2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 4)
(*.f64 (/.f64 1/4 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 8)
(*.f64 (/.f64 8 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 1/4)
(*.f64 16 (/.f64 1/2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4)))
(*.f64 16 (*.f64 1/2 (/.f64 1/4 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))
(*.f64 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 2)
(*.f64 1/4 (/.f64 8 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(*.f64 (/.f64 1/2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4)) 16)
(*.f64 (*.f64 2 (/.f64 8 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))) 1/8)
(*.f64 32 (/.f64 1 (*.f64 4 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4))))
(*.f64 32 (/.f64 1/2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4))))
(*.f64 (*.f64 (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 1/2) 2)
(*.f64 (*.f64 1/2 (/.f64 1/2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))) 8)
(*.f64 (*.f64 1/2 (/.f64 1/4 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))) 16)
(*.f64 (*.f64 1/2 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))) 4)
(*.f64 1/8 (*.f64 2 (/.f64 8 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))
(*.f64 (/.f64 1 (*.f64 4 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4))) 32)
(*.f64 (/.f64 1/2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4))) 32)
(pow.f64 (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 1)
(-.f64 (exp.f64 x) (/.f64 -1 (exp.f64 x)))
(-.f64 (exp.f64 (neg.f64 x)) (neg.f64 (exp.f64 x)))
(-.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 0)
(-.f64 0 (-.f64 (/.f64 -1 (exp.f64 x)) (exp.f64 x)))
(-.f64 (/.f64 2 (exp.f64 x)) (+.f64 (exp.f64 (neg.f64 x)) (neg.f64 (exp.f64 x))))
(-.f64 (*.f64 2 (exp.f64 x)) (+.f64 (exp.f64 x) (/.f64 -1 (exp.f64 x))))
(-.f64 (/.f64 1/2 (exp.f64 x)) (-.f64 (neg.f64 (exp.f64 x)) (/.f64 1/2 (exp.f64 x))))
(-.f64 (/.f64 1/2 (exp.f64 x)) (+.f64 (/.f64 -1/2 (exp.f64 x)) (neg.f64 (exp.f64 x))))
(-.f64 (/.f64 (exp.f64 x) 2) (-.f64 (/.f64 (exp.f64 x) -2) (exp.f64 (neg.f64 x))))
(-.f64 (/.f64 (exp.f64 x) 2) (+.f64 (/.f64 (exp.f64 x) -2) (/.f64 -1 (exp.f64 x))))
(-.f64 (+.f64 (exp.f64 (neg.f64 x)) (/.f64 (exp.f64 x) 2)) (/.f64 (exp.f64 x) -2))
(-.f64 (+.f64 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (/.f64 -1/2 (exp.f64 x)))
(-.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) -2))
(-.f64 (/.f64 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 3) 4) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) -4))
(-.f64 (-.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) -2)) (-.f64 0 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4)))
(-.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 (neg.f64 x))) (-.f64 (/.f64 -1 (exp.f64 x)) (exp.f64 x)))
(-.f64 (-.f64 (exp.f64 x) (exp.f64 x)) (-.f64 (/.f64 -1 (exp.f64 x)) (exp.f64 x)))
(*.f64 2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1/2))
(*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1)
(*.f64 1 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(*.f64 -1 (-.f64 (/.f64 -1 (exp.f64 x)) (exp.f64 x)))
(*.f64 (*.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 1/2)
(*.f64 (-.f64 (/.f64 -1 (exp.f64 x)) (exp.f64 x)) -1)
(*.f64 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4) 1/4)
(*.f64 -2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) -2))
(*.f64 1/2 (*.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) -2) -2)
(*.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4)) 1/8)
(*.f64 1/4 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4))
(*.f64 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1/2) 2)
(*.f64 1/8 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4)))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1)
(/.f64 (*.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 2)
(/.f64 (-.f64 (/.f64 -1 (exp.f64 x)) (exp.f64 x)) -1)
(/.f64 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4) 4)
(/.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4)) 8)
(/.f64 (*.f64 4 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4)) 16)
(/.f64 (-.f64 (*.f64 (exp.f64 x) 4) (/.f64 -4 (exp.f64 x))) 4)
(/.f64 (-.f64 (/.f64 4 (exp.f64 x)) (neg.f64 (*.f64 (exp.f64 x) 4))) 4)
(pow.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1)
(neg.f64 (-.f64 (/.f64 -1 (exp.f64 x)) (exp.f64 x)))
Outputs
1
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 5/24 (pow.f64 x 4))))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 -61/720 (pow.f64 x 6)) (*.f64 5/24 (pow.f64 x 4)))))
(+.f64 (+.f64 (*.f64 5/24 (pow.f64 x 4)) (*.f64 -61/720 (pow.f64 x 6))) (+.f64 1 (*.f64 -1/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 5/24 (pow.f64 x 4)) (*.f64 -61/720 (pow.f64 x 6)))))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 1 (+.f64 (*.f64 5/24 (pow.f64 x 4)) (*.f64 -61/720 (pow.f64 x 6)))))
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))))
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
2
(+.f64 2 (pow.f64 x 2))
(+.f64 2 (+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4))))
(+.f64 (*.f64 (pow.f64 x 4) 1/12) (+.f64 2 (pow.f64 x 2)))
(+.f64 2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 4) 1/12)))
(+.f64 (pow.f64 x 2) (+.f64 2 (*.f64 (pow.f64 x 4) 1/12)))
(+.f64 2 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))))
(+.f64 2 (+.f64 (*.f64 (pow.f64 x 4) 1/12) (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 6) 1/360))))
(+.f64 2 (+.f64 (pow.f64 x 2) (+.f64 (*.f64 (pow.f64 x 4) 1/12) (*.f64 (pow.f64 x 6) 1/360))))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(+.f64 (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 0)
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(+.f64 0 (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(+.f64 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(-.f64 (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 0)
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(-.f64 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) (/.f64 (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) -2))
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(*.f64 2 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(*.f64 2 (*.f64 (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 1/2))
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(*.f64 (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 1)
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(*.f64 1 (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(*.f64 4 (/.f64 1/2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(*.f64 4 (*.f64 1/2 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(*.f64 (/.f64 4 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 1/2)
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(*.f64 8 (/.f64 1/4 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(*.f64 8 (*.f64 1/2 (/.f64 1/2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(*.f64 1/2 (/.f64 4 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(*.f64 (/.f64 1/2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 4)
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(*.f64 (/.f64 1/4 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 8)
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(*.f64 (/.f64 8 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 1/4)
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(*.f64 16 (/.f64 1/2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4)))
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(*.f64 16 (*.f64 1/2 (/.f64 1/4 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(*.f64 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 2)
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(*.f64 1/4 (/.f64 8 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(*.f64 (/.f64 1/2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4)) 16)
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(*.f64 (*.f64 2 (/.f64 8 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))) 1/8)
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(*.f64 32 (/.f64 1 (*.f64 4 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4))))
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(*.f64 32 (/.f64 1/2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4))))
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(*.f64 (*.f64 (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 1/2) 2)
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(*.f64 (*.f64 1/2 (/.f64 1/2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))) 8)
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(*.f64 (*.f64 1/2 (/.f64 1/4 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))) 16)
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(*.f64 (*.f64 1/2 (/.f64 1 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))) 4)
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(*.f64 1/8 (*.f64 2 (/.f64 8 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(*.f64 (/.f64 1 (*.f64 4 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4))) 32)
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(*.f64 (/.f64 1/2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4))) 32)
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(pow.f64 (/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 1)
(/.f64 2 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(-.f64 (exp.f64 x) (/.f64 -1 (exp.f64 x)))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(-.f64 (exp.f64 (neg.f64 x)) (neg.f64 (exp.f64 x)))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(-.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 0)
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(-.f64 0 (-.f64 (/.f64 -1 (exp.f64 x)) (exp.f64 x)))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(-.f64 (/.f64 2 (exp.f64 x)) (+.f64 (exp.f64 (neg.f64 x)) (neg.f64 (exp.f64 x))))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(-.f64 (*.f64 2 (exp.f64 x)) (+.f64 (exp.f64 x) (/.f64 -1 (exp.f64 x))))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(-.f64 (/.f64 1/2 (exp.f64 x)) (-.f64 (neg.f64 (exp.f64 x)) (/.f64 1/2 (exp.f64 x))))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(-.f64 (/.f64 1/2 (exp.f64 x)) (+.f64 (/.f64 -1/2 (exp.f64 x)) (neg.f64 (exp.f64 x))))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(-.f64 (/.f64 (exp.f64 x) 2) (-.f64 (/.f64 (exp.f64 x) -2) (exp.f64 (neg.f64 x))))
(-.f64 (exp.f64 (neg.f64 x)) (-.f64 (/.f64 (exp.f64 x) -2) (/.f64 (exp.f64 x) 2)))
(+.f64 (exp.f64 (neg.f64 x)) (-.f64 (/.f64 (exp.f64 x) 2) (/.f64 (exp.f64 x) -2)))
(-.f64 (/.f64 (exp.f64 x) 2) (+.f64 (/.f64 (exp.f64 x) -2) (/.f64 -1 (exp.f64 x))))
(-.f64 (exp.f64 (neg.f64 x)) (-.f64 (/.f64 (exp.f64 x) -2) (/.f64 (exp.f64 x) 2)))
(-.f64 (/.f64 (exp.f64 x) 2) (-.f64 (/.f64 (exp.f64 x) -2) (exp.f64 (neg.f64 x))))
(+.f64 (exp.f64 (neg.f64 x)) (-.f64 (/.f64 (exp.f64 x) 2) (/.f64 (exp.f64 x) -2)))
(-.f64 (+.f64 (exp.f64 (neg.f64 x)) (/.f64 (exp.f64 x) 2)) (/.f64 (exp.f64 x) -2))
(-.f64 (+.f64 (exp.f64 x) (/.f64 1/2 (exp.f64 x))) (/.f64 -1/2 (exp.f64 x)))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(-.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) -2))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(-.f64 (/.f64 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 3) 4) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) -4))
(-.f64 (/.f64 (*.f64 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) 3) 4) (/.f64 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) -4))
(-.f64 (-.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4) (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) -2)) (-.f64 0 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4)))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(-.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 (neg.f64 x))) (-.f64 (/.f64 -1 (exp.f64 x)) (exp.f64 x)))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(-.f64 (-.f64 (exp.f64 x) (exp.f64 x)) (-.f64 (/.f64 -1 (exp.f64 x)) (exp.f64 x)))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(*.f64 2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1/2))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1)
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(*.f64 1 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(*.f64 -1 (-.f64 (/.f64 -1 (exp.f64 x)) (exp.f64 x)))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(*.f64 (*.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 1/2)
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(*.f64 (-.f64 (/.f64 -1 (exp.f64 x)) (exp.f64 x)) -1)
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(*.f64 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4) 1/4)
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(*.f64 -2 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) -2))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(*.f64 1/2 (*.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) -2) -2)
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(*.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4)) 1/8)
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(*.f64 1/4 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(*.f64 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1/2) 2)
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(*.f64 1/8 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4)))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1)
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(/.f64 (*.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) 2)
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(/.f64 (-.f64 (/.f64 -1 (exp.f64 x)) (exp.f64 x)) -1)
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(/.f64 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4) 4)
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(/.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4)) 8)
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(/.f64 (*.f64 4 (*.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4)) 16)
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(/.f64 (-.f64 (*.f64 (exp.f64 x) 4) (/.f64 -4 (exp.f64 x))) 4)
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(/.f64 (-.f64 (/.f64 4 (exp.f64 x)) (neg.f64 (*.f64 (exp.f64 x) 4))) 4)
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(pow.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1)
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))
(neg.f64 (-.f64 (/.f64 -1 (exp.f64 x)) (exp.f64 x)))
(+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))

eval85.0ms (0.9%)

Compiler

Compiled 1243 to 690 computations (44.5% saved)

prune35.0ms (0.4%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New95398
Fresh000
Picked011
Done000
Total95499
Error
0b
Counts
99 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
13.9b
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
31.4b
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
30.9b
1
Compiler

Compiled 27 to 23 computations (14.8% saved)

localize29.0ms (0.3%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
Compiler

Compiled 20 to 16 computations (20% saved)

series1.0ms (0%)

Counts
1 → 3
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
0.0ms
x
@0
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
0.0ms
x
@-inf
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))

rewrite368.0ms (3.9%)

Algorithm
batch-egg-rewrite
Rules
1092×rational_best-simplify-75
1062×rational_best-simplify-56
1056×rational_best-4
1056×rational_best-2
1056×rational_best-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
16119
210619
321719
464419
5284819
Stop Event
node limit
Counts
1 → 43
Calls
Call 1
Inputs
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 -1/2 (pow.f64 x 2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 x 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1/2 (*.f64 (pow.f64 x 2) -1/4)) (+.f64 -1/2 (/.f64 (pow.f64 x 2) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (pow.f64 x 2) -1/4) (+.f64 -1/2 (+.f64 -1/2 (/.f64 (pow.f64 x 2) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (pow.f64 x 2) -1/4) (+.f64 -1 (/.f64 (pow.f64 x 2) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (pow.f64 x 2) -1/4) (/.f64 (+.f64 -2 (*.f64 (pow.f64 x 2) 1/2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (pow.f64 x 2) -1/4)) (/.f64 (pow.f64 x 2) 4))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 -1/2 (pow.f64 x 2)) 1/2) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (neg.f64 (pow.f64 x 2)) 8) (-.f64 (+.f64 -1 (/.f64 (pow.f64 x 2) 4)) (/.f64 (neg.f64 (pow.f64 x 2)) 8)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (-.f64 2 (pow.f64 x 2)) 8) (*.f64 -3 (/.f64 (-.f64 2 (pow.f64 x 2)) 8)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (+.f64 1/2 (*.f64 (pow.f64 x 2) -1/4)) (/.f64 (-.f64 2 (pow.f64 x 2)) 8)) (neg.f64 (/.f64 (-.f64 2 (pow.f64 x 2)) 8)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 -3 (+.f64 -1/2 (/.f64 (pow.f64 x 2) 4))) 2) (/.f64 (+.f64 -1/2 (/.f64 (pow.f64 x 2) 4)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 (-.f64 2 (pow.f64 x 2)) 3/2) 4) (/.f64 (+.f64 -1 (*.f64 (pow.f64 x 2) 1/2)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 (-.f64 2 (*.f64 (pow.f64 x 2) 3)) 1/4) 2) (/.f64 (+.f64 (/.f64 (pow.f64 x 2) 4) -3/2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 1/2 (-.f64 2 (*.f64 (pow.f64 x 2) 3))) 4) (/.f64 (+.f64 (*.f64 (pow.f64 x 2) 1/2) -3) 4))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 (pow.f64 x 2) -1/4) (/.f64 (-.f64 2 (pow.f64 x 2)) 8)) (-.f64 -1/2 (/.f64 (-.f64 2 (pow.f64 x 2)) 8)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (/.f64 (neg.f64 (pow.f64 x 2)) 8) (/.f64 (pow.f64 x 2) 4)) (-.f64 -1 (/.f64 (neg.f64 (pow.f64 x 2)) 8)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (/.f64 (neg.f64 (pow.f64 x 2)) 8) (neg.f64 (/.f64 (neg.f64 (pow.f64 x 2)) 8))) (-.f64 (-.f64 -1 (/.f64 (neg.f64 (pow.f64 x 2)) 8)) (/.f64 (neg.f64 (pow.f64 x 2)) 8)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (/.f64 (-.f64 2 (pow.f64 x 2)) 8) (/.f64 (pow.f64 x 2) 4)) (-.f64 -1/2 (/.f64 (-.f64 2 (pow.f64 x 2)) 8)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (/.f64 (-.f64 2 (pow.f64 x 2)) 8) (+.f64 -1/2 (/.f64 (pow.f64 x 2) 4))) (neg.f64 (/.f64 (-.f64 2 (pow.f64 x 2)) 8)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (/.f64 (neg.f64 (pow.f64 x 2)) 8) (+.f64 -1 (/.f64 (pow.f64 x 2) 4))) (neg.f64 (/.f64 (neg.f64 (pow.f64 x 2)) 8)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (/.f64 (-.f64 2 (pow.f64 x 2)) 8) -1/2) (-.f64 (/.f64 (pow.f64 x 2) 4) (/.f64 (-.f64 2 (pow.f64 x 2)) 8)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (/.f64 (-.f64 2 (pow.f64 x 2)) 8) (neg.f64 (/.f64 (-.f64 2 (pow.f64 x 2)) 8))) (-.f64 (neg.f64 (/.f64 (-.f64 2 (pow.f64 x 2)) 8)) (/.f64 (-.f64 2 (pow.f64 x 2)) 8)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (/.f64 (neg.f64 (pow.f64 x 2)) 8) -1/2) (/.f64 (-.f64 0 (-.f64 2 (*.f64 (pow.f64 x 2) 3/2))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 1 (*.f64 -1/2 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 1/2 (*.f64 (pow.f64 x 2) -1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 2 (pow.f64 x 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (+.f64 -1/2 (/.f64 (pow.f64 x 2) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (-.f64 2 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 -2 (-.f64 (pow.f64 x 2) 2)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1/2 (*.f64 (pow.f64 x 2) -1/4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 -2 (-.f64 (pow.f64 x 2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 2 (pow.f64 x 2)) 4) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (-.f64 2 (pow.f64 x 2)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 -2 (-.f64 (pow.f64 x 2) 2)) 4) 1/16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 2 (pow.f64 x 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -2 (-.f64 (pow.f64 x 2) 2)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 2 (pow.f64 x 2)) 4) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 -2 (-.f64 (pow.f64 x 2) 2)) 4) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (-.f64 (-.f64 2 (pow.f64 x 2)) -2) (pow.f64 x 2)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 x 2))) 1)))))

simplify248.0ms (2.6%)

Algorithm
egg-herbie
Rules
936×rational_best-simplify-3
806×rational_best-simplify-65
624×rational_best-simplify-66
606×rational_best-simplify-83
592×rational_best-simplify-75
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01291058
13271054
28431030
32830988
Stop Event
node limit
Counts
46 → 66
Calls
Call 1
Inputs
1
(*.f64 -1/2 (pow.f64 x 2))
(*.f64 -1/2 (pow.f64 x 2))
(-.f64 (*.f64 -1/2 (pow.f64 x 2)) -1)
(-.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 x 2))) 0)
(-.f64 (+.f64 1/2 (*.f64 (pow.f64 x 2) -1/4)) (+.f64 -1/2 (/.f64 (pow.f64 x 2) 4)))
(-.f64 (*.f64 (pow.f64 x 2) -1/4) (+.f64 -1/2 (+.f64 -1/2 (/.f64 (pow.f64 x 2) 4))))
(-.f64 (*.f64 (pow.f64 x 2) -1/4) (+.f64 -1 (/.f64 (pow.f64 x 2) 4)))
(-.f64 (*.f64 (pow.f64 x 2) -1/4) (/.f64 (+.f64 -2 (*.f64 (pow.f64 x 2) 1/2)) 2))
(-.f64 (+.f64 1 (*.f64 (pow.f64 x 2) -1/4)) (/.f64 (pow.f64 x 2) 4))
(-.f64 (+.f64 (*.f64 -1/2 (pow.f64 x 2)) 1/2) -1/2)
(-.f64 (/.f64 (neg.f64 (pow.f64 x 2)) 8) (-.f64 (+.f64 -1 (/.f64 (pow.f64 x 2) 4)) (/.f64 (neg.f64 (pow.f64 x 2)) 8)))
(-.f64 (/.f64 (-.f64 2 (pow.f64 x 2)) 8) (*.f64 -3 (/.f64 (-.f64 2 (pow.f64 x 2)) 8)))
(-.f64 (+.f64 (+.f64 1/2 (*.f64 (pow.f64 x 2) -1/4)) (/.f64 (-.f64 2 (pow.f64 x 2)) 8)) (neg.f64 (/.f64 (-.f64 2 (pow.f64 x 2)) 8)))
(-.f64 (/.f64 (*.f64 -3 (+.f64 -1/2 (/.f64 (pow.f64 x 2) 4))) 2) (/.f64 (+.f64 -1/2 (/.f64 (pow.f64 x 2) 4)) 2))
(-.f64 (/.f64 (*.f64 (-.f64 2 (pow.f64 x 2)) 3/2) 4) (/.f64 (+.f64 -1 (*.f64 (pow.f64 x 2) 1/2)) 4))
(-.f64 (/.f64 (*.f64 (-.f64 2 (*.f64 (pow.f64 x 2) 3)) 1/4) 2) (/.f64 (+.f64 (/.f64 (pow.f64 x 2) 4) -3/2) 2))
(-.f64 (/.f64 (*.f64 1/2 (-.f64 2 (*.f64 (pow.f64 x 2) 3))) 4) (/.f64 (+.f64 (*.f64 (pow.f64 x 2) 1/2) -3) 4))
(-.f64 (+.f64 (*.f64 (pow.f64 x 2) -1/4) (/.f64 (-.f64 2 (pow.f64 x 2)) 8)) (-.f64 -1/2 (/.f64 (-.f64 2 (pow.f64 x 2)) 8)))
(-.f64 (-.f64 (/.f64 (neg.f64 (pow.f64 x 2)) 8) (/.f64 (pow.f64 x 2) 4)) (-.f64 -1 (/.f64 (neg.f64 (pow.f64 x 2)) 8)))
(-.f64 (-.f64 (/.f64 (neg.f64 (pow.f64 x 2)) 8) (neg.f64 (/.f64 (neg.f64 (pow.f64 x 2)) 8))) (-.f64 (-.f64 -1 (/.f64 (neg.f64 (pow.f64 x 2)) 8)) (/.f64 (neg.f64 (pow.f64 x 2)) 8)))
(-.f64 (-.f64 (/.f64 (-.f64 2 (pow.f64 x 2)) 8) (/.f64 (pow.f64 x 2) 4)) (-.f64 -1/2 (/.f64 (-.f64 2 (pow.f64 x 2)) 8)))
(-.f64 (-.f64 (/.f64 (-.f64 2 (pow.f64 x 2)) 8) (+.f64 -1/2 (/.f64 (pow.f64 x 2) 4))) (neg.f64 (/.f64 (-.f64 2 (pow.f64 x 2)) 8)))
(-.f64 (-.f64 (/.f64 (neg.f64 (pow.f64 x 2)) 8) (+.f64 -1 (/.f64 (pow.f64 x 2) 4))) (neg.f64 (/.f64 (neg.f64 (pow.f64 x 2)) 8)))
(-.f64 (-.f64 (/.f64 (-.f64 2 (pow.f64 x 2)) 8) -1/2) (-.f64 (/.f64 (pow.f64 x 2) 4) (/.f64 (-.f64 2 (pow.f64 x 2)) 8)))
(-.f64 (-.f64 (/.f64 (-.f64 2 (pow.f64 x 2)) 8) (neg.f64 (/.f64 (-.f64 2 (pow.f64 x 2)) 8))) (-.f64 (neg.f64 (/.f64 (-.f64 2 (pow.f64 x 2)) 8)) (/.f64 (-.f64 2 (pow.f64 x 2)) 8)))
(-.f64 (-.f64 (/.f64 (neg.f64 (pow.f64 x 2)) 8) -1/2) (/.f64 (-.f64 0 (-.f64 2 (*.f64 (pow.f64 x 2) 3/2))) 4))
(*.f64 1 (+.f64 1 (*.f64 -1/2 (pow.f64 x 2))))
(*.f64 2 (+.f64 1/2 (*.f64 (pow.f64 x 2) -1/4)))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 x 2))) 1)
(*.f64 (-.f64 2 (pow.f64 x 2)) 1/2)
(*.f64 -2 (+.f64 -1/2 (/.f64 (pow.f64 x 2) 4)))
(*.f64 1/2 (-.f64 2 (pow.f64 x 2)))
(*.f64 (*.f64 -2 (-.f64 (pow.f64 x 2) 2)) 1/4)
(*.f64 (+.f64 1/2 (*.f64 (pow.f64 x 2) -1/4)) 2)
(*.f64 1/4 (*.f64 -2 (-.f64 (pow.f64 x 2) 2)))
(*.f64 (*.f64 (-.f64 2 (pow.f64 x 2)) 4) 1/8)
(*.f64 1/8 (*.f64 (-.f64 2 (pow.f64 x 2)) 4))
(*.f64 (*.f64 (*.f64 -2 (-.f64 (pow.f64 x 2) 2)) 4) 1/16)
(/.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 x 2))) 1)
(/.f64 (-.f64 2 (pow.f64 x 2)) 2)
(/.f64 (*.f64 -2 (-.f64 (pow.f64 x 2) 2)) 4)
(/.f64 (*.f64 (-.f64 2 (pow.f64 x 2)) 4) 8)
(/.f64 (*.f64 (*.f64 -2 (-.f64 (pow.f64 x 2) 2)) 4) 16)
(/.f64 (-.f64 (-.f64 (-.f64 2 (pow.f64 x 2)) -2) (pow.f64 x 2)) 4)
(pow.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 x 2))) 1)
Outputs
1
(*.f64 -1/2 (pow.f64 x 2))
(*.f64 -1/2 (pow.f64 x 2))
(-.f64 (*.f64 -1/2 (pow.f64 x 2)) -1)
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(-.f64 1 (/.f64 (pow.f64 x 2) 2))
(-.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 x 2))) 0)
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(-.f64 1 (/.f64 (pow.f64 x 2) 2))
(-.f64 (+.f64 1/2 (*.f64 (pow.f64 x 2) -1/4)) (+.f64 -1/2 (/.f64 (pow.f64 x 2) 4)))
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(-.f64 1 (/.f64 (pow.f64 x 2) 2))
(-.f64 (*.f64 (pow.f64 x 2) -1/4) (+.f64 -1/2 (+.f64 -1/2 (/.f64 (pow.f64 x 2) 4))))
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(-.f64 1 (/.f64 (pow.f64 x 2) 2))
(-.f64 (*.f64 (pow.f64 x 2) -1/4) (+.f64 -1 (/.f64 (pow.f64 x 2) 4)))
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(-.f64 1 (/.f64 (pow.f64 x 2) 2))
(-.f64 (*.f64 (pow.f64 x 2) -1/4) (/.f64 (+.f64 -2 (*.f64 (pow.f64 x 2) 1/2)) 2))
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(-.f64 1 (/.f64 (pow.f64 x 2) 2))
(-.f64 (+.f64 1 (*.f64 (pow.f64 x 2) -1/4)) (/.f64 (pow.f64 x 2) 4))
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(-.f64 1 (/.f64 (pow.f64 x 2) 2))
(-.f64 (+.f64 (*.f64 -1/2 (pow.f64 x 2)) 1/2) -1/2)
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(-.f64 1 (/.f64 (pow.f64 x 2) 2))
(-.f64 (/.f64 (neg.f64 (pow.f64 x 2)) 8) (-.f64 (+.f64 -1 (/.f64 (pow.f64 x 2) 4)) (/.f64 (neg.f64 (pow.f64 x 2)) 8)))
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(-.f64 1 (/.f64 (pow.f64 x 2) 2))
(-.f64 (/.f64 (-.f64 2 (pow.f64 x 2)) 8) (*.f64 -3 (/.f64 (-.f64 2 (pow.f64 x 2)) 8)))
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(-.f64 1 (/.f64 (pow.f64 x 2) 2))
(-.f64 (+.f64 (+.f64 1/2 (*.f64 (pow.f64 x 2) -1/4)) (/.f64 (-.f64 2 (pow.f64 x 2)) 8)) (neg.f64 (/.f64 (-.f64 2 (pow.f64 x 2)) 8)))
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(-.f64 1 (/.f64 (pow.f64 x 2) 2))
(-.f64 (/.f64 (*.f64 -3 (+.f64 -1/2 (/.f64 (pow.f64 x 2) 4))) 2) (/.f64 (+.f64 -1/2 (/.f64 (pow.f64 x 2) 4)) 2))
(/.f64 (-.f64 (*.f64 (+.f64 -1/2 (/.f64 (pow.f64 x 2) 4)) -3) (+.f64 -1/2 (/.f64 (pow.f64 x 2) 4))) 2)
(-.f64 (/.f64 (*.f64 (+.f64 -1/2 (/.f64 (pow.f64 x 2) 4)) -3) 2) (+.f64 -1/4 (/.f64 (pow.f64 x 2) 8)))
(+.f64 (/.f64 (pow.f64 x 2) -8) (-.f64 (/.f64 (*.f64 (+.f64 -1/2 (/.f64 (pow.f64 x 2) 4)) -3) 2) -1/4))
(+.f64 1/4 (/.f64 (-.f64 (*.f64 (*.f64 -1/4 (-.f64 2 (pow.f64 x 2))) -12) (pow.f64 x 2)) 8))
(-.f64 (/.f64 (*.f64 (-.f64 2 (pow.f64 x 2)) 3/2) 4) (/.f64 (+.f64 -1 (*.f64 (pow.f64 x 2) 1/2)) 4))
(/.f64 (-.f64 (*.f64 (-.f64 2 (pow.f64 x 2)) 3/2) (+.f64 -1 (*.f64 (pow.f64 x 2) 1/2))) 4)
(-.f64 1/4 (/.f64 (-.f64 (*.f64 (pow.f64 x 2) 1/2) (*.f64 (-.f64 2 (pow.f64 x 2)) 3/2)) 4))
(+.f64 1/4 (/.f64 (-.f64 (*.f64 (-.f64 2 (pow.f64 x 2)) 3) (pow.f64 x 2)) 8))
(-.f64 (/.f64 (*.f64 (-.f64 2 (*.f64 (pow.f64 x 2) 3)) 1/4) 2) (/.f64 (+.f64 (/.f64 (pow.f64 x 2) 4) -3/2) 2))
(/.f64 (-.f64 (*.f64 (-.f64 2 (*.f64 (pow.f64 x 2) 3)) 1/4) (+.f64 (/.f64 (pow.f64 x 2) 4) -3/2)) 2)
(+.f64 (-.f64 (/.f64 (*.f64 (-.f64 2 (*.f64 (pow.f64 x 2) 3)) 1/4) 2) (/.f64 (pow.f64 x 2) 8)) 3/4)
(+.f64 3/4 (/.f64 (-.f64 (-.f64 2 (*.f64 (pow.f64 x 2) 3)) (pow.f64 x 2)) 8))
(-.f64 (/.f64 (*.f64 1/2 (-.f64 2 (*.f64 (pow.f64 x 2) 3))) 4) (/.f64 (+.f64 (*.f64 (pow.f64 x 2) 1/2) -3) 4))
(/.f64 (-.f64 (*.f64 (-.f64 2 (*.f64 (pow.f64 x 2) 3)) 1/4) (+.f64 (/.f64 (pow.f64 x 2) 4) -3/2)) 2)
(+.f64 (-.f64 (/.f64 (*.f64 (-.f64 2 (*.f64 (pow.f64 x 2) 3)) 1/4) 2) (/.f64 (pow.f64 x 2) 8)) 3/4)
(+.f64 3/4 (/.f64 (-.f64 (-.f64 2 (*.f64 (pow.f64 x 2) 3)) (pow.f64 x 2)) 8))
(-.f64 (+.f64 (*.f64 (pow.f64 x 2) -1/4) (/.f64 (-.f64 2 (pow.f64 x 2)) 8)) (-.f64 -1/2 (/.f64 (-.f64 2 (pow.f64 x 2)) 8)))
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(-.f64 1 (/.f64 (pow.f64 x 2) 2))
(-.f64 (-.f64 (/.f64 (neg.f64 (pow.f64 x 2)) 8) (/.f64 (pow.f64 x 2) 4)) (-.f64 -1 (/.f64 (neg.f64 (pow.f64 x 2)) 8)))
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(-.f64 1 (/.f64 (pow.f64 x 2) 2))
(-.f64 (-.f64 (/.f64 (neg.f64 (pow.f64 x 2)) 8) (neg.f64 (/.f64 (neg.f64 (pow.f64 x 2)) 8))) (-.f64 (-.f64 -1 (/.f64 (neg.f64 (pow.f64 x 2)) 8)) (/.f64 (neg.f64 (pow.f64 x 2)) 8)))
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(-.f64 1 (/.f64 (pow.f64 x 2) 2))
(-.f64 (-.f64 (/.f64 (-.f64 2 (pow.f64 x 2)) 8) (/.f64 (pow.f64 x 2) 4)) (-.f64 -1/2 (/.f64 (-.f64 2 (pow.f64 x 2)) 8)))
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(-.f64 1 (/.f64 (pow.f64 x 2) 2))
(-.f64 (-.f64 (/.f64 (-.f64 2 (pow.f64 x 2)) 8) (+.f64 -1/2 (/.f64 (pow.f64 x 2) 4))) (neg.f64 (/.f64 (-.f64 2 (pow.f64 x 2)) 8)))
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(-.f64 1 (/.f64 (pow.f64 x 2) 2))
(-.f64 (-.f64 (/.f64 (neg.f64 (pow.f64 x 2)) 8) (+.f64 -1 (/.f64 (pow.f64 x 2) 4))) (neg.f64 (/.f64 (neg.f64 (pow.f64 x 2)) 8)))
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(-.f64 1 (/.f64 (pow.f64 x 2) 2))
(-.f64 (-.f64 (/.f64 (-.f64 2 (pow.f64 x 2)) 8) -1/2) (-.f64 (/.f64 (pow.f64 x 2) 4) (/.f64 (-.f64 2 (pow.f64 x 2)) 8)))
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(-.f64 1 (/.f64 (pow.f64 x 2) 2))
(-.f64 (-.f64 (/.f64 (-.f64 2 (pow.f64 x 2)) 8) (neg.f64 (/.f64 (-.f64 2 (pow.f64 x 2)) 8))) (-.f64 (neg.f64 (/.f64 (-.f64 2 (pow.f64 x 2)) 8)) (/.f64 (-.f64 2 (pow.f64 x 2)) 8)))
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(-.f64 1 (/.f64 (pow.f64 x 2) 2))
(-.f64 (-.f64 (/.f64 (neg.f64 (pow.f64 x 2)) 8) -1/2) (/.f64 (-.f64 0 (-.f64 2 (*.f64 (pow.f64 x 2) 3/2))) 4))
(-.f64 (/.f64 (neg.f64 (pow.f64 x 2)) 8) (+.f64 (/.f64 (-.f64 (*.f64 (pow.f64 x 2) 3/2) 2) 4) -1/2))
(+.f64 (-.f64 (/.f64 (pow.f64 x 2) -8) (-.f64 (/.f64 (*.f64 (pow.f64 x 2) 3/2) 4) 1/2)) 1/2)
(-.f64 1/2 (-.f64 (/.f64 (*.f64 (pow.f64 x 2) 3/2) 4) (-.f64 (/.f64 (pow.f64 x 2) -8) -1/2)))
(+.f64 1/2 (-.f64 1/2 (/.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 2) 3)) 8)))
(*.f64 1 (+.f64 1 (*.f64 -1/2 (pow.f64 x 2))))
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(-.f64 1 (/.f64 (pow.f64 x 2) 2))
(*.f64 2 (+.f64 1/2 (*.f64 (pow.f64 x 2) -1/4)))
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(-.f64 1 (/.f64 (pow.f64 x 2) 2))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 x 2))) 1)
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(-.f64 1 (/.f64 (pow.f64 x 2) 2))
(*.f64 (-.f64 2 (pow.f64 x 2)) 1/2)
(*.f64 1/2 (-.f64 2 (pow.f64 x 2)))
(*.f64 -2 (+.f64 -1/2 (/.f64 (pow.f64 x 2) 4)))
(*.f64 (+.f64 -1/2 (/.f64 (pow.f64 x 2) 4)) -2)
(*.f64 -1/2 (+.f64 (pow.f64 x 2) -2))
(*.f64 1/2 (-.f64 2 (pow.f64 x 2)))
(*.f64 (*.f64 -2 (-.f64 (pow.f64 x 2) 2)) 1/4)
(*.f64 (+.f64 -1/2 (/.f64 (pow.f64 x 2) 4)) -2)
(*.f64 -1/2 (+.f64 (pow.f64 x 2) -2))
(*.f64 (+.f64 1/2 (*.f64 (pow.f64 x 2) -1/4)) 2)
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(-.f64 1 (/.f64 (pow.f64 x 2) 2))
(*.f64 1/4 (*.f64 -2 (-.f64 (pow.f64 x 2) 2)))
(*.f64 (+.f64 -1/2 (/.f64 (pow.f64 x 2) 4)) -2)
(*.f64 -1/2 (+.f64 (pow.f64 x 2) -2))
(*.f64 (*.f64 (-.f64 2 (pow.f64 x 2)) 4) 1/8)
(*.f64 1/2 (-.f64 2 (pow.f64 x 2)))
(*.f64 1/8 (*.f64 (-.f64 2 (pow.f64 x 2)) 4))
(*.f64 1/2 (-.f64 2 (pow.f64 x 2)))
(*.f64 (*.f64 (*.f64 -2 (-.f64 (pow.f64 x 2) 2)) 4) 1/16)
(*.f64 (+.f64 -1/2 (/.f64 (pow.f64 x 2) 4)) -2)
(*.f64 -1/2 (+.f64 (pow.f64 x 2) -2))
(/.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 x 2))) 1)
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(-.f64 1 (/.f64 (pow.f64 x 2) 2))
(/.f64 (-.f64 2 (pow.f64 x 2)) 2)
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(-.f64 1 (/.f64 (pow.f64 x 2) 2))
(/.f64 (*.f64 -2 (-.f64 (pow.f64 x 2) 2)) 4)
(/.f64 (*.f64 -2 (+.f64 (pow.f64 x 2) -2)) 4)
(/.f64 (*.f64 (-.f64 2 (pow.f64 x 2)) 4) 8)
(/.f64 (*.f64 4 (-.f64 2 (pow.f64 x 2))) 8)
(/.f64 (*.f64 (-.f64 2 (pow.f64 x 2)) 8) 16)
(/.f64 (*.f64 (*.f64 -2 (-.f64 (pow.f64 x 2) 2)) 4) 16)
(/.f64 (*.f64 -2 (-.f64 (pow.f64 x 2) 2)) 4)
(/.f64 (*.f64 -2 (+.f64 (pow.f64 x 2) -2)) 4)
(/.f64 (-.f64 (-.f64 (-.f64 2 (pow.f64 x 2)) -2) (pow.f64 x 2)) 4)
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(-.f64 1 (/.f64 (pow.f64 x 2) 2))
(pow.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 x 2))) 1)
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(-.f64 1 (/.f64 (pow.f64 x 2) 2))

localize43.0ms (0.5%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.8b
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
Compiler

Compiled 18 to 14 computations (22.2% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@inf
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
0.0ms
x
@-inf
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
0.0ms
x
@0
(/.f64 2 (+.f64 2 (pow.f64 x 2)))

rewrite316.0ms (3.3%)

Algorithm
batch-egg-rewrite
Rules
814×rational_best-simplify-83
654×rational_best-simplify-48
646×rational_best-simplify-41
638×rational_best-simplify-57
602×rational_best-simplify-52
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0719
14919
211219
329119
4109219
5675419
Stop Event
node limit
Counts
1 → 39
Calls
Call 1
Inputs
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 2 (+.f64 2 (pow.f64 x 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 2 (+.f64 2 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1/2 (+.f64 2 (pow.f64 x 2))) (/.f64 (/.f64 3 (+.f64 2 (pow.f64 x 2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1/2 (+.f64 2 (pow.f64 x 2))) (/.f64 (/.f64 6 (+.f64 2 (pow.f64 x 2))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1 (+.f64 2 (pow.f64 x 2))) (/.f64 1 (+.f64 2 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 2 (+.f64 2 (pow.f64 x 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 1 (+.f64 2 (pow.f64 x 2))) (neg.f64 (/.f64 1 (+.f64 2 (pow.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (/.f64 1/2 (+.f64 2 (pow.f64 x 2))) (/.f64 1 (+.f64 2 (pow.f64 x 2)))) (neg.f64 (/.f64 1/2 (+.f64 2 (pow.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (/.f64 3 (+.f64 2 (pow.f64 x 2))) 2) (/.f64 (neg.f64 (/.f64 1 (+.f64 2 (pow.f64 x 2)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (/.f64 6 (+.f64 2 (pow.f64 x 2))) 4) (/.f64 (/.f64 2 (-.f64 -2 (pow.f64 x 2))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 1 (+.f64 2 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (/.f64 2 (+.f64 2 (pow.f64 x 2))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (+.f64 2 (pow.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 2 (+.f64 2 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 1/2 (+.f64 2 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 1/2 (/.f64 1 (+.f64 2 (pow.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 4 (+.f64 2 (pow.f64 x 2))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (/.f64 1/4 (+.f64 2 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 1/2 (/.f64 1/2 (+.f64 2 (pow.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (/.f64 4 (+.f64 2 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (+.f64 2 (pow.f64 x 2))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/4 (+.f64 2 (pow.f64 x 2))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 8 (+.f64 2 (pow.f64 x 2))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 16 (/.f64 1/2 (*.f64 (-.f64 -2 (pow.f64 x 2)) -4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 16 (*.f64 1/2 (/.f64 1/4 (+.f64 2 (pow.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 2 (pow.f64 x 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (/.f64 8 (+.f64 2 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (*.f64 (-.f64 -2 (pow.f64 x 2)) -4)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 16 (+.f64 2 (pow.f64 x 2))) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 32 (/.f64 1 (*.f64 4 (*.f64 (-.f64 -2 (pow.f64 x 2)) -4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 32 (/.f64 1/2 (*.f64 2 (*.f64 (-.f64 -2 (pow.f64 x 2)) -4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 2 (+.f64 2 (pow.f64 x 2))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (/.f64 1/2 (+.f64 2 (pow.f64 x 2)))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (/.f64 1/4 (+.f64 2 (pow.f64 x 2)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (/.f64 1 (+.f64 2 (pow.f64 x 2)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (/.f64 16 (+.f64 2 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 4 (*.f64 (-.f64 -2 (pow.f64 x 2)) -4))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (*.f64 2 (*.f64 (-.f64 -2 (pow.f64 x 2)) -4))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 2 (+.f64 2 (pow.f64 x 2))) 1)))))

simplify285.0ms (3%)

Algorithm
egg-herbie
Rules
1422×rational_best-simplify-1
1138×rational_best-simplify-66
910×rational_best-simplify-62
780×rational_best-simplify-50
768×rational_best-simplify-3
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01151377
12571341
25761197
316001197
453441197
Stop Event
node limit
Counts
51 → 67
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1/4 (pow.f64 x 4)) (*.f64 -1/2 (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 1/4 (pow.f64 x 4)) (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 -1/8 (pow.f64 x 6)))))
(/.f64 2 (pow.f64 x 2))
(-.f64 (*.f64 2 (/.f64 1 (pow.f64 x 2))) (*.f64 4 (/.f64 1 (pow.f64 x 4))))
(-.f64 (+.f64 (*.f64 8 (/.f64 1 (pow.f64 x 6))) (*.f64 2 (/.f64 1 (pow.f64 x 2)))) (*.f64 4 (/.f64 1 (pow.f64 x 4))))
(-.f64 (+.f64 (*.f64 8 (/.f64 1 (pow.f64 x 6))) (*.f64 2 (/.f64 1 (pow.f64 x 2)))) (+.f64 (*.f64 4 (/.f64 1 (pow.f64 x 4))) (*.f64 16 (/.f64 1 (pow.f64 x 8)))))
(/.f64 2 (pow.f64 x 2))
(-.f64 (*.f64 2 (/.f64 1 (pow.f64 x 2))) (*.f64 4 (/.f64 1 (pow.f64 x 4))))
(-.f64 (+.f64 (*.f64 8 (/.f64 1 (pow.f64 x 6))) (*.f64 2 (/.f64 1 (pow.f64 x 2)))) (*.f64 4 (/.f64 1 (pow.f64 x 4))))
(-.f64 (+.f64 (*.f64 8 (/.f64 1 (pow.f64 x 6))) (*.f64 2 (/.f64 1 (pow.f64 x 2)))) (+.f64 (*.f64 4 (/.f64 1 (pow.f64 x 4))) (*.f64 16 (/.f64 1 (pow.f64 x 8)))))
(+.f64 (/.f64 2 (+.f64 2 (pow.f64 x 2))) 0)
(+.f64 0 (/.f64 2 (+.f64 2 (pow.f64 x 2))))
(+.f64 (/.f64 1/2 (+.f64 2 (pow.f64 x 2))) (/.f64 (/.f64 3 (+.f64 2 (pow.f64 x 2))) 2))
(+.f64 (/.f64 1/2 (+.f64 2 (pow.f64 x 2))) (/.f64 (/.f64 6 (+.f64 2 (pow.f64 x 2))) 4))
(+.f64 (/.f64 1 (+.f64 2 (pow.f64 x 2))) (/.f64 1 (+.f64 2 (pow.f64 x 2))))
(-.f64 (/.f64 2 (+.f64 2 (pow.f64 x 2))) 0)
(-.f64 (/.f64 1 (+.f64 2 (pow.f64 x 2))) (neg.f64 (/.f64 1 (+.f64 2 (pow.f64 x 2)))))
(-.f64 (+.f64 (/.f64 1/2 (+.f64 2 (pow.f64 x 2))) (/.f64 1 (+.f64 2 (pow.f64 x 2)))) (neg.f64 (/.f64 1/2 (+.f64 2 (pow.f64 x 2)))))
(-.f64 (/.f64 (/.f64 3 (+.f64 2 (pow.f64 x 2))) 2) (/.f64 (neg.f64 (/.f64 1 (+.f64 2 (pow.f64 x 2)))) 2))
(-.f64 (/.f64 (/.f64 6 (+.f64 2 (pow.f64 x 2))) 4) (/.f64 (/.f64 2 (-.f64 -2 (pow.f64 x 2))) 4))
(*.f64 2 (/.f64 1 (+.f64 2 (pow.f64 x 2))))
(*.f64 2 (*.f64 (/.f64 2 (+.f64 2 (pow.f64 x 2))) 1/2))
(*.f64 (/.f64 2 (+.f64 2 (pow.f64 x 2))) 1)
(*.f64 1 (/.f64 2 (+.f64 2 (pow.f64 x 2))))
(*.f64 4 (/.f64 1/2 (+.f64 2 (pow.f64 x 2))))
(*.f64 4 (*.f64 1/2 (/.f64 1 (+.f64 2 (pow.f64 x 2)))))
(*.f64 (/.f64 4 (+.f64 2 (pow.f64 x 2))) 1/2)
(*.f64 8 (/.f64 1/4 (+.f64 2 (pow.f64 x 2))))
(*.f64 8 (*.f64 1/2 (/.f64 1/2 (+.f64 2 (pow.f64 x 2)))))
(*.f64 1/2 (/.f64 4 (+.f64 2 (pow.f64 x 2))))
(*.f64 (/.f64 1/2 (+.f64 2 (pow.f64 x 2))) 4)
(*.f64 (/.f64 1/4 (+.f64 2 (pow.f64 x 2))) 8)
(*.f64 (/.f64 8 (+.f64 2 (pow.f64 x 2))) 1/4)
(*.f64 16 (/.f64 1/2 (*.f64 (-.f64 -2 (pow.f64 x 2)) -4)))
(*.f64 16 (*.f64 1/2 (/.f64 1/4 (+.f64 2 (pow.f64 x 2)))))
(*.f64 (/.f64 1 (+.f64 2 (pow.f64 x 2))) 2)
(*.f64 1/4 (/.f64 8 (+.f64 2 (pow.f64 x 2))))
(*.f64 (/.f64 1/2 (*.f64 (-.f64 -2 (pow.f64 x 2)) -4)) 16)
(*.f64 (/.f64 16 (+.f64 2 (pow.f64 x 2))) 1/8)
(*.f64 32 (/.f64 1 (*.f64 4 (*.f64 (-.f64 -2 (pow.f64 x 2)) -4))))
(*.f64 32 (/.f64 1/2 (*.f64 2 (*.f64 (-.f64 -2 (pow.f64 x 2)) -4))))
(*.f64 (*.f64 (/.f64 2 (+.f64 2 (pow.f64 x 2))) 1/2) 2)
(*.f64 (*.f64 1/2 (/.f64 1/2 (+.f64 2 (pow.f64 x 2)))) 8)
(*.f64 (*.f64 1/2 (/.f64 1/4 (+.f64 2 (pow.f64 x 2)))) 16)
(*.f64 (*.f64 1/2 (/.f64 1 (+.f64 2 (pow.f64 x 2)))) 4)
(*.f64 1/8 (/.f64 16 (+.f64 2 (pow.f64 x 2))))
(*.f64 (/.f64 1 (*.f64 4 (*.f64 (-.f64 -2 (pow.f64 x 2)) -4))) 32)
(*.f64 (/.f64 1/2 (*.f64 2 (*.f64 (-.f64 -2 (pow.f64 x 2)) -4))) 32)
(pow.f64 (/.f64 2 (+.f64 2 (pow.f64 x 2))) 1)
Outputs
1
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1/4 (pow.f64 x 4)) (*.f64 -1/2 (pow.f64 x 2))))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/4 (pow.f64 x 4)) 1))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 1 (*.f64 1/4 (pow.f64 x 4))))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/4 (pow.f64 x 4))))
(+.f64 1 (+.f64 (*.f64 1/4 (pow.f64 x 4)) (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 -1/8 (pow.f64 x 6)))))
(+.f64 1 (+.f64 (*.f64 -1/8 (pow.f64 x 6)) (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/4 (pow.f64 x 4)))))
(+.f64 1 (+.f64 (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/4 (pow.f64 x 4))) (*.f64 -1/8 (pow.f64 x 6))))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/4 (pow.f64 x 4)) (*.f64 -1/8 (pow.f64 x 6)))))
(/.f64 2 (pow.f64 x 2))
(-.f64 (*.f64 2 (/.f64 1 (pow.f64 x 2))) (*.f64 4 (/.f64 1 (pow.f64 x 4))))
(-.f64 (*.f64 1 (/.f64 2 (pow.f64 x 2))) (*.f64 1 (/.f64 4 (pow.f64 x 4))))
(-.f64 (/.f64 2 (pow.f64 x 2)) (/.f64 4 (pow.f64 x 4)))
(-.f64 (+.f64 (*.f64 8 (/.f64 1 (pow.f64 x 6))) (*.f64 2 (/.f64 1 (pow.f64 x 2)))) (*.f64 4 (/.f64 1 (pow.f64 x 4))))
(-.f64 (+.f64 (*.f64 1 (/.f64 2 (pow.f64 x 2))) (*.f64 1 (/.f64 8 (pow.f64 x 6)))) (*.f64 1 (/.f64 4 (pow.f64 x 4))))
(-.f64 (+.f64 (/.f64 2 (pow.f64 x 2)) (/.f64 8 (pow.f64 x 6))) (/.f64 4 (pow.f64 x 4)))
(+.f64 (+.f64 (/.f64 2 (pow.f64 x 2)) (/.f64 8 (pow.f64 x 6))) (/.f64 -4 (pow.f64 x 4)))
(-.f64 (+.f64 (*.f64 8 (/.f64 1 (pow.f64 x 6))) (*.f64 2 (/.f64 1 (pow.f64 x 2)))) (+.f64 (*.f64 4 (/.f64 1 (pow.f64 x 4))) (*.f64 16 (/.f64 1 (pow.f64 x 8)))))
(-.f64 (+.f64 (*.f64 1 (/.f64 2 (pow.f64 x 2))) (*.f64 1 (/.f64 8 (pow.f64 x 6)))) (+.f64 (*.f64 1 (/.f64 4 (pow.f64 x 4))) (*.f64 1 (/.f64 16 (pow.f64 x 8)))))
(-.f64 (+.f64 (/.f64 2 (pow.f64 x 2)) (/.f64 8 (pow.f64 x 6))) (+.f64 (/.f64 4 (pow.f64 x 4)) (/.f64 16 (pow.f64 x 8))))
(+.f64 (/.f64 -4 (pow.f64 x 4)) (-.f64 (+.f64 (/.f64 2 (pow.f64 x 2)) (/.f64 8 (pow.f64 x 6))) (/.f64 16 (pow.f64 x 8))))
(+.f64 (/.f64 -4 (pow.f64 x 4)) (-.f64 (/.f64 8 (pow.f64 x 6)) (+.f64 (/.f64 16 (pow.f64 x 8)) (/.f64 -2 (pow.f64 x 2)))))
(/.f64 2 (pow.f64 x 2))
(-.f64 (*.f64 2 (/.f64 1 (pow.f64 x 2))) (*.f64 4 (/.f64 1 (pow.f64 x 4))))
(-.f64 (*.f64 1 (/.f64 2 (pow.f64 x 2))) (*.f64 1 (/.f64 4 (pow.f64 x 4))))
(-.f64 (/.f64 2 (pow.f64 x 2)) (/.f64 4 (pow.f64 x 4)))
(-.f64 (+.f64 (*.f64 8 (/.f64 1 (pow.f64 x 6))) (*.f64 2 (/.f64 1 (pow.f64 x 2)))) (*.f64 4 (/.f64 1 (pow.f64 x 4))))
(-.f64 (+.f64 (*.f64 1 (/.f64 2 (pow.f64 x 2))) (*.f64 1 (/.f64 8 (pow.f64 x 6)))) (*.f64 1 (/.f64 4 (pow.f64 x 4))))
(-.f64 (+.f64 (/.f64 2 (pow.f64 x 2)) (/.f64 8 (pow.f64 x 6))) (/.f64 4 (pow.f64 x 4)))
(+.f64 (+.f64 (/.f64 2 (pow.f64 x 2)) (/.f64 8 (pow.f64 x 6))) (/.f64 -4 (pow.f64 x 4)))
(-.f64 (+.f64 (*.f64 8 (/.f64 1 (pow.f64 x 6))) (*.f64 2 (/.f64 1 (pow.f64 x 2)))) (+.f64 (*.f64 4 (/.f64 1 (pow.f64 x 4))) (*.f64 16 (/.f64 1 (pow.f64 x 8)))))
(-.f64 (+.f64 (*.f64 1 (/.f64 2 (pow.f64 x 2))) (*.f64 1 (/.f64 8 (pow.f64 x 6)))) (+.f64 (*.f64 1 (/.f64 4 (pow.f64 x 4))) (*.f64 1 (/.f64 16 (pow.f64 x 8)))))
(-.f64 (+.f64 (/.f64 2 (pow.f64 x 2)) (/.f64 8 (pow.f64 x 6))) (+.f64 (/.f64 4 (pow.f64 x 4)) (/.f64 16 (pow.f64 x 8))))
(+.f64 (/.f64 -4 (pow.f64 x 4)) (-.f64 (+.f64 (/.f64 2 (pow.f64 x 2)) (/.f64 8 (pow.f64 x 6))) (/.f64 16 (pow.f64 x 8))))
(+.f64 (/.f64 -4 (pow.f64 x 4)) (-.f64 (/.f64 8 (pow.f64 x 6)) (+.f64 (/.f64 16 (pow.f64 x 8)) (/.f64 -2 (pow.f64 x 2)))))
(+.f64 (/.f64 2 (+.f64 2 (pow.f64 x 2))) 0)
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(+.f64 0 (/.f64 2 (+.f64 2 (pow.f64 x 2))))
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(+.f64 (/.f64 1/2 (+.f64 2 (pow.f64 x 2))) (/.f64 (/.f64 3 (+.f64 2 (pow.f64 x 2))) 2))
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(+.f64 (/.f64 1/2 (+.f64 2 (pow.f64 x 2))) (/.f64 (/.f64 6 (+.f64 2 (pow.f64 x 2))) 4))
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(+.f64 (/.f64 1 (+.f64 2 (pow.f64 x 2))) (/.f64 1 (+.f64 2 (pow.f64 x 2))))
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(-.f64 (/.f64 2 (+.f64 2 (pow.f64 x 2))) 0)
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(-.f64 (/.f64 1 (+.f64 2 (pow.f64 x 2))) (neg.f64 (/.f64 1 (+.f64 2 (pow.f64 x 2)))))
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(-.f64 (+.f64 (/.f64 1/2 (+.f64 2 (pow.f64 x 2))) (/.f64 1 (+.f64 2 (pow.f64 x 2)))) (neg.f64 (/.f64 1/2 (+.f64 2 (pow.f64 x 2)))))
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(-.f64 (/.f64 (/.f64 3 (+.f64 2 (pow.f64 x 2))) 2) (/.f64 (neg.f64 (/.f64 1 (+.f64 2 (pow.f64 x 2)))) 2))
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(-.f64 (/.f64 (/.f64 6 (+.f64 2 (pow.f64 x 2))) 4) (/.f64 (/.f64 2 (-.f64 -2 (pow.f64 x 2))) 4))
(-.f64 (/.f64 3/2 (+.f64 2 (pow.f64 x 2))) (/.f64 1/2 (-.f64 -2 (pow.f64 x 2))))
(*.f64 2 (/.f64 1 (+.f64 2 (pow.f64 x 2))))
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(*.f64 2 (*.f64 (/.f64 2 (+.f64 2 (pow.f64 x 2))) 1/2))
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(*.f64 (/.f64 2 (+.f64 2 (pow.f64 x 2))) 1)
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(*.f64 1 (/.f64 2 (+.f64 2 (pow.f64 x 2))))
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(*.f64 4 (/.f64 1/2 (+.f64 2 (pow.f64 x 2))))
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(*.f64 4 (*.f64 1/2 (/.f64 1 (+.f64 2 (pow.f64 x 2)))))
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(*.f64 (/.f64 4 (+.f64 2 (pow.f64 x 2))) 1/2)
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(*.f64 8 (/.f64 1/4 (+.f64 2 (pow.f64 x 2))))
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(*.f64 8 (*.f64 1/2 (/.f64 1/2 (+.f64 2 (pow.f64 x 2)))))
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(*.f64 1/2 (/.f64 4 (+.f64 2 (pow.f64 x 2))))
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(*.f64 (/.f64 1/2 (+.f64 2 (pow.f64 x 2))) 4)
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(*.f64 (/.f64 1/4 (+.f64 2 (pow.f64 x 2))) 8)
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(*.f64 (/.f64 8 (+.f64 2 (pow.f64 x 2))) 1/4)
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(*.f64 16 (/.f64 1/2 (*.f64 (-.f64 -2 (pow.f64 x 2)) -4)))
(*.f64 16 (/.f64 (/.f64 1/2 (-.f64 -2 (pow.f64 x 2))) -4))
(*.f64 (/.f64 1/2 (-.f64 -2 (pow.f64 x 2))) -4)
(/.f64 -2 (-.f64 -2 (pow.f64 x 2)))
(*.f64 16 (*.f64 1/2 (/.f64 1/4 (+.f64 2 (pow.f64 x 2)))))
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(*.f64 (/.f64 1 (+.f64 2 (pow.f64 x 2))) 2)
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(*.f64 1/4 (/.f64 8 (+.f64 2 (pow.f64 x 2))))
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(*.f64 (/.f64 1/2 (*.f64 (-.f64 -2 (pow.f64 x 2)) -4)) 16)
(*.f64 16 (/.f64 (/.f64 1/2 (-.f64 -2 (pow.f64 x 2))) -4))
(*.f64 (/.f64 1/2 (-.f64 -2 (pow.f64 x 2))) -4)
(/.f64 -2 (-.f64 -2 (pow.f64 x 2)))
(*.f64 (/.f64 16 (+.f64 2 (pow.f64 x 2))) 1/8)
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(*.f64 32 (/.f64 1 (*.f64 4 (*.f64 (-.f64 -2 (pow.f64 x 2)) -4))))
(*.f64 16 (/.f64 (/.f64 1/2 (-.f64 -2 (pow.f64 x 2))) -4))
(*.f64 (/.f64 1/2 (-.f64 -2 (pow.f64 x 2))) -4)
(/.f64 -2 (-.f64 -2 (pow.f64 x 2)))
(*.f64 32 (/.f64 1/2 (*.f64 2 (*.f64 (-.f64 -2 (pow.f64 x 2)) -4))))
(*.f64 16 (/.f64 (/.f64 1/2 (-.f64 -2 (pow.f64 x 2))) -4))
(*.f64 (/.f64 1/2 (-.f64 -2 (pow.f64 x 2))) -4)
(/.f64 -2 (-.f64 -2 (pow.f64 x 2)))
(*.f64 (*.f64 (/.f64 2 (+.f64 2 (pow.f64 x 2))) 1/2) 2)
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(*.f64 (*.f64 1/2 (/.f64 1/2 (+.f64 2 (pow.f64 x 2)))) 8)
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(*.f64 (*.f64 1/2 (/.f64 1/4 (+.f64 2 (pow.f64 x 2)))) 16)
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(*.f64 (*.f64 1/2 (/.f64 1 (+.f64 2 (pow.f64 x 2)))) 4)
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(*.f64 1/8 (/.f64 16 (+.f64 2 (pow.f64 x 2))))
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(*.f64 (/.f64 1 (*.f64 4 (*.f64 (-.f64 -2 (pow.f64 x 2)) -4))) 32)
(*.f64 16 (/.f64 (/.f64 1/2 (-.f64 -2 (pow.f64 x 2))) -4))
(*.f64 (/.f64 1/2 (-.f64 -2 (pow.f64 x 2))) -4)
(/.f64 -2 (-.f64 -2 (pow.f64 x 2)))
(*.f64 (/.f64 1/2 (*.f64 2 (*.f64 (-.f64 -2 (pow.f64 x 2)) -4))) 32)
(*.f64 16 (/.f64 (/.f64 1/2 (-.f64 -2 (pow.f64 x 2))) -4))
(*.f64 (/.f64 1/2 (-.f64 -2 (pow.f64 x 2))) -4)
(/.f64 -2 (-.f64 -2 (pow.f64 x 2)))
(pow.f64 (/.f64 2 (+.f64 2 (pow.f64 x 2))) 1)
(/.f64 2 (+.f64 2 (pow.f64 x 2)))

eval183.0ms (1.9%)

Compiler

Compiled 1833 to 1607 computations (12.3% saved)

prune63.0ms (0.7%)

Pruning

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New1321133
Fresh011
Picked011
Done022
Total1325137
Error
0b
Counts
137 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
45.3b
(/.f64 2 (pow.f64 x 2))
0.0b
(/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
13.9b
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
31.4b
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
30.9b
1
Compiler

Compiled 33 to 28 computations (15.2% saved)

localize24.0ms (0.3%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.9b
(/.f64 2 (pow.f64 x 2))
Compiler

Compiled 11 to 8 computations (27.3% saved)

series2.0ms (0%)

Counts
1 → 0
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@0
(/.f64 2 (pow.f64 x 2))
0.0ms
x
@inf
(/.f64 2 (pow.f64 x 2))
0.0ms
x
@-inf
(/.f64 2 (pow.f64 x 2))

rewrite507.0ms (5.3%)

Algorithm
batch-egg-rewrite
Rules
1232×rational_best-simplify-56
974×rational_best-4
974×rational_best-2
974×rational_best-3
974×rational_best-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
14213
29313
321413
467313
5293313
Stop Event
node limit
Counts
1 → 45
Calls
Call 1
Inputs
(/.f64 2 (pow.f64 x 2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 2 (pow.f64 x 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 2 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1/2 (pow.f64 x 2)) (+.f64 (/.f64 1/2 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1/2 (pow.f64 x 2)) (/.f64 (/.f64 3 (pow.f64 x 2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1/2 (pow.f64 x 2)) (/.f64 (/.f64 6 (pow.f64 x 2)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (/.f64 1/2 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 2))) (/.f64 1/2 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (/.f64 3 (pow.f64 x 2)) 2) (/.f64 1/2 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (/.f64 6 (pow.f64 x 2)) 4) (/.f64 1/2 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 2 (pow.f64 x 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (/.f64 -2 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 1 (pow.f64 x 2)) (neg.f64 (/.f64 1 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (/.f64 1/2 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 2))) (neg.f64 (/.f64 1/2 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (/.f64 3 (pow.f64 x 2)) 2) (/.f64 (neg.f64 (/.f64 1 (pow.f64 x 2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (/.f64 6 (pow.f64 x 2)) 4) (/.f64 (/.f64 -2 (pow.f64 x 2)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 1 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (/.f64 2 (pow.f64 x 2)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (pow.f64 x 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 2 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 1/2 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 4 (pow.f64 x 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (/.f64 1/4 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 1/2 (/.f64 1/2 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (/.f64 4 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (pow.f64 x 2)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/4 (pow.f64 x 2)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -2 (pow.f64 x 2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 8 (pow.f64 x 2)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 16 (/.f64 1/8 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 16 (*.f64 1/2 (/.f64 1/4 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 x 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (neg.f64 (/.f64 1 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (/.f64 8 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/8 (pow.f64 x 2)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 16 (pow.f64 x 2)) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 32 (/.f64 1/2 (*.f64 (pow.f64 x 2) 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 2 (pow.f64 x 2)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (/.f64 1/2 (pow.f64 x 2))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (/.f64 1/4 (pow.f64 x 2))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (/.f64 16 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (*.f64 (pow.f64 x 2) 8)) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 2 (pow.f64 x 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 -2 (pow.f64 x 2)))))))

simplify615.0ms (6.5%)

Algorithm
egg-herbie
Rules
1330×rational_best-simplify-62
1062×rational_best-simplify-53
940×rational_best-simplify-1
896×rational_best-simplify-3
722×rational_best-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
088585
1169585
2350585
31106585
44553585
57102585
Stop Event
node limit
Counts
45 → 46
Calls
Call 1
Inputs
(+.f64 (/.f64 2 (pow.f64 x 2)) 0)
(+.f64 0 (/.f64 2 (pow.f64 x 2)))
(+.f64 (/.f64 1/2 (pow.f64 x 2)) (+.f64 (/.f64 1/2 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 2))))
(+.f64 (/.f64 1/2 (pow.f64 x 2)) (/.f64 (/.f64 3 (pow.f64 x 2)) 2))
(+.f64 (/.f64 1/2 (pow.f64 x 2)) (/.f64 (/.f64 6 (pow.f64 x 2)) 4))
(+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 2)))
(+.f64 (+.f64 (/.f64 1/2 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 2))) (/.f64 1/2 (pow.f64 x 2)))
(+.f64 (/.f64 (/.f64 3 (pow.f64 x 2)) 2) (/.f64 1/2 (pow.f64 x 2)))
(+.f64 (/.f64 (/.f64 6 (pow.f64 x 2)) 4) (/.f64 1/2 (pow.f64 x 2)))
(-.f64 (/.f64 2 (pow.f64 x 2)) 0)
(-.f64 0 (/.f64 -2 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 2)) (neg.f64 (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (/.f64 1/2 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 2))) (neg.f64 (/.f64 1/2 (pow.f64 x 2))))
(-.f64 (/.f64 (/.f64 3 (pow.f64 x 2)) 2) (/.f64 (neg.f64 (/.f64 1 (pow.f64 x 2))) 2))
(-.f64 (/.f64 (/.f64 6 (pow.f64 x 2)) 4) (/.f64 (/.f64 -2 (pow.f64 x 2)) 4))
(*.f64 2 (/.f64 1 (pow.f64 x 2)))
(*.f64 2 (*.f64 (/.f64 2 (pow.f64 x 2)) 1/2))
(*.f64 (/.f64 2 (pow.f64 x 2)) 1)
(*.f64 1 (/.f64 2 (pow.f64 x 2)))
(*.f64 4 (/.f64 1/2 (pow.f64 x 2)))
(*.f64 4 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(*.f64 (/.f64 4 (pow.f64 x 2)) 1/2)
(*.f64 8 (/.f64 1/4 (pow.f64 x 2)))
(*.f64 8 (*.f64 1/2 (/.f64 1/2 (pow.f64 x 2))))
(*.f64 1/2 (/.f64 4 (pow.f64 x 2)))
(*.f64 (/.f64 1/2 (pow.f64 x 2)) 4)
(*.f64 (/.f64 1/4 (pow.f64 x 2)) 8)
(*.f64 (/.f64 -2 (pow.f64 x 2)) -1)
(*.f64 (/.f64 8 (pow.f64 x 2)) 1/4)
(*.f64 16 (/.f64 1/8 (pow.f64 x 2)))
(*.f64 16 (*.f64 1/2 (/.f64 1/4 (pow.f64 x 2))))
(*.f64 (/.f64 1 (pow.f64 x 2)) 2)
(*.f64 -2 (neg.f64 (/.f64 1 (pow.f64 x 2))))
(*.f64 1/4 (/.f64 8 (pow.f64 x 2)))
(*.f64 (/.f64 1/8 (pow.f64 x 2)) 16)
(*.f64 (/.f64 16 (pow.f64 x 2)) 1/8)
(*.f64 32 (/.f64 1/2 (*.f64 (pow.f64 x 2) 8)))
(*.f64 (*.f64 (/.f64 2 (pow.f64 x 2)) 1/2) 2)
(*.f64 (*.f64 1/2 (/.f64 1/2 (pow.f64 x 2))) 8)
(*.f64 (*.f64 1/2 (/.f64 1/4 (pow.f64 x 2))) 16)
(*.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) 4)
(*.f64 1/8 (/.f64 16 (pow.f64 x 2)))
(*.f64 (/.f64 1/2 (*.f64 (pow.f64 x 2) 8)) 32)
(pow.f64 (/.f64 2 (pow.f64 x 2)) 1)
(neg.f64 (/.f64 -2 (pow.f64 x 2)))
Outputs
(+.f64 (/.f64 2 (pow.f64 x 2)) 0)
(/.f64 2 (pow.f64 x 2))
(+.f64 0 (/.f64 2 (pow.f64 x 2)))
(/.f64 2 (pow.f64 x 2))
(+.f64 (/.f64 1/2 (pow.f64 x 2)) (+.f64 (/.f64 1/2 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 2))))
(/.f64 2 (pow.f64 x 2))
(+.f64 (/.f64 1/2 (pow.f64 x 2)) (/.f64 (/.f64 3 (pow.f64 x 2)) 2))
(/.f64 2 (pow.f64 x 2))
(+.f64 (/.f64 1/2 (pow.f64 x 2)) (/.f64 (/.f64 6 (pow.f64 x 2)) 4))
(/.f64 2 (pow.f64 x 2))
(+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 2)))
(/.f64 2 (pow.f64 x 2))
(+.f64 (+.f64 (/.f64 1/2 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 2))) (/.f64 1/2 (pow.f64 x 2)))
(/.f64 2 (pow.f64 x 2))
(+.f64 (/.f64 (/.f64 3 (pow.f64 x 2)) 2) (/.f64 1/2 (pow.f64 x 2)))
(/.f64 2 (pow.f64 x 2))
(+.f64 (/.f64 (/.f64 6 (pow.f64 x 2)) 4) (/.f64 1/2 (pow.f64 x 2)))
(/.f64 2 (pow.f64 x 2))
(-.f64 (/.f64 2 (pow.f64 x 2)) 0)
(/.f64 2 (pow.f64 x 2))
(-.f64 0 (/.f64 -2 (pow.f64 x 2)))
(/.f64 2 (pow.f64 x 2))
(-.f64 (/.f64 1 (pow.f64 x 2)) (neg.f64 (/.f64 1 (pow.f64 x 2))))
(/.f64 2 (pow.f64 x 2))
(-.f64 (+.f64 (/.f64 1/2 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 2))) (neg.f64 (/.f64 1/2 (pow.f64 x 2))))
(/.f64 2 (pow.f64 x 2))
(-.f64 (/.f64 (/.f64 3 (pow.f64 x 2)) 2) (/.f64 (neg.f64 (/.f64 1 (pow.f64 x 2))) 2))
(/.f64 2 (pow.f64 x 2))
(-.f64 (/.f64 (/.f64 6 (pow.f64 x 2)) 4) (/.f64 (/.f64 -2 (pow.f64 x 2)) 4))
(/.f64 2 (pow.f64 x 2))
(*.f64 2 (/.f64 1 (pow.f64 x 2)))
(/.f64 2 (pow.f64 x 2))
(*.f64 2 (*.f64 (/.f64 2 (pow.f64 x 2)) 1/2))
(/.f64 2 (pow.f64 x 2))
(*.f64 (/.f64 2 (pow.f64 x 2)) 1)
(/.f64 2 (pow.f64 x 2))
(*.f64 1 (/.f64 2 (pow.f64 x 2)))
(/.f64 2 (pow.f64 x 2))
(*.f64 4 (/.f64 1/2 (pow.f64 x 2)))
(/.f64 2 (pow.f64 x 2))
(*.f64 4 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(/.f64 2 (pow.f64 x 2))
(*.f64 (/.f64 4 (pow.f64 x 2)) 1/2)
(/.f64 2 (pow.f64 x 2))
(*.f64 8 (/.f64 1/4 (pow.f64 x 2)))
(/.f64 2 (pow.f64 x 2))
(*.f64 8 (*.f64 1/2 (/.f64 1/2 (pow.f64 x 2))))
(/.f64 2 (pow.f64 x 2))
(*.f64 1/2 (/.f64 4 (pow.f64 x 2)))
(/.f64 2 (pow.f64 x 2))
(*.f64 (/.f64 1/2 (pow.f64 x 2)) 4)
(/.f64 2 (pow.f64 x 2))
(*.f64 (/.f64 1/4 (pow.f64 x 2)) 8)
(/.f64 2 (pow.f64 x 2))
(*.f64 (/.f64 -2 (pow.f64 x 2)) -1)
(/.f64 2 (pow.f64 x 2))
(*.f64 (/.f64 8 (pow.f64 x 2)) 1/4)
(/.f64 2 (pow.f64 x 2))
(*.f64 16 (/.f64 1/8 (pow.f64 x 2)))
(/.f64 2 (pow.f64 x 2))
(*.f64 16 (*.f64 1/2 (/.f64 1/4 (pow.f64 x 2))))
(/.f64 2 (pow.f64 x 2))
(*.f64 (/.f64 1 (pow.f64 x 2)) 2)
(/.f64 2 (pow.f64 x 2))
(*.f64 -2 (neg.f64 (/.f64 1 (pow.f64 x 2))))
(/.f64 2 (pow.f64 x 2))
(*.f64 1/4 (/.f64 8 (pow.f64 x 2)))
(/.f64 2 (pow.f64 x 2))
(*.f64 (/.f64 1/8 (pow.f64 x 2)) 16)
(/.f64 2 (pow.f64 x 2))
(*.f64 (/.f64 16 (pow.f64 x 2)) 1/8)
(/.f64 2 (pow.f64 x 2))
(*.f64 32 (/.f64 1/2 (*.f64 (pow.f64 x 2) 8)))
(/.f64 2 (pow.f64 x 2))
(*.f64 (*.f64 (/.f64 2 (pow.f64 x 2)) 1/2) 2)
(/.f64 2 (pow.f64 x 2))
(*.f64 (*.f64 1/2 (/.f64 1/2 (pow.f64 x 2))) 8)
(/.f64 2 (pow.f64 x 2))
(*.f64 (*.f64 1/2 (/.f64 1/4 (pow.f64 x 2))) 16)
(/.f64 2 (pow.f64 x 2))
(*.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) 4)
(/.f64 2 (pow.f64 x 2))
(*.f64 1/8 (/.f64 16 (pow.f64 x 2)))
(/.f64 2 (pow.f64 x 2))
(*.f64 (/.f64 1/2 (*.f64 (pow.f64 x 2) 8)) 32)
(/.f64 2 (pow.f64 x 2))
(pow.f64 (/.f64 2 (pow.f64 x 2)) 1)
(/.f64 2 (pow.f64 x 2))
(neg.f64 (/.f64 -2 (pow.f64 x 2)))
(/.f64 2 (pow.f64 x 2))

eval141.0ms (1.5%)

Compiler

Compiled 422 to 362 computations (14.2% saved)

prune29.0ms (0.3%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New46046
Fresh011
Picked011
Done033
Total46551
Error
0b
Counts
51 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
45.3b
(/.f64 2 (pow.f64 x 2))
0.0b
(/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
13.9b
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
31.4b
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
30.9b
1
Compiler

Compiled 33 to 28 computations (15.2% saved)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune4.0ms (0%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done044
Total055
Error
0b
Counts
5 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
45.3b
(/.f64 2 (pow.f64 x 2))
0.0b
(/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
13.9b
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
31.4b
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
30.9b
1
Compiler

Compiled 33 to 28 computations (15.2% saved)

regimes52.0ms (0.5%)

Counts
5 → 1
Calls
Call 1
Inputs
1
(/.f64 2 (pow.f64 x 2))
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Outputs
(/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Calls

3 calls:

24.0ms
x
6.0ms
(+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
4.0ms
(/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
Results
ErrorSegmentsBranch
0.0b1x
0.0b1(/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
0.0b1(+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
Compiler

Compiled 47 to 37 computations (21.3% saved)

regimes23.0ms (0.2%)

Counts
4 → 1
Calls
Call 1
Inputs
1
(/.f64 2 (pow.f64 x 2))
(+.f64 1 (*.f64 -1/2 (pow.f64 x 2)))
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
Outputs
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
Calls

1 calls:

21.0ms
x
Results
ErrorSegmentsBranch
13.9b1x
Compiler

Compiled 23 to 19 computations (17.4% saved)

regimes43.0ms (0.4%)

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

1 calls:

30.0ms
x
Results
ErrorSegmentsBranch
13.9b3x
Compiler

Compiled 16 to 13 computations (18.8% saved)

bsearch301.0ms (3.2%)

Algorithm
binary-search
Steps
TimeLeftRight
40.0ms
6.078175663762107e-5
2.2898860037709303
261.0ms
-9.947211855586884
-4.0256109959404664e-7
Results
295.0ms272×body256valid
Compiler

Compiled 285 to 248 computations (13% saved)

regimes50.0ms (0.5%)

Accuracy

Total -48.0b remaining (-341%)

Threshold costs -48.0b (-341%)

Counts
2 → 3
Calls
Call 1
Inputs
1
(/.f64 2 (pow.f64 x 2))
Outputs
(/.f64 2 (pow.f64 x 2))
1
(/.f64 2 (pow.f64 x 2))
Calls

1 calls:

49.0ms
x
Results
ErrorSegmentsBranch
14.1b3x
Compiler

Compiled 9 to 7 computations (22.2% saved)

bsearch126.0ms (1.3%)

Algorithm
binary-search
Steps
TimeLeftRight
44.0ms
6.078175663762107e-5
2.2898860037709303
82.0ms
-9.947211855586884
-4.0256109959404664e-7
Results
121.0ms272×body256valid
Compiler

Compiled 183 to 163 computations (10.9% saved)

simplify6.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
033153
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(if (<=.f64 x -5/4) (/.f64 2 (pow.f64 x 2)) (if (<=.f64 x 5404319552844595/4503599627370496) (+.f64 1 (*.f64 -1/2 (pow.f64 x 2))) (/.f64 2 (pow.f64 x 2))))
(if (<=.f64 x -6530219459687219/4503599627370496) (/.f64 2 (pow.f64 x 2)) (if (<=.f64 x 3152519739159347/2251799813685248) 1 (/.f64 2 (pow.f64 x 2))))
1
Outputs
(/.f64 2 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(/.f64 2 (+.f64 2 (pow.f64 x 2)))
(if (<=.f64 x -5/4) (/.f64 2 (pow.f64 x 2)) (if (<=.f64 x 5404319552844595/4503599627370496) (+.f64 1 (*.f64 -1/2 (pow.f64 x 2))) (/.f64 2 (pow.f64 x 2))))
(if (<=.f64 x -6530219459687219/4503599627370496) (/.f64 2 (pow.f64 x 2)) (if (<=.f64 x 3152519739159347/2251799813685248) 1 (/.f64 2 (pow.f64 x 2))))
1
Compiler

Compiled 65 to 53 computations (18.5% saved)

soundness0.0ms (0%)

end191.0ms (2%)

Compiler

Compiled 61 to 49 computations (19.7% saved)

Profiling

Loading profile data...