Details

Time bar (total: 5.6s)

analyze443.0ms (7.9%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
0%0%99.9%0.1%0%0%0%4
25%25%74.9%0.1%0%0%0%5
28.6%25%62.4%0.1%12.5%0%0%6
42.9%37.5%50%0.1%12.5%0%0%7
55.6%46.8%37.5%0.1%15.6%0%0%8
63.6%53.1%30.4%0.1%16.4%0%0%9
73.9%58.5%20.7%0.1%20.7%0%0%10
79.3%62%16.2%0.1%21.7%0%0%11
85.7%65%10.8%0.1%24.1%0%0%12
Compiler

Compiled 12 to 8 computations (33.3% saved)

sample3.6s (64.8%)

Results
3.4s8256×body256valid
179.0ms465×body256infinite
Bogosity

preprocess207.0ms (3.7%)

Algorithm
egg-herbie
Rules
30×rational.json-simplify-2
12×rational.json-simplify-43
rational.json-simplify-54
rational.json-simplify-55
rational.json-simplify-73
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01350
11938
22738
33738
45738
55938
022
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(*.f64 2 (-.f64 (*.f64 x x) (*.f64 x y)))
(*.f64 2 (-.f64 (*.f64 y y) (*.f64 y x)))
Outputs
(*.f64 2 (-.f64 (*.f64 x x) (*.f64 x y)))
(*.f64 2 (*.f64 x (-.f64 x y)))
(*.f64 2 (-.f64 (*.f64 y y) (*.f64 y x)))
(*.f64 2 (-.f64 (*.f64 y y) (*.f64 x y)))
(*.f64 2 (*.f64 y (-.f64 y x)))
(*.f64 y (*.f64 (-.f64 y x) 2))
(*.f64 y (*.f64 2 (-.f64 y x)))
Compiler

Compiled 13 to 9 computations (30.8% saved)

simplify204.0ms (3.6%)

Algorithm
egg-herbie
Rules
16×rational.json-simplify-2
rational.json-simplify-43
rational.json-simplify-54
rational.json-simplify-55
rational.json-simplify-73
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0925
11319
21719
32219
43219
53319
Stop Event
saturated
Counts
1 → 4
Calls
Call 1
Inputs
(*.f64 2 (-.f64 (*.f64 x x) (*.f64 x y)))
Outputs
(*.f64 2 (-.f64 (*.f64 x x) (*.f64 x y)))
(*.f64 2 (*.f64 x (-.f64 x y)))
(*.f64 (-.f64 x y) (*.f64 x 2))
(*.f64 (-.f64 x y) (*.f64 2 x))

eval1.0ms (0%)

Compiler

Compiled 32 to 17 computations (46.9% saved)

prune2.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New314
Fresh101
Picked000
Done000
Total415
Error
0.0b
Counts
5 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(*.f64 (-.f64 x y) (*.f64 x 2))
Compiler

Compiled 9 to 6 computations (33.3% saved)

localize17.0ms (0.3%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (-.f64 x y) (*.f64 x 2))
Compiler

Compiled 18 to 9 computations (50% saved)

series5.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(*.f64 (-.f64 x y) (*.f64 x 2))
1.0ms
y
@0
(*.f64 (-.f64 x y) (*.f64 x 2))
1.0ms
x
@0
(*.f64 (-.f64 x y) (*.f64 x 2))
1.0ms
y
@inf
(*.f64 (-.f64 x y) (*.f64 x 2))
1.0ms
x
@-inf
(*.f64 (-.f64 x y) (*.f64 x 2))

rewrite145.0ms (2.6%)

Algorithm
batch-egg-rewrite
Rules
1774×rational.json-5
1772×exponential.json-3
1772×rational.json-1
1772×rational.json-2
1772×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0819
16919
223619
387619
4342319
Stop Event
node limit
Counts
1 → 6
Calls
Call 1
Inputs
(*.f64 (-.f64 x y) (*.f64 x 2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 (-.f64 x y) 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 (-.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 (-.f64 x y) 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (-.f64 x y) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (-.f64 x y) 2)) (/.f64 (*.f64 (-.f64 x y) (*.f64 x 4)) (*.f64 (-.f64 x y) (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 (-.f64 x y) 2)) 1)))))

simplify281.0ms (5%)

Algorithm
egg-herbie
Rules
1638×rational.json-simplify-47
1438×rational.json-simplify-104
1294×rational.json-simplify-79
1272×rational.json-simplify-73
1186×rational.json-simplify-80
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
026798
150798
2108798
3258798
4943798
52242798
63624798
74749798
85644798
97408798
Stop Event
node limit
Counts
30 → 17
Calls
Call 1
Inputs
(*.f64 -2 (*.f64 y x))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(*.f64 2 (pow.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(*.f64 2 (pow.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(*.f64 2 (pow.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(*.f64 -2 (*.f64 y x))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(*.f64 -2 (*.f64 y x))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 x (*.f64 (-.f64 x y) 2)) 0)
(+.f64 0 (*.f64 x (*.f64 (-.f64 x y) 2)))
(-.f64 (*.f64 x (*.f64 (-.f64 x y) 2)) 0)
(/.f64 (*.f64 x (*.f64 (-.f64 x y) 2)) 1)
(/.f64 (*.f64 x (*.f64 (-.f64 x y) 2)) (/.f64 (*.f64 (-.f64 x y) (*.f64 x 4)) (*.f64 (-.f64 x y) (*.f64 x 4))))
(pow.f64 (*.f64 x (*.f64 (-.f64 x y) 2)) 1)
Outputs
(*.f64 -2 (*.f64 y x))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 -2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 -2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 -2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (pow.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 -2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 -2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 -2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (pow.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 -2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 -2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 -2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (pow.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 -2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 -2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 -2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 -2 (*.f64 y x))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 -2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 -2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 -2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 -2 (*.f64 y x))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 -2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 -2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -2 (*.f64 y x)))
(+.f64 (*.f64 -2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 x (*.f64 (-.f64 x y) 2)) 0)
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 2 (*.f64 x (-.f64 x y)))
(+.f64 0 (*.f64 x (*.f64 (-.f64 x y) 2)))
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 2 (*.f64 x (-.f64 x y)))
(-.f64 (*.f64 x (*.f64 (-.f64 x y) 2)) 0)
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 2 (*.f64 x (-.f64 x y)))
(/.f64 (*.f64 x (*.f64 (-.f64 x y) 2)) 1)
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 2 (*.f64 x (-.f64 x y)))
(/.f64 (*.f64 x (*.f64 (-.f64 x y) 2)) (/.f64 (*.f64 (-.f64 x y) (*.f64 x 4)) (*.f64 (-.f64 x y) (*.f64 x 4))))
(/.f64 (*.f64 x (*.f64 2 (-.f64 x y))) (/.f64 (*.f64 x (*.f64 4 (-.f64 x y))) (*.f64 x (*.f64 4 (-.f64 x y)))))
(/.f64 (*.f64 x (*.f64 2 (-.f64 x y))) (/.f64 (*.f64 x (*.f64 (-.f64 x y) 4)) (*.f64 x (*.f64 (-.f64 x y) 4))))
(/.f64 (*.f64 x (*.f64 2 (-.f64 x y))) (/.f64 (*.f64 (-.f64 x y) (*.f64 x 4)) (*.f64 (-.f64 x y) (*.f64 x 4))))
(/.f64 (*.f64 2 (*.f64 x (-.f64 x y))) (/.f64 (*.f64 4 (*.f64 x (-.f64 x y))) (*.f64 4 (*.f64 x (-.f64 x y)))))
(/.f64 (*.f64 2 (*.f64 x (-.f64 x y))) (/.f64 (*.f64 (-.f64 x y) (*.f64 x 4)) (*.f64 (-.f64 x y) (*.f64 x 4))))
(pow.f64 (*.f64 x (*.f64 (-.f64 x y) 2)) 1)
(*.f64 x (*.f64 2 (-.f64 x y)))
(*.f64 2 (*.f64 x (-.f64 x y)))

eval4.0ms (0.1%)

Compiler

Compiled 231 to 117 computations (49.4% saved)

prune4.0ms (0.1%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New16117
Fresh000
Picked011
Done000
Total16218
Error
0.0b
Counts
18 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(*.f64 (-.f64 x y) (*.f64 x 2))
22.2b
(*.f64 -2 (*.f64 y x))
Compiler

Compiled 16 to 11 computations (31.3% saved)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 -2 (*.f64 y x))
Compiler

Compiled 13 to 6 computations (53.8% saved)

series3.0ms (0.1%)

Counts
1 → 0
Calls

6 calls:

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

rewrite80.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
1606×rational.json-5
1604×exponential.json-3
1604×rational.json-1
1604×rational.json-2
1604×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
16113
220913
377813
4319113
Stop Event
node limit
Counts
1 → 6
Calls
Call 1
Inputs
(*.f64 -2 (*.f64 y x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -2 (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -2 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 -2 (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -2 (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -2 (*.f64 y x)) (/.f64 (*.f64 y x) (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -2 (*.f64 y x)) 1)))))

simplify456.0ms (8.2%)

Algorithm
egg-herbie
Rules
1978×rational.json-simplify-79
1316×rational.json-simplify-43
950×rational.json-simplify-104
900×rational.json-simplify-73
830×rational.json-simplify-47
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
016102
130102
275102
3197102
4586102
52476102
63872102
75343102
86783102
Stop Event
node limit
Counts
6 → 11
Calls
Call 1
Inputs
(+.f64 (*.f64 -2 (*.f64 y x)) 0)
(+.f64 0 (*.f64 -2 (*.f64 y x)))
(-.f64 (*.f64 -2 (*.f64 y x)) 0)
(/.f64 (*.f64 -2 (*.f64 y x)) 1)
(/.f64 (*.f64 -2 (*.f64 y x)) (/.f64 (*.f64 y x) (*.f64 y x)))
(pow.f64 (*.f64 -2 (*.f64 y x)) 1)
Outputs
(+.f64 (*.f64 -2 (*.f64 y x)) 0)
(*.f64 -2 (*.f64 y x))
(+.f64 0 (*.f64 -2 (*.f64 y x)))
(*.f64 -2 (*.f64 y x))
(-.f64 (*.f64 -2 (*.f64 y x)) 0)
(*.f64 -2 (*.f64 y x))
(/.f64 (*.f64 -2 (*.f64 y x)) 1)
(*.f64 -2 (*.f64 y x))
(/.f64 (*.f64 -2 (*.f64 y x)) (/.f64 (*.f64 y x) (*.f64 y x)))
(*.f64 (*.f64 y (*.f64 x (*.f64 y x))) (/.f64 -2 (*.f64 y x)))
(*.f64 (*.f64 -2 (*.f64 y x)) (/.f64 (*.f64 y x) (*.f64 y x)))
(*.f64 (*.f64 y x) (*.f64 (*.f64 y x) (/.f64 -2 (*.f64 y x))))
(*.f64 -2 (*.f64 (*.f64 y x) (/.f64 (*.f64 y x) (*.f64 y x))))
(pow.f64 (*.f64 -2 (*.f64 y x)) 1)
(*.f64 -2 (*.f64 y x))

eval3.0ms (0.1%)

Compiler

Compiled 107 to 44 computations (58.9% saved)

prune4.0ms (0.1%)

Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New11011
Fresh000
Picked011
Done011
Total11213
Error
0.0b
Counts
13 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(*.f64 (-.f64 x y) (*.f64 x 2))
22.2b
(*.f64 -2 (*.f64 y x))
Compiler

Compiled 16 to 11 computations (31.3% saved)

regimes29.0ms (0.5%)

Accuracy

Total -22.2b remaining (-568079%)

Threshold costs -22.2b (-568079%)

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

4 calls:

7.0ms
(*.f64 2 (-.f64 (*.f64 x x) (*.f64 x y)))
7.0ms
x
7.0ms
(-.f64 (*.f64 x x) (*.f64 x y))
6.0ms
y
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1(*.f64 2 (-.f64 (*.f64 x x) (*.f64 x y)))
0.0b1(-.f64 (*.f64 x x) (*.f64 x y))
Compiler

Compiled 49 to 30 computations (38.8% saved)

simplify4.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01132
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 (-.f64 x y) (*.f64 x 2))
(*.f64 -2 (*.f64 y x))
Outputs
(*.f64 (-.f64 x y) (*.f64 x 2))
(*.f64 -2 (*.f64 y x))
Compiler

Compiled 16 to 11 computations (31.3% saved)

soundness34.0ms (0.6%)

Algorithm
egg-herbie
Rules
16×rational.json-simplify-2
rational.json-simplify-43
rational.json-simplify-54
rational.json-simplify-55
rational.json-simplify-73
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0925
11319
21719
32219
43219
53319
Stop Event
saturated
Compiler

Compiled 41 to 21 computations (48.8% saved)

end38.0ms (0.7%)

Compiler

Compiled 14 to 9 computations (35.7% saved)

Profiling

Loading profile data...