Details

Time bar (total: 3.6s)

analyze275.0ms (7.5%)

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
0%0%99.9%0.1%0%0%0%5
0%0%99.9%0.1%0%0%0%6
40.6%40.6%59.3%0.1%0%0%0%7
46%45.3%53.1%0.1%1.6%0%0%8
65.3%63.2%33.6%0.1%3.1%0%0%9
69.5%66%28.9%0.1%5.1%0%0%10
80.9%75.1%17.8%0.1%7%0%0%11
83.6%76.6%15%0.1%8.3%0%0%12
Compiler

Compiled 10 to 6 computations (40% saved)

sample2.2s (60.9%)

Results
2.2s8256×body256valid
50.0ms390×body256infinite
Bogosity

preprocess26.0ms (0.7%)

Algorithm
egg-herbie
Rules
rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01038
11138
022
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(/.f64 (+.f64 x y) (+.f64 y y))
(/.f64 (+.f64 y x) (+.f64 x x))
Outputs
(/.f64 (+.f64 x y) (+.f64 y y))
(/.f64 (+.f64 y x) (+.f64 x x))
(/.f64 (+.f64 x y) (+.f64 x x))
Compiler

Compiled 11 to 7 computations (36.4% saved)

simplify153.0ms (4.2%)

Algorithm
egg-herbie
Rules
rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0719
1819
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(/.f64 (+.f64 x y) (+.f64 y y))
Outputs
(/.f64 (+.f64 x y) (+.f64 y y))

eval0.0ms (0%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

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

Compiled 9 to 5 computations (44.4% saved)

localize7.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(/.f64 (+.f64 x y) (+.f64 y y))
Compiler

Compiled 17 to 5 computations (70.6% saved)

series3.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
y
@0
(/.f64 (+.f64 x y) (+.f64 y y))
1.0ms
x
@inf
(/.f64 (+.f64 x y) (+.f64 y y))
0.0ms
x
@0
(/.f64 (+.f64 x y) (+.f64 y y))
0.0ms
y
@inf
(/.f64 (+.f64 x y) (+.f64 y y))
0.0ms
x
@-inf
(/.f64 (+.f64 x y) (+.f64 y y))

rewrite83.0ms (2.3%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0719
15919
220419
373119
4283219
Stop Event
node limit
Counts
1 → 17
Calls
Call 1
Inputs
(/.f64 (+.f64 x y) (+.f64 y y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (+.f64 x y) (+.f64 y y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (+.f64 x y) (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (+.f64 x y) (+.f64 y y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (/.f64 (+.f64 x y) (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (/.f64 (+.f64 x y) (+.f64 y y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) (+.f64 y y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (+.f64 x y) (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))) (/.f64 (+.f64 x y) (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))) (/.f64 1 (/.f64 (+.f64 x y) (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))) (/.f64 (/.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))) (/.f64 (+.f64 x y) (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 (+.f64 x y) (+.f64 y y))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y)))) (/.f64 (/.f64 1 (/.f64 (+.f64 x y) (+.f64 y y))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (/.f64 (+.f64 x y) (+.f64 y y))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y)))) (*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y)))) (*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))))) (/.f64 (/.f64 (/.f64 1 (/.f64 (+.f64 x y) (+.f64 y y))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y)))) (*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 x y) (+.f64 y y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (/.f64 (+.f64 x y) (+.f64 y y))))))))

simplify213.0ms (5.8%)

Algorithm
egg-herbie
Rules
1120×rational.json-simplify-111
990×rational.json-simplify-47
930×rational.json-simplify-58
928×rational.json-simplify-1
852×exponential.json-simplify-26
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
043707
186707
2173707
3814707
43538707
55870707
Stop Event
node limit
Counts
41 → 21
Calls
Call 1
Inputs
1/2
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(*.f64 1/2 (/.f64 x y))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(*.f64 1/2 (/.f64 x y))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(*.f64 1/2 (/.f64 x y))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
1/2
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
1/2
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 (/.f64 (+.f64 x y) (+.f64 y y)) 0)
(+.f64 0 (/.f64 (+.f64 x y) (+.f64 y y)))
(-.f64 (/.f64 (+.f64 x y) (+.f64 y y)) 0)
(-.f64 0 (neg.f64 (/.f64 (+.f64 x y) (+.f64 y y))))
(-.f64 (-.f64 0 (-.f64 -1 (/.f64 (+.f64 x y) (+.f64 y y)))) 1)
(*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) 1)
(*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))))
(*.f64 1 (/.f64 (+.f64 x y) (+.f64 y y)))
(*.f64 (/.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))) (/.f64 (+.f64 x y) (+.f64 y y)))
(*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))) (/.f64 1 (/.f64 (+.f64 x y) (+.f64 y y))))
(*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))) (/.f64 (/.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))) (/.f64 (+.f64 x y) (+.f64 y y))))
(*.f64 (/.f64 1 (/.f64 (+.f64 x y) (+.f64 y y))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))))
(*.f64 (*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y)))) (/.f64 (/.f64 1 (/.f64 (+.f64 x y) (+.f64 y y))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y)))))
(*.f64 (/.f64 (/.f64 1 (/.f64 (+.f64 x y) (+.f64 y y))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y)))) (*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y)))))
(*.f64 (*.f64 (*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y)))) (*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))))) (/.f64 (/.f64 (/.f64 1 (/.f64 (+.f64 x y) (+.f64 y y))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y)))) (*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))))))
(pow.f64 (/.f64 (+.f64 x y) (+.f64 y y)) 1)
(neg.f64 (neg.f64 (/.f64 (+.f64 x y) (+.f64 y y))))
Outputs
1/2
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(*.f64 1/2 (/.f64 x y))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(*.f64 1/2 (/.f64 x y))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(*.f64 1/2 (/.f64 x y))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
1/2
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
1/2
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 (/.f64 (+.f64 x y) (+.f64 y y)) 0)
(/.f64 (+.f64 x y) (+.f64 y y))
(+.f64 0 (/.f64 (+.f64 x y) (+.f64 y y)))
(/.f64 (+.f64 x y) (+.f64 y y))
(-.f64 (/.f64 (+.f64 x y) (+.f64 y y)) 0)
(/.f64 (+.f64 x y) (+.f64 y y))
(-.f64 0 (neg.f64 (/.f64 (+.f64 x y) (+.f64 y y))))
(/.f64 (+.f64 x y) (+.f64 y y))
(-.f64 (-.f64 0 (-.f64 -1 (/.f64 (+.f64 x y) (+.f64 y y)))) 1)
(/.f64 (+.f64 x y) (+.f64 y y))
(*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) 1)
(/.f64 (+.f64 x y) (+.f64 y y))
(*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))))
(/.f64 (+.f64 x y) (+.f64 y y))
(*.f64 1 (/.f64 (+.f64 x y) (+.f64 y y)))
(/.f64 (+.f64 x y) (+.f64 y y))
(*.f64 (/.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))) (/.f64 (+.f64 x y) (+.f64 y y)))
(/.f64 (+.f64 x y) (+.f64 y y))
(*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))) (/.f64 1 (/.f64 (+.f64 x y) (+.f64 y y))))
(/.f64 (+.f64 x y) (+.f64 y y))
(*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))) (/.f64 (/.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))) (/.f64 (+.f64 x y) (+.f64 y y))))
(/.f64 (+.f64 x y) (+.f64 y y))
(*.f64 (/.f64 1 (/.f64 (+.f64 x y) (+.f64 y y))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))))
(/.f64 (+.f64 x y) (+.f64 y y))
(*.f64 (*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y)))) (/.f64 (/.f64 1 (/.f64 (+.f64 x y) (+.f64 y y))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y)))))
(/.f64 (+.f64 x y) (+.f64 y y))
(*.f64 (/.f64 (/.f64 1 (/.f64 (+.f64 x y) (+.f64 y y))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y)))) (*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y)))))
(/.f64 (+.f64 x y) (+.f64 y y))
(*.f64 (*.f64 (*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y)))) (*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))))) (/.f64 (/.f64 (/.f64 1 (/.f64 (+.f64 x y) (+.f64 y y))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y)))) (*.f64 (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))) (*.f64 (/.f64 (+.f64 x y) (+.f64 y y)) (/.f64 (+.f64 x y) (+.f64 y y))))))
(/.f64 (+.f64 x y) (+.f64 y y))
(pow.f64 (/.f64 (+.f64 x y) (+.f64 y y)) 1)
(/.f64 (+.f64 x y) (+.f64 y y))
(neg.f64 (neg.f64 (/.f64 (+.f64 x y) (+.f64 y y))))
(/.f64 (+.f64 x y) (+.f64 y y))

eval3.0ms (0.1%)

Compiler

Compiled 478 to 62 computations (87% saved)

prune10.0ms (0.3%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New18321
Fresh000
Picked101
Done000
Total19322
Error
0b
Counts
22 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
38.6b
(*.f64 1/2 (/.f64 x y))
24.4b
1/2
Compiler

Compiled 19 to 15 computations (21.1% saved)

localize9.0ms (0.3%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 6 computations (53.8% saved)

series6.0ms (0.2%)

Counts
1 → 0
Calls

6 calls:

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

rewrite101.0ms (2.8%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
15813
219113
369713
4259013
Stop Event
node limit
Counts
1 → 9
Calls
Call 1
Inputs
(*.f64 1/2 (/.f64 x y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/2 (/.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/2 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/2 (/.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 1/2 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 1/2 (/.f64 x y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/2 (/.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/2 (/.f64 x y)) (/.f64 (/.f64 x y) (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/2 (/.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 1/2 (/.f64 x y))))))))

simplify278.0ms (7.6%)

Algorithm
egg-herbie
Rules
1218×rational.json-simplify-104
1186×rational.json-simplify-42
1056×rational.json-simplify-79
970×rational.json-simplify-73
920×rational.json-simplify-80
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
024117
147117
290117
3219117
4547117
51650117
62768117
74181117
84972117
96395117
106970117
Stop Event
node limit
Counts
9 → 10
Calls
Call 1
Inputs
(+.f64 (*.f64 1/2 (/.f64 x y)) 0)
(+.f64 0 (*.f64 1/2 (/.f64 x y)))
(-.f64 (*.f64 1/2 (/.f64 x y)) 0)
(-.f64 0 (neg.f64 (*.f64 1/2 (/.f64 x y))))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 1/2 (/.f64 x y)))) 1)
(/.f64 (*.f64 1/2 (/.f64 x y)) 1)
(/.f64 (*.f64 1/2 (/.f64 x y)) (/.f64 (/.f64 x y) (/.f64 x y)))
(pow.f64 (*.f64 1/2 (/.f64 x y)) 1)
(neg.f64 (neg.f64 (*.f64 1/2 (/.f64 x y))))
Outputs
(+.f64 (*.f64 1/2 (/.f64 x y)) 0)
(*.f64 1/2 (/.f64 x y))
(+.f64 0 (*.f64 1/2 (/.f64 x y)))
(*.f64 1/2 (/.f64 x y))
(-.f64 (*.f64 1/2 (/.f64 x y)) 0)
(*.f64 1/2 (/.f64 x y))
(-.f64 0 (neg.f64 (*.f64 1/2 (/.f64 x y))))
(*.f64 1/2 (/.f64 x y))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 1/2 (/.f64 x y)))) 1)
(*.f64 1/2 (/.f64 x y))
(/.f64 (*.f64 1/2 (/.f64 x y)) 1)
(*.f64 1/2 (/.f64 x y))
(/.f64 (*.f64 1/2 (/.f64 x y)) (/.f64 (/.f64 x y) (/.f64 x y)))
(*.f64 1/2 (/.f64 x y))
(pow.f64 (*.f64 1/2 (/.f64 x y)) 1)
(*.f64 1/2 (/.f64 x y))
(neg.f64 (neg.f64 (*.f64 1/2 (/.f64 x y))))
(*.f64 1/2 (/.f64 x y))

localize15.0ms (0.4%)

Local error

Found 1 expressions with local error:

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

Compiled 20 to 10 computations (50% saved)

eval7.0ms (0.2%)

Compiler

Compiled 180 to 108 computations (40% saved)

prune7.0ms (0.2%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New20020
Fresh011
Picked011
Done011
Total20323
Error
0b
Counts
23 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
38.6b
(*.f64 1/2 (/.f64 x y))
24.4b
1/2
Compiler

Compiled 19 to 15 computations (21.1% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune10.0ms (0.3%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done022
Total033
Error
0b
Counts
3 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
38.6b
(*.f64 1/2 (/.f64 x y))
24.4b
1/2
Compiler

Compiled 19 to 15 computations (21.1% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune3.0ms (0.1%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done022
Total033
Error
0b
Counts
3 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
38.6b
(*.f64 1/2 (/.f64 x y))
24.4b
1/2
Compiler

Compiled 19 to 15 computations (21.1% saved)

regimes24.0ms (0.7%)

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

3 calls:

9.0ms
x
7.0ms
y
5.0ms
(/.f64 (+.f64 x y) (+.f64 y y))
Results
ErrorSegmentsBranch
0b1x
0b1y
0b1(/.f64 (+.f64 x y) (+.f64 y y))
Compiler

Compiled 37 to 22 computations (40.5% saved)

regimes80.0ms (2.2%)

Accuracy

Total -46.9b remaining (-322.8%)

Threshold costs -46.9b (-322.8%)

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

2 calls:

53.0ms
x
25.0ms
y
Results
ErrorSegmentsBranch
14.8b5x
14.5b3y
Compiler

Compiled 14 to 10 computations (28.6% saved)

bsearch52.0ms (1.4%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
5.938699351852989e-36
1.0546118317768262e-33
29.0ms
-9.480814565459658e-138
-1.545209784155125e-142
Results
40.0ms240×body256valid
4.0ms23×body256infinite
Compiler

Compiled 194 to 159 computations (18% saved)

simplify6.0ms (0.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01753
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(if (<=.f64 y -7709489559716993/837987995621412318723376562387865382967460363787024586107722590232610251879596686050117143635431464230626991136655378178359617675746660621652103062880256) 1/2 (if (<=.f64 y 3086691458042867/93536104789177786765035829293842113257979682750464) (*.f64 1/2 (/.f64 x y)) 1/2))
1/2
Outputs
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(if (<=.f64 y -7709489559716993/837987995621412318723376562387865382967460363787024586107722590232610251879596686050117143635431464230626991136655378178359617675746660621652103062880256) 1/2 (if (<=.f64 y 3086691458042867/93536104789177786765035829293842113257979682750464) (*.f64 1/2 (/.f64 x y)) 1/2))
1/2
Compiler

Compiled 29 to 23 computations (20.7% saved)

soundness0.0ms (0%)

end50.0ms (1.4%)

Compiler

Compiled 25 to 18 computations (28% saved)

Profiling

Loading profile data...