Details

Time bar (total: 5.6s)

analyze419.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
25%25%74.9%0.1%0%0%0%5
37.5%37.5%62.4%0.1%0%0%0%6
56.3%56.2%43.7%0.1%0%0%0%7
65.6%65.6%34.3%0.1%0%0%0%8
76.6%76.5%23.4%0.1%0%0%0%9
82%82%18%0.1%0%0%0%10
87.9%87.8%12.1%0.1%0%0%0%11
90.8%90.7%9.2%0.1%0%0%0%12
Compiler

Compiled 8 to 6 computations (25% saved)

sample2.2s (40%)

Results
2.2s8225×body256valid
4.0ms59×body256infinite
2.0ms11×body1024valid
2.0ms15×body512valid
1.0msbody2048valid
Bogosity

preprocess13.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0926
11126
022
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(*.f64 500 (-.f64 x y))
(*.f64 500 (-.f64 y x))
Outputs
(*.f64 500 (-.f64 x y))
(*.f64 500 (-.f64 y x))
Compiler

Compiled 9 to 7 computations (22.2% saved)

simplify8.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
1813
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 500 (-.f64 x y))
Outputs
(*.f64 500 (-.f64 x y))

eval0.0ms (0%)

Compiler

Compiled 7 to 5 computations (28.6% 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 500 (-.f64 x y))
Compiler

Compiled 7 to 5 computations (28.6% saved)

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 6 computations (53.8% saved)

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite122.0ms (2.2%)

Algorithm
batch-egg-rewrite
Rules
1800×rational.json-simplify-35
1614×rational.json-1
1614×rational.json-2
1134×exponential.json-3
1134×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
14513
210013
321213
439213
588813
6236113
7430913
8552513
9765113
Stop Event
node limit
Counts
1 → 24
Calls
Call 1
Inputs
(*.f64 500 (-.f64 x y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 500 (-.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 500 (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (*.f64 500 (-.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (*.f64 1000 (/.f64 (-.f64 x y) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 x y) 250) (*.f64 (-.f64 x y) 250))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 500 (-.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 500 (-.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 1000 (/.f64 (-.f64 x y) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 500 (-.f64 y x)) (*.f64 2 (*.f64 500 (-.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1000 (/.f64 (-.f64 x y) -2)) (*.f64 2 (*.f64 1000 (/.f64 (-.f64 x y) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 500 (-.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x y) 1000) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x y) 2000) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x y) 4000) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 x y) 4000)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x y) 4000))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 500 (-.f64 y x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1000 (/.f64 (-.f64 x y) -2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x y) 4000)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x y) 4000))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x y) 4000))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x y) 4000)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 500 (-.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 500 (-.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 1000 (/.f64 (-.f64 x y) -2)))))))

simplify151.0ms (2.7%)

Algorithm
egg-herbie
Rules
1704×rational.json-simplify-2
1466×rational.json-simplify-35
1086×rational.json-simplify-1
956×rational.json-simplify-26
870×rational.json-simplify-43
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
069696
1158696
2271696
3615696
41549696
53612696
64452696
74820696
85156696
96571696
107168696
Stop Event
node limit
Counts
48 → 30
Calls
Call 1
Inputs
(*.f64 -500 y)
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(*.f64 500 x)
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(*.f64 500 x)
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(*.f64 500 x)
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(*.f64 -500 y)
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(*.f64 -500 y)
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 500 (-.f64 x y)) 0)
(+.f64 0 (*.f64 500 (-.f64 x y)))
(+.f64 -1 (-.f64 1 (*.f64 500 (-.f64 y x))))
(+.f64 -1 (-.f64 1 (*.f64 1000 (/.f64 (-.f64 x y) -2))))
(+.f64 (*.f64 (-.f64 x y) 250) (*.f64 (-.f64 x y) 250))
(-.f64 (*.f64 500 (-.f64 x y)) 0)
(-.f64 0 (*.f64 500 (-.f64 y x)))
(-.f64 0 (*.f64 1000 (/.f64 (-.f64 x y) -2)))
(-.f64 (*.f64 500 (-.f64 y x)) (*.f64 2 (*.f64 500 (-.f64 y x))))
(-.f64 (*.f64 1000 (/.f64 (-.f64 x y) -2)) (*.f64 2 (*.f64 1000 (/.f64 (-.f64 x y) -2))))
(/.f64 (*.f64 500 (-.f64 x y)) 1)
(/.f64 (*.f64 (-.f64 x y) 1000) 2)
(/.f64 (*.f64 (-.f64 x y) 2000) 4)
(/.f64 (*.f64 (-.f64 x y) 4000) 8)
(/.f64 (*.f64 2 (*.f64 (-.f64 x y) 4000)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x y) 4000))) 32)
(/.f64 (*.f64 500 (-.f64 y x)) -1)
(/.f64 (*.f64 1000 (/.f64 (-.f64 x y) -2)) -1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x y) 4000)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x y) 4000))))) 128)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x y) 4000))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x y) 4000)))))) 256)
(pow.f64 (*.f64 500 (-.f64 x y)) 1)
(neg.f64 (*.f64 500 (-.f64 y x)))
(neg.f64 (*.f64 1000 (/.f64 (-.f64 x y) -2)))
Outputs
(*.f64 -500 y)
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(*.f64 500 x)
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(*.f64 500 x)
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(*.f64 500 x)
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(*.f64 -500 y)
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(*.f64 -500 y)
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(+.f64 (*.f64 500 (-.f64 x y)) 0)
(*.f64 500 (-.f64 x y))
(*.f64 -500 (-.f64 y x))
(+.f64 0 (*.f64 500 (-.f64 x y)))
(*.f64 500 (-.f64 x y))
(*.f64 -500 (-.f64 y x))
(+.f64 -1 (-.f64 1 (*.f64 500 (-.f64 y x))))
(*.f64 500 (-.f64 x y))
(*.f64 -500 (-.f64 y x))
(+.f64 -1 (-.f64 1 (*.f64 1000 (/.f64 (-.f64 x y) -2))))
(*.f64 500 (-.f64 x y))
(*.f64 -500 (-.f64 y x))
(+.f64 (*.f64 (-.f64 x y) 250) (*.f64 (-.f64 x y) 250))
(*.f64 500 (-.f64 x y))
(*.f64 -500 (-.f64 y x))
(-.f64 (*.f64 500 (-.f64 x y)) 0)
(*.f64 500 (-.f64 x y))
(*.f64 -500 (-.f64 y x))
(-.f64 0 (*.f64 500 (-.f64 y x)))
(*.f64 500 (-.f64 x y))
(*.f64 -500 (-.f64 y x))
(-.f64 0 (*.f64 1000 (/.f64 (-.f64 x y) -2)))
(*.f64 500 (-.f64 x y))
(*.f64 -500 (-.f64 y x))
(-.f64 (*.f64 500 (-.f64 y x)) (*.f64 2 (*.f64 500 (-.f64 y x))))
(*.f64 500 (-.f64 x y))
(*.f64 -500 (-.f64 y x))
(-.f64 (*.f64 1000 (/.f64 (-.f64 x y) -2)) (*.f64 2 (*.f64 1000 (/.f64 (-.f64 x y) -2))))
(*.f64 500 (-.f64 x y))
(*.f64 -500 (-.f64 y x))
(/.f64 (*.f64 500 (-.f64 x y)) 1)
(*.f64 500 (-.f64 x y))
(*.f64 -500 (-.f64 y x))
(/.f64 (*.f64 (-.f64 x y) 1000) 2)
(*.f64 500 (-.f64 x y))
(*.f64 -500 (-.f64 y x))
(/.f64 (*.f64 (-.f64 x y) 2000) 4)
(*.f64 500 (-.f64 x y))
(*.f64 -500 (-.f64 y x))
(/.f64 (*.f64 (-.f64 x y) 4000) 8)
(*.f64 500 (-.f64 x y))
(*.f64 -500 (-.f64 y x))
(/.f64 (*.f64 2 (*.f64 (-.f64 x y) 4000)) 16)
(*.f64 500 (-.f64 x y))
(*.f64 -500 (-.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x y) 4000))) 32)
(*.f64 500 (-.f64 x y))
(*.f64 -500 (-.f64 y x))
(/.f64 (*.f64 500 (-.f64 y x)) -1)
(*.f64 500 (-.f64 x y))
(*.f64 -500 (-.f64 y x))
(/.f64 (*.f64 1000 (/.f64 (-.f64 x y) -2)) -1)
(*.f64 500 (-.f64 x y))
(*.f64 -500 (-.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x y) 4000)))) 64)
(*.f64 500 (-.f64 x y))
(*.f64 -500 (-.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x y) 4000))))) 128)
(*.f64 500 (-.f64 x y))
(*.f64 -500 (-.f64 y x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x y) 4000))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x y) 4000)))))) 256)
(*.f64 500 (-.f64 x y))
(*.f64 -500 (-.f64 y x))
(pow.f64 (*.f64 500 (-.f64 x y)) 1)
(*.f64 500 (-.f64 x y))
(*.f64 -500 (-.f64 y x))
(neg.f64 (*.f64 500 (-.f64 y x)))
(*.f64 500 (-.f64 x y))
(*.f64 -500 (-.f64 y x))
(neg.f64 (*.f64 1000 (/.f64 (-.f64 x y) -2)))
(*.f64 500 (-.f64 x y))
(*.f64 -500 (-.f64 y x))

eval10.0ms (0.2%)

Compiler

Compiled 272 to 178 computations (34.6% saved)

prune5.0ms (0.1%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New27330
Fresh000
Picked011
Done000
Total27431
Error
0b
Counts
31 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 500 x) (*.f64 -500 y))
0.0b
(*.f64 500 (-.f64 x y))
31.4b
(*.f64 500 x)
32.0b
(*.f64 -500 y)
Compiler

Compiled 26 to 20 computations (23.1% saved)

localize3.0ms (0%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

localize3.0ms (0%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 19 to 13 computations (31.6% saved)

series1.0ms (0%)

Counts
1 → 6
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@0
(+.f64 (*.f64 500 x) (*.f64 -500 y))
0.0ms
y
@0
(+.f64 (*.f64 500 x) (*.f64 -500 y))
0.0ms
x
@inf
(+.f64 (*.f64 500 x) (*.f64 -500 y))
0.0ms
y
@inf
(+.f64 (*.f64 500 x) (*.f64 -500 y))
0.0ms
x
@-inf
(+.f64 (*.f64 500 x) (*.f64 -500 y))

rewrite239.0ms (4.3%)

Algorithm
batch-egg-rewrite
Rules
2400×rational.json-simplify-35
2248×rational.json-simplify-2
1142×rational.json-simplify-1
1094×exponential.json-3
1094×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
15919
211719
323519
444219
598519
6251119
7428419
8499119
9601019
10666919
11666919
12757019
13757019
Stop Event
node limit
Counts
1 → 24
Calls
Call 1
Inputs
(+.f64 (*.f64 500 x) (*.f64 -500 y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 500 x) (*.f64 -500 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 y -250) (*.f64 x 250)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y -1000) (*.f64 x 1000)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 1/2 (+.f64 (*.f64 y -250) (*.f64 x 250))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 y -1000) (*.f64 x 1000)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y -250) (*.f64 x 250)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 (*.f64 y -250) (*.f64 x 250))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 y -1000) (*.f64 x 1000)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 8))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 1)))))

simplify1.3s (23.5%)

Algorithm
egg-herbie
Rules
3180×rational.json-simplify-51
2816×rational.json-simplify-2
1812×rational.json-simplify-35
1426×rational.json-simplify-1
1362×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
066522
1137522
2322522
31056522
41974522
53136522
63697522
73776522
83828522
93866522
103904522
113942522
123980522
134018522
144056522
154094522
164132522
174170522
184208522
195149522
207518522
217583522
227617522
237651522
247683522
Stop Event
node limit
Counts
30 → 27
Calls
Call 1
Inputs
(*.f64 -500 y)
(*.f64 500 x)
(*.f64 500 x)
(*.f64 500 x)
(*.f64 -500 y)
(*.f64 -500 y)
(-.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 0)
(*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 1)
(*.f64 1 (+.f64 (*.f64 500 x) (*.f64 -500 y)))
(*.f64 2 (+.f64 (*.f64 y -250) (*.f64 x 250)))
(*.f64 (+.f64 (*.f64 y -1000) (*.f64 x 1000)) 1/2)
(*.f64 4 (*.f64 1/2 (+.f64 (*.f64 y -250) (*.f64 x 250))))
(*.f64 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 4) 1/4)
(*.f64 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 8) 1/8)
(*.f64 1/2 (+.f64 (*.f64 y -1000) (*.f64 x 1000)))
(*.f64 (+.f64 (*.f64 y -250) (*.f64 x 250)) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 4))
(*.f64 (*.f64 1/2 (+.f64 (*.f64 y -250) (*.f64 x 250))) 4)
(*.f64 1/8 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 8))
(/.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 1)
(/.f64 (+.f64 (*.f64 y -1000) (*.f64 x 1000)) 2)
(/.f64 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 8)))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 8))))))) 512)
(pow.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 1)
Outputs
(*.f64 -500 y)
(*.f64 500 x)
(*.f64 500 x)
(*.f64 500 x)
(*.f64 -500 y)
(*.f64 -500 y)
(-.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 0)
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 1)
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(*.f64 1 (+.f64 (*.f64 500 x) (*.f64 -500 y)))
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(*.f64 2 (+.f64 (*.f64 y -250) (*.f64 x 250)))
(*.f64 (+.f64 (*.f64 y -1000) (*.f64 x 1000)) 1/2)
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(*.f64 4 (*.f64 1/2 (+.f64 (*.f64 y -250) (*.f64 x 250))))
(*.f64 2 (+.f64 (*.f64 y -250) (*.f64 x 250)))
(*.f64 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 4) 1/4)
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(*.f64 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 8) 1/8)
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(*.f64 1/2 (+.f64 (*.f64 y -1000) (*.f64 x 1000)))
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(*.f64 (+.f64 (*.f64 y -250) (*.f64 x 250)) 2)
(*.f64 2 (+.f64 (*.f64 y -250) (*.f64 x 250)))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 4))
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(*.f64 (*.f64 1/2 (+.f64 (*.f64 y -250) (*.f64 x 250))) 4)
(*.f64 2 (+.f64 (*.f64 y -250) (*.f64 x 250)))
(*.f64 1/8 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 8))
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(/.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 1)
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(/.f64 (+.f64 (*.f64 y -1000) (*.f64 x 1000)) 2)
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(/.f64 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 4) 4)
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(/.f64 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 8) 8)
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 8)) 16)
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 8))) 32)
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 8)))) 64)
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 8))))) 128)
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 8)))))) 256)
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 8))))))) 512)
(+.f64 (*.f64 -500 y) (*.f64 500 x))
(pow.f64 (+.f64 (*.f64 500 x) (*.f64 -500 y)) 1)
(+.f64 (*.f64 -500 y) (*.f64 500 x))

eval6.0ms (0.1%)

Compiler

Compiled 319 to 265 computations (16.9% saved)

prune5.0ms (0.1%)

Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New27027
Fresh000
Picked011
Done033
Total27431
Error
0b
Counts
31 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 500 x) (*.f64 -500 y))
0.0b
(*.f64 500 (-.f64 x y))
31.4b
(*.f64 500 x)
32.0b
(*.f64 -500 y)
Compiler

Compiled 26 to 20 computations (23.1% saved)

regimes17.0ms (0.3%)

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

4 calls:

4.0ms
x
4.0ms
y
4.0ms
(*.f64 500 (-.f64 x y))
4.0ms
(-.f64 x y)
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1(*.f64 500 (-.f64 x y))
0.0b1(-.f64 x y)
Compiler

Compiled 38 to 26 computations (31.6% saved)

regimes14.0ms (0.3%)

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

4 calls:

3.0ms
(*.f64 500 (-.f64 x y))
3.0ms
(-.f64 x y)
3.0ms
x
3.0ms
y
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1(*.f64 500 (-.f64 x y))
0.0b1(-.f64 x y)
Compiler

Compiled 31 to 21 computations (32.3% saved)

regimes23.0ms (0.4%)

Accuracy

Total -47.8b remaining (-339.9%)

Threshold costs -47.8b (-339.9%)

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

2 calls:

14.0ms
y
9.0ms
x
Results
ErrorSegmentsBranch
14.0b3x
15.0b5y
Compiler

Compiled 14 to 10 computations (28.6% saved)

bsearch202.0ms (3.6%)

Algorithm
binary-search
Steps
TimeLeftRight
189.0ms
1.2055584014269021e+86
6.659645758772406e+88
13.0ms
-4.075919492405949e-57
-1.572496508866727e-65
Results
198.0ms272×body256valid
Compiler

Compiled 216 to 179 computations (17.1% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02078
Stop Event
done
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(*.f64 500 (-.f64 x y))
(if (<=.f64 x -5300541194335153/7067388259113537318333190002971674063309935587502475832486424805170479104) (*.f64 500 x) (if (<=.f64 x 121999999999999996263547740709883479830540554697867555271103338298405912308620703301632) (*.f64 -500 y) (*.f64 500 x)))
(*.f64 -500 y)
Outputs
(+.f64 (*.f64 500 x) (*.f64 -500 y))
(*.f64 500 (-.f64 x y))
(if (<=.f64 x -5300541194335153/7067388259113537318333190002971674063309935587502475832486424805170479104) (*.f64 500 x) (if (<=.f64 x 121999999999999996263547740709883479830540554697867555271103338298405912308620703301632) (*.f64 -500 y) (*.f64 500 x)))
(*.f64 -500 y)
Compiler

Compiled 40 to 30 computations (25% saved)

soundness0.0ms (0%)

end775.0ms (13.9%)

Compiler

Compiled 34 to 24 computations (29.4% saved)

Profiling

Loading profile data...