Details

Time bar (total: 7.6s)

analyze623.0ms (8.2%)

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
8.3%6.2%68.6%0.1%0%25%0%7
12.5%9.4%65.5%0.1%0%25%0%8
18.8%14%60.8%0.1%0%25%0%9
33.8%21.1%41.3%0.1%0%37.4%0%10
39.4%24.6%37.8%0.1%0%37.4%0%11
45.9%28.7%33.7%0.1%0%37.4%0%12
Compiler

Compiled 14 to 11 computations (21.4% saved)

sample5.3s (70.1%)

Results
3.9s8256×body256valid
1.2s2143×body256invalid
129.0ms527×body256infinite
Bogosity

preprocess4.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02592
13792
033
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
2
Call 2
Inputs
(*.f64 (/.f64 1 2) (+.f64 x (*.f64 y (sqrt.f64 z))))
(*.f64 (/.f64 1 2) (+.f64 y (*.f64 x (sqrt.f64 z))))
(*.f64 (/.f64 1 2) (+.f64 z (*.f64 y (sqrt.f64 x))))
(*.f64 (/.f64 1 2) (+.f64 x (*.f64 z (sqrt.f64 y))))
Outputs
(*.f64 (/.f64 1 2) (+.f64 x (*.f64 y (sqrt.f64 z))))
(*.f64 1/2 (+.f64 x (*.f64 y (sqrt.f64 z))))
(*.f64 (/.f64 1 2) (+.f64 y (*.f64 x (sqrt.f64 z))))
(*.f64 1/2 (+.f64 y (*.f64 x (sqrt.f64 z))))
(*.f64 (/.f64 1 2) (+.f64 z (*.f64 y (sqrt.f64 x))))
(*.f64 1/2 (+.f64 z (*.f64 y (sqrt.f64 x))))
(*.f64 (/.f64 1 2) (+.f64 x (*.f64 z (sqrt.f64 y))))
(*.f64 1/2 (+.f64 x (*.f64 z (sqrt.f64 y))))
Compiler

Compiled 16 to 13 computations (18.8% saved)

simplify9.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01423
11723
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 (/.f64 1 2) (+.f64 x (*.f64 y (sqrt.f64 z))))
Outputs
(*.f64 (/.f64 1 2) (+.f64 x (*.f64 y (sqrt.f64 z))))
(*.f64 1/2 (+.f64 x (*.f64 y (sqrt.f64 z))))

eval0.0ms (0%)

Compiler

Compiled 21 to 12 computations (42.9% saved)

prune1.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
0.1b
Counts
3 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(*.f64 1/2 (+.f64 x (*.f64 y (sqrt.f64 z))))
Compiler

Compiled 11 to 8 computations (27.3% saved)

localize193.0ms (2.5%)

Local error

Found 2 expressions with local error:

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

Compiled 27 to 9 computations (66.7% saved)

series4.0ms (0.1%)

Counts
2 → 25
Calls

15 calls:

TimeVariablePointExpression
1.0ms
z
@0
(*.f64 y (sqrt.f64 z))
1.0ms
y
@0
(*.f64 y (sqrt.f64 z))
1.0ms
z
@-inf
(*.f64 y (sqrt.f64 z))
0.0ms
y
@inf
(*.f64 y (sqrt.f64 z))
0.0ms
z
@inf
(*.f64 y (sqrt.f64 z))

rewrite130.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
1790×rational.json-simplify-35
1548×rational.json-1
1548×rational.json-2
1548×rational.json-3
1252×exponential.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0928
15828
212128
324828
446128
5104828
6269728
7474228
8590628
9756828
Stop Event
node limit
Counts
2 → 37
Calls
Call 1
Inputs
(*.f64 y (sqrt.f64 z))
(+.f64 x (*.f64 y (sqrt.f64 z)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (sqrt.f64 z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (sqrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 z) (*.f64 y 1/2)) (*.f64 (sqrt.f64 z) (*.f64 y 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (sqrt.f64 z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (sqrt.f64 z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 (sqrt.f64 z) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 z) (*.f64 y 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 z) (*.f64 y 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 z) (*.f64 y 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 z) (*.f64 y 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 z) (*.f64 y 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 z) (*.f64 y 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 z) (*.f64 y 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 z) (*.f64 y 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (sqrt.f64 z)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 y (sqrt.f64 z)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 1)))))

simplify469.0ms (6.2%)

Algorithm
egg-herbie
Rules
3716×rational.json-simplify-41
2174×rational.json-simplify-2
1970×rational.json-simplify-35
810×rational.json-simplify-51
772×rational.json-simplify-53
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
082888
1195888
2601888
31610888
43060888
53931888
64362888
74538888
84656888
94755888
104852888
115210888
125395888
135544888
145599888
155707888
165802888
175816888
185816888
Stop Event
node limit
Counts
62 → 40
Calls
Call 1
Inputs
(*.f64 y (sqrt.f64 z))
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
x
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
x
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
x
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(*.f64 y (sqrt.f64 z))
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(*.f64 y (sqrt.f64 z))
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
x
(+.f64 (*.f64 y (sqrt.f64 z)) 0)
(+.f64 0 (*.f64 y (sqrt.f64 z)))
(+.f64 (*.f64 (sqrt.f64 z) (*.f64 y 1/2)) (*.f64 (sqrt.f64 z) (*.f64 y 1/2)))
(-.f64 (*.f64 y (sqrt.f64 z)) 0)
(/.f64 (*.f64 y (sqrt.f64 z)) 1)
(/.f64 (*.f64 y (*.f64 (sqrt.f64 z) 2)) 2)
(/.f64 (*.f64 (sqrt.f64 z) (*.f64 y 4)) 4)
(/.f64 (*.f64 (sqrt.f64 z) (*.f64 y 8)) 8)
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 z) (*.f64 y 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 z) (*.f64 y 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 z) (*.f64 y 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 z) (*.f64 y 8)))))) 128)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 z) (*.f64 y 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 z) (*.f64 y 8))))))) 256)
(pow.f64 (*.f64 y (sqrt.f64 z)) 1)
(-.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 0)
(*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 1)
(*.f64 1 (+.f64 (*.f64 y (sqrt.f64 z)) x))
(*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 1/2))
(*.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 2) 1/2)
(*.f64 4 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 1/4))
(*.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 4) 1/4)
(*.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 8) 1/8)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 2))
(*.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 4))
(*.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 8))
(/.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 1)
(/.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 8))))) 128)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 8)))))) 256)
(pow.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 1)
Outputs
(*.f64 y (sqrt.f64 z))
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
x
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
x
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
x
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(*.f64 y (sqrt.f64 z))
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(*.f64 y (sqrt.f64 z))
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
x
(+.f64 (*.f64 y (sqrt.f64 z)) 0)
(*.f64 y (sqrt.f64 z))
(+.f64 0 (*.f64 y (sqrt.f64 z)))
(*.f64 y (sqrt.f64 z))
(+.f64 (*.f64 (sqrt.f64 z) (*.f64 y 1/2)) (*.f64 (sqrt.f64 z) (*.f64 y 1/2)))
(*.f64 y (sqrt.f64 z))
(-.f64 (*.f64 y (sqrt.f64 z)) 0)
(*.f64 y (sqrt.f64 z))
(/.f64 (*.f64 y (sqrt.f64 z)) 1)
(*.f64 y (sqrt.f64 z))
(/.f64 (*.f64 y (*.f64 (sqrt.f64 z) 2)) 2)
(*.f64 y (sqrt.f64 z))
(/.f64 (*.f64 (sqrt.f64 z) (*.f64 y 4)) 4)
(*.f64 y (sqrt.f64 z))
(/.f64 (*.f64 (sqrt.f64 z) (*.f64 y 8)) 8)
(*.f64 y (sqrt.f64 z))
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 z) (*.f64 y 8))) 16)
(*.f64 y (sqrt.f64 z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 z) (*.f64 y 8)))) 32)
(*.f64 y (sqrt.f64 z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 z) (*.f64 y 8))))) 64)
(*.f64 y (sqrt.f64 z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 z) (*.f64 y 8)))))) 128)
(*.f64 y (sqrt.f64 z))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 z) (*.f64 y 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 z) (*.f64 y 8))))))) 256)
(*.f64 y (sqrt.f64 z))
(pow.f64 (*.f64 y (sqrt.f64 z)) 1)
(*.f64 y (sqrt.f64 z))
(-.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 0)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 1)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(*.f64 1 (+.f64 (*.f64 y (sqrt.f64 z)) x))
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 1/2))
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(*.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 2) 1/2)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(*.f64 4 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 1/4))
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(*.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 4) 1/4)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(*.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 8) 1/8)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 2))
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(*.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 1/2) 2)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 4))
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(*.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 1/4) 4)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(*.f64 1/8 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 8))
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(/.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 1)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(/.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 2) 2)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(/.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 4) 4)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(/.f64 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 8) 8)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 8)) 16)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 8))) 32)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 8)))) 64)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 8))))) 128)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 8)))))) 256)
(+.f64 (*.f64 y (sqrt.f64 z)) x)
(pow.f64 (+.f64 (*.f64 y (sqrt.f64 z)) x) 1)
(+.f64 (*.f64 y (sqrt.f64 z)) x)

eval11.0ms (0.1%)

Compiler

Compiled 537 to 318 computations (40.8% saved)

prune7.0ms (0.1%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New38240
Fresh000
Picked011
Done000
Total38341
Error
0.1b
Counts
41 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(*.f64 1/2 (+.f64 x (*.f64 y (sqrt.f64 z))))
34.2b
(*.f64 1/2 (*.f64 y (sqrt.f64 z)))
29.1b
(*.f64 1/2 x)
Compiler

Compiled 26 to 20 computations (23.1% saved)

localize206.0ms (2.7%)

Compiler

Compiled 8 to 6 computations (25% saved)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(*.f64 y (sqrt.f64 z))
Compiler

Compiled 18 to 8 computations (55.6% saved)

eval3.0ms (0%)

Compiler

Compiled 181 to 130 computations (28.2% saved)

prune4.0ms (0.1%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New14014
Fresh000
Picked011
Done022
Total14317
Error
0.1b
Counts
17 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(*.f64 1/2 (+.f64 x (*.f64 y (sqrt.f64 z))))
34.2b
(*.f64 1/2 (*.f64 y (sqrt.f64 z)))
29.1b
(*.f64 1/2 x)
Compiler

Compiled 26 to 20 computations (23.1% saved)

regimes29.0ms (0.4%)

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

7 calls:

5.0ms
z
4.0ms
(*.f64 y (sqrt.f64 z))
4.0ms
(*.f64 (/.f64 1 2) (+.f64 x (*.f64 y (sqrt.f64 z))))
4.0ms
(+.f64 x (*.f64 y (sqrt.f64 z)))
4.0ms
(sqrt.f64 z)
Results
ErrorSegmentsBranch
0.1b1x
0.1b1y
0.1b1z
0.1b1(*.f64 (/.f64 1 2) (+.f64 x (*.f64 y (sqrt.f64 z))))
0.1b1(+.f64 x (*.f64 y (sqrt.f64 z)))
0.1b1(*.f64 y (sqrt.f64 z))
0.1b1(sqrt.f64 z)
Compiler

Compiled 76 to 50 computations (34.2% saved)

regimes490.0ms (6.5%)

Accuracy

Total -48.8b remaining (-375.8%)

Threshold costs -48.8b (-375.8%)

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

5 calls:

335.0ms
z
118.0ms
(sqrt.f64 z)
16.0ms
y
12.0ms
(*.f64 y (sqrt.f64 z))
9.0ms
x
Results
ErrorSegmentsBranch
13.0b3x
16.1b5y
17.9b12z
15.4b3(*.f64 y (sqrt.f64 z))
17.9b12(sqrt.f64 z)
Compiler

Compiled 36 to 27 computations (25% saved)

bsearch38.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
21.0ms
1.2104861259282955e-63
4.3050070493814484e-39
17.0ms
-1.708561761083656e-65
-6.427672981190674e-71
Results
34.0ms320×body256valid
Compiler

Compiled 359 to 295 computations (17.8% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02279
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 1/2 (+.f64 x (*.f64 y (sqrt.f64 z))))
(if (<=.f64 x -8062834757772801/474284397516047136454946754595585670566993857190463750305618264096412179005177856) (*.f64 1/2 x) (if (<=.f64 x 145157977630817/392318858461667547739736838950479151006397215279002157056) (*.f64 1/2 (*.f64 y (sqrt.f64 z))) (*.f64 1/2 x)))
(*.f64 1/2 x)
Outputs
(*.f64 1/2 (+.f64 x (*.f64 y (sqrt.f64 z))))
(if (<=.f64 x -8062834757772801/474284397516047136454946754595585670566993857190463750305618264096412179005177856) (*.f64 1/2 x) (if (<=.f64 x 145157977630817/392318858461667547739736838950479151006397215279002157056) (*.f64 1/2 (*.f64 y (sqrt.f64 z))) (*.f64 1/2 x)))
(*.f64 1/2 x)
Compiler

Compiled 40 to 30 computations (25% saved)

soundness9.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01423
11723
Stop Event
saturated
Compiler

Compiled 21 to 12 computations (42.9% saved)

end24.0ms (0.3%)

Compiler

Compiled 34 to 22 computations (35.3% saved)

Profiling

Loading profile data...