Details

Time bar (total: 2.9s)

analyze309.0ms (10.6%)

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
53.3%50%43.7%0.1%6.2%0%0%7
63.3%59.3%34.3%0.1%6.2%0%0%8
74.1%67.1%23.4%0.1%9.4%0%0%9
80.2%72.6%18%0.1%9.4%0%0%10
86.4%76.9%12.1%0.1%10.9%0%0%11
89.7%79.8%9.2%0.1%10.9%0%0%12
Compiler

Compiled 8 to 6 computations (25% saved)

sample1.5s (52.9%)

Results
1.5s8256×body256valid
19.0ms158×body256infinite
Bogosity

preprocess19.0ms (0.6%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0926
11326
21626
022
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(*.f64 x (+.f64 y 1))
(*.f64 y (+.f64 x 1))
Outputs
(*.f64 x (+.f64 y 1))
(*.f64 y (+.f64 x 1))
Compiler

Compiled 9 to 7 computations (22.2% saved)

simplify34.0ms (1.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
1913
21113
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 x (+.f64 y 1))
Outputs
(*.f64 x (+.f64 y 1))

eval1.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 x (+.f64 y 1))
Compiler

Compiled 7 to 5 computations (28.6% saved)

localize11.0ms (0.4%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 8 computations (38.5% saved)

series3.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite150.0ms (5.1%)

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

Useful iterations: 0 (0.0ms)

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

simplify317.0ms (10.9%)

Algorithm
egg-herbie
Rules
940×rational.json-simplify-111
758×rational.json-simplify-2
748×rational.json-simplify-104
616×rational.json-simplify-1
596×rational.json-simplify-79
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
027405
154405
2121405
3361405
41435405
53788405
65853405
77701405
Stop Event
node limit
Counts
33 → 14
Calls
Call 1
Inputs
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
x
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(*.f64 y x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(*.f64 y x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 x (+.f64 y 1)) 0)
(+.f64 0 (*.f64 x (+.f64 y 1)))
(-.f64 (*.f64 x (+.f64 y 1)) 0)
(-.f64 0 (neg.f64 (*.f64 x (+.f64 y 1))))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 x (+.f64 y 1)))) 1)
(/.f64 (*.f64 x (+.f64 y 1)) 1)
(/.f64 (*.f64 x (+.f64 y 1)) (/.f64 (*.f64 x (+.f64 y 1)) (*.f64 x (+.f64 y 1))))
(pow.f64 (*.f64 x (+.f64 y 1)) 1)
(neg.f64 (neg.f64 (*.f64 x (+.f64 y 1))))
Outputs
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
x
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(+.f64 (*.f64 x (+.f64 y 1)) 0)
(*.f64 (+.f64 1 y) x)
(+.f64 0 (*.f64 x (+.f64 y 1)))
(*.f64 (+.f64 1 y) x)
(-.f64 (*.f64 x (+.f64 y 1)) 0)
(*.f64 (+.f64 1 y) x)
(-.f64 0 (neg.f64 (*.f64 x (+.f64 y 1))))
(*.f64 (+.f64 1 y) x)
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 x (+.f64 y 1)))) 1)
(*.f64 (+.f64 1 y) x)
(/.f64 (*.f64 x (+.f64 y 1)) 1)
(*.f64 (+.f64 1 y) x)
(/.f64 (*.f64 x (+.f64 y 1)) (/.f64 (*.f64 x (+.f64 y 1)) (*.f64 x (+.f64 y 1))))
(*.f64 (+.f64 1 y) x)
(pow.f64 (*.f64 x (+.f64 y 1)) 1)
(*.f64 (+.f64 1 y) x)
(neg.f64 (neg.f64 (*.f64 x (+.f64 y 1))))
(*.f64 (+.f64 1 y) x)

eval3.0ms (0.1%)

Compiler

Compiled 99 to 64 computations (35.4% saved)

prune4.0ms (0.1%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New11314
Fresh000
Picked011
Done000
Total11415
Error
0b
Counts
15 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 y x) x)
35.8b
(*.f64 y x)
0.0b
(*.f64 x (+.f64 y 1))
26.7b
x
Compiler

Compiled 22 to 14 computations (36.4% saved)

localize3.0ms (0.1%)

Compiler

Compiled 7 to 3 computations (57.1% saved)

localize11.0ms (0.4%)

Local error

Found 1 expressions with local error:

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

Compiled 12 to 4 computations (66.7% saved)

series2.0ms (0.1%)

Counts
1 → 15
Calls

6 calls:

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

rewrite88.0ms (3%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
15213
218213
368813
4273713
Stop Event
node limit
Counts
1 → 32
Calls
Call 1
Inputs
(+.f64 (*.f64 y x) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 x (neg.f64 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y x) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 x (-.f64 -1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 x (-.f64 -1 (*.f64 y x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (*.f64 y x) (-.f64 -1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 y x))) (-.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 x)) (-.f64 1 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (+.f64 x (*.f64 y x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 y 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 y (/.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 y x)) (/.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))) (+.f64 x (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y 1) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y 1) (-.f64 -1 (-.f64 -1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (-.f64 -1 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x x) (*.f64 (+.f64 y 1) (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x x) (+.f64 (/.f64 1 x) (*.f64 y (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))) (/.f64 1 (+.f64 x (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))) (/.f64 (/.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))) (+.f64 x (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 x (*.f64 y x))) (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))) (*.f64 x (*.f64 (+.f64 y 1) (+.f64 y 1))))) (/.f64 (/.f64 1 (+.f64 x (*.f64 y x))) (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y 1) (/.f64 1 x)) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 -1 y) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (+.f64 x (*.f64 y x))) (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x)))) (*.f64 x (*.f64 (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))) (*.f64 x (*.f64 (+.f64 y 1) (+.f64 y 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (*.f64 (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))) (*.f64 x (*.f64 (+.f64 y 1) (+.f64 y 1))))) (*.f64 x (*.f64 (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))) (*.f64 x (*.f64 (+.f64 y 1) (+.f64 y 1)))))) (/.f64 (/.f64 (/.f64 1 (+.f64 x (*.f64 y x))) (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x)))) (*.f64 x (*.f64 (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))) (*.f64 x (*.f64 (+.f64 y 1) (+.f64 y 1)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 y x)) (/.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 x (-.f64 -1 y)))))))

simplify194.0ms (6.7%)

Algorithm
egg-herbie
Rules
1284×rational.json-simplify-49
1236×rational.json-simplify-2
780×rational.json-simplify-43
748×rational.json-simplify-54
728×rational.json-simplify-1
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
082653
1184653
2466653
32025653
46267641
Stop Event
node limit
Counts
47 → 42
Calls
Call 1
Inputs
x
(*.f64 y x)
(*.f64 y x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(-.f64 x (neg.f64 (*.f64 y x)))
(-.f64 (*.f64 y x) (neg.f64 x))
(-.f64 (+.f64 x (*.f64 y x)) 0)
(-.f64 0 (*.f64 x (-.f64 -1 y)))
(-.f64 (-.f64 x (-.f64 -1 (*.f64 y x))) 1)
(-.f64 (-.f64 (*.f64 y x) (-.f64 -1 x)) 1)
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 y x))) (-.f64 1 x))
(-.f64 (-.f64 0 (-.f64 -1 x)) (-.f64 1 (*.f64 y x)))
(-.f64 (-.f64 0 (-.f64 -1 (+.f64 x (*.f64 y x)))) 1)
(*.f64 x (+.f64 y 1))
(*.f64 x (+.f64 y (/.f64 x x)))
(*.f64 (+.f64 x (*.f64 y x)) 1)
(*.f64 (+.f64 x (*.f64 y x)) (/.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))))
(*.f64 1 (+.f64 x (*.f64 y x)))
(*.f64 (/.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))) (+.f64 x (*.f64 y x)))
(*.f64 (+.f64 y 1) x)
(*.f64 (+.f64 y 1) (-.f64 -1 (-.f64 -1 x)))
(*.f64 (neg.f64 x) (-.f64 -1 y))
(*.f64 (*.f64 x x) (*.f64 (+.f64 y 1) (/.f64 1 x)))
(*.f64 (*.f64 x x) (+.f64 (/.f64 1 x) (*.f64 y (/.f64 1 x))))
(*.f64 (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))) (/.f64 1 (+.f64 x (*.f64 y x))))
(*.f64 (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))) (/.f64 (/.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))) (+.f64 x (*.f64 y x))))
(*.f64 (/.f64 1 (+.f64 x (*.f64 y x))) (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))))
(*.f64 (*.f64 x (*.f64 (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))) (*.f64 x (*.f64 (+.f64 y 1) (+.f64 y 1))))) (/.f64 (/.f64 1 (+.f64 x (*.f64 y x))) (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x)))))
(*.f64 (*.f64 (+.f64 y 1) (/.f64 1 x)) (*.f64 x x))
(*.f64 (-.f64 -1 y) (neg.f64 x))
(*.f64 (/.f64 (/.f64 1 (+.f64 x (*.f64 y x))) (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x)))) (*.f64 x (*.f64 (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))) (*.f64 x (*.f64 (+.f64 y 1) (+.f64 y 1))))))
(*.f64 (*.f64 (*.f64 x (*.f64 (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))) (*.f64 x (*.f64 (+.f64 y 1) (+.f64 y 1))))) (*.f64 x (*.f64 (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))) (*.f64 x (*.f64 (+.f64 y 1) (+.f64 y 1)))))) (/.f64 (/.f64 (/.f64 1 (+.f64 x (*.f64 y x))) (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x)))) (*.f64 x (*.f64 (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))) (*.f64 x (*.f64 (+.f64 y 1) (+.f64 y 1)))))))
(/.f64 (+.f64 x (*.f64 y x)) 1)
(/.f64 (+.f64 x (*.f64 y x)) (/.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))))
(pow.f64 (+.f64 x (*.f64 y x)) 1)
(neg.f64 (*.f64 x (-.f64 -1 y)))
Outputs
x
(*.f64 y x)
(*.f64 x y)
(*.f64 y x)
(*.f64 x y)
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(-.f64 x (neg.f64 (*.f64 y x)))
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(-.f64 (*.f64 y x) (neg.f64 x))
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(-.f64 (+.f64 x (*.f64 y x)) 0)
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(-.f64 0 (*.f64 x (-.f64 -1 y)))
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(-.f64 (-.f64 x (-.f64 -1 (*.f64 y x))) 1)
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(-.f64 (-.f64 (*.f64 y x) (-.f64 -1 x)) 1)
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 y x))) (-.f64 1 x))
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(-.f64 (-.f64 0 (-.f64 -1 x)) (-.f64 1 (*.f64 y x)))
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(-.f64 (-.f64 0 (-.f64 -1 (+.f64 x (*.f64 y x)))) 1)
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(*.f64 x (+.f64 y (/.f64 x x)))
(*.f64 (+.f64 x (*.f64 y x)) 1)
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(*.f64 (+.f64 x (*.f64 y x)) (/.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))))
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(*.f64 1 (+.f64 x (*.f64 y x)))
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(*.f64 (/.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))) (+.f64 x (*.f64 y x)))
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(*.f64 (+.f64 y 1) x)
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(*.f64 (+.f64 y 1) (-.f64 -1 (-.f64 -1 x)))
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(*.f64 (neg.f64 x) (-.f64 -1 y))
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(*.f64 (*.f64 x x) (*.f64 (+.f64 y 1) (/.f64 1 x)))
(*.f64 (+.f64 y 1) (*.f64 (/.f64 1 x) (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 (+.f64 y 1) (/.f64 1 x))))
(*.f64 x (*.f64 (+.f64 x (*.f64 x y)) (/.f64 1 x)))
(*.f64 x (/.f64 (+.f64 x (*.f64 x y)) x))
(*.f64 (*.f64 x x) (+.f64 (/.f64 1 x) (*.f64 y (/.f64 1 x))))
(*.f64 (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))) (/.f64 1 (+.f64 x (*.f64 y x))))
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(*.f64 (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))) (/.f64 (/.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))) (+.f64 x (*.f64 y x))))
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(*.f64 (/.f64 1 (+.f64 x (*.f64 y x))) (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))))
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(*.f64 (*.f64 x (*.f64 (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))) (*.f64 x (*.f64 (+.f64 y 1) (+.f64 y 1))))) (/.f64 (/.f64 1 (+.f64 x (*.f64 y x))) (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x)))))
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(*.f64 (*.f64 (+.f64 y 1) (/.f64 1 x)) (*.f64 x x))
(*.f64 (+.f64 y 1) (*.f64 (/.f64 1 x) (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 (+.f64 y 1) (/.f64 1 x))))
(*.f64 x (*.f64 (+.f64 x (*.f64 x y)) (/.f64 1 x)))
(*.f64 (*.f64 x x) (*.f64 (+.f64 y 1) (/.f64 1 x)))
(*.f64 x (/.f64 (+.f64 x (*.f64 x y)) x))
(*.f64 (-.f64 -1 y) (neg.f64 x))
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(*.f64 (/.f64 (/.f64 1 (+.f64 x (*.f64 y x))) (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x)))) (*.f64 x (*.f64 (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))) (*.f64 x (*.f64 (+.f64 y 1) (+.f64 y 1))))))
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(*.f64 (*.f64 (*.f64 x (*.f64 (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))) (*.f64 x (*.f64 (+.f64 y 1) (+.f64 y 1))))) (*.f64 x (*.f64 (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))) (*.f64 x (*.f64 (+.f64 y 1) (+.f64 y 1)))))) (/.f64 (/.f64 (/.f64 1 (+.f64 x (*.f64 y x))) (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x)))) (*.f64 x (*.f64 (*.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))) (*.f64 x (*.f64 (+.f64 y 1) (+.f64 y 1)))))))
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(/.f64 (+.f64 x (*.f64 y x)) 1)
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(/.f64 (+.f64 x (*.f64 y x)) (/.f64 (+.f64 x (*.f64 y x)) (+.f64 x (*.f64 y x))))
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(pow.f64 (+.f64 x (*.f64 y x)) 1)
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))
(neg.f64 (*.f64 x (-.f64 -1 y)))
(*.f64 x (+.f64 y 1))
(+.f64 x (*.f64 x y))

eval7.0ms (0.3%)

Compiler

Compiled 549 to 197 computations (64.1% saved)

prune7.0ms (0.3%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New42042
Fresh011
Picked011
Done022
Total42446
Error
0b
Counts
46 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 y x) x)
35.8b
(*.f64 y x)
0.0b
(*.f64 x (+.f64 y 1))
26.7b
x
Compiler

Compiled 22 to 14 computations (36.4% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune8.0ms (0.3%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done033
Total044
Error
0b
Counts
4 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 y x) x)
35.8b
(*.f64 y x)
0.0b
(*.f64 x (+.f64 y 1))
26.7b
x
Compiler

Compiled 22 to 14 computations (36.4% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0.1%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done033
Total044
Error
0b
Counts
4 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 y x) x)
35.8b
(*.f64 y x)
0.0b
(*.f64 x (+.f64 y 1))
26.7b
x
Compiler

Compiled 22 to 14 computations (36.4% saved)

regimes18.0ms (0.6%)

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

4 calls:

5.0ms
x
4.0ms
y
4.0ms
(*.f64 x (+.f64 y 1))
3.0ms
(+.f64 y 1)
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1(*.f64 x (+.f64 y 1))
0.0b1(+.f64 y 1)
Compiler

Compiled 34 to 20 computations (41.2% saved)

regimes61.0ms (2.1%)

Accuracy

Total -60.0b remaining (-4650.6%)

Threshold costs -60.0b (-4650.6%)

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

2 calls:

43.0ms
x
17.0ms
y
Results
ErrorSegmentsBranch
19.4b9x
1.3b3y
Compiler

Compiled 12 to 7 computations (41.7% saved)

bsearch59.0ms (2%)

Algorithm
binary-search
Steps
TimeLeftRight
34.0ms
2.8998966749390043e-8
642746.3624839816
25.0ms
-386.6851748551941
-1.642250493335313e-9
Results
44.0ms320×body256valid
Compiler

Compiled 212 to 149 computations (29.7% saved)

simplify5.0ms (0.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01647
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 x (+.f64 y 1))
(if (<=.f64 y -1) (*.f64 y x) (if (<=.f64 y 1) x (*.f64 y x)))
x
Outputs
(*.f64 x (+.f64 y 1))
(if (<=.f64 y -1) (*.f64 y x) (if (<=.f64 y 1) x (*.f64 y x)))
x
Compiler

Compiled 27 to 16 computations (40.7% saved)

soundness0.0ms (0%)

end52.0ms (1.8%)

Compiler

Compiled 23 to 12 computations (47.8% saved)

Profiling

Loading profile data...