Details

Time bar (total: 8.1s)

analyze233.0ms (2.9%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
0%0%100%0%0%0%0%2
50%50%50%0%0%0%0%3
50%50%50%0%0%0%0%4
50%50%50%0%0%0%0%5
50%50%50%0%0%0%0%6
50%50%50%0%0%0%0%7
50%50%50%0%0%0%0%8
50%50%50%0%0%0%0%9
50%50%50%0%0%0%0%10
50%50%50%0%0%0%0%11
50%50%50%0%0%0%0%12
Compiler

Compiled 12 to 9 computations (25% saved)

sample7.4s (91.8%)

Results
3.0s1566×body8192exit
2.2s4098×body1024valid
657.0ms1669×body1024invalid
609.0ms2073×body512valid
315.0ms1913×body256valid
256.0ms172×body2048valid
197.0ms779×body512invalid
115.0ms801×body256invalid
Bogosity

preprocess2.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01133
11433
21533
011
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
Outputs
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
Compiler

Compiled 12 to 9 computations (25% saved)

simplify4.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01133
11433
21533
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
Outputs
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))

eval0.0ms (0%)

Compiler

Compiled 11 to 8 computations (27.3% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
59.8b
Counts
2 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
59.8b
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
Compiler

Compiled 11 to 8 computations (27.3% saved)

localize14.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(sqrt.f64 (cos.f64 x))
0.3b
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
4.1b
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
Compiler

Compiled 30 to 8 computations (73.3% saved)

series2.0ms (0%)

Counts
3 → 16
Calls

9 calls:

TimeVariablePointExpression
0.0ms
x
@0
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
0.0ms
x
@inf
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
0.0ms
x
@inf
(sqrt.f64 (cos.f64 x))
0.0ms
x
@-inf
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
0.0ms
x
@0
(sqrt.f64 (cos.f64 x))

rewrite7.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
36×rational.json-simplify-2
34×bool.json-1
28×rational.json-1
28×rational.json-2
26×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01161
15161
29061
39961
410861
511161
611361
Stop Event
saturated
Counts
3 → 10
Calls
Call 1
Inputs
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(sqrt.f64 (cos.f64 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x or (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (cos.f64 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cos.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (cos.f64 x)) (sqrt.f64 (cos.f64 x)))))))

simplify17.0ms (0.2%)

Algorithm
egg-herbie
Rules
114×rational.json-simplify-1
72×rational.json-simplify-33
58×rational.json-simplify-2
14×rational.json-simplify-31
rational.json-simplify-19
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
060918
195864
2139864
3181864
4206864
5206864
Stop Event
saturated
Counts
26 → 33
Calls
Call 1
Inputs
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) x)))
(+.f64 (*.f64 1/2 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (pow.f64 x 2))) (+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) x))))
(+.f64 (*.f64 1/2 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (pow.f64 x 2))) (+.f64 (*.f64 -1/6 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (pow.f64 x 3))) (+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) x)))))
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(*.f64 (exp.f64 (*.f64 -1 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(*.f64 (exp.f64 (*.f64 -1 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(*.f64 (exp.f64 (*.f64 -1 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(*.f64 (exp.f64 (*.f64 -1 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
1
(+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 -1/4 (pow.f64 x 2)) (*.f64 -1/96 (pow.f64 x 4))))
(+.f64 1 (+.f64 (*.f64 -1/4 (pow.f64 x 2)) (+.f64 (*.f64 -1/96 (pow.f64 x 4)) (*.f64 -19/5760 (pow.f64 x 6)))))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) 0)
(+.f64 0 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) 1)
(*.f64 1 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) 0)
(+.f64 0 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))))
(+.f64 (sqrt.f64 (cos.f64 x)) 0)
(+.f64 0 (sqrt.f64 (cos.f64 x)))
(*.f64 (sqrt.f64 (cos.f64 x)) 1)
(*.f64 1 (sqrt.f64 (cos.f64 x)))
Outputs
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 1 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1))
(+.f64 (*.f64 1/2 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (pow.f64 x 2))) (+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) x))))
(+.f64 (+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (neg.f64 x))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 1/2 (pow.f64 x 2))))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 1 (neg.f64 x))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 1/2 (pow.f64 x 2))))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (neg.f64 x)) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 1 (*.f64 1/2 (pow.f64 x 2)))))
(+.f64 (*.f64 1/2 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (pow.f64 x 2))) (+.f64 (*.f64 -1/6 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (pow.f64 x 3))) (+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) x)))))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 1/2 (pow.f64 x 2))) (+.f64 (+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (neg.f64 x))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1/6 (pow.f64 x 3)))))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 1 (neg.f64 x))) (+.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 1/2 (pow.f64 x 2))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1/6 (pow.f64 x 3)))))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1)) (+.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 1/2 (pow.f64 x 2))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1/6 (pow.f64 x 3)))))
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(*.f64 (exp.f64 (*.f64 -1 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(*.f64 (exp.f64 (*.f64 -1 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(*.f64 (exp.f64 (*.f64 -1 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(*.f64 (exp.f64 (*.f64 -1 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
1
(+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))
(+.f64 1 (*.f64 (pow.f64 x 2) -1/4))
(+.f64 1 (+.f64 (*.f64 -1/4 (pow.f64 x 2)) (*.f64 -1/96 (pow.f64 x 4))))
(+.f64 1 (+.f64 (*.f64 (pow.f64 x 2) -1/4) (*.f64 -1/96 (pow.f64 x 4))))
(+.f64 1 (+.f64 (*.f64 -1/4 (pow.f64 x 2)) (+.f64 (*.f64 -1/96 (pow.f64 x 4)) (*.f64 -19/5760 (pow.f64 x 6)))))
(+.f64 1 (+.f64 (*.f64 (pow.f64 x 2) -1/4) (+.f64 (*.f64 -1/96 (pow.f64 x 4)) (*.f64 -19/5760 (pow.f64 x 6)))))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) 0)
(+.f64 0 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) 0)
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) 1)
(*.f64 1 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) 1)
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) 0)
(+.f64 0 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))))
(+.f64 0 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))))
(+.f64 (sqrt.f64 (cos.f64 x)) 0)
(+.f64 0 (sqrt.f64 (cos.f64 x)))
(+.f64 (sqrt.f64 (cos.f64 x)) 0)
(*.f64 (sqrt.f64 (cos.f64 x)) 1)
(*.f64 1 (sqrt.f64 (cos.f64 x)))
(*.f64 (sqrt.f64 (cos.f64 x)) 1)

eval7.0ms (0.1%)

Compiler

Compiled 607 to 227 computations (62.6% saved)

prune6.0ms (0.1%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New29433
Fresh000
Picked011
Done000
Total29534
Error
59.8b
Counts
34 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
60.8b
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
59.9b
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (exp.f64 (neg.f64 x)))
60.5b
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1))
59.8b
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
60.3b
(*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x)))
Compiler

Compiled 54 to 41 computations (24.1% saved)

localize12.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x)))
4.2b
(fmod.f64 (exp.f64 x) 1)
Compiler

Compiled 22 to 10 computations (54.5% saved)

series1.0ms (0%)

Counts
2 → 12
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@0
(*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x)))
0.0ms
x
@-inf
(*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x)))
0.0ms
x
@inf
(*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x)))
0.0ms
x
@0
(fmod.f64 (exp.f64 x) 1)
0.0ms
x
@inf
(fmod.f64 (exp.f64 x) 1)

rewrite7.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
32×rational.json-simplify-2
30×bool.json-1
24×rational.json-1
24×rational.json-2
22×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01036
14636
27836
38736
49636
59936
610136
Stop Event
saturated
Counts
2 → 6
Calls
Call 1
Inputs
(fmod.f64 (exp.f64 x) 1)
(*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (fmod.f64 (exp.f64 x) 1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (fmod.f64 (exp.f64 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fmod.f64 (exp.f64 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fmod.f64 (exp.f64 x) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x or (fmod.f64 (exp.f64 x) 1) (fmod.f64 (exp.f64 x) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x))) (*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x))))))))

simplify11.0ms (0.1%)

Algorithm
egg-herbie
Rules
62×rational.json-simplify-1
48×rational.json-simplify-2
36×rational.json-simplify-33
14×rational.json-simplify-31
rational.json-simplify-19
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
039554
163524
296524
3119524
4130524
5132524
Stop Event
saturated
Counts
18 → 19
Calls
Call 1
Inputs
(fmod.f64 (exp.f64 x) 1)
(+.f64 (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) 1) x)) (fmod.f64 (exp.f64 x) 1))
(+.f64 (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) 1) x)) (+.f64 (*.f64 1/2 (*.f64 (fmod.f64 (exp.f64 x) 1) (pow.f64 x 2))) (fmod.f64 (exp.f64 x) 1)))
(+.f64 (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) 1) x)) (+.f64 (*.f64 -1/6 (*.f64 (fmod.f64 (exp.f64 x) 1) (pow.f64 x 3))) (+.f64 (*.f64 1/2 (*.f64 (fmod.f64 (exp.f64 x) 1) (pow.f64 x 2))) (fmod.f64 (exp.f64 x) 1))))
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) 1))
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) 1))
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) 1))
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) 1))
(*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (*.f64 -1 x)))
(+.f64 (fmod.f64 (exp.f64 x) 1) 0)
(+.f64 0 (fmod.f64 (exp.f64 x) 1))
(*.f64 1 (fmod.f64 (exp.f64 x) 1))
(*.f64 (fmod.f64 (exp.f64 x) 1) 1)
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x))) 0)
(+.f64 0 (*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x))))
Outputs
(fmod.f64 (exp.f64 x) 1)
(+.f64 (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) 1) x)) (fmod.f64 (exp.f64 x) 1))
(+.f64 (fmod.f64 (exp.f64 x) 1) (*.f64 (fmod.f64 (exp.f64 x) 1) (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 1 (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) 1) x)) (+.f64 (*.f64 1/2 (*.f64 (fmod.f64 (exp.f64 x) 1) (pow.f64 x 2))) (fmod.f64 (exp.f64 x) 1)))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) 1) (neg.f64 x)) (+.f64 (fmod.f64 (exp.f64 x) 1) (*.f64 (fmod.f64 (exp.f64 x) 1) (*.f64 1/2 (pow.f64 x 2)))))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) 1) (neg.f64 x)) (*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 1 (*.f64 1/2 (pow.f64 x 2)))))
(+.f64 (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) 1) x)) (+.f64 (*.f64 -1/6 (*.f64 (fmod.f64 (exp.f64 x) 1) (pow.f64 x 3))) (+.f64 (*.f64 1/2 (*.f64 (fmod.f64 (exp.f64 x) 1) (pow.f64 x 2))) (fmod.f64 (exp.f64 x) 1))))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) 1) (neg.f64 x)) (+.f64 (+.f64 (fmod.f64 (exp.f64 x) 1) (*.f64 (fmod.f64 (exp.f64 x) 1) (*.f64 1/2 (pow.f64 x 2)))) (*.f64 (fmod.f64 (exp.f64 x) 1) (*.f64 -1/6 (pow.f64 x 3)))))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) 1) (neg.f64 x)) (+.f64 (*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 1 (*.f64 1/2 (pow.f64 x 2)))) (*.f64 (fmod.f64 (exp.f64 x) 1) (*.f64 -1/6 (pow.f64 x 3)))))
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) 1))
(*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x)))
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) 1))
(*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x)))
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) 1))
(*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x)))
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) 1))
(*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x)))
(+.f64 (fmod.f64 (exp.f64 x) 1) 0)
(+.f64 0 (fmod.f64 (exp.f64 x) 1))
(+.f64 (fmod.f64 (exp.f64 x) 1) 0)
(*.f64 1 (fmod.f64 (exp.f64 x) 1))
(*.f64 (fmod.f64 (exp.f64 x) 1) 1)
(*.f64 1 (fmod.f64 (exp.f64 x) 1))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x))) 0)
(+.f64 0 (*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x))))
(+.f64 0 (*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x))))

localize16.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1))
0.0b
(sqrt.f64 (cos.f64 x))
4.1b
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
Compiler

Compiled 33 to 12 computations (63.6% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1))
0.0ms
x
@inf
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1))
0.0ms
x
@0
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1))

rewrite7.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
36×rational.json-simplify-2
34×bool.json-1
28×rational.json-1
28×rational.json-2
28×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01235
15535
29135
310135
411035
511335
611535
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1)) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1)))))))

simplify9.0ms (0.1%)

Algorithm
egg-herbie
Rules
14×rational.json-simplify-2
14×rational.json-simplify-1
rational.json-simplify-31
rational.json-simplify-33
rational.json-simplify-19
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
019658
127474
233474
339474
443474
Stop Event
saturated
Counts
14 → 9
Calls
Call 1
Inputs
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) x)))
(*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) x))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) x)))
(*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) x))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) x)))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1)) 0)
(+.f64 0 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1)))
Outputs
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1))
(*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) x))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 x))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (neg.f64 x))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1))
(*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) x))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 x))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (neg.f64 x))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1)) 0)
(+.f64 0 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1)))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1)) 0)

localize24.0ms (0.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (pow.f64 x 2) -1/4)
0.3b
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (exp.f64 (neg.f64 x)))
4.1b
(fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4)))
Compiler

Compiled 51 to 34 computations (33.3% saved)

series2.0ms (0%)

Counts
3 → 36
Calls

9 calls:

TimeVariablePointExpression
0.0ms
x
@0
(*.f64 (pow.f64 x 2) -1/4)
0.0ms
x
@0
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (exp.f64 (neg.f64 x)))
0.0ms
x
@-inf
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (exp.f64 (neg.f64 x)))
0.0ms
x
@inf
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (exp.f64 (neg.f64 x)))
0.0ms
x
@inf
(*.f64 (pow.f64 x 2) -1/4)

rewrite10.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
40×rational.json-simplify-2
40×bool.json-1
30×rational.json-1
30×rational.json-2
30×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01585
16885
210685
311785
412685
512985
613185
Stop Event
saturated
Counts
3 → 8
Calls
Call 1
Inputs
(fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4)))
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (exp.f64 (neg.f64 x)))
(*.f64 (pow.f64 x 2) -1/4)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x or (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (exp.f64 (neg.f64 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (exp.f64 (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (exp.f64 (neg.f64 x))) (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (exp.f64 (neg.f64 x))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 2) -1/4) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (pow.f64 x 2) -1/4))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (pow.f64 x 2) -1/4) (*.f64 (pow.f64 x 2) -1/4))))))

simplify33.0ms (0.4%)

Algorithm
egg-herbie
Rules
92×rational.json-simplify-2
72×rational.json-simplify-1
60×rational.json-simplify-31
30×rational.json-simplify-33
14×rational.json-simplify-9
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0511528
1891444
21281444
31621444
41831444
51941444
62101444
72191444
82361444
92411444
Stop Event
saturated
Counts
44 → 31
Calls
Call 1
Inputs
(fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2))))
(+.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) x)))
(+.f64 (*.f64 1/2 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (pow.f64 x 2))) (+.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) x))))
(+.f64 (*.f64 1/2 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (pow.f64 x 2))) (+.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (+.f64 (*.f64 -1/6 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (pow.f64 x 3))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) x)))))
(*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) (exp.f64 (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) (exp.f64 (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) (exp.f64 (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) (exp.f64 (*.f64 -1 x)))
(*.f64 -1/4 (pow.f64 x 2))
(*.f64 -1/4 (pow.f64 x 2))
(*.f64 -1/4 (pow.f64 x 2))
(*.f64 -1/4 (pow.f64 x 2))
(*.f64 -1/4 (pow.f64 x 2))
(*.f64 -1/4 (pow.f64 x 2))
(*.f64 -1/4 (pow.f64 x 2))
(*.f64 -1/4 (pow.f64 x 2))
(*.f64 -1/4 (pow.f64 x 2))
(*.f64 -1/4 (pow.f64 x 2))
(*.f64 -1/4 (pow.f64 x 2))
(*.f64 -1/4 (pow.f64 x 2))
(+.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) 0)
(+.f64 0 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))))
(*.f64 1 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))))
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) 1)
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (exp.f64 (neg.f64 x))) 0)
(+.f64 0 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (exp.f64 (neg.f64 x))))
(+.f64 (*.f64 (pow.f64 x 2) -1/4) 0)
(+.f64 0 (*.f64 (pow.f64 x 2) -1/4))
Outputs
(fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2))))
(fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2))))
(+.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (+.f64 1 (neg.f64 x)))
(+.f64 (*.f64 1/2 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (pow.f64 x 2))) (+.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) x))))
(+.f64 (+.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (neg.f64 x))) (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 1/2 (pow.f64 x 2))))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (+.f64 1 (neg.f64 x))) (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 (pow.f64 x 2) 1/2)))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (neg.f64 x)) (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (+.f64 1 (*.f64 (pow.f64 x 2) 1/2))))
(+.f64 (*.f64 1/2 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (pow.f64 x 2))) (+.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (+.f64 (*.f64 -1/6 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (pow.f64 x 3))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) x)))))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 1/2 (pow.f64 x 2))) (+.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (+.f64 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (neg.f64 x)) (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 -1/6 (pow.f64 x 3))))))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 (pow.f64 x 2) 1/2)) (+.f64 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (neg.f64 x)) (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (+.f64 1 (*.f64 -1/6 (pow.f64 x 3))))))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (+.f64 1 (neg.f64 x))) (+.f64 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 (pow.f64 x 2) 1/2)) (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 -1/6 (pow.f64 x 3)))))
(*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 (pow.f64 x 2) 1/4))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 (pow.f64 x 2) 1/4))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 (pow.f64 x 2) 1/4))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 (pow.f64 x 2) 1/4))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) (exp.f64 (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 (pow.f64 x 2) 1/4))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) (exp.f64 (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 (pow.f64 x 2) 1/4))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) (exp.f64 (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 (pow.f64 x 2) 1/4))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) (exp.f64 (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 (pow.f64 x 2) 1/4))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (exp.f64 (neg.f64 x)))
(*.f64 -1/4 (pow.f64 x 2))
(*.f64 -1/4 (pow.f64 x 2))
(*.f64 -1/4 (pow.f64 x 2))
(*.f64 -1/4 (pow.f64 x 2))
(*.f64 -1/4 (pow.f64 x 2))
(*.f64 -1/4 (pow.f64 x 2))
(*.f64 -1/4 (pow.f64 x 2))
(*.f64 -1/4 (pow.f64 x 2))
(*.f64 -1/4 (pow.f64 x 2))
(*.f64 -1/4 (pow.f64 x 2))
(*.f64 -1/4 (pow.f64 x 2))
(*.f64 -1/4 (pow.f64 x 2))
(+.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) 0)
(+.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) 0)
(+.f64 0 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))))
(+.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) 0)
(*.f64 1 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))))
(*.f64 1 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))))
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) 1)
(*.f64 1 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (exp.f64 (neg.f64 x))) 0)
(+.f64 0 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (exp.f64 (neg.f64 x))))
(+.f64 0 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (exp.f64 (neg.f64 x))))
(+.f64 0 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (exp.f64 (neg.f64 x))))
(+.f64 (*.f64 (pow.f64 x 2) -1/4) 0)
(+.f64 (*.f64 -1/4 (pow.f64 x 2)) 0)
(+.f64 0 (*.f64 -1/4 (pow.f64 x 2)))
(+.f64 0 (*.f64 (pow.f64 x 2) -1/4))
(+.f64 (*.f64 -1/4 (pow.f64 x 2)) 0)
(+.f64 0 (*.f64 -1/4 (pow.f64 x 2)))

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(sqrt.f64 (cos.f64 x))
4.1b
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
Compiler

Compiled 15 to 5 computations (66.7% saved)

eval26.0ms (0.3%)

Compiler

Compiled 1533 to 937 computations (38.9% saved)

prune15.0ms (0.2%)

Pruning

9 alts after pruning (4 fresh and 5 done)

PrunedKeptTotal
New85489
Fresh000
Picked011
Done044
Total85994
Error
59.8b
Counts
94 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
60.8b
(fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4)))
60.8b
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
60.8b
(fmod.f64 (exp.f64 x) 1)
60.5b
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (+.f64 (neg.f64 x) 1))
59.9b
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (exp.f64 (neg.f64 x)))
60.5b
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1))
59.8b
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
60.7b
(*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 (neg.f64 x) 1))
60.3b
(*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x)))
Compiler

Compiled 96 to 75 computations (21.9% saved)

localize13.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 (neg.f64 x) 1))
4.2b
(fmod.f64 (exp.f64 x) 1)
Compiler

Compiled 24 to 13 computations (45.8% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@inf
(*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 (neg.f64 x) 1))
0.0ms
x
@0
(*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 (neg.f64 x) 1))
0.0ms
x
@-inf
(*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 (neg.f64 x) 1))

rewrite6.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
32×rational.json-simplify-2
30×bool.json-1
24×rational.json-1
24×rational.json-2
24×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01027
14727
27927
38927
49827
510127
610327
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 (neg.f64 x) 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 1 (neg.f64 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 1 (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 1 (neg.f64 x))) (*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 1 (neg.f64 x))))))))

simplify9.0ms (0.1%)

Algorithm
egg-herbie
Rules
14×rational.json-simplify-2
14×rational.json-simplify-1
rational.json-simplify-31
rational.json-simplify-33
rational.json-simplify-19
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
017474
125362
230362
336362
440362
Stop Event
saturated
Counts
14 → 9
Calls
Call 1
Inputs
(fmod.f64 (exp.f64 x) 1)
(+.f64 (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) 1) x)) (fmod.f64 (exp.f64 x) 1))
(+.f64 (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) 1) x)) (fmod.f64 (exp.f64 x) 1))
(+.f64 (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) 1) x)) (fmod.f64 (exp.f64 x) 1))
(*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) 1) x))
(+.f64 (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) 1) x)) (fmod.f64 (exp.f64 x) 1))
(+.f64 (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) 1) x)) (fmod.f64 (exp.f64 x) 1))
(+.f64 (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) 1) x)) (fmod.f64 (exp.f64 x) 1))
(*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) 1) x))
(+.f64 (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) 1) x)) (fmod.f64 (exp.f64 x) 1))
(+.f64 (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) 1) x)) (fmod.f64 (exp.f64 x) 1))
(+.f64 (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) 1) x)) (fmod.f64 (exp.f64 x) 1))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 1 (neg.f64 x))) 0)
(+.f64 0 (*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 1 (neg.f64 x))))
Outputs
(fmod.f64 (exp.f64 x) 1)
(+.f64 (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) 1) x)) (fmod.f64 (exp.f64 x) 1))
(+.f64 (fmod.f64 (exp.f64 x) 1) (*.f64 (fmod.f64 (exp.f64 x) 1) (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 1 (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) 1) x)) (fmod.f64 (exp.f64 x) 1))
(+.f64 (fmod.f64 (exp.f64 x) 1) (*.f64 (fmod.f64 (exp.f64 x) 1) (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 1 (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) 1) x)) (fmod.f64 (exp.f64 x) 1))
(+.f64 (fmod.f64 (exp.f64 x) 1) (*.f64 (fmod.f64 (exp.f64 x) 1) (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 1 (neg.f64 x)))
(*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) 1) x))
(*.f64 (fmod.f64 (exp.f64 x) 1) (*.f64 -1 x))
(*.f64 (fmod.f64 (exp.f64 x) 1) (neg.f64 x))
(+.f64 (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) 1) x)) (fmod.f64 (exp.f64 x) 1))
(+.f64 (fmod.f64 (exp.f64 x) 1) (*.f64 (fmod.f64 (exp.f64 x) 1) (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 1 (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) 1) x)) (fmod.f64 (exp.f64 x) 1))
(+.f64 (fmod.f64 (exp.f64 x) 1) (*.f64 (fmod.f64 (exp.f64 x) 1) (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 1 (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) 1) x)) (fmod.f64 (exp.f64 x) 1))
(+.f64 (fmod.f64 (exp.f64 x) 1) (*.f64 (fmod.f64 (exp.f64 x) 1) (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 1 (neg.f64 x)))
(*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) 1) x))
(*.f64 (fmod.f64 (exp.f64 x) 1) (*.f64 -1 x))
(*.f64 (fmod.f64 (exp.f64 x) 1) (neg.f64 x))
(+.f64 (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) 1) x)) (fmod.f64 (exp.f64 x) 1))
(+.f64 (fmod.f64 (exp.f64 x) 1) (*.f64 (fmod.f64 (exp.f64 x) 1) (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 1 (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) 1) x)) (fmod.f64 (exp.f64 x) 1))
(+.f64 (fmod.f64 (exp.f64 x) 1) (*.f64 (fmod.f64 (exp.f64 x) 1) (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 1 (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) 1) x)) (fmod.f64 (exp.f64 x) 1))
(+.f64 (fmod.f64 (exp.f64 x) 1) (*.f64 (fmod.f64 (exp.f64 x) 1) (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 1 (neg.f64 x)))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 1 (neg.f64 x))) 0)
(+.f64 0 (*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 1 (neg.f64 x))))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 1 (neg.f64 x))) 0)

localize24.0ms (0.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (pow.f64 x 2) -1/4)
0.0b
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (+.f64 (neg.f64 x) 1))
4.1b
(fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4)))
Compiler

Compiled 53 to 37 computations (30.2% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@inf
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (+.f64 (neg.f64 x) 1))
0.0ms
x
@-inf
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (+.f64 (neg.f64 x) 1))
0.0ms
x
@0
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (+.f64 (neg.f64 x) 1))

rewrite7.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
40×rational.json-simplify-2
40×bool.json-1
32×rational.json-simplify-1
30×rational.json-1
30×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01545
16945
210745
311845
412745
513045
613245
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (+.f64 (neg.f64 x) 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (+.f64 1 (neg.f64 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (+.f64 1 (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (+.f64 1 (neg.f64 x))) (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (+.f64 1 (neg.f64 x))))))))

simplify18.0ms (0.2%)

Algorithm
egg-herbie
Rules
68×rational.json-simplify-2
50×rational.json-simplify-31
24×rational.json-simplify-1
14×rational.json-simplify-9
12×rational.json-simplify-27
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
032888
153614
271614
388614
4103614
5113614
6129614
7138614
8155614
9158614
Stop Event
saturated
Counts
14 → 12
Calls
Call 1
Inputs
(fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2))))
(+.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) x)))
(*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) x))
(+.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) x)))
(*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) x))
(+.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) x)))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (+.f64 1 (neg.f64 x))) 0)
(+.f64 0 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (+.f64 1 (neg.f64 x))))
Outputs
(fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2))))
(+.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (+.f64 1 (neg.f64 x)))
(+.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (+.f64 1 (neg.f64 x)))
(+.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (+.f64 1 (neg.f64 x)))
(*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) x))
(*.f64 -1 (*.f64 x (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 (pow.f64 x 2) 1/4)))))
(*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 (pow.f64 x 2) 1/4))) (neg.f64 x))
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (neg.f64 x))
(+.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (+.f64 1 (neg.f64 x)))
(+.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (+.f64 1 (neg.f64 x)))
(+.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (+.f64 1 (neg.f64 x)))
(*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) x))
(*.f64 -1 (*.f64 x (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 (pow.f64 x 2) 1/4)))))
(*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 (pow.f64 x 2) 1/4))) (neg.f64 x))
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (neg.f64 x))
(+.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (+.f64 1 (neg.f64 x)))
(+.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (+.f64 1 (neg.f64 x)))
(+.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) (*.f64 -1 (*.f64 (fmod.f64 (exp.f64 x) (-.f64 1 (*.f64 1/4 (pow.f64 x 2)))) x)))
(+.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (*.f64 -1 x)))
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (+.f64 1 (neg.f64 x)))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (+.f64 1 (neg.f64 x))) 0)
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (+.f64 1 (neg.f64 x))) 0)
(+.f64 0 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (+.f64 1 (neg.f64 x))))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 -1/4 (pow.f64 x 2)))) (+.f64 1 (neg.f64 x))) 0)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
4.2b
(fmod.f64 (exp.f64 x) 1)
Compiler

Compiled 9 to 5 computations (44.4% saved)

localize15.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 32 to 24 computations (25% saved)

eval14.0ms (0.2%)

Compiler

Compiled 723 to 501 computations (30.7% saved)

prune10.0ms (0.1%)

Pruning

9 alts after pruning (0 fresh and 9 done)

PrunedKeptTotal
New55055
Fresh000
Picked011
Done088
Total55964
Error
59.8b
Counts
64 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
60.8b
(fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4)))
60.8b
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
60.8b
(fmod.f64 (exp.f64 x) 1)
60.5b
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (+.f64 (neg.f64 x) 1))
59.9b
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (exp.f64 (neg.f64 x)))
60.5b
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1))
59.8b
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
60.7b
(*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 (neg.f64 x) 1))
60.3b
(*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x)))
Compiler

Compiled 96 to 75 computations (21.9% saved)

regimes10.0ms (0.1%)

Counts
9 → 1
Calls
Call 1
Inputs
(fmod.f64 (exp.f64 x) 1)
(*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 (neg.f64 x) 1))
(*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x)))
(fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4)))
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (+.f64 (neg.f64 x) 1))
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1))
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
Outputs
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
Calls

2 calls:

5.0ms
x
2.0ms
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
Results
ErrorSegmentsBranch
59.8b1x
59.8b1(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
Compiler

Compiled 101 to 55 computations (45.5% saved)

regimes8.0ms (0.1%)

Counts
8 → 1
Calls
Call 1
Inputs
(fmod.f64 (exp.f64 x) 1)
(*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 (neg.f64 x) 1))
(*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x)))
(fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4)))
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (+.f64 (neg.f64 x) 1))
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1))
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (exp.f64 (neg.f64 x)))
Outputs
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (exp.f64 (neg.f64 x)))
Calls

1 calls:

5.0ms
x
Results
ErrorSegmentsBranch
59.9b1x
Compiler

Compiled 80 to 46 computations (42.5% saved)

regimes7.0ms (0.1%)

Counts
7 → 1
Calls
Call 1
Inputs
(fmod.f64 (exp.f64 x) 1)
(*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 (neg.f64 x) 1))
(*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x)))
(fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4)))
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (+.f64 (neg.f64 x) 1))
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 x) 1))
Outputs
(*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x)))
Calls

1 calls:

5.0ms
x
Results
ErrorSegmentsBranch
60.3b1x
Compiler

Compiled 66 to 38 computations (42.4% saved)

regimes4.0ms (0%)

Accuracy

Total -0.2b remaining (-0.3%)

Threshold costs -0.2b (-0.3%)

Counts
2 → 1
Calls
Call 1
Inputs
(fmod.f64 (exp.f64 x) 1)
(*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 (neg.f64 x) 1))
Outputs
(*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 (neg.f64 x) 1))
Calls

1 calls:

3.0ms
x
Results
ErrorSegmentsBranch
60.7b1x
Compiler

Compiled 16 to 11 computations (31.3% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
023139
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 (neg.f64 x) 1))
(fmod.f64 (exp.f64 x) 1)
Outputs
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (+.f64 1 (*.f64 (pow.f64 x 2) -1/4))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) 1) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) 1) (+.f64 (neg.f64 x) 1))
(fmod.f64 (exp.f64 x) 1)
Compiler

Compiled 50 to 39 computations (22% saved)

soundness0.0ms (0%)

end33.0ms (0.4%)

Compiler

Compiled 46 to 26 computations (43.5% saved)

Profiling

Loading profile data...