Details

Time bar (total: 2.5s)

analyze6.0ms (0.2%)

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
75%75%25%0%0%0%0%4
87.5%87.5%12.5%0%0%0%0%5
93.8%93.7%6.2%0%0%0%0%6
96.9%96.8%3.1%0%0%0%0%7
98.4%98.4%1.6%0%0%0%0%8
99.2%99.2%0.8%0%0%0%0%9
99.6%99.6%0.4%0%0%0%0%10
99.8%99.8%0.2%0%0%0%0%11
99.9%99.9%0.1%0%0%0%0%12
Compiler

Compiled 10 to 8 computations (20% saved)

sample883.0ms (35.4%)

Results
872.0ms8256×body256valid
Bogosity

preprocess71.0ms (2.8%)

Algorithm
egg-herbie
Rules
1268×rational_best-simplify-96
892×rational_best-simplify-88
744×rational_best-simplify-61
730×rational_best-simplify-3
686×rational_best-simplify-65
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0823
11023
23823
317123
483717
5349617
011
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(sqrt.f64 (+.f64 (pow.f64 x 2) (pow.f64 x 2)))
Outputs
(sqrt.f64 (+.f64 (pow.f64 x 2) (pow.f64 x 2)))
(sqrt.f64 (*.f64 (pow.f64 x 2) 2))
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
Compiler

Compiled 10 to 8 computations (20% saved)

simplify67.0ms (2.7%)

Algorithm
egg-herbie
Rules
1268×rational_best-simplify-96
892×rational_best-simplify-88
744×rational_best-simplify-61
730×rational_best-simplify-3
686×rational_best-simplify-65
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0823
11023
23823
317123
483717
5349617
Stop Event
node limit
Counts
1 → 3
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (pow.f64 x 2) (pow.f64 x 2)))
Outputs
(sqrt.f64 (+.f64 (pow.f64 x 2) (pow.f64 x 2)))
(sqrt.f64 (*.f64 (pow.f64 x 2) 2))
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))

eval1.0ms (0%)

Compiler

Compiled 21 to 17 computations (19% saved)

prune1.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New213
Fresh101
Picked000
Done000
Total314
Error
31.0b
Counts
4 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
31.0b
(sqrt.f64 (*.f64 (pow.f64 x 2) 2))
Compiler

Compiled 7 to 6 computations (14.3% saved)

localize8.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (pow.f64 x 2) 2)
29.9b
(sqrt.f64 (*.f64 (pow.f64 x 2) 2))
Compiler

Compiled 17 to 13 computations (23.5% saved)

series2.0ms (0.1%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@0
(sqrt.f64 (*.f64 (pow.f64 x 2) 2))
0.0ms
x
@inf
(sqrt.f64 (*.f64 (pow.f64 x 2) 2))
0.0ms
x
@0
(*.f64 (pow.f64 x 2) 2)
0.0ms
x
@inf
(*.f64 (pow.f64 x 2) 2)
0.0ms
x
@-inf
(sqrt.f64 (*.f64 (pow.f64 x 2) 2))

rewrite75.0ms (3%)

Algorithm
batch-egg-rewrite
Rules
rational_best-simplify-3
egg-rr
exponential-simplify-21
exponential-simplify-24
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0830
11230
21530
Stop Event
saturated
Counts
2 → 2
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 (pow.f64 x 2) 2))
(*.f64 (pow.f64 x 2) 2)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 x) 2) (sqrt.f64 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 2) (pow.f64 (sqrt.f64 x) 2))))))
()

simplify50.0ms (2%)

Algorithm
egg-herbie
Rules
624×rational_best-simplify-113
446×rational_best-simplify-124
438×rational_best-simplify-96
432×rational_best-simplify-127
430×rational_best-simplify-126
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
015354
121338
227338
335338
471338
5279338
61831338
Stop Event
node limit
Counts
26 → 11
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 x) 2) (sqrt.f64 2))
(*.f64 (sqrt.f64 2) (pow.f64 (sqrt.f64 x) 2))
Outputs
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (*.f64 -1 x))
(neg.f64 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (*.f64 -1 x))
(neg.f64 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (*.f64 -1 x))
(neg.f64 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (*.f64 -1 x))
(neg.f64 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 2 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) 2)
(*.f64 2 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) 2)
(*.f64 2 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) 2)
(*.f64 2 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) 2)
(*.f64 2 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) 2)
(*.f64 2 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) 2)
(*.f64 2 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) 2)
(*.f64 2 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) 2)
(*.f64 2 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) 2)
(*.f64 2 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) 2)
(*.f64 2 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) 2)
(*.f64 2 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) 2)
(*.f64 (pow.f64 (sqrt.f64 x) 2) (sqrt.f64 2))
(*.f64 (sqrt.f64 2) (pow.f64 (sqrt.f64 x) 2))
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(sqrt.f64 (*.f64 (pow.f64 x 2) 2))
(*.f64 (sqrt.f64 2) (pow.f64 (sqrt.f64 x) 2))
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(sqrt.f64 (*.f64 (pow.f64 x 2) 2))

eval2.0ms (0.1%)

Compiler

Compiled 65 to 53 computations (18.5% saved)

prune3.0ms (0.1%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New8311
Fresh000
Picked011
Done000
Total8412
Error
0.2b
Counts
12 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
32.6b
(*.f64 (pow.f64 (sqrt.f64 x) 2) (sqrt.f64 2))
31.2b
(*.f64 (sqrt.f64 2) (neg.f64 x))
31.8b
(*.f64 (sqrt.f64 2) x)
31.0b
(sqrt.f64 (*.f64 (pow.f64 x 2) 2))
Compiler

Compiled 26 to 22 computations (15.4% saved)

localize4.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.4b
(*.f64 (sqrt.f64 2) x)
Compiler

Compiled 9 to 7 computations (22.2% saved)

series1.0ms (0%)

Counts
1 → 0
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@inf
(*.f64 (sqrt.f64 2) x)
0.0ms
x
@-inf
(*.f64 (sqrt.f64 2) x)
0.0ms
x
@0
(*.f64 (sqrt.f64 2) x)

rewrite15.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
rational_best-simplify-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
1811
Stop Event
saturated
Counts
1 → 0
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 2) x)
Outputs
()

simplify13.0ms (0.5%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
0 → 0
Calls
Call 1
Inputs
Outputs

localize6.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.4b
(*.f64 (sqrt.f64 2) (neg.f64 x))
Compiler

Compiled 12 to 8 computations (33.3% saved)

series0.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@0
(*.f64 (sqrt.f64 2) (neg.f64 x))
0.0ms
x
@inf
(*.f64 (sqrt.f64 2) (neg.f64 x))
0.0ms
x
@-inf
(*.f64 (sqrt.f64 2) (neg.f64 x))

rewrite92.0ms (3.7%)

Algorithm
batch-egg-rewrite
Rules
1254×rational_best-simplify-3
700×rational_best-simplify-1
416×rational_best-simplify-96
406×rational_best-simplify-124
404×rational_best-simplify-117
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0815
11815
26015
328615
4187415
5738015
Stop Event
node limit
Counts
1 → 26
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 2) (neg.f64 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 2) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 (sqrt.f64 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 2) x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (+.f64 (*.f64 (sqrt.f64 2) x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (+.f64 (*.f64 (sqrt.f64 2) x) 1)) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x))) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (+.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (+.f64 (*.f64 (sqrt.f64 2) x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2) (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x)))) (-.f64 4 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (*.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (+.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x))) (+.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x)))) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (+.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (+.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))) (+.f64 (+.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (+.f64 (*.f64 (sqrt.f64 2) x) 1)) (+.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (+.f64 (*.f64 (sqrt.f64 2) x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2) (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x)))) (-.f64 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2) (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x))))) (+.f64 (-.f64 4 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2)) (-.f64 4 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (*.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))) (-.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (*.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))))) (+.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 -4 (+.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x)))) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x))) (+.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x))))) (-.f64 16 (*.f64 -4 (+.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (+.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (+.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (+.f64 (*.f64 (sqrt.f64 2) x) 1))) (*.f64 (+.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (+.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))))) (-.f64 (*.f64 (+.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (+.f64 (*.f64 (sqrt.f64 2) x) 1)) (+.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (+.f64 (*.f64 (sqrt.f64 2) x) 1))) (*.f64 (+.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (+.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (+.f64 (*.f64 (sqrt.f64 2) x) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2) (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x)))) (-.f64 4 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2))) (*.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2) (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x)))) (-.f64 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2) (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x)))))) (-.f64 (*.f64 (-.f64 4 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2)) (-.f64 4 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2))) (*.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2) (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x)))) (-.f64 4 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (*.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))))) (*.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (*.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))) (-.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (*.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))))) (-.f64 (*.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))))) (*.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (*.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (sqrt.f64 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 0 0) 1 (*.f64 (sqrt.f64 2) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (*.f64 (sqrt.f64 2) x) 0) (/.f64 (pow.f64 (*.f64 (sqrt.f64 2) x) 2) (*.f64 (sqrt.f64 2) (neg.f64 x))) (*.f64 (sqrt.f64 2) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) 0) (/.f64 (pow.f64 (*.f64 (sqrt.f64 2) x) 2) (*.f64 (sqrt.f64 2) (neg.f64 x))) (*.f64 (sqrt.f64 2) (neg.f64 x)))))))

simplify68.0ms (2.7%)

Algorithm
egg-herbie
Rules
1268×rational_best-simplify-61
1102×rational_best-simplify-3
794×rational_best-simplify-62
688×rational_best-simplify-53
624×rational_best-simplify-56
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
097672
1589664
23955656
Stop Event
node limit
Counts
38 → 33
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(+.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) 0)
(+.f64 0 (*.f64 (sqrt.f64 2) (neg.f64 x)))
(-.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) 0)
(-.f64 0 (*.f64 (sqrt.f64 2) x))
(/.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) 1)
(/.f64 (*.f64 (sqrt.f64 2) x) -1)
(/.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2)
(/.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (+.f64 (*.f64 (sqrt.f64 2) x) 1))
(/.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (+.f64 (*.f64 (sqrt.f64 2) x) 1)) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))
(/.f64 (+.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x))) -4)
(/.f64 (+.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (+.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (+.f64 (*.f64 (sqrt.f64 2) x) 1)))
(/.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2) (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x)))) (-.f64 4 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2)))
(/.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (*.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))))
(/.f64 (+.f64 (+.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x))) (+.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x)))) -8)
(/.f64 (+.f64 (+.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (+.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))) (+.f64 (+.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (+.f64 (*.f64 (sqrt.f64 2) x) 1)) (+.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (+.f64 (*.f64 (sqrt.f64 2) x) 1))))
(/.f64 (+.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2) (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x)))) (-.f64 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2) (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x))))) (+.f64 (-.f64 4 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2)) (-.f64 4 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2))))
(/.f64 (+.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (*.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))) (-.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (*.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))))) (+.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))))))
(/.f64 (-.f64 (*.f64 -4 (+.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x)))) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x))) (+.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x))))) (-.f64 16 (*.f64 -4 (+.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x))))))
(/.f64 (-.f64 (*.f64 (+.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (+.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (+.f64 (*.f64 (sqrt.f64 2) x) 1))) (*.f64 (+.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (+.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))))) (-.f64 (*.f64 (+.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (+.f64 (*.f64 (sqrt.f64 2) x) 1)) (+.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (+.f64 (*.f64 (sqrt.f64 2) x) 1))) (*.f64 (+.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (+.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (+.f64 (*.f64 (sqrt.f64 2) x) 1)))))
(/.f64 (-.f64 (*.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2) (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x)))) (-.f64 4 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2))) (*.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2) (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x)))) (-.f64 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2) (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x)))))) (-.f64 (*.f64 (-.f64 4 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2)) (-.f64 4 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2))) (*.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2) (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x)))) (-.f64 4 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2)))))
(/.f64 (-.f64 (*.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (*.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))))) (*.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (*.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))) (-.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (*.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))))) (-.f64 (*.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))))) (*.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (*.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))))))
(pow.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) 1)
(neg.f64 (*.f64 (sqrt.f64 2) x))
(if (!=.f64 0 0) 1 (*.f64 (sqrt.f64 2) (neg.f64 x)))
(if (!=.f64 (*.f64 (sqrt.f64 2) x) 0) (/.f64 (pow.f64 (*.f64 (sqrt.f64 2) x) 2) (*.f64 (sqrt.f64 2) (neg.f64 x))) (*.f64 (sqrt.f64 2) (neg.f64 x)))
(if (!=.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) 0) (/.f64 (pow.f64 (*.f64 (sqrt.f64 2) x) 2) (*.f64 (sqrt.f64 2) (neg.f64 x))) (*.f64 (sqrt.f64 2) (neg.f64 x)))
Outputs
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(+.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) 0)
(*.f64 (sqrt.f64 2) (neg.f64 x))
(+.f64 0 (*.f64 (sqrt.f64 2) (neg.f64 x)))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(-.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) 0)
(*.f64 (sqrt.f64 2) (neg.f64 x))
(-.f64 0 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(/.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) 1)
(*.f64 (sqrt.f64 2) (neg.f64 x))
(/.f64 (*.f64 (sqrt.f64 2) x) -1)
(*.f64 (sqrt.f64 2) (neg.f64 x))
(/.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2)
(*.f64 (sqrt.f64 2) (neg.f64 x))
(/.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (+.f64 (*.f64 (sqrt.f64 2) x) 1))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(/.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (+.f64 (*.f64 (sqrt.f64 2) x) 1)) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(/.f64 (+.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x))) -4)
(*.f64 (sqrt.f64 2) (neg.f64 x))
(/.f64 (+.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (+.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (+.f64 (*.f64 (sqrt.f64 2) x) 1)))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(/.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2) (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x)))) (-.f64 4 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2)))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(/.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (*.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(/.f64 (+.f64 (+.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x))) (+.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x)))) -8)
(*.f64 (sqrt.f64 2) (neg.f64 x))
(/.f64 (+.f64 (+.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (+.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))) (+.f64 (+.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (+.f64 (*.f64 (sqrt.f64 2) x) 1)) (+.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (+.f64 (*.f64 (sqrt.f64 2) x) 1))))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(/.f64 (+.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2) (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x)))) (-.f64 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2) (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x))))) (+.f64 (-.f64 4 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2)) (-.f64 4 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2))))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(/.f64 (+.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (*.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))) (-.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (*.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))))) (+.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))))))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(/.f64 (-.f64 (*.f64 -4 (+.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x)))) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x))) (+.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x))))) (-.f64 16 (*.f64 -4 (+.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x))))))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(/.f64 (-.f64 (*.f64 (+.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (+.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (+.f64 (*.f64 (sqrt.f64 2) x) 1))) (*.f64 (+.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (+.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))))) (-.f64 (*.f64 (+.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (+.f64 (*.f64 (sqrt.f64 2) x) 1)) (+.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (+.f64 (*.f64 (sqrt.f64 2) x) 1))) (*.f64 (+.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (+.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (+.f64 (*.f64 (sqrt.f64 2) x) 1)))))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(/.f64 (-.f64 (*.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2) (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x)))) (-.f64 4 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2))) (*.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2) (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x)))) (-.f64 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2) (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x)))))) (-.f64 (*.f64 (-.f64 4 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2)) (-.f64 4 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2))) (*.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2) (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) (*.f64 (sqrt.f64 2) (+.f64 x x)))) (-.f64 4 (*.f64 (*.f64 (sqrt.f64 2) (+.f64 x x)) -2)))))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(/.f64 (-.f64 (*.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (*.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))))) (*.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (*.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))) (-.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (*.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))))) (-.f64 (*.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))))) (*.f64 (-.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 -1 (*.f64 (sqrt.f64 2) x)))) (*.f64 (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))) (*.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (-.f64 (+.f64 (*.f64 (sqrt.f64 2) x) 1) (*.f64 (*.f64 (sqrt.f64 2) x) (-.f64 -1 (*.f64 (sqrt.f64 2) x))))))))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(pow.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) 1)
(*.f64 (sqrt.f64 2) (neg.f64 x))
(neg.f64 (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(if (!=.f64 0 0) 1 (*.f64 (sqrt.f64 2) (neg.f64 x)))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(if (!=.f64 (*.f64 (sqrt.f64 2) x) 0) (/.f64 (pow.f64 (*.f64 (sqrt.f64 2) x) 2) (*.f64 (sqrt.f64 2) (neg.f64 x))) (*.f64 (sqrt.f64 2) (neg.f64 x)))
(if (!=.f64 (*.f64 (sqrt.f64 2) x) 0) (/.f64 (neg.f64 (*.f64 2 (pow.f64 x 2))) (*.f64 (sqrt.f64 2) x)) (*.f64 (sqrt.f64 2) (neg.f64 x)))
(if (!=.f64 (*.f64 (sqrt.f64 2) x) 0) (/.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 (sqrt.f64 2) x)) (*.f64 (sqrt.f64 2) (neg.f64 x)))
(if (!=.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) 0) (/.f64 (pow.f64 (*.f64 (sqrt.f64 2) x) 2) (*.f64 (sqrt.f64 2) (neg.f64 x))) (*.f64 (sqrt.f64 2) (neg.f64 x)))
(if (!=.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) 0) (/.f64 (pow.f64 (*.f64 (sqrt.f64 2) x) 2) (*.f64 (sqrt.f64 2) (neg.f64 x))) 0)
(if (!=.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) 0) (/.f64 (neg.f64 (*.f64 2 (pow.f64 x 2))) (*.f64 (sqrt.f64 2) x)) 0)
(if (!=.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) 0) (/.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 (sqrt.f64 2) x)) 0)

localize8.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (pow.f64 (sqrt.f64 x) 2) (sqrt.f64 2))
0.3b
(pow.f64 (sqrt.f64 x) 2)
Compiler

Compiled 18 to 12 computations (33.3% saved)

series3.0ms (0.1%)

Counts
2 → 12
Calls

6 calls:

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

rewrite15.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
exponential-simplify-20
rational_best-simplify-3
exponential-simplify-25
egg-rr
egg-rr
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0932
11228
21628
31628
Stop Event
saturated
Counts
2 → 2
Calls
Call 1
Inputs
(pow.f64 (sqrt.f64 x) 2)
(*.f64 (pow.f64 (sqrt.f64 x) 2) (sqrt.f64 2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 x 2))))))
((#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 2 (pow.f64 x 2)))))))

simplify59.0ms (2.4%)

Algorithm
egg-herbie
Rules
606×rational_best-simplify-111
562×rational_best-simplify-124
526×rational_best-simplify-96
506×rational_best-simplify-117
506×rational_best-simplify-110
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
017208
132184
249176
372176
4146176
5447176
62479176
Stop Event
node limit
Counts
14 → 9
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 -1 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 (sqrt.f64 -1) 2) x)))
(*.f64 -1 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 (sqrt.f64 -1) 2) x)))
(*.f64 -1 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 (sqrt.f64 -1) 2) x)))
(*.f64 -1 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 (sqrt.f64 -1) 2) x)))
(sqrt.f64 (pow.f64 x 2))
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
Outputs
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) x)
(*.f64 -1 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 (sqrt.f64 -1) 2) x)))
(*.f64 (sqrt.f64 2) (*.f64 -1 (*.f64 x 1)))
(*.f64 (sqrt.f64 2) (*.f64 x -1))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 (sqrt.f64 -1) 2) x)))
(*.f64 (sqrt.f64 2) (*.f64 -1 (*.f64 x 1)))
(*.f64 (sqrt.f64 2) (*.f64 x -1))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 (sqrt.f64 -1) 2) x)))
(*.f64 (sqrt.f64 2) (*.f64 -1 (*.f64 x 1)))
(*.f64 (sqrt.f64 2) (*.f64 x -1))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 -1 (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 (sqrt.f64 -1) 2) x)))
(*.f64 (sqrt.f64 2) (*.f64 -1 (*.f64 x 1)))
(*.f64 (sqrt.f64 2) (*.f64 x -1))
(*.f64 (sqrt.f64 2) (neg.f64 x))
(sqrt.f64 (pow.f64 x 2))
(pow.f64 (sqrt.f64 x) 2)
(sqrt.f64 (*.f64 2 (pow.f64 x 2)))
(sqrt.f64 (*.f64 (pow.f64 x 2) 2))

eval23.0ms (0.9%)

Compiler

Compiled 1415 to 1099 computations (22.3% saved)

prune6.0ms (0.2%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New41142
Fresh000
Picked011
Done033
Total41546
Error
0.2b
Counts
46 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
48.0b
(if (!=.f64 (*.f64 (sqrt.f64 2) x) 0) (/.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 (sqrt.f64 2) x)) (*.f64 (sqrt.f64 2) (neg.f64 x)))
32.6b
(*.f64 (pow.f64 (sqrt.f64 x) 2) (sqrt.f64 2))
31.2b
(*.f64 (sqrt.f64 2) (neg.f64 x))
31.8b
(*.f64 (sqrt.f64 2) x)
31.0b
(sqrt.f64 (*.f64 (pow.f64 x 2) 2))
Compiler

Compiled 49 to 41 computations (16.3% saved)

localize82.0ms (3.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (pow.f64 x 2) -2)
0.4b
(*.f64 (sqrt.f64 2) x)
0.4b
(*.f64 (sqrt.f64 2) (neg.f64 x))
30.1b
(/.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 (sqrt.f64 2) x))
Compiler

Compiled 64 to 49 computations (23.4% saved)

series2.0ms (0.1%)

Counts
3 → 24
Calls

9 calls:

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

rewrite84.0ms (3.4%)

Algorithm
batch-egg-rewrite
Rules
1372×rational_best-simplify-61
1130×rational_best-simplify-52
806×rational_best-simplify-53
748×rational_best-simplify-56
564×rational_best-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01153
12253
210353
364053
4440753
Stop Event
node limit
Counts
3 → 16
Calls
Call 1
Inputs
(/.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) x)
(*.f64 (pow.f64 x 2) -2)
Outputs
()
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (sqrt.f64 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (sqrt.f64 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 (sqrt.f64 2) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (sqrt.f64 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (sqrt.f64 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 2) -2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (pow.f64 x 2) -2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (pow.f64 x 2) -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 (pow.f64 x 2) -2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (pow.f64 x 2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 x 2) -2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 2 (pow.f64 x 2)))))))

simplify68.0ms (2.7%)

Algorithm
egg-herbie
Rules
910×rational_best-simplify-3
838×rational_best-simplify-61
832×rational_best-simplify-65
470×rational_best-simplify-53
458×rational_best-simplify-52
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
035600
1161552
2905552
34896552
Stop Event
node limit
Counts
40 → 20
Calls
Call 1
Inputs
(*.f64 -2 (/.f64 x (sqrt.f64 2)))
(*.f64 -2 (/.f64 x (sqrt.f64 2)))
(*.f64 -2 (/.f64 x (sqrt.f64 2)))
(*.f64 -2 (/.f64 x (sqrt.f64 2)))
(*.f64 -2 (/.f64 x (sqrt.f64 2)))
(*.f64 -2 (/.f64 x (sqrt.f64 2)))
(*.f64 -2 (/.f64 x (sqrt.f64 2)))
(*.f64 -2 (/.f64 x (sqrt.f64 2)))
(*.f64 -2 (/.f64 x (sqrt.f64 2)))
(*.f64 -2 (/.f64 x (sqrt.f64 2)))
(*.f64 -2 (/.f64 x (sqrt.f64 2)))
(*.f64 -2 (/.f64 x (sqrt.f64 2)))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (pow.f64 x 2))
(+.f64 (*.f64 x (sqrt.f64 2)) 0)
(+.f64 0 (*.f64 x (sqrt.f64 2)))
(-.f64 (*.f64 x (sqrt.f64 2)) 0)
(-.f64 0 (*.f64 (sqrt.f64 2) (neg.f64 x)))
(/.f64 (*.f64 x (sqrt.f64 2)) 1)
(/.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) -1)
(pow.f64 (*.f64 x (sqrt.f64 2)) 1)
(neg.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)))
(+.f64 (*.f64 (pow.f64 x 2) -2) 0)
(+.f64 0 (*.f64 (pow.f64 x 2) -2))
(-.f64 (*.f64 (pow.f64 x 2) -2) 0)
(-.f64 0 (*.f64 2 (pow.f64 x 2)))
(/.f64 (*.f64 (pow.f64 x 2) -2) 1)
(/.f64 (*.f64 2 (pow.f64 x 2)) -1)
(pow.f64 (*.f64 (pow.f64 x 2) -2) 1)
(neg.f64 (*.f64 2 (pow.f64 x 2)))
Outputs
(*.f64 -2 (/.f64 x (sqrt.f64 2)))
(*.f64 -2 (/.f64 x (sqrt.f64 2)))
(*.f64 -2 (/.f64 x (sqrt.f64 2)))
(*.f64 -2 (/.f64 x (sqrt.f64 2)))
(*.f64 -2 (/.f64 x (sqrt.f64 2)))
(*.f64 -2 (/.f64 x (sqrt.f64 2)))
(*.f64 -2 (/.f64 x (sqrt.f64 2)))
(*.f64 -2 (/.f64 x (sqrt.f64 2)))
(*.f64 -2 (/.f64 x (sqrt.f64 2)))
(*.f64 -2 (/.f64 x (sqrt.f64 2)))
(*.f64 -2 (/.f64 x (sqrt.f64 2)))
(*.f64 -2 (/.f64 x (sqrt.f64 2)))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (*.f64 x x))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (*.f64 x x))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (*.f64 x x))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (*.f64 x x))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (*.f64 x x))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (*.f64 x x))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (*.f64 x x))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (*.f64 x x))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (*.f64 x x))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (*.f64 x x))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (*.f64 x x))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (*.f64 x x))
(+.f64 (*.f64 x (sqrt.f64 2)) 0)
(*.f64 x (sqrt.f64 2))
(+.f64 0 (*.f64 x (sqrt.f64 2)))
(+.f64 (*.f64 x (sqrt.f64 2)) 0)
(*.f64 x (sqrt.f64 2))
(-.f64 (*.f64 x (sqrt.f64 2)) 0)
(+.f64 (*.f64 x (sqrt.f64 2)) 0)
(*.f64 x (sqrt.f64 2))
(-.f64 0 (*.f64 (sqrt.f64 2) (neg.f64 x)))
(+.f64 (*.f64 x (sqrt.f64 2)) 0)
(*.f64 x (sqrt.f64 2))
(/.f64 (*.f64 x (sqrt.f64 2)) 1)
(+.f64 (*.f64 x (sqrt.f64 2)) 0)
(*.f64 x (sqrt.f64 2))
(/.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)) -1)
(+.f64 (*.f64 x (sqrt.f64 2)) 0)
(*.f64 x (sqrt.f64 2))
(pow.f64 (*.f64 x (sqrt.f64 2)) 1)
(+.f64 (*.f64 x (sqrt.f64 2)) 0)
(*.f64 x (sqrt.f64 2))
(neg.f64 (*.f64 (sqrt.f64 2) (neg.f64 x)))
(+.f64 (*.f64 x (sqrt.f64 2)) 0)
(*.f64 x (sqrt.f64 2))
(+.f64 (*.f64 (pow.f64 x 2) -2) 0)
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (*.f64 x x))
(+.f64 0 (*.f64 (pow.f64 x 2) -2))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (*.f64 x x))
(-.f64 (*.f64 (pow.f64 x 2) -2) 0)
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (*.f64 x x))
(-.f64 0 (*.f64 2 (pow.f64 x 2)))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (*.f64 x x))
(/.f64 (*.f64 (pow.f64 x 2) -2) 1)
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (*.f64 x x))
(/.f64 (*.f64 2 (pow.f64 x 2)) -1)
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (*.f64 x x))
(pow.f64 (*.f64 (pow.f64 x 2) -2) 1)
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (*.f64 x x))
(neg.f64 (*.f64 2 (pow.f64 x 2)))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (*.f64 x x))

eval54.0ms (2.2%)

Compiler

Compiled 2601 to 2045 computations (21.4% saved)

prune9.0ms (0.3%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New61162
Fresh000
Picked101
Done044
Total62567
Error
0.1b
Counts
67 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
31.2b
(if (!=.f64 (*.f64 (sqrt.f64 2) x) 0) (*.f64 -2 (/.f64 x (sqrt.f64 2))) (*.f64 (sqrt.f64 2) (neg.f64 x)))
32.6b
(*.f64 (pow.f64 (sqrt.f64 x) 2) (sqrt.f64 2))
31.2b
(*.f64 (sqrt.f64 2) (neg.f64 x))
31.8b
(*.f64 (sqrt.f64 2) x)
31.0b
(sqrt.f64 (*.f64 (pow.f64 x 2) 2))
Compiler

Compiled 45 to 38 computations (15.6% saved)

localize21.0ms (0.8%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.4b
(/.f64 x (sqrt.f64 2))
0.4b
(*.f64 (sqrt.f64 2) x)
0.4b
(*.f64 (sqrt.f64 2) (neg.f64 x))
Compiler

Compiled 52 to 40 computations (23.1% saved)

series1.0ms (0%)

Counts
1 → 0
Calls

3 calls:

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

rewrite61.0ms (2.4%)

Algorithm
batch-egg-rewrite
Rules
1224×rational_best-simplify-61
1190×rational_best-simplify-65
1054×rational_best-simplify-3
736×rational_best-simplify-62
632×rational_best-simplify-53
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
11611
29011
354911
4364611
Stop Event
node limit
Counts
1 → 0
Calls
Call 1
Inputs
(/.f64 x (sqrt.f64 2))
Outputs
()

simplify13.0ms (0.5%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
0 → 0
Calls
Call 1
Inputs
Outputs

eval66.0ms (2.6%)

Compiler

Compiled 1964 to 1553 computations (20.9% saved)

prune7.0ms (0.3%)

Pruning

5 alts after pruning (0 fresh and 5 done)

PrunedKeptTotal
New42042
Fresh000
Picked011
Done044
Total42547
Error
0.1b
Counts
47 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
31.2b
(if (!=.f64 (*.f64 (sqrt.f64 2) x) 0) (*.f64 -2 (/.f64 x (sqrt.f64 2))) (*.f64 (sqrt.f64 2) (neg.f64 x)))
32.6b
(*.f64 (pow.f64 (sqrt.f64 x) 2) (sqrt.f64 2))
31.2b
(*.f64 (sqrt.f64 2) (neg.f64 x))
31.8b
(*.f64 (sqrt.f64 2) x)
31.0b
(sqrt.f64 (*.f64 (pow.f64 x 2) 2))
Compiler

Compiled 45 to 38 computations (15.6% saved)

regimes149.0ms (6%)

Accuracy

Total -62.8b remaining (-13983.9%)

Threshold costs -62.8b (-13983.9%)

Counts
7 → 2
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 2) x)
(*.f64 (sqrt.f64 2) (neg.f64 x))
(sqrt.f64 (*.f64 (pow.f64 x 2) 2))
(if (!=.f64 (*.f64 (sqrt.f64 2) x) 0) (*.f64 -2 (/.f64 x (sqrt.f64 2))) (*.f64 (sqrt.f64 2) (neg.f64 x)))
(*.f64 (pow.f64 (sqrt.f64 x) 2) (sqrt.f64 2))
(sqrt.f64 (+.f64 (pow.f64 x 2) (pow.f64 x 2)))
(if (!=.f64 (*.f64 (sqrt.f64 2) x) 0) (/.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 (sqrt.f64 2) x)) (*.f64 (sqrt.f64 2) (neg.f64 x)))
Outputs
(*.f64 (sqrt.f64 2) (neg.f64 x))
(*.f64 (sqrt.f64 2) x)
Calls

4 calls:

70.0ms
x
58.0ms
(sqrt.f64 (+.f64 (pow.f64 x 2) (pow.f64 x 2)))
10.0ms
(pow.f64 x 2)
9.0ms
(+.f64 (pow.f64 x 2) (pow.f64 x 2))
Results
ErrorSegmentsBranch
0.4b2x
14.3b3(sqrt.f64 (+.f64 (pow.f64 x 2) (pow.f64 x 2)))
14.3b3(+.f64 (pow.f64 x 2) (pow.f64 x 2))
14.3b3(pow.f64 x 2)
Compiler

Compiled 94 to 73 computations (22.3% saved)

bsearch19.0ms (0.8%)

Algorithm
binary-search
Steps
TimeLeftRight
19.0ms
-1.3475538675960855e-297
2.570630597080787e-302
Results
17.0ms160×body256valid
Compiler

Compiled 143 to 120 computations (16.1% saved)

simplify2.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01546
Stop Event
done
saturated
Calls
Call 1
Inputs
(if (<=.f64 x -101201126653655/202402253307310618352495346718917307049556649764142118356901358027430339567995346891960383701437124495187077864316811911389808737385793476867013399940738509921517424276566361364466907742093216341239767678472745068562007483424692698618103355649159556340810056512358769552333414615230502532186327508646006263307707741093494784) (*.f64 (sqrt.f64 2) (neg.f64 x)) (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) x)
Outputs
(if (<=.f64 x -101201126653655/202402253307310618352495346718917307049556649764142118356901358027430339567995346891960383701437124495187077864316811911389808737385793476867013399940738509921517424276566361364466907742093216341239767678472745068562007483424692698618103355649159556340810056512358769552333414615230502532186327508646006263307707741093494784) (*.f64 (sqrt.f64 2) (neg.f64 x)) (*.f64 (sqrt.f64 2) x))
(*.f64 (sqrt.f64 2) x)
Compiler

Compiled 19 to 15 computations (21.1% saved)

soundness304.0ms (12.2%)

Algorithm
egg-herbie
Rules
1268×rational_best-simplify-96
1268×rational_best-simplify-96
892×rational_best-simplify-88
892×rational_best-simplify-88
744×rational_best-simplify-61
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0823
11023
23823
317123
483717
5349617
015354
121338
227338
335338
471338
5279338
61831338
0823
11023
23823
317123
483717
5349617
Stop Event
node limit
node limit
node limit
Compiler

Compiled 246 to 206 computations (16.3% saved)

end69.0ms (2.8%)

Compiler

Compiled 18 to 14 computations (22.2% saved)

Profiling

Loading profile data...