Details

Time bar (total: 1.6s)

analyze62.0ms (3.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
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 10 to 7 computations (30% saved)

sample761.0ms (48.6%)

Results
745.0ms8256×body256valid
Bogosity

preprocess6.0ms (0.4%)

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

Useful iterations: 0 (0.0ms)

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

Compiled 11 to 8 computations (27.3% saved)

simplify19.0ms (1.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0819
1919
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(+.f64 x (/.f64 (-.f64 y x) 2))
Outputs
(+.f64 x (/.f64 (-.f64 y x) 2))

eval0.0ms (0%)

Compiler

Compiled 9 to 6 computations (33.3% saved)

prune1.0ms (0.1%)

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 (-.f64 y x) 2))
Compiler

Compiled 9 to 6 computations (33.3% saved)

localize8.0ms (0.5%)

Local error

Found 1 expressions with local error:

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

Compiled 20 to 9 computations (55% saved)

series2.0ms (0.2%)

Counts
1 → 24
Calls

6 calls:

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

rewrite87.0ms (5.5%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0819
16619
221319
376419
4290219
Stop Event
node limit
Counts
1 → 23
Calls
Call 1
Inputs
(+.f64 x (/.f64 (-.f64 y x) 2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 x (neg.f64 (/.f64 (-.f64 y x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (-.f64 y x) 2) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (-.f64 (neg.f64 x) (/.f64 (-.f64 y x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 x (-.f64 -1 (/.f64 (-.f64 y x) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 x)) (-.f64 1 (/.f64 (-.f64 y x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (+.f64 x (/.f64 (-.f64 y x) 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (/.f64 (-.f64 y x) 2))) (-.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (/.f64 (-.f64 y x) 2) (-.f64 -1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (/.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (/.f64 (-.f64 y x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))) (+.f64 x (/.f64 (-.f64 y x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))) (/.f64 1 (+.f64 x (/.f64 (-.f64 y x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))) (/.f64 (/.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))) (+.f64 x (/.f64 (-.f64 y x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 x (/.f64 (-.f64 y x) 2))) (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))) (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2)))) (/.f64 (/.f64 1 (+.f64 x (/.f64 (-.f64 y x) 2))) (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (+.f64 x (/.f64 (-.f64 y x) 2))) (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2)))) (*.f64 (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))) (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))) (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2)))) (*.f64 (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))) (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))))) (/.f64 (/.f64 (/.f64 1 (+.f64 x (/.f64 (-.f64 y x) 2))) (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2)))) (*.f64 (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))) (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (/.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (neg.f64 x) (/.f64 (-.f64 y x) 2)))))))

simplify190.0ms (12.1%)

Algorithm
egg-herbie
Rules
1570×rational.json-simplify-50
1234×rational.json-simplify-54
1206×rational.json-simplify-43
1170×rational.json-simplify-58
784×rational.json-simplify-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
065973
1146827
2402827
32398827
46712827
Stop Event
node limit
Counts
47 → 34
Calls
Call 1
Inputs
(*.f64 1/2 y)
(+.f64 (*.f64 1/2 x) (*.f64 1/2 y))
(+.f64 (*.f64 1/2 x) (*.f64 1/2 y))
(+.f64 (*.f64 1/2 x) (*.f64 1/2 y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 1/2 y))
(+.f64 (*.f64 1/2 x) (*.f64 1/2 y))
(+.f64 (*.f64 1/2 x) (*.f64 1/2 y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 1/2 y))
(+.f64 (*.f64 1/2 x) (*.f64 1/2 y))
(+.f64 (*.f64 1/2 x) (*.f64 1/2 y))
(+.f64 (*.f64 -1/2 x) x)
(+.f64 (*.f64 -1/2 x) (+.f64 (*.f64 1/2 y) x))
(+.f64 (*.f64 -1/2 x) (+.f64 (*.f64 1/2 y) x))
(+.f64 (*.f64 -1/2 x) (+.f64 (*.f64 1/2 y) x))
(*.f64 1/2 y)
(+.f64 (*.f64 -1/2 x) (+.f64 (*.f64 1/2 y) x))
(+.f64 (*.f64 -1/2 x) (+.f64 (*.f64 1/2 y) x))
(+.f64 (*.f64 -1/2 x) (+.f64 (*.f64 1/2 y) x))
(*.f64 1/2 y)
(+.f64 (*.f64 -1/2 x) (+.f64 (*.f64 1/2 y) x))
(+.f64 (*.f64 -1/2 x) (+.f64 (*.f64 1/2 y) x))
(+.f64 (*.f64 -1/2 x) (+.f64 (*.f64 1/2 y) x))
(-.f64 x (neg.f64 (/.f64 (-.f64 y x) 2)))
(-.f64 (/.f64 (-.f64 y x) 2) (neg.f64 x))
(-.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) 0)
(-.f64 0 (-.f64 (neg.f64 x) (/.f64 (-.f64 y x) 2)))
(-.f64 (-.f64 x (-.f64 -1 (/.f64 (-.f64 y x) 2))) 1)
(-.f64 (-.f64 0 (-.f64 -1 x)) (-.f64 1 (/.f64 (-.f64 y x) 2)))
(-.f64 (-.f64 0 (-.f64 -1 (+.f64 x (/.f64 (-.f64 y x) 2)))) 1)
(-.f64 (-.f64 0 (-.f64 -1 (/.f64 (-.f64 y x) 2))) (-.f64 1 x))
(-.f64 (-.f64 (/.f64 (-.f64 y x) 2) (-.f64 -1 x)) 1)
(*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) 1)
(*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (/.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))))
(*.f64 1 (+.f64 x (/.f64 (-.f64 y x) 2)))
(*.f64 (/.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))) (+.f64 x (/.f64 (-.f64 y x) 2)))
(*.f64 (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))) (/.f64 1 (+.f64 x (/.f64 (-.f64 y x) 2))))
(*.f64 (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))) (/.f64 (/.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))) (+.f64 x (/.f64 (-.f64 y x) 2))))
(*.f64 (/.f64 1 (+.f64 x (/.f64 (-.f64 y x) 2))) (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))))
(*.f64 (*.f64 (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))) (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2)))) (/.f64 (/.f64 1 (+.f64 x (/.f64 (-.f64 y x) 2))) (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2)))))
(*.f64 (/.f64 (/.f64 1 (+.f64 x (/.f64 (-.f64 y x) 2))) (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2)))) (*.f64 (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))) (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2)))))
(*.f64 (*.f64 (*.f64 (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))) (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2)))) (*.f64 (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))) (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))))) (/.f64 (/.f64 (/.f64 1 (+.f64 x (/.f64 (-.f64 y x) 2))) (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2)))) (*.f64 (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))) (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))))))
(/.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) 1)
(/.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (/.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))))
(pow.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) 1)
(neg.f64 (-.f64 (neg.f64 x) (/.f64 (-.f64 y x) 2)))
Outputs
(*.f64 1/2 y)
(+.f64 (*.f64 1/2 x) (*.f64 1/2 y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 x))
(*.f64 1/2 (+.f64 x y))
(*.f64 1/2 (+.f64 y x))
(+.f64 (*.f64 1/2 x) (*.f64 1/2 y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 x))
(*.f64 1/2 (+.f64 x y))
(*.f64 1/2 (+.f64 y x))
(+.f64 (*.f64 1/2 x) (*.f64 1/2 y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 x))
(*.f64 1/2 (+.f64 x y))
(*.f64 1/2 (+.f64 y x))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 1/2 y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 x))
(*.f64 1/2 (+.f64 x y))
(*.f64 1/2 (+.f64 y x))
(+.f64 (*.f64 1/2 x) (*.f64 1/2 y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 x))
(*.f64 1/2 (+.f64 x y))
(*.f64 1/2 (+.f64 y x))
(+.f64 (*.f64 1/2 x) (*.f64 1/2 y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 x))
(*.f64 1/2 (+.f64 x y))
(*.f64 1/2 (+.f64 y x))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 1/2 y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 x))
(*.f64 1/2 (+.f64 x y))
(*.f64 1/2 (+.f64 y x))
(+.f64 (*.f64 1/2 x) (*.f64 1/2 y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 x))
(*.f64 1/2 (+.f64 x y))
(*.f64 1/2 (+.f64 y x))
(+.f64 (*.f64 1/2 x) (*.f64 1/2 y))
(+.f64 (*.f64 1/2 y) (*.f64 1/2 x))
(*.f64 1/2 (+.f64 x y))
(*.f64 1/2 (+.f64 y x))
(+.f64 (*.f64 -1/2 x) x)
(+.f64 x (*.f64 x -1/2))
(+.f64 (*.f64 -1/2 x) (+.f64 (*.f64 1/2 y) x))
(+.f64 (*.f64 1/2 y) (+.f64 x (*.f64 x -1/2)))
(+.f64 (*.f64 -1/2 x) (+.f64 (*.f64 1/2 y) x))
(+.f64 (*.f64 1/2 y) (+.f64 x (*.f64 x -1/2)))
(+.f64 (*.f64 -1/2 x) (+.f64 (*.f64 1/2 y) x))
(+.f64 (*.f64 1/2 y) (+.f64 x (*.f64 x -1/2)))
(*.f64 1/2 y)
(+.f64 (*.f64 -1/2 x) (+.f64 (*.f64 1/2 y) x))
(+.f64 (*.f64 1/2 y) (+.f64 x (*.f64 x -1/2)))
(+.f64 (*.f64 -1/2 x) (+.f64 (*.f64 1/2 y) x))
(+.f64 (*.f64 1/2 y) (+.f64 x (*.f64 x -1/2)))
(+.f64 (*.f64 -1/2 x) (+.f64 (*.f64 1/2 y) x))
(+.f64 (*.f64 1/2 y) (+.f64 x (*.f64 x -1/2)))
(*.f64 1/2 y)
(+.f64 (*.f64 -1/2 x) (+.f64 (*.f64 1/2 y) x))
(+.f64 (*.f64 1/2 y) (+.f64 x (*.f64 x -1/2)))
(+.f64 (*.f64 -1/2 x) (+.f64 (*.f64 1/2 y) x))
(+.f64 (*.f64 1/2 y) (+.f64 x (*.f64 x -1/2)))
(+.f64 (*.f64 -1/2 x) (+.f64 (*.f64 1/2 y) x))
(+.f64 (*.f64 1/2 y) (+.f64 x (*.f64 x -1/2)))
(-.f64 x (neg.f64 (/.f64 (-.f64 y x) 2)))
(+.f64 x (/.f64 (-.f64 y x) 2))
(-.f64 (/.f64 (-.f64 y x) 2) (neg.f64 x))
(-.f64 x (neg.f64 (/.f64 (-.f64 y x) 2)))
(+.f64 x (/.f64 (-.f64 y x) 2))
(-.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) 0)
(-.f64 x (neg.f64 (/.f64 (-.f64 y x) 2)))
(+.f64 x (/.f64 (-.f64 y x) 2))
(-.f64 0 (-.f64 (neg.f64 x) (/.f64 (-.f64 y x) 2)))
(-.f64 x (neg.f64 (/.f64 (-.f64 y x) 2)))
(+.f64 x (/.f64 (-.f64 y x) 2))
(-.f64 (-.f64 x (-.f64 -1 (/.f64 (-.f64 y x) 2))) 1)
(-.f64 x (neg.f64 (/.f64 (-.f64 y x) 2)))
(+.f64 x (/.f64 (-.f64 y x) 2))
(-.f64 (-.f64 0 (-.f64 -1 x)) (-.f64 1 (/.f64 (-.f64 y x) 2)))
(-.f64 x (neg.f64 (/.f64 (-.f64 y x) 2)))
(+.f64 x (/.f64 (-.f64 y x) 2))
(-.f64 (-.f64 0 (-.f64 -1 (+.f64 x (/.f64 (-.f64 y x) 2)))) 1)
(-.f64 x (neg.f64 (/.f64 (-.f64 y x) 2)))
(+.f64 x (/.f64 (-.f64 y x) 2))
(-.f64 (-.f64 0 (-.f64 -1 (/.f64 (-.f64 y x) 2))) (-.f64 1 x))
(-.f64 x (neg.f64 (/.f64 (-.f64 y x) 2)))
(+.f64 x (/.f64 (-.f64 y x) 2))
(-.f64 (-.f64 (/.f64 (-.f64 y x) 2) (-.f64 -1 x)) 1)
(-.f64 x (neg.f64 (/.f64 (-.f64 y x) 2)))
(+.f64 x (/.f64 (-.f64 y x) 2))
(*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) 1)
(-.f64 x (neg.f64 (/.f64 (-.f64 y x) 2)))
(+.f64 x (/.f64 (-.f64 y x) 2))
(*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (/.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))))
(-.f64 x (neg.f64 (/.f64 (-.f64 y x) 2)))
(+.f64 x (/.f64 (-.f64 y x) 2))
(*.f64 1 (+.f64 x (/.f64 (-.f64 y x) 2)))
(-.f64 x (neg.f64 (/.f64 (-.f64 y x) 2)))
(+.f64 x (/.f64 (-.f64 y x) 2))
(*.f64 (/.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))) (+.f64 x (/.f64 (-.f64 y x) 2)))
(-.f64 x (neg.f64 (/.f64 (-.f64 y x) 2)))
(+.f64 x (/.f64 (-.f64 y x) 2))
(*.f64 (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))) (/.f64 1 (+.f64 x (/.f64 (-.f64 y x) 2))))
(-.f64 x (neg.f64 (/.f64 (-.f64 y x) 2)))
(+.f64 x (/.f64 (-.f64 y x) 2))
(*.f64 (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))) (/.f64 (/.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))) (+.f64 x (/.f64 (-.f64 y x) 2))))
(-.f64 x (neg.f64 (/.f64 (-.f64 y x) 2)))
(+.f64 x (/.f64 (-.f64 y x) 2))
(*.f64 (/.f64 1 (+.f64 x (/.f64 (-.f64 y x) 2))) (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))))
(-.f64 x (neg.f64 (/.f64 (-.f64 y x) 2)))
(+.f64 x (/.f64 (-.f64 y x) 2))
(*.f64 (*.f64 (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))) (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2)))) (/.f64 (/.f64 1 (+.f64 x (/.f64 (-.f64 y x) 2))) (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2)))))
(-.f64 x (neg.f64 (/.f64 (-.f64 y x) 2)))
(+.f64 x (/.f64 (-.f64 y x) 2))
(*.f64 (/.f64 (/.f64 1 (+.f64 x (/.f64 (-.f64 y x) 2))) (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2)))) (*.f64 (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))) (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2)))))
(-.f64 x (neg.f64 (/.f64 (-.f64 y x) 2)))
(+.f64 x (/.f64 (-.f64 y x) 2))
(*.f64 (*.f64 (*.f64 (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))) (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2)))) (*.f64 (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))) (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))))) (/.f64 (/.f64 (/.f64 1 (+.f64 x (/.f64 (-.f64 y x) 2))) (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2)))) (*.f64 (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))) (*.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))))))
(-.f64 x (neg.f64 (/.f64 (-.f64 y x) 2)))
(+.f64 x (/.f64 (-.f64 y x) 2))
(/.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) 1)
(-.f64 x (neg.f64 (/.f64 (-.f64 y x) 2)))
(+.f64 x (/.f64 (-.f64 y x) 2))
(/.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (/.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) (+.f64 x (/.f64 (-.f64 y x) 2))))
(-.f64 x (neg.f64 (/.f64 (-.f64 y x) 2)))
(+.f64 x (/.f64 (-.f64 y x) 2))
(pow.f64 (+.f64 x (/.f64 (-.f64 y x) 2)) 1)
(-.f64 x (neg.f64 (/.f64 (-.f64 y x) 2)))
(+.f64 x (/.f64 (-.f64 y x) 2))
(neg.f64 (-.f64 (neg.f64 x) (/.f64 (-.f64 y x) 2)))
(-.f64 x (neg.f64 (/.f64 (-.f64 y x) 2)))
(+.f64 x (/.f64 (-.f64 y x) 2))

eval12.0ms (0.7%)

Compiler

Compiled 601 to 324 computations (46.1% saved)

prune6.0ms (0.4%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New31334
Fresh000
Picked101
Done000
Total32335
Error
0b
Counts
35 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(*.f64 1/2 (+.f64 y x))
31.5b
(*.f64 1/2 y)
31.9b
(*.f64 1/2 x)
Compiler

Compiled 17 to 13 computations (23.5% saved)

localize3.0ms (0.2%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

localize4.0ms (0.2%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

localize6.0ms (0.4%)

Compiler

Compiled 13 to 6 computations (53.8% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0.1%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New000
Fresh000
Picked011
Done022
Total033
Error
0b
Counts
3 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(*.f64 1/2 (+.f64 y x))
31.5b
(*.f64 1/2 y)
31.9b
(*.f64 1/2 x)
Compiler

Compiled 17 to 13 computations (23.5% saved)

regimes18.0ms (1.2%)

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

3 calls:

8.0ms
x
5.0ms
(+.f64 x (/.f64 (-.f64 y x) 2))
4.0ms
y
Results
ErrorSegmentsBranch
0b1x
0b1y
0b1(+.f64 x (/.f64 (-.f64 y x) 2))
Compiler

Compiled 35 to 23 computations (34.3% saved)

regimes30.0ms (1.9%)

Accuracy

Total -49.2b remaining (-384.9%)

Threshold costs -49.2b (-384.9%)

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

2 calls:

16.0ms
y
12.0ms
x
Results
ErrorSegmentsBranch
14.4b3x
12.8b3y
Compiler

Compiled 14 to 10 computations (28.6% saved)

bsearch27.0ms (1.7%)

Algorithm
binary-search
Steps
TimeLeftRight
16.0ms
2.37349202288966e-89
5.889796171661682e-86
11.0ms
-5.790057229134993e+21
-4.858684313192458e+20
Results
22.0ms224×body256valid
Compiler

Compiled 182 to 150 computations (17.6% saved)

simplify3.0ms (0.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01859
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 1/2 (+.f64 y x))
(if (<=.f64 y -600000000000000000000) (*.f64 1/2 y) (if (<=.f64 y 2029768672598635/34996011596528190789960035633881941845650710894291398982812329702559247987190014771576210832368861184) (*.f64 1/2 x) (*.f64 1/2 y)))
(*.f64 1/2 x)
Outputs
(*.f64 1/2 (+.f64 y x))
(if (<=.f64 y -600000000000000000000) (*.f64 1/2 y) (if (<=.f64 y 2029768672598635/34996011596528190789960035633881941845650710894291398982812329702559247987190014771576210832368861184) (*.f64 1/2 x) (*.f64 1/2 y)))
(*.f64 1/2 x)
Compiler

Compiled 31 to 23 computations (25.8% saved)

soundness291.0ms (18.6%)

Algorithm
egg-herbie
Rules
1570×rational.json-simplify-50
1234×rational.json-simplify-54
1206×rational.json-simplify-43
1170×rational.json-simplify-58
784×rational.json-simplify-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
065973
1146827
2402827
32398827
46712827
Stop Event
node limit
Compiler

Compiled 21 to 15 computations (28.6% saved)

end28.0ms (1.8%)

Compiler

Compiled 27 to 19 computations (29.6% saved)

Profiling

Loading profile data...