Details

Time bar (total: 16.3s)

analyze298.0ms (1.8%)

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
3.1%3.1%96.7%0.1%0%0%0%7
4.7%4.7%95.2%0.1%0%0%0%8
7.4%7%88.2%0.1%0%4.7%0%9
12.2%10.5%75.9%0.1%0%13.5%0%10
16.2%13.7%70.7%0.1%0%15.5%0%11
23.5%18.2%59.3%0.1%0%22.3%0%12
Compiler

Compiled 18 to 12 computations (33.3% saved)

sample3.0s (18.5%)

Results
2.0s8256×body256valid
979.0ms4626×body256invalid
Bogosity

preprocess39.0ms (0.2%)

Algorithm
egg-herbie
Rules
20×rational.json-simplify-2
20×rational.json-simplify-1
12×rational.json-simplify-51
rational.json-simplify-41
swap-x-y
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
029164
145140
257140
360140
033
133
Stop Event
unsound
saturated
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
0
2
0
Call 2
Inputs
(*.f64 2 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))
(*.f64 2 (sqrt.f64 (+.f64 (+.f64 (*.f64 y x) (*.f64 y z)) (*.f64 x z))))
(*.f64 2 (sqrt.f64 (+.f64 (+.f64 (*.f64 z y) (*.f64 z x)) (*.f64 y x))))
(*.f64 2 (sqrt.f64 (+.f64 (+.f64 (*.f64 x z) (*.f64 x y)) (*.f64 z y))))
Outputs
(*.f64 2 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 y z) (+.f64 (*.f64 x z) (*.f64 x y)))))
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 x z) (*.f64 y (+.f64 x z)))))
(*.f64 2 (sqrt.f64 (+.f64 (+.f64 (*.f64 y x) (*.f64 y z)) (*.f64 x z))))
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 y z) (+.f64 (*.f64 x z) (*.f64 x y)))))
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 x z) (*.f64 y (+.f64 x z)))))
(*.f64 2 (sqrt.f64 (+.f64 (+.f64 (*.f64 z y) (*.f64 z x)) (*.f64 y x))))
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 y z) (+.f64 (*.f64 x z) (*.f64 x y)))))
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 x z) (*.f64 y (+.f64 x z)))))
(*.f64 2 (sqrt.f64 (+.f64 (+.f64 (*.f64 x z) (*.f64 x y)) (*.f64 z y))))
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 y z) (+.f64 (*.f64 x z) (*.f64 x y)))))
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 x z) (*.f64 y (+.f64 x z)))))
Symmetry

(sort x y z)

Compiler

Compiled 20 to 14 computations (30% saved)

simplify8.0ms (0%)

Algorithm
egg-herbie
Rules
18×rational.json-simplify-1
14×rational.json-simplify-2
rational.json-simplify-51
rational.json-simplify-41
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01441
12035
22835
33735
44135
Stop Event
saturated
Counts
1 → 4
Calls
Call 1
Inputs
(*.f64 2 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))
Outputs
(*.f64 2 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 y z))))
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 y x)))))
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))))

eval1.0ms (0%)

Compiler

Compiled 53 to 29 computations (45.3% saved)

prune2.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New224
Fresh101
Picked000
Done000
Total325
Error
17.5b
Counts
5 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
17.5b
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 y z))))
17.5b
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 y x)))))
Compiler

Compiled 30 to 20 computations (33.3% saved)

localize14.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

Compiled 49 to 11 computations (77.6% saved)

series10.0ms (0.1%)

Counts
3 → 84
Calls

27 calls:

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

rewrite96.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
1506×bool.json-1
1506×bool.json-2
1476×rational.json-1
1476×rational.json-2
1476×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01167
110867
227367
356067
4118267
5266467
6563667
Stop Event
node limit
Counts
3 → 51
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 y x))))
(+.f64 (*.f64 x y) (*.f64 z (+.f64 y x)))
(*.f64 z (+.f64 y x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1/2) (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 8)) (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (+.f64 x y) (*.f64 z 1/2)) (*.f64 x (*.f64 y 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 x (*.f64 y 1/2)) (*.f64 (+.f64 x y) (*.f64 z 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (+.f64 x y) (+.f64 z z)) (*.f64 x (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 x (+.f64 y y)) (*.f64 (+.f64 x y) (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (+.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x y) (*.f64 z 1/2)) (*.f64 (+.f64 x y) (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (+.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (+.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) (+.f64 z z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 (+.f64 x y) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 z (+.f64 x y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8)) (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 z (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y)))))))

simplify353.0ms (2.2%)

Algorithm
egg-herbie
Rules
1368×rational.json-simplify-35
1190×rational.json-simplify-2
1122×rational.json-simplify-1
1078×rational.json-simplify-46
962×rational.json-simplify-61
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02103617
14543617
210413617
322603617
440813617
552623617
664593617
775363617
Stop Event
node limit
Counts
135 → 116
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 y z))
(+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x))))
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x)))))
(+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 z 5)))) (*.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 x 3)))) (+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x))))))
(sqrt.f64 (*.f64 z x))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x))))) (sqrt.f64 (*.f64 z x)))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x))))) (sqrt.f64 (*.f64 z x))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))))) (+.f64 (*.f64 1/16 (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 z x) 3)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 5) (pow.f64 x 5)))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x))))) (sqrt.f64 (*.f64 z x)))))
(sqrt.f64 (*.f64 y x))
(+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 1/2 (*.f64 (*.f64 (+.f64 y x) z) (sqrt.f64 (/.f64 1 (*.f64 y x))))))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))) (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 1/2 (*.f64 (*.f64 (+.f64 y x) z) (sqrt.f64 (/.f64 1 (*.f64 y x)))))))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))) (+.f64 (*.f64 1/16 (*.f64 (*.f64 (pow.f64 (+.f64 y x) 3) (pow.f64 z 3)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 x 5)))))) (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 1/2 (*.f64 (*.f64 (+.f64 y x) z) (sqrt.f64 (/.f64 1 (*.f64 y x))))))))
(*.f64 y z)
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 y z))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 y z))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 y z))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x)))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(*.f64 y (+.f64 z x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x))))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x)))))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x)))))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x)))))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 0)
(+.f64 0 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))))
(+.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1/2) (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1/2))
(-.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 0)
(*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1)
(*.f64 1 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))))
(*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1/2))
(*.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 2) 1/2)
(*.f64 4 (/.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 4))
(*.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 4) 1/4)
(*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 2))
(*.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1/2) 2)
(*.f64 1/4 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 4))
(*.f64 (/.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 4) 4)
(/.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1)
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 2) 2)
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 4) 4)
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 8)) (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 8))) 32)
(-.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 0)
(*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 1)
(*.f64 1 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))))
(*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 1/2))
(*.f64 2 (+.f64 (*.f64 (+.f64 x y) (*.f64 z 1/2)) (*.f64 x (*.f64 y 1/2))))
(*.f64 2 (+.f64 (*.f64 x (*.f64 y 1/2)) (*.f64 (+.f64 x y) (*.f64 z 1/2))))
(*.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 4))
(*.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 2))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 x y) (+.f64 z z)) (*.f64 x (+.f64 y y))))
(*.f64 1/2 (+.f64 (*.f64 x (+.f64 y y)) (*.f64 (+.f64 x y) (+.f64 z z))))
(*.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 4))
(*.f64 (/.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 4) 4)
(/.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 1)
(/.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 8))) 32)
(+.f64 (*.f64 z (+.f64 x y)) 0)
(+.f64 0 (*.f64 z (+.f64 x y)))
(+.f64 (*.f64 (+.f64 x y) (*.f64 z 1/2)) (*.f64 (+.f64 x y) (*.f64 z 1/2)))
(-.f64 (*.f64 z (+.f64 x y)) 0)
(/.f64 (*.f64 z (+.f64 x y)) 1)
(/.f64 (*.f64 (+.f64 x y) (+.f64 z z)) 2)
(/.f64 (*.f64 z (*.f64 (+.f64 x y) 4)) 4)
(/.f64 (*.f64 (*.f64 z (+.f64 x y)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8)) (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8))) 32)
Outputs
(sqrt.f64 (*.f64 y z))
(+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x))))
(+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 1/2 (*.f64 (+.f64 y z) x))))
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x)))))
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2))))))
(+.f64 (+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 1/2 (*.f64 (+.f64 y z) x)))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))))
(+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 z 5)))) (*.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 x 3)))) (+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x))))))
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2))))) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 z 5)))) (*.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 x 3))))))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))) (+.f64 (+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x)))) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 z 5)))) (*.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 x 3))))))
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 1/2 (*.f64 (+.f64 y z) x))) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 z 5)))) (*.f64 1/16 (*.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 x 3)))))))
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x))) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 z 5)))) (*.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 x 3)))))))
(sqrt.f64 (*.f64 z x))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x))))) (sqrt.f64 (*.f64 z x)))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x))))))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/2 (*.f64 y (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x)))))))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 y (*.f64 (+.f64 z x) 1/2))))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 (/.f64 1 z) x)) (*.f64 y (*.f64 1/2 (+.f64 z x)))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x))))) (sqrt.f64 (*.f64 z x))))
(+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x)))))) (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))))))
(+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/2 (*.f64 y (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x))))))) (*.f64 -1/8 (*.f64 (pow.f64 (+.f64 z x) 2) (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))))))))
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 y (*.f64 (+.f64 z x) 1/2))) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 (+.f64 z x) 2) (*.f64 -1/8 (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 z 3)) (pow.f64 x 3))))))))
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x))))) (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 z 3)) (pow.f64 x 3)))))))
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 z) x)) (*.f64 y (*.f64 1/2 (+.f64 z x)))) (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (*.f64 -1/8 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))))))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))))) (+.f64 (*.f64 1/16 (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 z x) 3)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 5) (pow.f64 x 5)))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x))))) (sqrt.f64 (*.f64 z x)))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x))))) (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/16 (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 z x) 3)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 5) (pow.f64 x 5)))))))))
(+.f64 (*.f64 1/2 (*.f64 y (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x)))))) (+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/16 (*.f64 (pow.f64 (+.f64 z x) 3) (*.f64 (pow.f64 y 3) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 5) (pow.f64 x 5)))))))) (*.f64 -1/8 (*.f64 (pow.f64 (+.f64 z x) 2) (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))))))))
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 y (*.f64 (+.f64 z x) 1/2))) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 (+.f64 z x) 2) (*.f64 -1/8 (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 z 3)) (pow.f64 x 3))))))) (*.f64 (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 x 5)) (pow.f64 z 5))) (*.f64 (pow.f64 (+.f64 z x) 3) (*.f64 (pow.f64 y 3) 1/16)))))
(+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x)))))) (+.f64 (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 z 3)) (pow.f64 x 3))))) (*.f64 (pow.f64 y 3) (*.f64 (pow.f64 (+.f64 z x) 3) (*.f64 1/16 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 5) (pow.f64 x 5)))))))))
(+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 (/.f64 1 z) x)) (*.f64 y (*.f64 1/2 (+.f64 z x))))) (+.f64 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (*.f64 -1/8 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))))) (*.f64 (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 x 5)) (pow.f64 z 5))) (*.f64 (pow.f64 (+.f64 z x) 3) (*.f64 (pow.f64 y 3) 1/16)))))
(sqrt.f64 (*.f64 y x))
(+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 1/2 (*.f64 (*.f64 (+.f64 y x) z) (sqrt.f64 (/.f64 1 (*.f64 y x))))))
(+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 z (+.f64 y x)))))
(+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 z (*.f64 1/2 (+.f64 y x)))))
(+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (+.f64 y x)))))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))) (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 1/2 (*.f64 (*.f64 (+.f64 y x) z) (sqrt.f64 (/.f64 1 (*.f64 y x)))))))
(+.f64 (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 z (+.f64 y x))))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 z (+.f64 y x)))) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))) (sqrt.f64 (*.f64 y x))))
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 z (*.f64 1/2 (+.f64 y x)))) (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 x 3)) (pow.f64 y 3))) (*.f64 -1/8 (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2))))))
(+.f64 (sqrt.f64 (*.f64 y x)) (+.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (+.f64 y x)))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2))))))
(+.f64 (sqrt.f64 (*.f64 y x)) (+.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (+.f64 y x)))) (*.f64 (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 y 3)) (pow.f64 x 3))) (*.f64 -1/8 (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2))))))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))) (+.f64 (*.f64 1/16 (*.f64 (*.f64 (pow.f64 (+.f64 y x) 3) (pow.f64 z 3)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 x 5)))))) (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 1/2 (*.f64 (*.f64 (+.f64 y x) z) (sqrt.f64 (/.f64 1 (*.f64 y x))))))))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))) (+.f64 (sqrt.f64 (*.f64 y x)) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 z (+.f64 y x)))) (*.f64 1/16 (*.f64 (*.f64 (pow.f64 z 3) (pow.f64 (+.f64 y x) 3)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 x 5)))))))))
(+.f64 (sqrt.f64 (*.f64 y x)) (+.f64 (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 z (+.f64 y x)))) (*.f64 1/16 (*.f64 (pow.f64 (+.f64 y x) 3) (*.f64 (pow.f64 z 3) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 x 5)))))))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2))))))
(+.f64 (sqrt.f64 (*.f64 y x)) (+.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 x 3)) (pow.f64 y 3))) (*.f64 -1/8 (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))) (+.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 z (*.f64 1/2 (+.f64 y x)))) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 x 5)))) (*.f64 (pow.f64 z 3) (*.f64 (pow.f64 (+.f64 y x) 3) 1/16))))))
(+.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (+.f64 y x)))) (+.f64 (sqrt.f64 (*.f64 y x)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))) (*.f64 (pow.f64 z 3) (*.f64 1/16 (*.f64 (pow.f64 (+.f64 y x) 3) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 x 5))))))))))
(+.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (+.f64 y x)))) (+.f64 (*.f64 (pow.f64 z 3) (*.f64 1/16 (*.f64 (pow.f64 (+.f64 y x) 3) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 x 5))))))) (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 y 3)) (pow.f64 x 3))) (*.f64 -1/8 (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))))))
(*.f64 y z)
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x)))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x)))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x)))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(*.f64 y (+.f64 z x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x))))
(*.f64 y (+.f64 z x))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x)))))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x)))))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x)))))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 0)
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))))
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)))
(+.f64 0 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))))
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))))
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)))
(+.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1/2) (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1/2))
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))))
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)))
(-.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 0)
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))))
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)))
(*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1)
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))))
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)))
(*.f64 1 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))))
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))))
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)))
(*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1/2))
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))))
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)))
(*.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 2) 1/2)
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))))
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)))
(*.f64 4 (/.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 4))
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))))
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)))
(*.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 4) 1/4)
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))))
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)))
(*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 2))
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))))
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)))
(*.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1/2) 2)
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))))
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)))
(*.f64 1/4 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 4))
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))))
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)))
(*.f64 (/.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 4) 4)
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))))
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)))
(/.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 1)
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))))
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)))
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 2) 2)
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))))
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)))
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 4) 4)
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))))
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)))
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 8) 8)
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))))
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)))
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 8)) 16)
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))))
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 8)) (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) 8))) 32)
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 y (+.f64 z x))))
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x)))
(-.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 0)
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 1)
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(*.f64 1 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 1/2))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(*.f64 2 (+.f64 (*.f64 (+.f64 x y) (*.f64 z 1/2)) (*.f64 x (*.f64 y 1/2))))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(*.f64 2 (+.f64 (*.f64 x (*.f64 y 1/2)) (*.f64 (+.f64 x y) (*.f64 z 1/2))))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(*.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 2) 1/2)
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(*.f64 4 (/.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 4))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(*.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 4) 1/4)
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 2))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 x y) (+.f64 z z)) (*.f64 x (+.f64 y y))))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(*.f64 1/2 (+.f64 (*.f64 x (+.f64 y y)) (*.f64 (+.f64 x y) (+.f64 z z))))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(*.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 1/2) 2)
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 4))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(*.f64 (/.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 4) 4)
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(/.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 1)
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(/.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 2) 2)
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(/.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 4) 4)
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(/.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 8) 8)
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 8)) 16)
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 x y))) 8))) 32)
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 z (+.f64 x y)) 0)
(*.f64 z (+.f64 y x))
(+.f64 0 (*.f64 z (+.f64 x y)))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 (+.f64 x y) (*.f64 z 1/2)) (*.f64 (+.f64 x y) (*.f64 z 1/2)))
(*.f64 z (+.f64 y x))
(-.f64 (*.f64 z (+.f64 x y)) 0)
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 z (+.f64 x y)) 1)
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 (+.f64 x y) (+.f64 z z)) 2)
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 z (*.f64 (+.f64 x y) 4)) 4)
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 (*.f64 z (+.f64 x y)) 8) 8)
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8)) 16)
(*.f64 z (+.f64 y x))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8)) (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8))) 32)
(*.f64 z (+.f64 y x))

localize72.0ms (0.4%)

Local error

Found 3 expressions with local error:

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

Compiled 49 to 11 computations (77.6% saved)

series7.0ms (0%)

Counts
3 → 84
Calls

27 calls:

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

rewrite618.0ms (3.8%)

Algorithm
batch-egg-rewrite
Rules
1506×bool.json-1
1506×bool.json-2
1476×rational.json-1
1476×rational.json-2
1476×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01167
110867
227367
356067
4118267
5266467
6563667
Stop Event
node limit
Counts
3 → 51
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 y z)))
(+.f64 (*.f64 x (+.f64 z y)) (*.f64 y z))
(*.f64 x (+.f64 z y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1/2) (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 8)) (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 y (*.f64 z 1/2)) (*.f64 x (*.f64 (+.f64 z y) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 x (*.f64 (+.f64 z y) 1/2)) (*.f64 y (*.f64 z 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 y (+.f64 z z)) (*.f64 x (*.f64 (+.f64 z y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 x (*.f64 (+.f64 z y) 2)) (*.f64 y (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 z y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (+.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 (+.f64 z y) 1/2)) (*.f64 x (*.f64 (+.f64 z y) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 z y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 z y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 z y) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 z y) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 z y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 z y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 z y)) 8)) (*.f64 2 (*.f64 (*.f64 x (+.f64 z y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (+.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (+.f64 z y)) (*.f64 x (+.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (+.f64 z y)) (*.f64 x (+.f64 z y)))))))

simplify246.0ms (1.5%)

Algorithm
egg-herbie
Rules
2376×rational.json-simplify-2
1384×rational.json-simplify-35
1180×rational.json-simplify-1
928×rational.json-simplify-51
720×rational.json-simplify-43
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02103617
14553617
210573617
323403617
440213617
554713617
660623617
763183617
869013617
Stop Event
node limit
Counts
135 → 121
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 y z))
(+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x))))
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x)))))
(+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 z 5)))) (*.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 x 3)))) (+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x))))))
(sqrt.f64 (*.f64 y x))
(+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 1/2 (*.f64 (*.f64 (+.f64 y x) z) (sqrt.f64 (/.f64 1 (*.f64 y x))))))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))) (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 1/2 (*.f64 (*.f64 (+.f64 y x) z) (sqrt.f64 (/.f64 1 (*.f64 y x)))))))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))) (+.f64 (*.f64 1/16 (*.f64 (*.f64 (pow.f64 (+.f64 y x) 3) (pow.f64 z 3)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 x 5)))))) (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 1/2 (*.f64 (*.f64 (+.f64 y x) z) (sqrt.f64 (/.f64 1 (*.f64 y x))))))))
(sqrt.f64 (*.f64 z x))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x))))) (sqrt.f64 (*.f64 z x)))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x))))) (sqrt.f64 (*.f64 z x))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))))) (+.f64 (*.f64 1/16 (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 z x) 3)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 5) (pow.f64 x 5)))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x))))) (sqrt.f64 (*.f64 z x)))))
(*.f64 y z)
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 y z))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 y z))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 y z))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z)))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(*.f64 y (+.f64 z x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x))))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x)))))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x)))))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x)))))
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 y x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 0)
(+.f64 0 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))))
(+.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1/2) (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1/2))
(-.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 0)
(*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1)
(*.f64 1 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))))
(*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1/2))
(*.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 2) 1/2)
(*.f64 4 (/.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 4))
(*.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 4) 1/4)
(*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 2))
(*.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1/2) 2)
(*.f64 1/4 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 4))
(*.f64 (/.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 4) 4)
(/.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1)
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 2) 2)
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 4) 4)
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 8)) (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 8))) 32)
(-.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 0)
(*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 1)
(*.f64 1 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)))
(*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 1/2))
(*.f64 2 (+.f64 (*.f64 y (*.f64 z 1/2)) (*.f64 x (*.f64 (+.f64 z y) 1/2))))
(*.f64 2 (+.f64 (*.f64 x (*.f64 (+.f64 z y) 1/2)) (*.f64 y (*.f64 z 1/2))))
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 4))
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 2))
(*.f64 1/2 (+.f64 (*.f64 y (+.f64 z z)) (*.f64 x (*.f64 (+.f64 z y) 2))))
(*.f64 1/2 (+.f64 (*.f64 x (*.f64 (+.f64 z y) 2)) (*.f64 y (+.f64 z z))))
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 4))
(*.f64 (/.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 4) 4)
(/.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 1)
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 8))) 32)
(+.f64 (*.f64 x (+.f64 z y)) 0)
(+.f64 0 (*.f64 x (+.f64 z y)))
(+.f64 (*.f64 x (*.f64 (+.f64 z y) 1/2)) (*.f64 x (*.f64 (+.f64 z y) 1/2)))
(-.f64 (*.f64 x (+.f64 z y)) 0)
(/.f64 (*.f64 x (+.f64 z y)) 1)
(/.f64 (*.f64 x (*.f64 (+.f64 z y) 2)) 2)
(/.f64 (*.f64 (+.f64 z y) (*.f64 x 4)) 4)
(/.f64 (*.f64 (*.f64 x (+.f64 z y)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 z y)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 z y)) 8)) (*.f64 2 (*.f64 (*.f64 x (+.f64 z y)) 8))) 32)
Outputs
(sqrt.f64 (*.f64 y z))
(+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x))))
(+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 x (+.f64 y z)))))
(+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 1/2 (*.f64 x (+.f64 y z)))))
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x)))))
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 x (+.f64 y z)))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2))))))
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 1/2 (*.f64 x (+.f64 y z)))) (+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2))))))
(+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 z 5)))) (*.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 x 3)))) (+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 (+.f64 y z) x))))))
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 x (+.f64 y z)))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2))))) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 z 5)))) (*.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 x 3))))))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))) (+.f64 (+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 x (+.f64 y z))))) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 z 5)))) (*.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 x 3))))))
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))) (+.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 1/2 (*.f64 x (+.f64 y z)))) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 z 5)))) (*.f64 (pow.f64 (+.f64 y z) 3) (pow.f64 x 3)))))))
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))) (*.f64 (pow.f64 (+.f64 y z) 2) (pow.f64 x 2)))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y z))) (*.f64 x (+.f64 y z)))) (*.f64 (pow.f64 (+.f64 y z) 3) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 z 5)))) (pow.f64 x 3)))))))
(sqrt.f64 (*.f64 y x))
(+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 1/2 (*.f64 (*.f64 (+.f64 y x) z) (sqrt.f64 (/.f64 1 (*.f64 y x))))))
(+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 (*.f64 z (+.f64 y x)) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1/2)))
(+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 (*.f64 z (+.f64 y x)) (*.f64 1/2 (sqrt.f64 (/.f64 1 (*.f64 y x))))))
(+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 z (*.f64 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))) 1/2)))
(+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 z (*.f64 1/2 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))))))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))) (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 1/2 (*.f64 (*.f64 (+.f64 y x) z) (sqrt.f64 (/.f64 1 (*.f64 y x)))))))
(+.f64 (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 (*.f64 z (+.f64 y x)) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1/2))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))))
(+.f64 (*.f64 (*.f64 z (+.f64 y x)) (*.f64 1/2 (sqrt.f64 (/.f64 1 (*.f64 y x))))) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))) (sqrt.f64 (*.f64 y x))))
(+.f64 (sqrt.f64 (*.f64 y x)) (+.f64 (*.f64 z (*.f64 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))) 1/2)) (*.f64 (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 x 3)) (pow.f64 y 3))) (*.f64 (pow.f64 (+.f64 y x) 2) (*.f64 (pow.f64 z 2) -1/8)))))
(+.f64 (sqrt.f64 (*.f64 y x)) (+.f64 (*.f64 z (*.f64 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))) 1/2)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2))))))
(+.f64 (sqrt.f64 (*.f64 y x)) (+.f64 (*.f64 z (*.f64 1/2 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2))))))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))) (+.f64 (*.f64 1/16 (*.f64 (*.f64 (pow.f64 (+.f64 y x) 3) (pow.f64 z 3)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 x 5)))))) (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 1/2 (*.f64 (*.f64 (+.f64 y x) z) (sqrt.f64 (/.f64 1 (*.f64 y x))))))))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))) (+.f64 (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 (*.f64 z (+.f64 y x)) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1/2))) (*.f64 1/16 (*.f64 (*.f64 (pow.f64 z 3) (pow.f64 (+.f64 y x) 3)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 x 5))))))))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))) (+.f64 (*.f64 (*.f64 z (+.f64 y x)) (*.f64 1/2 (sqrt.f64 (/.f64 1 (*.f64 y x))))) (+.f64 (*.f64 1/16 (*.f64 (pow.f64 z 3) (*.f64 (pow.f64 (+.f64 y x) 3) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 x 5))))))) (sqrt.f64 (*.f64 y x)))))
(+.f64 (sqrt.f64 (*.f64 y x)) (+.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 x 5)))) (*.f64 (pow.f64 z 3) (*.f64 (pow.f64 (+.f64 y x) 3) 1/16))) (+.f64 (*.f64 z (*.f64 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))) 1/2)) (*.f64 (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 x 3)) (pow.f64 y 3))) (*.f64 (pow.f64 (+.f64 y x) 2) (*.f64 (pow.f64 z 2) -1/8))))))
(+.f64 (+.f64 (sqrt.f64 (*.f64 y x)) (+.f64 (*.f64 z (*.f64 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))) 1/2)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))))) (*.f64 1/16 (*.f64 (*.f64 (pow.f64 z 3) (pow.f64 (+.f64 y x) 3)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 x 5)))))))
(+.f64 (+.f64 (sqrt.f64 (*.f64 y x)) (+.f64 (*.f64 z (*.f64 1/2 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 3) (pow.f64 x 3)))) (*.f64 (pow.f64 (+.f64 y x) 2) (pow.f64 z 2)))))) (*.f64 1/16 (*.f64 (*.f64 (pow.f64 z 3) (pow.f64 (+.f64 y x) 3)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 y 5) (pow.f64 x 5)))))))
(sqrt.f64 (*.f64 z x))
(+.f64 (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x))))) (sqrt.f64 (*.f64 z x)))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x))))))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/2 (*.f64 y (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x)))))))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 y (*.f64 (+.f64 z x) 1/2))))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x)))) 1/2)))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x)))))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x))))) (sqrt.f64 (*.f64 z x))))
(+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x)))))) (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))))))
(+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/2 (*.f64 y (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x))))))) (*.f64 -1/8 (*.f64 (pow.f64 (+.f64 z x) 2) (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))))))))
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 y (*.f64 (+.f64 z x) 1/2))) (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 x 3)) (pow.f64 z 3))) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 (+.f64 z x) 2) -1/8)))))
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 y (*.f64 (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x)))) 1/2)) (*.f64 -1/8 (*.f64 (pow.f64 (+.f64 z x) 2) (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 x 3)) (pow.f64 z 3))))))))
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 y (*.f64 1/2 (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x)))))) (*.f64 -1/8 (*.f64 (pow.f64 (+.f64 z x) 2) (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 x 3)) (pow.f64 z 3))))))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))))) (+.f64 (*.f64 1/16 (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 z x) 3)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 5) (pow.f64 x 5)))))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x))))) (sqrt.f64 (*.f64 z x)))))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 z x) 2)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3)))))) (+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/2 (*.f64 (*.f64 y (+.f64 z x)) (sqrt.f64 (/.f64 1 (*.f64 z x)))))) (*.f64 1/16 (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 z x) 3)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 5) (pow.f64 x 5))))))))
(+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/2 (*.f64 y (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x))))))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 (+.f64 z x) 2) (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 3) (pow.f64 x 3))))))) (*.f64 1/16 (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 z x) 3)) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 5) (pow.f64 x 5))))))))
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 y (*.f64 (+.f64 z x) 1/2))) (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 z x) 3)) (*.f64 1/16 (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 5) (pow.f64 x 5))))))) (*.f64 (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 x 3)) (pow.f64 z 3))) (*.f64 (pow.f64 y 2) (*.f64 (pow.f64 (+.f64 z x) 2) -1/8)))))
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 (pow.f64 y 3) (*.f64 (*.f64 (pow.f64 (+.f64 z x) 3) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 5) (pow.f64 x 5))))) 1/16)) (+.f64 (*.f64 y (*.f64 (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x)))) 1/2)) (*.f64 -1/8 (*.f64 (pow.f64 (+.f64 z x) 2) (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 x 3)) (pow.f64 z 3)))))))))
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 (pow.f64 y 3) (*.f64 1/16 (*.f64 (pow.f64 (+.f64 z x) 3) (sqrt.f64 (/.f64 1 (*.f64 (pow.f64 z 5) (pow.f64 x 5))))))) (+.f64 (*.f64 y (*.f64 1/2 (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x)))))) (*.f64 -1/8 (*.f64 (pow.f64 (+.f64 z x) 2) (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 (/.f64 1 (pow.f64 x 3)) (pow.f64 z 3)))))))))
(*.f64 y z)
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 y z))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(*.f64 (+.f64 y z) x)
(*.f64 x (+.f64 y z))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(*.f64 (+.f64 y z) x)
(*.f64 x (+.f64 y z))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(+.f64 (*.f64 y z) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(+.f64 (*.f64 y x) (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z)))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z)))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z)))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(*.f64 y (+.f64 z x))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 y (+.f64 z x)))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x))))
(*.f64 y (+.f64 z x))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x)))))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x)))))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) (*.f64 -1 x)))))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(*.f64 (+.f64 y z) x)
(*.f64 x (+.f64 y z))
(*.f64 (+.f64 y z) x)
(*.f64 x (+.f64 y z))
(*.f64 (+.f64 y z) x)
(*.f64 x (+.f64 y z))
(*.f64 (+.f64 y z) x)
(*.f64 x (+.f64 y z))
(*.f64 (+.f64 y z) x)
(*.f64 x (+.f64 y z))
(*.f64 (+.f64 y z) x)
(*.f64 x (+.f64 y z))
(*.f64 (+.f64 y z) x)
(*.f64 x (+.f64 y z))
(*.f64 (+.f64 y z) x)
(*.f64 x (+.f64 y z))
(*.f64 (+.f64 y z) x)
(*.f64 x (+.f64 y z))
(*.f64 (+.f64 y z) x)
(*.f64 x (+.f64 y z))
(*.f64 (+.f64 y z) x)
(*.f64 x (+.f64 y z))
(*.f64 (+.f64 y z) x)
(*.f64 x (+.f64 y z))
(*.f64 y x)
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 x (+.f64 y z))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 x (+.f64 y z))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 x (+.f64 y z))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 x (+.f64 y z))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 x (+.f64 y z))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 x (+.f64 y z))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 x (+.f64 y z))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 x (+.f64 y z))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 x (+.f64 y z))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 x (+.f64 y z))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 x (+.f64 y z))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 x (+.f64 y z))
(*.f64 y x)
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 x (+.f64 y z))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 x (+.f64 y z))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 x (+.f64 y z))
(*.f64 y x)
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 x (+.f64 y z))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 x (+.f64 y z))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 x (+.f64 y z))
(+.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 0)
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))))
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(+.f64 0 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))))
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))))
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(+.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1/2) (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1/2))
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))))
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(-.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 0)
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))))
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1)
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))))
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(*.f64 1 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))))
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))))
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1/2))
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))))
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(*.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 2) 1/2)
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))))
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(*.f64 4 (/.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 4))
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))))
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(*.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 4) 1/4)
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))))
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 2))
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))))
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(*.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1/2) 2)
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))))
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(*.f64 1/4 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 4))
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))))
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(*.f64 (/.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 4) 4)
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))))
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(/.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 1)
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))))
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 2) 2)
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))))
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 4) 4)
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))))
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 8) 8)
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))))
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 8)) 16)
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))))
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 8)) (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y))) 8))) 32)
(sqrt.f64 (+.f64 (*.f64 y z) (*.f64 x (+.f64 y z))))
(sqrt.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 y x))))
(-.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 0)
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 1)
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(*.f64 1 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 1/2))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(*.f64 2 (+.f64 (*.f64 y (*.f64 z 1/2)) (*.f64 x (*.f64 (+.f64 z y) 1/2))))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(*.f64 2 (+.f64 (*.f64 x (*.f64 (+.f64 z y) 1/2)) (*.f64 y (*.f64 z 1/2))))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 2) 1/2)
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(*.f64 4 (/.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 4))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 4) 1/4)
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 2))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(*.f64 1/2 (+.f64 (*.f64 y (+.f64 z z)) (*.f64 x (*.f64 (+.f64 z y) 2))))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(*.f64 1/2 (+.f64 (*.f64 x (*.f64 (+.f64 z y) 2)) (*.f64 y (+.f64 z z))))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 1/2) 2)
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 4))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(*.f64 (/.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 4) 4)
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(/.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 1)
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 2) 2)
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 4) 4)
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 8) 8)
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 8)) 16)
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 z y)) 8))) 32)
(+.f64 (*.f64 y z) (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 y x)))
(+.f64 (*.f64 x (+.f64 z y)) 0)
(*.f64 x (+.f64 y z))
(+.f64 0 (*.f64 x (+.f64 z y)))
(*.f64 x (+.f64 y z))
(+.f64 (*.f64 x (*.f64 (+.f64 z y) 1/2)) (*.f64 x (*.f64 (+.f64 z y) 1/2)))
(*.f64 x (+.f64 y z))
(-.f64 (*.f64 x (+.f64 z y)) 0)
(*.f64 x (+.f64 y z))
(/.f64 (*.f64 x (+.f64 z y)) 1)
(*.f64 x (+.f64 y z))
(/.f64 (*.f64 x (*.f64 (+.f64 z y) 2)) 2)
(*.f64 x (+.f64 y z))
(/.f64 (*.f64 (+.f64 z y) (*.f64 x 4)) 4)
(*.f64 x (+.f64 y z))
(/.f64 (*.f64 (*.f64 x (+.f64 z y)) 8) 8)
(*.f64 x (+.f64 y z))
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 z y)) 8)) 16)
(*.f64 x (+.f64 y z))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 z y)) 8)) (*.f64 2 (*.f64 (*.f64 x (+.f64 z y)) 8))) 32)
(*.f64 x (+.f64 y z))

eval235.0ms (1.4%)

Compiler

Compiled 6334 to 3453 computations (45.5% saved)

prune39.0ms (0.2%)

Pruning

7 alts after pruning (7 fresh and 0 done)

PrunedKeptTotal
New2307237
Fresh000
Picked101
Done101
Total2327239
Error
17.0b
Counts
239 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
62.2b
(*.f64 2 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x)))) 1/2))))
38.7b
(*.f64 2 (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 z (*.f64 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))) 1/2))))
37.0b
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x)))
42.2b
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y x) z)))
61.7b
(*.f64 2 (sqrt.f64 (*.f64 z x)))
43.1b
(*.f64 2 (sqrt.f64 (*.f64 y z)))
38.5b
(*.f64 2 (sqrt.f64 (*.f64 y x)))
Compiler

Compiled 194 to 138 computations (28.9% saved)

localize10.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 29 to 9 computations (69% saved)

series5.0ms (0%)

Counts
2 → 32
Calls

18 calls:

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

rewrite110.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
1864×bool.json-1
1864×bool.json-2
1320×rational.json-simplify-35
1160×rational.json-1
1160×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0930
18830
223330
348030
499230
5218630
6452630
7737230
Stop Event
node limit
Counts
2 → 32
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 (+.f64 y z) x))
(*.f64 (+.f64 y z) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (*.f64 (+.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1/2) (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 (+.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sqrt.f64 (*.f64 (+.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sqrt.f64 (*.f64 (+.f64 y z) x)) (sqrt.f64 (*.f64 (+.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (*.f64 (+.f64 y z) x)) (sqrt.f64 (*.f64 (+.f64 y z) x)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 y z) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 y z) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 y z) (*.f64 x 1/2)) (*.f64 (+.f64 y z) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 y z) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y z) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y z) (+.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y z) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (+.f64 y z) x) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y z) x) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y z) x) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y z) x) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y z) x) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (+.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (+.f64 y z) x) (*.f64 (+.f64 y z) x))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (+.f64 y z) x) (*.f64 (+.f64 y z) x))))))

simplify445.0ms (2.7%)

Algorithm
egg-herbie
Rules
3706×rational.json-simplify-41
3534×rational.json-simplify-35
1576×rational.json-simplify-2
656×rational.json-simplify-1
478×rational.json-simplify-51
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01171446
12511272
25671272
312621272
423771272
530611272
633961272
736911272
839151272
941181272
1041181272
1143201272
1243521272
1343971272
1446131272
1548331272
1650491272
1752521272
1854491272
Stop Event
node limit
Counts
64 → 78
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 z x))
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 x z)))) (sqrt.f64 (*.f64 z x)))
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 x z)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 x (pow.f64 z 3))))) (sqrt.f64 (*.f64 z x))))
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 x z)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 x (pow.f64 z 3))))) (+.f64 (*.f64 1/16 (*.f64 (pow.f64 y 3) (sqrt.f64 (/.f64 x (pow.f64 z 5))))) (sqrt.f64 (*.f64 z x)))))
(sqrt.f64 (*.f64 y x))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x)))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 3))) (pow.f64 z 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x))))
(+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 5))) (pow.f64 z 3))) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 3))) (pow.f64 z 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x)))))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 0)
(+.f64 0 (sqrt.f64 (*.f64 (+.f64 y z) x)))
(+.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1/2) (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1/2))
(-.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 0)
(*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1)
(*.f64 1 (sqrt.f64 (*.f64 (+.f64 y z) x)))
(*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1/2))
(*.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 2) 1/2)
(*.f64 4 (/.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 4))
(*.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 4) 1/4)
(*.f64 1/2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 2))
(*.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1/2) 2)
(*.f64 1/4 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 4))
(*.f64 (/.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 4) 4)
(/.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1)
(/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 2) 2)
(/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 4) 4)
(/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 8)))) 64)
(+.f64 (*.f64 (+.f64 y z) x) 0)
(+.f64 0 (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 (+.f64 y z) (*.f64 x 1/2)) (*.f64 (+.f64 y z) (*.f64 x 1/2)))
(-.f64 (*.f64 (+.f64 y z) x) 0)
(/.f64 (*.f64 (+.f64 y z) x) 1)
(/.f64 (*.f64 (+.f64 y z) (+.f64 x x)) 2)
(/.f64 (*.f64 (+.f64 y z) (*.f64 x 4)) 4)
(/.f64 (*.f64 (*.f64 (+.f64 y z) x) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y z) x) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y z) x) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y z) x) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y z) x) 8)))) 64)
Outputs
(sqrt.f64 (*.f64 z x))
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 x z)))) (sqrt.f64 (*.f64 z x)))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 (sqrt.f64 (/.f64 x z)) 1/2)))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 x z)))))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 x z)))))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 x z)) (*.f64 1/2 y)))
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 x z)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 x (pow.f64 z 3))))) (sqrt.f64 (*.f64 z x))))
(+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 x (pow.f64 z 3))))) (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 (sqrt.f64 (/.f64 x z)) 1/2))))
(+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 x z))))) (*.f64 (sqrt.f64 (/.f64 x (pow.f64 z 3))) (*.f64 (pow.f64 y 2) -1/8)))
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 x z)))) (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 x (pow.f64 z 3)))))))
(+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 x z)) (*.f64 1/2 y))) (*.f64 (sqrt.f64 (/.f64 x (pow.f64 z 3))) (*.f64 -1/8 (pow.f64 y 2))))
(+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 x z))))) (*.f64 (sqrt.f64 (/.f64 x (pow.f64 z 3))) (*.f64 -1/8 (pow.f64 y 2))))
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 x z)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 x (pow.f64 z 3))))) (+.f64 (*.f64 1/16 (*.f64 (pow.f64 y 3) (sqrt.f64 (/.f64 x (pow.f64 z 5))))) (sqrt.f64 (*.f64 z x)))))
(+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 x (pow.f64 z 3))))) (+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/16 (*.f64 (pow.f64 y 3) (sqrt.f64 (/.f64 x (pow.f64 z 5)))))) (*.f64 y (*.f64 (sqrt.f64 (/.f64 x z)) 1/2))))
(+.f64 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 z 3))) (*.f64 (pow.f64 y 2) -1/8)) (+.f64 (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 x z)))) (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 x (pow.f64 z 5))) (*.f64 (pow.f64 y 3) 1/16)))))
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 x z)))) (+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 x (pow.f64 z 3))))) (*.f64 1/16 (*.f64 (pow.f64 y 3) (sqrt.f64 (/.f64 x (pow.f64 z 5))))))))
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x z)) (*.f64 1/2 y)) (*.f64 (sqrt.f64 (/.f64 x (pow.f64 z 5))) (*.f64 1/16 (pow.f64 y 3)))) (*.f64 (sqrt.f64 (/.f64 x (pow.f64 z 3))) (*.f64 -1/8 (pow.f64 y 2)))))
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 z 3))) (*.f64 -1/8 (pow.f64 y 2))) (+.f64 (*.f64 (sqrt.f64 (/.f64 x z)) (*.f64 1/2 y)) (*.f64 (sqrt.f64 (/.f64 x (pow.f64 z 5))) (*.f64 1/16 (pow.f64 y 3))))))
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 x z)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 x (pow.f64 z 3))))) (*.f64 1/16 (*.f64 (pow.f64 y 3) (sqrt.f64 (/.f64 x (pow.f64 z 5))))))))
(+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 x z))))) (+.f64 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 z 3))) (*.f64 -1/8 (pow.f64 y 2))) (*.f64 (sqrt.f64 (/.f64 x (pow.f64 z 5))) (*.f64 1/16 (pow.f64 y 3)))))
(sqrt.f64 (*.f64 y x))
(sqrt.f64 (*.f64 x y))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x)))
(+.f64 (sqrt.f64 (*.f64 x y)) (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)))
(+.f64 (sqrt.f64 (*.f64 x y)) (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))))
(+.f64 (sqrt.f64 (*.f64 x y)) (*.f64 z (*.f64 1/2 (sqrt.f64 (/.f64 x y)))))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 3))) (pow.f64 z 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x))))
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (+.f64 (sqrt.f64 (*.f64 x y)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 3))) (pow.f64 z 2)))))
(+.f64 (sqrt.f64 (*.f64 x y)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 3))) (pow.f64 z 2))) (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2))))
(+.f64 (+.f64 (sqrt.f64 (*.f64 x y)) (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y))))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 3))) (pow.f64 z 2))))
(+.f64 (sqrt.f64 (*.f64 x y)) (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 3))) (pow.f64 z 2)))))
(+.f64 (+.f64 (sqrt.f64 (*.f64 x y)) (*.f64 z (*.f64 1/2 (sqrt.f64 (/.f64 x y))))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 3))) (pow.f64 z 2))))
(+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 5))) (pow.f64 z 3))) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 3))) (pow.f64 z 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x)))))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 3))) (pow.f64 z 2))) (+.f64 (+.f64 (sqrt.f64 (*.f64 x y)) (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2))) (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 5))) (*.f64 (pow.f64 z 3) 1/16))))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 3))) (pow.f64 z 2))) (+.f64 (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))) (+.f64 (sqrt.f64 (*.f64 x y)) (*.f64 1/16 (*.f64 (pow.f64 z 3) (sqrt.f64 (/.f64 x (pow.f64 y 5))))))))
(+.f64 (sqrt.f64 (*.f64 x y)) (+.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 5))) (*.f64 (pow.f64 z 3) 1/16))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 3))) (pow.f64 z 2)))))
(+.f64 (sqrt.f64 (*.f64 x y)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 3))) (pow.f64 z 2))) (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 5))) (*.f64 (pow.f64 z 3) 1/16)))))
(+.f64 (sqrt.f64 (*.f64 x y)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 3))) (pow.f64 z 2))) (+.f64 (*.f64 z (*.f64 1/2 (sqrt.f64 (/.f64 x y)))) (*.f64 (pow.f64 z 3) (*.f64 1/16 (sqrt.f64 (/.f64 x (pow.f64 y 5))))))))
(+.f64 (*.f64 z (*.f64 1/2 (sqrt.f64 (/.f64 x y)))) (+.f64 (sqrt.f64 (*.f64 x y)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 3))) (pow.f64 z 2))) (*.f64 (sqrt.f64 (/.f64 x (pow.f64 y 5))) (*.f64 (pow.f64 z 3) 1/16)))))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 0)
(sqrt.f64 (*.f64 x (+.f64 z y)))
(+.f64 0 (sqrt.f64 (*.f64 (+.f64 y z) x)))
(sqrt.f64 (*.f64 x (+.f64 z y)))
(+.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1/2) (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1/2))
(sqrt.f64 (*.f64 x (+.f64 z y)))
(-.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 0)
(sqrt.f64 (*.f64 x (+.f64 z y)))
(*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1)
(sqrt.f64 (*.f64 x (+.f64 z y)))
(*.f64 1 (sqrt.f64 (*.f64 (+.f64 y z) x)))
(sqrt.f64 (*.f64 x (+.f64 z y)))
(*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1/2))
(sqrt.f64 (*.f64 x (+.f64 z y)))
(*.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 2) 1/2)
(sqrt.f64 (*.f64 x (+.f64 z y)))
(*.f64 4 (/.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 4))
(sqrt.f64 (*.f64 x (+.f64 z y)))
(*.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 4) 1/4)
(sqrt.f64 (*.f64 x (+.f64 z y)))
(*.f64 1/2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 2))
(sqrt.f64 (*.f64 x (+.f64 z y)))
(*.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1/2) 2)
(sqrt.f64 (*.f64 x (+.f64 z y)))
(*.f64 1/4 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 4))
(sqrt.f64 (*.f64 x (+.f64 z y)))
(*.f64 (/.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 4) 4)
(sqrt.f64 (*.f64 x (+.f64 z y)))
(/.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 1)
(sqrt.f64 (*.f64 x (+.f64 z y)))
(/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 2) 2)
(sqrt.f64 (*.f64 x (+.f64 z y)))
(/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 4) 4)
(sqrt.f64 (*.f64 x (+.f64 z y)))
(/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 8) 8)
(sqrt.f64 (*.f64 x (+.f64 z y)))
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 8)) 16)
(sqrt.f64 (*.f64 x (+.f64 z y)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 8))) 32)
(sqrt.f64 (*.f64 x (+.f64 z y)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y z) x)) 8)))) 64)
(sqrt.f64 (*.f64 x (+.f64 z y)))
(+.f64 (*.f64 (+.f64 y z) x) 0)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 0 (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 (+.f64 y z) (*.f64 x 1/2)) (*.f64 (+.f64 y z) (*.f64 x 1/2)))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(-.f64 (*.f64 (+.f64 y z) x) 0)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(/.f64 (*.f64 (+.f64 y z) x) 1)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(/.f64 (*.f64 (+.f64 y z) (+.f64 x x)) 2)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(/.f64 (*.f64 (+.f64 y z) (*.f64 x 4)) 4)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(/.f64 (*.f64 (*.f64 (+.f64 y z) x) 8) 8)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y z) x) 8)) 16)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y z) x) 8))) 32)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y z) x) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y z) x) 8)))) 64)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))

localize6.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
18.0b
(sqrt.f64 (*.f64 y x))
Compiler

Compiled 19 to 8 computations (57.9% saved)

series3.0ms (0%)

Counts
1 → 0
Calls

6 calls:

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

rewrite97.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
1622×bool.json-1
1622×bool.json-2
1588×rational.json-1
1588×rational.json-2
1140×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
16911
219411
340311
480911
5173911
6371311
7667311
Stop Event
node limit
Counts
1 → 21
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 y x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 1/2) (*.f64 (sqrt.f64 (*.f64 y x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sqrt.f64 (*.f64 y x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (sqrt.f64 (*.f64 y x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (*.f64 y x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sqrt.f64 (*.f64 y x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 y x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y x)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sqrt.f64 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sqrt.f64 (*.f64 y x)) (sqrt.f64 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (*.f64 y x)) (sqrt.f64 (*.f64 y x)))))))

simplify912.0ms (5.6%)

Algorithm
egg-herbie
Rules
8076×rational.json-simplify-41
2014×rational.json-simplify-35
1790×rational.json-simplify-2
1304×rational.json-simplify-49
924×rational.json-simplify-51
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
046231
189231
2246231
3645231
41044231
52177231
62813231
72864231
82898231
92927231
102953231
112979231
123025231
133051231
143077231
153103231
163129231
173155231
183181231
194142231
204537231
214579231
224611231
234641231
244670231
254699231
264728231
274757231
284786231
294815231
304844231
314873231
324902231
334931231
344960231
354989231
365018231
375047231
385076231
395105231
405105231
Stop Event
node limit
Counts
21 → 22
Calls
Call 1
Inputs
(+.f64 (sqrt.f64 (*.f64 y x)) 0)
(+.f64 0 (sqrt.f64 (*.f64 y x)))
(+.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 1/2) (*.f64 (sqrt.f64 (*.f64 y x)) 1/2))
(-.f64 (sqrt.f64 (*.f64 y x)) 0)
(*.f64 (sqrt.f64 (*.f64 y x)) 1)
(*.f64 1 (sqrt.f64 (*.f64 y x)))
(*.f64 2 (*.f64 (sqrt.f64 (*.f64 y x)) 1/2))
(*.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 2) 1/2)
(*.f64 4 (/.f64 (sqrt.f64 (*.f64 y x)) 4))
(*.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 4) 1/4)
(*.f64 1/2 (*.f64 (sqrt.f64 (*.f64 y x)) 2))
(*.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 1/2) 2)
(*.f64 1/4 (*.f64 (sqrt.f64 (*.f64 y x)) 4))
(*.f64 (/.f64 (sqrt.f64 (*.f64 y x)) 4) 4)
(/.f64 (sqrt.f64 (*.f64 y x)) 1)
(/.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 2) 2)
(/.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 4) 4)
(/.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y x)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y x)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y x)) 8)))) 64)
Outputs
(+.f64 (sqrt.f64 (*.f64 y x)) 0)
(sqrt.f64 (*.f64 y x))
(+.f64 0 (sqrt.f64 (*.f64 y x)))
(sqrt.f64 (*.f64 y x))
(+.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 1/2) (*.f64 (sqrt.f64 (*.f64 y x)) 1/2))
(sqrt.f64 (*.f64 y x))
(-.f64 (sqrt.f64 (*.f64 y x)) 0)
(sqrt.f64 (*.f64 y x))
(*.f64 (sqrt.f64 (*.f64 y x)) 1)
(sqrt.f64 (*.f64 y x))
(*.f64 1 (sqrt.f64 (*.f64 y x)))
(sqrt.f64 (*.f64 y x))
(*.f64 2 (*.f64 (sqrt.f64 (*.f64 y x)) 1/2))
(sqrt.f64 (*.f64 y x))
(*.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 2) 1/2)
(sqrt.f64 (*.f64 y x))
(*.f64 4 (/.f64 (sqrt.f64 (*.f64 y x)) 4))
(sqrt.f64 (*.f64 y x))
(*.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 4) 1/4)
(sqrt.f64 (*.f64 y x))
(*.f64 1/2 (*.f64 (sqrt.f64 (*.f64 y x)) 2))
(sqrt.f64 (*.f64 y x))
(*.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 1/2) 2)
(sqrt.f64 (*.f64 y x))
(*.f64 1/4 (*.f64 (sqrt.f64 (*.f64 y x)) 4))
(sqrt.f64 (*.f64 y x))
(*.f64 (/.f64 (sqrt.f64 (*.f64 y x)) 4) 4)
(sqrt.f64 (*.f64 y x))
(/.f64 (sqrt.f64 (*.f64 y x)) 1)
(sqrt.f64 (*.f64 y x))
(/.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 2) 2)
(sqrt.f64 (*.f64 y x))
(/.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 4) 4)
(sqrt.f64 (*.f64 y x))
(/.f64 (*.f64 (sqrt.f64 (*.f64 y x)) 8) 8)
(sqrt.f64 (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y x)) 8)) 16)
(sqrt.f64 (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y x)) 8))) 32)
(sqrt.f64 (*.f64 y x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y x)) 8)))) 64)
(sqrt.f64 (*.f64 y x))

localize6.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 19 to 8 computations (57.9% saved)

series2.0ms (0%)

Counts
1 → 0
Calls

6 calls:

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

rewrite95.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
1622×bool.json-1
1622×bool.json-2
1588×rational.json-1
1588×rational.json-2
1140×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
16911
219411
340311
480911
5173911
6371311
7667311
Stop Event
node limit
Counts
1 → 21
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 y z))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (*.f64 y z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 1/2) (*.f64 (sqrt.f64 (*.f64 y z)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (*.f64 y z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sqrt.f64 (*.f64 y z)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (sqrt.f64 (*.f64 y z)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (*.f64 y z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sqrt.f64 (*.f64 y z)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 y z)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y z)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y z)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y z)) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y z)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sqrt.f64 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sqrt.f64 (*.f64 y z)) (sqrt.f64 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (*.f64 y z)) (sqrt.f64 (*.f64 y z)))))))

simplify899.0ms (5.5%)

Algorithm
egg-herbie
Rules
8076×rational.json-simplify-41
2014×rational.json-simplify-35
1790×rational.json-simplify-2
1304×rational.json-simplify-49
924×rational.json-simplify-51
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
046231
189231
2246231
3645231
41044231
52177231
62813231
72864231
82898231
92927231
102953231
112979231
123025231
133051231
143077231
153103231
163129231
173155231
183181231
194142231
204537231
214579231
224611231
234641231
244670231
254699231
264728231
274757231
284786231
294815231
304844231
314873231
324902231
334931231
344960231
354989231
365018231
375047231
385076231
395105231
405105231
Stop Event
node limit
Counts
21 → 22
Calls
Call 1
Inputs
(+.f64 (sqrt.f64 (*.f64 y z)) 0)
(+.f64 0 (sqrt.f64 (*.f64 y z)))
(+.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 1/2) (*.f64 (sqrt.f64 (*.f64 y z)) 1/2))
(-.f64 (sqrt.f64 (*.f64 y z)) 0)
(*.f64 (sqrt.f64 (*.f64 y z)) 1)
(*.f64 1 (sqrt.f64 (*.f64 y z)))
(*.f64 2 (*.f64 (sqrt.f64 (*.f64 y z)) 1/2))
(*.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 2) 1/2)
(*.f64 4 (/.f64 (sqrt.f64 (*.f64 y z)) 4))
(*.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 4) 1/4)
(*.f64 1/2 (*.f64 (sqrt.f64 (*.f64 y z)) 2))
(*.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 1/2) 2)
(*.f64 1/4 (*.f64 (sqrt.f64 (*.f64 y z)) 4))
(*.f64 (/.f64 (sqrt.f64 (*.f64 y z)) 4) 4)
(/.f64 (sqrt.f64 (*.f64 y z)) 1)
(/.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 2) 2)
(/.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 4) 4)
(/.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y z)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y z)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y z)) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y z)) 8)))) 64)
Outputs
(+.f64 (sqrt.f64 (*.f64 y z)) 0)
(sqrt.f64 (*.f64 y z))
(+.f64 0 (sqrt.f64 (*.f64 y z)))
(sqrt.f64 (*.f64 y z))
(+.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 1/2) (*.f64 (sqrt.f64 (*.f64 y z)) 1/2))
(sqrt.f64 (*.f64 y z))
(-.f64 (sqrt.f64 (*.f64 y z)) 0)
(sqrt.f64 (*.f64 y z))
(*.f64 (sqrt.f64 (*.f64 y z)) 1)
(sqrt.f64 (*.f64 y z))
(*.f64 1 (sqrt.f64 (*.f64 y z)))
(sqrt.f64 (*.f64 y z))
(*.f64 2 (*.f64 (sqrt.f64 (*.f64 y z)) 1/2))
(sqrt.f64 (*.f64 y z))
(*.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 2) 1/2)
(sqrt.f64 (*.f64 y z))
(*.f64 4 (/.f64 (sqrt.f64 (*.f64 y z)) 4))
(sqrt.f64 (*.f64 y z))
(*.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 4) 1/4)
(sqrt.f64 (*.f64 y z))
(*.f64 1/2 (*.f64 (sqrt.f64 (*.f64 y z)) 2))
(sqrt.f64 (*.f64 y z))
(*.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 1/2) 2)
(sqrt.f64 (*.f64 y z))
(*.f64 1/4 (*.f64 (sqrt.f64 (*.f64 y z)) 4))
(sqrt.f64 (*.f64 y z))
(*.f64 (/.f64 (sqrt.f64 (*.f64 y z)) 4) 4)
(sqrt.f64 (*.f64 y z))
(/.f64 (sqrt.f64 (*.f64 y z)) 1)
(sqrt.f64 (*.f64 y z))
(/.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 2) 2)
(sqrt.f64 (*.f64 y z))
(/.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 4) 4)
(sqrt.f64 (*.f64 y z))
(/.f64 (*.f64 (sqrt.f64 (*.f64 y z)) 8) 8)
(sqrt.f64 (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y z)) 8)) 16)
(sqrt.f64 (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y z)) 8))) 32)
(sqrt.f64 (*.f64 y z))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y z)) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 y z)) 8)))) 64)
(sqrt.f64 (*.f64 y z))

localize6.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
5.1b
(sqrt.f64 (*.f64 z x))
Compiler

Compiled 19 to 8 computations (57.9% saved)

series4.0ms (0%)

Counts
1 → 0
Calls

6 calls:

TimeVariablePointExpression
2.0ms
x
@inf
(sqrt.f64 (*.f64 z x))
0.0ms
z
@-inf
(sqrt.f64 (*.f64 z x))
0.0ms
x
@-inf
(sqrt.f64 (*.f64 z x))
0.0ms
z
@0
(sqrt.f64 (*.f64 z x))
0.0ms
z
@inf
(sqrt.f64 (*.f64 z x))

rewrite102.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
1622×bool.json-1
1622×bool.json-2
1588×rational.json-1
1588×rational.json-2
1140×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
16911
219411
340311
480911
5173911
6371311
7667311
Stop Event
node limit
Counts
1 → 21
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 z x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (*.f64 z x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 1/2) (*.f64 (sqrt.f64 (*.f64 z x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (*.f64 z x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 z x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sqrt.f64 (*.f64 z x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (sqrt.f64 (*.f64 z x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (*.f64 z x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sqrt.f64 (*.f64 z x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 z x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 z x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z x)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sqrt.f64 (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sqrt.f64 (*.f64 z x)) (sqrt.f64 (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (*.f64 z x)) (sqrt.f64 (*.f64 z x)))))))

simplify903.0ms (5.5%)

Algorithm
egg-herbie
Rules
8076×rational.json-simplify-41
2014×rational.json-simplify-35
1790×rational.json-simplify-2
1304×rational.json-simplify-49
924×rational.json-simplify-51
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
046231
189231
2246231
3645231
41044231
52177231
62813231
72864231
82898231
92927231
102953231
112979231
123025231
133051231
143077231
153103231
163129231
173155231
183181231
194142231
204537231
214579231
224611231
234641231
244670231
254699231
264728231
274757231
284786231
294815231
304844231
314873231
324902231
334931231
344960231
354989231
365018231
375047231
385076231
395105231
405105231
Stop Event
node limit
Counts
21 → 22
Calls
Call 1
Inputs
(+.f64 (sqrt.f64 (*.f64 z x)) 0)
(+.f64 0 (sqrt.f64 (*.f64 z x)))
(+.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 1/2) (*.f64 (sqrt.f64 (*.f64 z x)) 1/2))
(-.f64 (sqrt.f64 (*.f64 z x)) 0)
(*.f64 (sqrt.f64 (*.f64 z x)) 1)
(*.f64 1 (sqrt.f64 (*.f64 z x)))
(*.f64 2 (*.f64 (sqrt.f64 (*.f64 z x)) 1/2))
(*.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 2) 1/2)
(*.f64 4 (/.f64 (sqrt.f64 (*.f64 z x)) 4))
(*.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 4) 1/4)
(*.f64 1/2 (*.f64 (sqrt.f64 (*.f64 z x)) 2))
(*.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 1/2) 2)
(*.f64 1/4 (*.f64 (sqrt.f64 (*.f64 z x)) 4))
(*.f64 (/.f64 (sqrt.f64 (*.f64 z x)) 4) 4)
(/.f64 (sqrt.f64 (*.f64 z x)) 1)
(/.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 2) 2)
(/.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 4) 4)
(/.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z x)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z x)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z x)) 8)))) 64)
Outputs
(+.f64 (sqrt.f64 (*.f64 z x)) 0)
(sqrt.f64 (*.f64 z x))
(+.f64 0 (sqrt.f64 (*.f64 z x)))
(sqrt.f64 (*.f64 z x))
(+.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 1/2) (*.f64 (sqrt.f64 (*.f64 z x)) 1/2))
(sqrt.f64 (*.f64 z x))
(-.f64 (sqrt.f64 (*.f64 z x)) 0)
(sqrt.f64 (*.f64 z x))
(*.f64 (sqrt.f64 (*.f64 z x)) 1)
(sqrt.f64 (*.f64 z x))
(*.f64 1 (sqrt.f64 (*.f64 z x)))
(sqrt.f64 (*.f64 z x))
(*.f64 2 (*.f64 (sqrt.f64 (*.f64 z x)) 1/2))
(sqrt.f64 (*.f64 z x))
(*.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 2) 1/2)
(sqrt.f64 (*.f64 z x))
(*.f64 4 (/.f64 (sqrt.f64 (*.f64 z x)) 4))
(sqrt.f64 (*.f64 z x))
(*.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 4) 1/4)
(sqrt.f64 (*.f64 z x))
(*.f64 1/2 (*.f64 (sqrt.f64 (*.f64 z x)) 2))
(sqrt.f64 (*.f64 z x))
(*.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 1/2) 2)
(sqrt.f64 (*.f64 z x))
(*.f64 1/4 (*.f64 (sqrt.f64 (*.f64 z x)) 4))
(sqrt.f64 (*.f64 z x))
(*.f64 (/.f64 (sqrt.f64 (*.f64 z x)) 4) 4)
(sqrt.f64 (*.f64 z x))
(/.f64 (sqrt.f64 (*.f64 z x)) 1)
(sqrt.f64 (*.f64 z x))
(/.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 2) 2)
(sqrt.f64 (*.f64 z x))
(/.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 4) 4)
(sqrt.f64 (*.f64 z x))
(/.f64 (*.f64 (sqrt.f64 (*.f64 z x)) 8) 8)
(sqrt.f64 (*.f64 z x))
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z x)) 8)) 16)
(sqrt.f64 (*.f64 z x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z x)) 8))) 32)
(sqrt.f64 (*.f64 z x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z x)) 8)))) 64)
(sqrt.f64 (*.f64 z x))

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 29 to 9 computations (69% saved)

series5.0ms (0%)

Counts
2 → 32
Calls

18 calls:

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

rewrite108.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
1864×bool.json-1
1864×bool.json-2
1320×rational.json-simplify-35
1160×rational.json-1
1160×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0930
18830
223330
348030
499230
5218630
6452630
7737230
Stop Event
node limit
Counts
2 → 32
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) z)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (*.f64 (+.f64 y x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1/2) (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 (+.f64 y x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sqrt.f64 (*.f64 (+.f64 y x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sqrt.f64 (*.f64 (+.f64 y x) z)) (sqrt.f64 (*.f64 (+.f64 y x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (*.f64 (+.f64 y x) z)) (sqrt.f64 (*.f64 (+.f64 y x) z)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 y x) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 y x) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 y x) (*.f64 z 1/2)) (*.f64 (+.f64 y x) (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 y x) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y x) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y x) (+.f64 z z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y x) (*.f64 z 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (+.f64 y x) z) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (+.f64 y x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (+.f64 y x) z) (*.f64 (+.f64 y x) z))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (+.f64 y x) z) (*.f64 (+.f64 y x) z))))))

simplify351.0ms (2.2%)

Algorithm
egg-herbie
Rules
3636×rational.json-simplify-41
3528×rational.json-simplify-35
1566×rational.json-simplify-2
654×rational.json-simplify-1
472×rational.json-simplify-51
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01181446
12531272
25641272
312631272
423801272
530541272
633891272
736841272
839081272
941111272
1041111272
1143091272
1243411272
1343861272
1446021272
1548221272
1650381272
1752411272
1854381272
Stop Event
node limit
Counts
64 → 74
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 z x))
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (sqrt.f64 (*.f64 z x)))
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (sqrt.f64 (*.f64 z x))))
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (+.f64 (*.f64 1/16 (*.f64 (pow.f64 y 3) (sqrt.f64 (/.f64 z (pow.f64 x 5))))) (sqrt.f64 (*.f64 z x)))))
(sqrt.f64 (*.f64 y z))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (sqrt.f64 (*.f64 y z)))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2)))))
(+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 5))) (pow.f64 x 3))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2))))))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 0)
(+.f64 0 (sqrt.f64 (*.f64 (+.f64 y x) z)))
(+.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1/2) (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1/2))
(-.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 0)
(*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1)
(*.f64 1 (sqrt.f64 (*.f64 (+.f64 y x) z)))
(*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1/2))
(*.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 2) 1/2)
(*.f64 4 (/.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 4))
(*.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 4) 1/4)
(*.f64 1/2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 2))
(*.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1/2) 2)
(*.f64 1/4 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 4))
(*.f64 (/.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 4) 4)
(/.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1)
(/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 2) 2)
(/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 4) 4)
(/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 8)))) 64)
(+.f64 (*.f64 (+.f64 y x) z) 0)
(+.f64 0 (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 (+.f64 y x) (*.f64 z 1/2)) (*.f64 (+.f64 y x) (*.f64 z 1/2)))
(-.f64 (*.f64 (+.f64 y x) z) 0)
(/.f64 (*.f64 (+.f64 y x) z) 1)
(/.f64 (*.f64 (+.f64 y x) (+.f64 z z)) 2)
(/.f64 (*.f64 (+.f64 y x) (*.f64 z 4)) 4)
(/.f64 (*.f64 (*.f64 (+.f64 y x) z) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8)))) 64)
Outputs
(sqrt.f64 (*.f64 z x))
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (sqrt.f64 (*.f64 z x)))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)))
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (sqrt.f64 (*.f64 z x))))
(+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))))
(+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2))) (*.f64 (sqrt.f64 (/.f64 z (pow.f64 x 3))) (*.f64 (pow.f64 y 2) -1/8)))
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3)))))))
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) (*.f64 (pow.f64 y 2) (*.f64 -1/8 (sqrt.f64 (/.f64 z (pow.f64 x 3)))))))
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (+.f64 (*.f64 1/16 (*.f64 (pow.f64 y 3) (sqrt.f64 (/.f64 z (pow.f64 x 5))))) (sqrt.f64 (*.f64 z x)))))
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 1/16 (*.f64 (pow.f64 y 3) (sqrt.f64 (/.f64 z (pow.f64 x 5))))))))
(+.f64 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 x 5))) (*.f64 (pow.f64 y 3) 1/16)) (+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2))) (*.f64 (sqrt.f64 (/.f64 z (pow.f64 x 3))) (*.f64 (pow.f64 y 2) -1/8))))
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (*.f64 1/16 (*.f64 (pow.f64 y 3) (sqrt.f64 (/.f64 z (pow.f64 x 5))))))))
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) (*.f64 (sqrt.f64 (/.f64 z (pow.f64 x 5))) (*.f64 1/16 (pow.f64 y 3)))) (*.f64 (pow.f64 y 2) (*.f64 -1/8 (sqrt.f64 (/.f64 z (pow.f64 x 3)))))))
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 (pow.f64 y 2) (*.f64 -1/8 (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)) (*.f64 (sqrt.f64 (/.f64 z (pow.f64 x 5))) (*.f64 1/16 (pow.f64 y 3))))))
(sqrt.f64 (*.f64 y z))
(sqrt.f64 (*.f64 z y))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (sqrt.f64 (*.f64 y z)))
(+.f64 (sqrt.f64 (*.f64 z y)) (*.f64 (sqrt.f64 (/.f64 z y)) (*.f64 x 1/2)))
(+.f64 (sqrt.f64 (*.f64 z y)) (*.f64 1/2 (*.f64 x (sqrt.f64 (/.f64 z y)))))
(+.f64 (sqrt.f64 (*.f64 z y)) (*.f64 x (*.f64 1/2 (sqrt.f64 (/.f64 z y)))))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2)))))
(+.f64 (sqrt.f64 (*.f64 z y)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2))) (*.f64 (sqrt.f64 (/.f64 z y)) (*.f64 x 1/2))))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2))) (+.f64 (sqrt.f64 (*.f64 z y)) (*.f64 (sqrt.f64 (/.f64 z y)) (*.f64 x 1/2))))
(+.f64 (*.f64 1/2 (*.f64 x (sqrt.f64 (/.f64 z y)))) (+.f64 (sqrt.f64 (*.f64 z y)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2)))))
(+.f64 (+.f64 (sqrt.f64 (*.f64 z y)) (*.f64 (sqrt.f64 (/.f64 z y)) (*.f64 x 1/2))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2))))
(+.f64 (*.f64 x (*.f64 1/2 (sqrt.f64 (/.f64 z y)))) (+.f64 (sqrt.f64 (*.f64 z y)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2)))))
(+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 5))) (pow.f64 x 3))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2))))))
(+.f64 (*.f64 (sqrt.f64 (/.f64 z y)) (*.f64 x 1/2)) (+.f64 (+.f64 (sqrt.f64 (*.f64 z y)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2)))) (*.f64 1/16 (*.f64 (pow.f64 x 3) (sqrt.f64 (/.f64 z (pow.f64 y 5)))))))
(+.f64 (+.f64 (sqrt.f64 (*.f64 z y)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2)))) (+.f64 (*.f64 (pow.f64 x 3) (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 5))) 1/16)) (*.f64 (sqrt.f64 (/.f64 z y)) (*.f64 x 1/2))))
(+.f64 (*.f64 1/2 (*.f64 x (sqrt.f64 (/.f64 z y)))) (+.f64 (sqrt.f64 (*.f64 z y)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2))) (*.f64 (pow.f64 x 3) (*.f64 1/16 (sqrt.f64 (/.f64 z (pow.f64 y 5))))))))
(+.f64 (+.f64 (sqrt.f64 (*.f64 z y)) (*.f64 (sqrt.f64 (/.f64 z y)) (*.f64 x 1/2))) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2))) (*.f64 (pow.f64 x 3) (*.f64 1/16 (sqrt.f64 (/.f64 z (pow.f64 y 5)))))))
(+.f64 (*.f64 x (*.f64 1/2 (sqrt.f64 (/.f64 z y)))) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2))) (+.f64 (sqrt.f64 (*.f64 z y)) (*.f64 (pow.f64 x 3) (*.f64 1/16 (sqrt.f64 (/.f64 z (pow.f64 y 5))))))))
(+.f64 (*.f64 (sqrt.f64 (/.f64 z y)) (*.f64 x 1/2)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2))) (+.f64 (sqrt.f64 (*.f64 z y)) (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 5))) (*.f64 (pow.f64 x 3) 1/16)))))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 0)
(sqrt.f64 (*.f64 z (+.f64 x y)))
(+.f64 0 (sqrt.f64 (*.f64 (+.f64 y x) z)))
(sqrt.f64 (*.f64 z (+.f64 x y)))
(+.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1/2) (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1/2))
(sqrt.f64 (*.f64 z (+.f64 x y)))
(-.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 0)
(sqrt.f64 (*.f64 z (+.f64 x y)))
(*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1)
(sqrt.f64 (*.f64 z (+.f64 x y)))
(*.f64 1 (sqrt.f64 (*.f64 (+.f64 y x) z)))
(sqrt.f64 (*.f64 z (+.f64 x y)))
(*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1/2))
(sqrt.f64 (*.f64 z (+.f64 x y)))
(*.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 2) 1/2)
(sqrt.f64 (*.f64 z (+.f64 x y)))
(*.f64 4 (/.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 4))
(sqrt.f64 (*.f64 z (+.f64 x y)))
(*.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 4) 1/4)
(sqrt.f64 (*.f64 z (+.f64 x y)))
(*.f64 1/2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 2))
(sqrt.f64 (*.f64 z (+.f64 x y)))
(*.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1/2) 2)
(sqrt.f64 (*.f64 z (+.f64 x y)))
(*.f64 1/4 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 4))
(sqrt.f64 (*.f64 z (+.f64 x y)))
(*.f64 (/.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 4) 4)
(sqrt.f64 (*.f64 z (+.f64 x y)))
(/.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 1)
(sqrt.f64 (*.f64 z (+.f64 x y)))
(/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 2) 2)
(sqrt.f64 (*.f64 z (+.f64 x y)))
(/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 4) 4)
(sqrt.f64 (*.f64 z (+.f64 x y)))
(/.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 8) 8)
(sqrt.f64 (*.f64 z (+.f64 x y)))
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 8)) 16)
(sqrt.f64 (*.f64 z (+.f64 x y)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 8))) 32)
(sqrt.f64 (*.f64 z (+.f64 x y)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 8))) (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 (+.f64 y x) z)) 8)))) 64)
(sqrt.f64 (*.f64 z (+.f64 x y)))
(+.f64 (*.f64 (+.f64 y x) z) 0)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 0 (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 (+.f64 y x) (*.f64 z 1/2)) (*.f64 (+.f64 y x) (*.f64 z 1/2)))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(-.f64 (*.f64 (+.f64 y x) z) 0)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(/.f64 (*.f64 (+.f64 y x) z) 1)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(/.f64 (*.f64 (+.f64 y x) (+.f64 z z)) 2)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(/.f64 (*.f64 (+.f64 y x) (*.f64 z 4)) 4)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(/.f64 (*.f64 (*.f64 (+.f64 y x) z) 8) 8)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8)) 16)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8))) 32)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8)))) 64)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))

eval299.0ms (1.8%)

Compiler

Compiled 3728 to 2104 computations (43.6% saved)

prune100.0ms (0.6%)

Pruning

10 alts after pruning (5 fresh and 5 done)

PrunedKeptTotal
New2153218
Fresh022
Picked011
Done044
Total21510225
Error
17.0b
Counts
225 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
43.3b
(*.f64 2 (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x))))
62.2b
(*.f64 2 (+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (sqrt.f64 (*.f64 z x))))
62.2b
(*.f64 2 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x)))) 1/2))))
38.7b
(*.f64 2 (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 z (*.f64 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))) 1/2))))
42.2b
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 z x) (*.f64 z y))))
37.0b
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x)))
42.2b
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y x) z)))
61.7b
(*.f64 2 (sqrt.f64 (*.f64 z x)))
43.1b
(*.f64 2 (sqrt.f64 (*.f64 y z)))
38.5b
(*.f64 2 (sqrt.f64 (*.f64 y x)))
Compiler

Compiled 243 to 171 computations (29.6% saved)

localize99.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 z (*.f64 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))) 1/2))
0.4b
(/.f64 1 (*.f64 y x))
13.5b
(sqrt.f64 (/.f64 1 (*.f64 y x)))
18.0b
(sqrt.f64 (*.f64 y x))
Compiler

Compiled 106 to 49 computations (53.8% saved)

series75.0ms (0.5%)

Counts
3 → 12
Calls

21 calls:

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

rewrite115.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
2072×bool.json-1
2072×bool.json-2
1022×rational.json-simplify-35
924×rational.json-1
924×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01571
115971
244371
3105171
4276171
5697571
Stop Event
node limit
Counts
3 → 41
Calls
Call 1
Inputs
(sqrt.f64 (/.f64 1 (*.f64 y x)))
(/.f64 1 (*.f64 y x))
(*.f64 z (*.f64 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))) 1/2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (/.f64 1 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1/2) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (/.f64 1 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 4)) (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sqrt.f64 (/.f64 1 (*.f64 y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sqrt.f64 (/.f64 1 (*.f64 y x))) (sqrt.f64 (/.f64 1 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (/.f64 1 (*.f64 y x))) (sqrt.f64 (/.f64 1 (*.f64 y x))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1 (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 1 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 1 (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 1 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (/.f64 1 (*.f64 y x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 1/2 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 y) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 1 (*.f64 y x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (/.f64 1 y)) (/.f64 1/2 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 x) (/.f64 1 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 (/.f64 -1 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1 y) (/.f64 -1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1 x) (/.f64 -1 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 -1 y) x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 x) (*.f64 2 (/.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (*.f64 y x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (/.f64 -1 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (/.f64 1 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (/.f64 1 (*.f64 y x)) (/.f64 1 (*.f64 y x)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 z (+.f64 y x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 2))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 2)))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 2)))) (*.f64 2 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 2))))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2))) (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2))) (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2))))))))

simplify172.0ms (1.1%)

Algorithm
egg-herbie
Rules
2248×rational.json-simplify-2
968×rational.json-simplify-41
920×rational.json-simplify-35
866×rational.json-simplify-50
656×rational.json-simplify-51
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0861333
11821333
24571333
313031333
428051333
546521333
653631333
760221333
869711333
979471333
Stop Event
node limit
Counts
53 → 47
Calls
Call 1
Inputs
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(+.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 0)
(+.f64 0 (sqrt.f64 (/.f64 1 (*.f64 y x))))
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1/2) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1/2))
(-.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 0)
(*.f64 1 (sqrt.f64 (/.f64 1 (*.f64 y x))))
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1)
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 2))
(*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1/2))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 2) 1/2)
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1/2) 2)
(/.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1)
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 2) 2)
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 4) 4)
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 4)) 8)
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 4)) (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 4))) 16)
(+.f64 (/.f64 1 (*.f64 y x)) 0)
(+.f64 0 (/.f64 1 (*.f64 y x)))
(-.f64 (/.f64 1 (*.f64 y x)) 0)
(*.f64 1 (/.f64 1 (*.f64 y x)))
(*.f64 (/.f64 1 (*.f64 y x)) 1)
(*.f64 1/2 (*.f64 (/.f64 1 (*.f64 y x)) 2))
(*.f64 2 (/.f64 1/2 (*.f64 y x)))
(*.f64 (/.f64 1 y) (/.f64 1 x))
(*.f64 (*.f64 (/.f64 1 (*.f64 y x)) 2) 1/2)
(*.f64 (*.f64 2 (/.f64 1 y)) (/.f64 1/2 x))
(*.f64 (/.f64 1 x) (/.f64 1 y))
(*.f64 -1 (/.f64 (/.f64 -1 y) x))
(*.f64 (/.f64 -1 y) (/.f64 -1 x))
(*.f64 (/.f64 -1 x) (/.f64 -1 y))
(*.f64 (/.f64 (/.f64 -1 y) x) -1)
(*.f64 (/.f64 1/2 x) (*.f64 2 (/.f64 1 y)))
(*.f64 (/.f64 1/2 (*.f64 y x)) 2)
(neg.f64 (/.f64 (/.f64 -1 y) x))
(+.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2))) 0)
(+.f64 0 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2))))
(-.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2))) 0)
(/.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2))) 1)
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 z (+.f64 y x))) 2)
(/.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 2))) 4)
(/.f64 (*.f64 2 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 2)))) 8)
(/.f64 (+.f64 (*.f64 2 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 2)))) (*.f64 2 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 2))))) 16)
Outputs
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2))
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2))
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2))
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2))
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2))
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2))
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2))
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2))
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2))
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2))
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2))
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2))
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z)))
(+.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 0)
(sqrt.f64 (/.f64 1 (*.f64 y x)))
(+.f64 0 (sqrt.f64 (/.f64 1 (*.f64 y x))))
(sqrt.f64 (/.f64 1 (*.f64 y x)))
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1/2) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1/2))
(sqrt.f64 (/.f64 1 (*.f64 y x)))
(-.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 0)
(sqrt.f64 (/.f64 1 (*.f64 y x)))
(*.f64 1 (sqrt.f64 (/.f64 1 (*.f64 y x))))
(sqrt.f64 (/.f64 1 (*.f64 y x)))
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1)
(sqrt.f64 (/.f64 1 (*.f64 y x)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 2))
(sqrt.f64 (/.f64 1 (*.f64 y x)))
(*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1/2))
(sqrt.f64 (/.f64 1 (*.f64 y x)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 2) 1/2)
(sqrt.f64 (/.f64 1 (*.f64 y x)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1/2) 2)
(sqrt.f64 (/.f64 1 (*.f64 y x)))
(/.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 1)
(sqrt.f64 (/.f64 1 (*.f64 y x)))
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 2) 2)
(sqrt.f64 (/.f64 1 (*.f64 y x)))
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 4) 4)
(sqrt.f64 (/.f64 1 (*.f64 y x)))
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 4)) 8)
(sqrt.f64 (/.f64 1 (*.f64 y x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 4)) (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) 4))) 16)
(sqrt.f64 (/.f64 1 (*.f64 y x)))
(+.f64 (/.f64 1 (*.f64 y x)) 0)
(/.f64 1 (*.f64 y x))
(+.f64 0 (/.f64 1 (*.f64 y x)))
(/.f64 1 (*.f64 y x))
(-.f64 (/.f64 1 (*.f64 y x)) 0)
(/.f64 1 (*.f64 y x))
(*.f64 1 (/.f64 1 (*.f64 y x)))
(/.f64 1 (*.f64 y x))
(*.f64 (/.f64 1 (*.f64 y x)) 1)
(/.f64 1 (*.f64 y x))
(*.f64 1/2 (*.f64 (/.f64 1 (*.f64 y x)) 2))
(/.f64 1 (*.f64 y x))
(*.f64 2 (/.f64 1/2 (*.f64 y x)))
(*.f64 2 (/.f64 (/.f64 1/2 y) x))
(*.f64 (/.f64 1 y) (/.f64 1 x))
(/.f64 1 (*.f64 y x))
(*.f64 (*.f64 (/.f64 1 (*.f64 y x)) 2) 1/2)
(/.f64 1 (*.f64 y x))
(*.f64 (*.f64 2 (/.f64 1 y)) (/.f64 1/2 x))
(*.f64 2 (/.f64 1/2 (*.f64 y x)))
(*.f64 2 (/.f64 (/.f64 1/2 y) x))
(*.f64 (/.f64 1 x) (/.f64 1 y))
(/.f64 1 (*.f64 y x))
(*.f64 -1 (/.f64 (/.f64 -1 y) x))
(/.f64 1 (*.f64 y x))
(*.f64 (/.f64 -1 y) (/.f64 -1 x))
(/.f64 1 (*.f64 y x))
(*.f64 (/.f64 -1 x) (/.f64 -1 y))
(/.f64 1 (*.f64 y x))
(*.f64 (/.f64 (/.f64 -1 y) x) -1)
(/.f64 1 (*.f64 y x))
(*.f64 (/.f64 1/2 x) (*.f64 2 (/.f64 1 y)))
(*.f64 2 (/.f64 1/2 (*.f64 y x)))
(*.f64 2 (/.f64 (/.f64 1/2 y) x))
(*.f64 (/.f64 1/2 (*.f64 y x)) 2)
(*.f64 2 (/.f64 1/2 (*.f64 y x)))
(*.f64 2 (/.f64 (/.f64 1/2 y) x))
(neg.f64 (/.f64 (/.f64 -1 y) x))
(/.f64 1 (*.f64 y x))
(+.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2))) 0)
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2))
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z)))
(+.f64 0 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2))))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2))
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z)))
(-.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2))) 0)
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2))
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z)))
(/.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 1/2))) 1)
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2))
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z)))
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 z (+.f64 y x))) 2)
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2))
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z)))
(/.f64 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 2))) 4)
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2))
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z)))
(/.f64 (*.f64 2 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 2)))) 8)
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2))
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z)))
(/.f64 (+.f64 (*.f64 2 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 2)))) (*.f64 2 (*.f64 z (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) 2))))) 16)
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 (+.f64 y x) z)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (+.f64 y x)) (/.f64 z 2))
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 y x))) (*.f64 1/2 (*.f64 (+.f64 y x) z)))

localize110.0ms (0.7%)

Local error

Found 2 expressions with local error:

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

Compiled 38 to 10 computations (73.7% saved)

series4.0ms (0%)

Counts
2 → 44
Calls

18 calls:

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

rewrite88.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
1458×bool.json-1
1458×bool.json-2
1428×rational.json-1
1428×rational.json-2
1428×rational.json-4
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01042
19830
225730
354330
4112230
5250930
6534330
Stop Event
node limit
Counts
2 → 53
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (*.f64 z x) (*.f64 z y)))
(+.f64 (*.f64 z x) (*.f64 z y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (*.f64 z (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1/2) (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 z (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sqrt.f64 (*.f64 z (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sqrt.f64 (*.f64 z (+.f64 x y))) (sqrt.f64 (*.f64 z (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (*.f64 z (+.f64 x y))) (sqrt.f64 (*.f64 z (+.f64 x y))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (+.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (+.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 z (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 z (/.f64 (+.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 z (*.f64 y 1/2)) (*.f64 z (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 z (*.f64 x 1/2)) (*.f64 z (*.f64 y 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (*.f64 2 (+.f64 x y))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z z) (*.f64 (+.f64 x y) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z z) (/.f64 (+.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z z) (+.f64 (*.f64 y 1/2) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z z) (+.f64 (*.f64 x 1/2) (*.f64 y 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x y) z)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 z (+.f64 x y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (*.f64 (+.f64 x y) 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 x y)) (*.f64 z 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 z (*.f64 2 (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 z (+.f64 y y)) (*.f64 z (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 z (+.f64 x x)) (*.f64 z (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z 1/2) (*.f64 2 (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z 1/2) (+.f64 (+.f64 y y) (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z 1/2) (+.f64 (+.f64 x x) (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (/.f64 (+.f64 x y) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 1/2) (+.f64 z z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 z (*.f64 (+.f64 x y) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) 2) (+.f64 z z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 z (+.f64 x y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (+.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 2 (+.f64 x y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 (+.f64 x y) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 z (+.f64 x y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 z (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y)))))))

simplify297.0ms (1.8%)

Algorithm
egg-herbie
Rules
2268×rational.json-simplify-2
1908×rational.json-simplify-35
1006×rational.json-simplify-1
806×rational.json-simplify-61
746×rational.json-simplify-51
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01631697
13351697
27251697
318921697
436381697
543171697
646921697
750161697
853231697
953691697
1059901697
1171251697
1279771697
Stop Event
node limit
Counts
97 → 90
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 y z))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (sqrt.f64 (*.f64 y z)))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2)))))
(+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 5))) (pow.f64 x 3))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2))))))
(sqrt.f64 (*.f64 z x))
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (sqrt.f64 (*.f64 z x)))
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (sqrt.f64 (*.f64 z x))))
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (+.f64 (*.f64 1/16 (*.f64 (pow.f64 y 3) (sqrt.f64 (/.f64 z (pow.f64 x 5))))) (sqrt.f64 (*.f64 z x)))))
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 0)
(+.f64 0 (sqrt.f64 (*.f64 z (+.f64 x y))))
(+.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1/2) (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1/2))
(-.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 0)
(*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1)
(*.f64 1 (sqrt.f64 (*.f64 z (+.f64 x y))))
(*.f64 2 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1/2))
(*.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 2) 1/2)
(*.f64 4 (/.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 4))
(*.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 4) 1/4)
(*.f64 1/2 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 2))
(*.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1/2) 2)
(*.f64 1/4 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 4))
(*.f64 (/.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 4) 4)
(/.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1)
(/.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 2) 2)
(/.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 4) 4)
(/.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 8))) 32)
(-.f64 (*.f64 z (+.f64 x y)) 0)
(*.f64 z (+.f64 x y))
(*.f64 (*.f64 z (+.f64 x y)) 1)
(*.f64 1 (*.f64 z (+.f64 x y)))
(*.f64 2 (*.f64 z (/.f64 (+.f64 x y) 2)))
(*.f64 2 (+.f64 (*.f64 z (*.f64 y 1/2)) (*.f64 z (*.f64 x 1/2))))
(*.f64 2 (+.f64 (*.f64 z (*.f64 x 1/2)) (*.f64 z (*.f64 y 1/2))))
(*.f64 (*.f64 z (*.f64 2 (+.f64 x y))) 1/2)
(*.f64 (+.f64 z z) (*.f64 (+.f64 x y) 1/2))
(*.f64 (+.f64 z z) (/.f64 (+.f64 x y) 2))
(*.f64 (+.f64 z z) (+.f64 (*.f64 y 1/2) (*.f64 x 1/2)))
(*.f64 (+.f64 z z) (+.f64 (*.f64 x 1/2) (*.f64 y 1/2)))
(*.f64 (+.f64 x y) z)
(*.f64 4 (/.f64 (*.f64 z (+.f64 x y)) 4))
(*.f64 (*.f64 z (*.f64 (+.f64 x y) 4)) 1/4)
(*.f64 (*.f64 2 (+.f64 x y)) (*.f64 z 1/2))
(*.f64 1/2 (*.f64 z (*.f64 2 (+.f64 x y))))
(*.f64 1/2 (+.f64 (*.f64 z (+.f64 y y)) (*.f64 z (+.f64 x x))))
(*.f64 1/2 (+.f64 (*.f64 z (+.f64 x x)) (*.f64 z (+.f64 y y))))
(*.f64 (*.f64 z 1/2) (*.f64 2 (+.f64 x y)))
(*.f64 (*.f64 z 1/2) (+.f64 (+.f64 y y) (+.f64 x x)))
(*.f64 (*.f64 z 1/2) (+.f64 (+.f64 x x) (+.f64 y y)))
(*.f64 (*.f64 z (/.f64 (+.f64 x y) 2)) 2)
(*.f64 (*.f64 (+.f64 x y) 1/2) (+.f64 z z))
(*.f64 1/4 (*.f64 z (*.f64 (+.f64 x y) 4)))
(*.f64 (/.f64 (+.f64 x y) 2) (+.f64 z z))
(*.f64 (/.f64 (*.f64 z (+.f64 x y)) 4) 4)
(/.f64 (*.f64 z (+.f64 x y)) 1)
(/.f64 (*.f64 z (*.f64 2 (+.f64 x y))) 2)
(/.f64 (*.f64 z (*.f64 (+.f64 x y) 4)) 4)
(/.f64 (*.f64 (*.f64 z (+.f64 x y)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8))) 32)
Outputs
(sqrt.f64 (*.f64 y z))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (sqrt.f64 (*.f64 y z)))
(+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2)))))
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (*.f64 (pow.f64 x 2) -1/8)) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x))))
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (*.f64 (pow.f64 x 2) (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) -1/8))))
(+.f64 (+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x))) (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (*.f64 -1/8 (pow.f64 x 2))))
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2)))))
(+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 5))) (pow.f64 x 3))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2))))))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (+.f64 (+.f64 (sqrt.f64 (*.f64 y z)) (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (*.f64 (pow.f64 x 2) -1/8))) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 5))) (pow.f64 x 3)))))
(+.f64 (+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (*.f64 (pow.f64 x 2) (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) -1/8)))) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 5))) (pow.f64 x 3))))
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 5))) (pow.f64 x 3))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (*.f64 -1/8 (pow.f64 x 2))))))
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (*.f64 -1/8 (pow.f64 x 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 5))) (pow.f64 x 3))))))
(+.f64 (sqrt.f64 (*.f64 y z)) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 3))) (pow.f64 x 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z y)) x)) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 y 5))) (pow.f64 x 3))))))
(sqrt.f64 (*.f64 z x))
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (sqrt.f64 (*.f64 z x)))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 (sqrt.f64 (/.f64 z x)) 1/2)))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x)))))
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (sqrt.f64 (*.f64 z x))))
(+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 (sqrt.f64 (/.f64 z x)) 1/2))))
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x))))))
(+.f64 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x))))) (*.f64 (pow.f64 y 2) (*.f64 -1/8 (sqrt.f64 (/.f64 z (pow.f64 x 3))))))
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x)))) (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3)))))))
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (+.f64 (*.f64 1/16 (*.f64 (pow.f64 y 3) (sqrt.f64 (/.f64 z (pow.f64 x 5))))) (sqrt.f64 (*.f64 z x)))))
(+.f64 (*.f64 y (*.f64 (sqrt.f64 (/.f64 z x)) 1/2)) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (pow.f64 y 3) (*.f64 (sqrt.f64 (/.f64 z (pow.f64 x 5))) 1/16)))))
(+.f64 (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x)))) (+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (*.f64 1/16 (*.f64 (pow.f64 y 3) (sqrt.f64 (/.f64 z (pow.f64 x 5))))))))
(+.f64 (*.f64 (pow.f64 y 2) (*.f64 -1/8 (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 (sqrt.f64 (/.f64 z (pow.f64 x 5))) (*.f64 (pow.f64 y 3) 1/16)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x)))))))
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (+.f64 (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x)))) (*.f64 (sqrt.f64 (/.f64 z (pow.f64 x 5))) (*.f64 (pow.f64 y 3) 1/16))) (*.f64 (pow.f64 y 2) (*.f64 -1/8 (sqrt.f64 (/.f64 z (pow.f64 x 3)))))))
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 (pow.f64 y 2) (*.f64 -1/8 (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (+.f64 (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x)))) (*.f64 (sqrt.f64 (/.f64 z (pow.f64 x 5))) (*.f64 (pow.f64 y 3) 1/16)))))
(+.f64 (sqrt.f64 (*.f64 z x)) (+.f64 (*.f64 -1/8 (*.f64 (pow.f64 y 2) (sqrt.f64 (/.f64 z (pow.f64 x 3))))) (+.f64 (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x)))) (*.f64 1/16 (*.f64 (pow.f64 y 3) (sqrt.f64 (/.f64 z (pow.f64 x 5))))))))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))
(*.f64 z (+.f64 y x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))
(*.f64 z (+.f64 y x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))
(*.f64 z (+.f64 y x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))
(*.f64 z (+.f64 y x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 0)
(sqrt.f64 (*.f64 z (+.f64 y x)))
(+.f64 0 (sqrt.f64 (*.f64 z (+.f64 x y))))
(sqrt.f64 (*.f64 z (+.f64 y x)))
(+.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1/2) (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1/2))
(sqrt.f64 (*.f64 z (+.f64 y x)))
(-.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 0)
(sqrt.f64 (*.f64 z (+.f64 y x)))
(*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1)
(sqrt.f64 (*.f64 z (+.f64 y x)))
(*.f64 1 (sqrt.f64 (*.f64 z (+.f64 x y))))
(sqrt.f64 (*.f64 z (+.f64 y x)))
(*.f64 2 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1/2))
(sqrt.f64 (*.f64 z (+.f64 y x)))
(*.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 2) 1/2)
(sqrt.f64 (*.f64 z (+.f64 y x)))
(*.f64 4 (/.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 4))
(sqrt.f64 (*.f64 z (+.f64 y x)))
(*.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 4) 1/4)
(sqrt.f64 (*.f64 z (+.f64 y x)))
(*.f64 1/2 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 2))
(sqrt.f64 (*.f64 z (+.f64 y x)))
(*.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1/2) 2)
(sqrt.f64 (*.f64 z (+.f64 y x)))
(*.f64 1/4 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 4))
(sqrt.f64 (*.f64 z (+.f64 y x)))
(*.f64 (/.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 4) 4)
(sqrt.f64 (*.f64 z (+.f64 y x)))
(/.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 1)
(sqrt.f64 (*.f64 z (+.f64 y x)))
(/.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 2) 2)
(sqrt.f64 (*.f64 z (+.f64 y x)))
(/.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 4) 4)
(sqrt.f64 (*.f64 z (+.f64 y x)))
(/.f64 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 8) 8)
(sqrt.f64 (*.f64 z (+.f64 y x)))
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 8)) 16)
(sqrt.f64 (*.f64 z (+.f64 y x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (*.f64 z (+.f64 x y))) 8))) 32)
(sqrt.f64 (*.f64 z (+.f64 y x)))
(-.f64 (*.f64 z (+.f64 x y)) 0)
(*.f64 z (+.f64 y x))
(*.f64 z (+.f64 x y))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 z (+.f64 x y)) 1)
(*.f64 z (+.f64 y x))
(*.f64 1 (*.f64 z (+.f64 x y)))
(*.f64 z (+.f64 y x))
(*.f64 2 (*.f64 z (/.f64 (+.f64 x y) 2)))
(*.f64 z (+.f64 y x))
(*.f64 2 (+.f64 (*.f64 z (*.f64 y 1/2)) (*.f64 z (*.f64 x 1/2))))
(*.f64 z (+.f64 y x))
(*.f64 2 (+.f64 (*.f64 z (*.f64 x 1/2)) (*.f64 z (*.f64 y 1/2))))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 z (*.f64 2 (+.f64 x y))) 1/2)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 z z) (*.f64 (+.f64 x y) 1/2))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 z z) (/.f64 (+.f64 x y) 2))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 z z) (+.f64 (*.f64 y 1/2) (*.f64 x 1/2)))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 z z) (+.f64 (*.f64 x 1/2) (*.f64 y 1/2)))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 x y) z)
(*.f64 z (+.f64 y x))
(*.f64 4 (/.f64 (*.f64 z (+.f64 x y)) 4))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 z (*.f64 (+.f64 x y) 4)) 1/4)
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 2 (+.f64 x y)) (*.f64 z 1/2))
(*.f64 z (+.f64 y x))
(*.f64 1/2 (*.f64 z (*.f64 2 (+.f64 x y))))
(*.f64 z (+.f64 y x))
(*.f64 1/2 (+.f64 (*.f64 z (+.f64 y y)) (*.f64 z (+.f64 x x))))
(*.f64 z (+.f64 y x))
(*.f64 1/2 (+.f64 (*.f64 z (+.f64 x x)) (*.f64 z (+.f64 y y))))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 z 1/2) (*.f64 2 (+.f64 x y)))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 z 1/2) (+.f64 (+.f64 y y) (+.f64 x x)))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 z 1/2) (+.f64 (+.f64 x x) (+.f64 y y)))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 z (/.f64 (+.f64 x y) 2)) 2)
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 (+.f64 x y) 1/2) (+.f64 z z))
(*.f64 z (+.f64 y x))
(*.f64 1/4 (*.f64 z (*.f64 (+.f64 x y) 4)))
(*.f64 z (+.f64 y x))
(*.f64 (/.f64 (+.f64 x y) 2) (+.f64 z z))
(*.f64 z (+.f64 y x))
(*.f64 (/.f64 (*.f64 z (+.f64 x y)) 4) 4)
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 z (+.f64 x y)) 1)
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 z (*.f64 2 (+.f64 x y))) 2)
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 z (*.f64 (+.f64 x y) 4)) 4)
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 (*.f64 z (+.f64 x y)) 8) 8)
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8)) 16)
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8))) 32)
(*.f64 z (+.f64 y x))

localize16.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (sqrt.f64 (*.f64 z x)))
0.1b
(*.f64 y (sqrt.f64 (/.f64 z x)))
5.1b
(sqrt.f64 (*.f64 z x))
22.2b
(sqrt.f64 (/.f64 z x))
Compiler

Compiled 64 to 20 computations (68.8% saved)

series74.0ms (0.5%)

Counts
3 → 3
Calls

24 calls:

TimeVariablePointExpression
61.0ms
z
@0
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (sqrt.f64 (*.f64 z x)))
4.0ms
x
@inf
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (sqrt.f64 (*.f64 z x)))
1.0ms
z
@-inf
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (sqrt.f64 (*.f64 z x)))
1.0ms
y
@0
(*.f64 y (sqrt.f64 (/.f64 z x)))
1.0ms
z
@inf
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (sqrt.f64 (*.f64 z x)))

rewrite120.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
1014×rational.json-simplify-50
974×rational.json-simplify-53
772×rational.json-simplify-1
736×rational.json-simplify-35
654×bool.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01467
114067
237667
384667
4199867
5588567
Stop Event
node limit
Counts
3 → 38
Calls
Call 1
Inputs
(sqrt.f64 (/.f64 z x))
(*.f64 y (sqrt.f64 (/.f64 z x)))
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (sqrt.f64 (*.f64 z x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (/.f64 z x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (/.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (/.f64 z x)) 1/2) (*.f64 (sqrt.f64 (/.f64 z x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (/.f64 z x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 z x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (/.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (/.f64 z x)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (/.f64 z x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 z x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 z x)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 z x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sqrt.f64 (/.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sqrt.f64 (/.f64 z x)) (sqrt.f64 (/.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (/.f64 z x)) (sqrt.f64 (/.f64 z x)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (/.f64 z x)) y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 (/.f64 z x)) y))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sqrt.f64 (/.f64 z x)) y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 z x)) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (+.f64 y y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 4)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (sqrt.f64 (/.f64 z x)) y)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (sqrt.f64 (/.f64 z x)) y) (*.f64 (sqrt.f64 (/.f64 z x)) y))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sqrt.f64 (/.f64 z x)) y) (*.f64 (sqrt.f64 (/.f64 z x)) y))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) y) (*.f64 (sqrt.f64 (*.f64 z x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))))))))

simplify524.0ms (3.2%)

Algorithm
egg-herbie
Rules
3294×rational.json-simplify-41
2460×rational.json-simplify-2
2044×rational.json-simplify-53
1876×rational.json-simplify-35
668×rational.json-simplify-51
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
080921
1175921
2435921
31184921
42365921
53025921
63132921
73220921
83303921
93385921
104006921
114608921
124690921
134772921
144854921
154936921
165018921
175018921
187526921
Stop Event
node limit
Counts
41 → 46
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 z x))
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(+.f64 (sqrt.f64 (/.f64 z x)) 0)
(+.f64 0 (sqrt.f64 (/.f64 z x)))
(+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) 1/2) (*.f64 (sqrt.f64 (/.f64 z x)) 1/2))
(-.f64 (sqrt.f64 (/.f64 z x)) 0)
(*.f64 (sqrt.f64 (/.f64 z x)) 1)
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z x)) 2))
(*.f64 1 (sqrt.f64 (/.f64 z x)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 z x)) 1/2) 2)
(*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) 1/2))
(*.f64 (*.f64 (sqrt.f64 (/.f64 z x)) 2) 1/2)
(/.f64 (sqrt.f64 (/.f64 z x)) 1)
(/.f64 (*.f64 (sqrt.f64 (/.f64 z x)) 2) 2)
(/.f64 (*.f64 (sqrt.f64 (/.f64 z x)) 4) 4)
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) 4)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) 4))) 16)
(+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) y) 0)
(+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)))
(+.f64 0 (*.f64 (sqrt.f64 (/.f64 z x)) y))
(-.f64 (*.f64 (sqrt.f64 (/.f64 z x)) y) 0)
(/.f64 (*.f64 (sqrt.f64 (/.f64 z x)) y) 1)
(/.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (+.f64 y y)) 2)
(/.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 4)) 4)
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 4))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 4)))) 16)
(-.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 0)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2))
(*.f64 1/2 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) y) (*.f64 (sqrt.f64 (*.f64 z x)) 2)))
(*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 1)
(*.f64 1 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))))
(*.f64 2 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2))
(*.f64 2 (*.f64 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2) 1))
(*.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2) 1/2)
(*.f64 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2) 2)
(/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 1)
(/.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 4) 4)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 4)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 4))) 16)
Outputs
(sqrt.f64 (*.f64 z x))
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))
(*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x))))
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))
(*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x))))
(+.f64 (sqrt.f64 (/.f64 z x)) 0)
(sqrt.f64 (/.f64 z x))
(+.f64 0 (sqrt.f64 (/.f64 z x)))
(sqrt.f64 (/.f64 z x))
(+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) 1/2) (*.f64 (sqrt.f64 (/.f64 z x)) 1/2))
(sqrt.f64 (/.f64 z x))
(-.f64 (sqrt.f64 (/.f64 z x)) 0)
(sqrt.f64 (/.f64 z x))
(*.f64 (sqrt.f64 (/.f64 z x)) 1)
(sqrt.f64 (/.f64 z x))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 z x)) 2))
(sqrt.f64 (/.f64 z x))
(*.f64 1 (sqrt.f64 (/.f64 z x)))
(sqrt.f64 (/.f64 z x))
(*.f64 (*.f64 (sqrt.f64 (/.f64 z x)) 1/2) 2)
(sqrt.f64 (/.f64 z x))
(*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) 1/2))
(sqrt.f64 (/.f64 z x))
(*.f64 (*.f64 (sqrt.f64 (/.f64 z x)) 2) 1/2)
(sqrt.f64 (/.f64 z x))
(/.f64 (sqrt.f64 (/.f64 z x)) 1)
(sqrt.f64 (/.f64 z x))
(/.f64 (*.f64 (sqrt.f64 (/.f64 z x)) 2) 2)
(sqrt.f64 (/.f64 z x))
(/.f64 (*.f64 (sqrt.f64 (/.f64 z x)) 4) 4)
(sqrt.f64 (/.f64 z x))
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) 4)) 8)
(sqrt.f64 (/.f64 z x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) 4))) 16)
(sqrt.f64 (/.f64 z x))
(+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) y) 0)
(*.f64 y (sqrt.f64 (/.f64 z x)))
(+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)))
(*.f64 y (sqrt.f64 (/.f64 z x)))
(+.f64 0 (*.f64 (sqrt.f64 (/.f64 z x)) y))
(*.f64 y (sqrt.f64 (/.f64 z x)))
(-.f64 (*.f64 (sqrt.f64 (/.f64 z x)) y) 0)
(*.f64 y (sqrt.f64 (/.f64 z x)))
(/.f64 (*.f64 (sqrt.f64 (/.f64 z x)) y) 1)
(*.f64 y (sqrt.f64 (/.f64 z x)))
(/.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (+.f64 y y)) 2)
(*.f64 y (sqrt.f64 (/.f64 z x)))
(/.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 4)) 4)
(*.f64 y (sqrt.f64 (/.f64 z x)))
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 4))) 8)
(*.f64 y (sqrt.f64 (/.f64 z x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 4)))) 16)
(*.f64 y (sqrt.f64 (/.f64 z x)))
(-.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 0)
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x)))))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x)))))
(*.f64 1/2 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) y) (*.f64 (sqrt.f64 (*.f64 z x)) 2)))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x)))))
(*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 1)
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x)))))
(*.f64 1 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x)))))
(*.f64 2 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x)))))
(*.f64 2 (*.f64 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2) 1))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x)))))
(*.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2) 1/2)
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x)))))
(*.f64 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2) 2)
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x)))))
(/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 1)
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x)))))
(/.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 2) 2)
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x)))))
(/.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 4) 4)
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x)))))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 4)) 8)
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x)))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 y 1/2)) (sqrt.f64 (*.f64 z x))) 4))) 16)
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)))
(+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (sqrt.f64 (/.f64 z x)))))

localize19.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x)))
0.2b
(*.f64 (sqrt.f64 (/.f64 x y)) z)
8.1b
(sqrt.f64 (/.f64 x y))
18.0b
(sqrt.f64 (*.f64 y x))
Compiler

Compiled 64 to 20 computations (68.8% saved)

series10.0ms (0.1%)

Counts
3 → 3
Calls

24 calls:

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

rewrite1.2s (7.6%)

Algorithm
batch-egg-rewrite
Rules
1014×rational.json-simplify-50
974×rational.json-simplify-53
772×rational.json-simplify-1
736×rational.json-simplify-35
654×bool.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01467
114067
237667
384667
4199867
5588567
Stop Event
node limit
Counts
3 → 38
Calls
Call 1
Inputs
(sqrt.f64 (/.f64 x y))
(*.f64 (sqrt.f64 (/.f64 x y)) z)
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (/.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (/.f64 x y)) 1/2) (*.f64 (sqrt.f64 (/.f64 x y)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (/.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (/.f64 x y)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (/.f64 x y)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 x y)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 x y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sqrt.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sqrt.f64 (/.f64 x y)) (sqrt.f64 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (/.f64 x y)) (sqrt.f64 (/.f64 x y)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (/.f64 x y)) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 (/.f64 x y)) z))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sqrt.f64 (/.f64 x y)) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 x y)) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (+.f64 z z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 4)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (sqrt.f64 (/.f64 x y)) z)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (sqrt.f64 (/.f64 x y)) z) (*.f64 (sqrt.f64 (/.f64 x y)) z))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sqrt.f64 (/.f64 x y)) z) (*.f64 (sqrt.f64 (/.f64 x y)) z))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) z) (*.f64 (sqrt.f64 (*.f64 x y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))))))))

simplify485.0ms (3%)

Algorithm
egg-herbie
Rules
3306×rational.json-simplify-41
2452×rational.json-simplify-2
2050×rational.json-simplify-53
1876×rational.json-simplify-35
672×rational.json-simplify-51
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
081921
1175921
2434921
31202921
42392921
53048921
63155921
73243921
83326921
93408921
104030921
114630921
124712921
134794921
144876921
154958921
165040921
175040921
187583921
Stop Event
node limit
Counts
41 → 45
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 y x))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(+.f64 (sqrt.f64 (/.f64 x y)) 0)
(+.f64 0 (sqrt.f64 (/.f64 x y)))
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) 1/2) (*.f64 (sqrt.f64 (/.f64 x y)) 1/2))
(-.f64 (sqrt.f64 (/.f64 x y)) 0)
(*.f64 (sqrt.f64 (/.f64 x y)) 1)
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) 2))
(*.f64 1 (sqrt.f64 (/.f64 x y)))
(*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) 1/2))
(*.f64 (*.f64 (sqrt.f64 (/.f64 x y)) 2) 1/2)
(*.f64 (*.f64 (sqrt.f64 (/.f64 x y)) 1/2) 2)
(/.f64 (sqrt.f64 (/.f64 x y)) 1)
(/.f64 (*.f64 (sqrt.f64 (/.f64 x y)) 2) 2)
(/.f64 (*.f64 (sqrt.f64 (/.f64 x y)) 4) 4)
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) 4)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) 4))) 16)
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) z) 0)
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)))
(+.f64 0 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(-.f64 (*.f64 (sqrt.f64 (/.f64 x y)) z) 0)
(/.f64 (*.f64 (sqrt.f64 (/.f64 x y)) z) 1)
(/.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (+.f64 z z)) 2)
(/.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 4)) 4)
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 4))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 4)))) 16)
(-.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 0)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2))
(*.f64 1/2 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) z) (*.f64 (sqrt.f64 (*.f64 x y)) 2)))
(*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 1)
(*.f64 1 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))))
(*.f64 2 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2))
(*.f64 2 (*.f64 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2) 1))
(*.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2) 1/2)
(*.f64 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2) 2)
(/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 1)
(/.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 4) 4)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 4)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 4))) 16)
Outputs
(sqrt.f64 (*.f64 y x))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))
(+.f64 (sqrt.f64 (/.f64 x y)) 0)
(sqrt.f64 (/.f64 x y))
(+.f64 0 (sqrt.f64 (/.f64 x y)))
(sqrt.f64 (/.f64 x y))
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) 1/2) (*.f64 (sqrt.f64 (/.f64 x y)) 1/2))
(sqrt.f64 (/.f64 x y))
(-.f64 (sqrt.f64 (/.f64 x y)) 0)
(sqrt.f64 (/.f64 x y))
(*.f64 (sqrt.f64 (/.f64 x y)) 1)
(sqrt.f64 (/.f64 x y))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) 2))
(sqrt.f64 (/.f64 x y))
(*.f64 1 (sqrt.f64 (/.f64 x y)))
(sqrt.f64 (/.f64 x y))
(*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) 1/2))
(sqrt.f64 (/.f64 x y))
(*.f64 (*.f64 (sqrt.f64 (/.f64 x y)) 2) 1/2)
(sqrt.f64 (/.f64 x y))
(*.f64 (*.f64 (sqrt.f64 (/.f64 x y)) 1/2) 2)
(sqrt.f64 (/.f64 x y))
(/.f64 (sqrt.f64 (/.f64 x y)) 1)
(sqrt.f64 (/.f64 x y))
(/.f64 (*.f64 (sqrt.f64 (/.f64 x y)) 2) 2)
(sqrt.f64 (/.f64 x y))
(/.f64 (*.f64 (sqrt.f64 (/.f64 x y)) 4) 4)
(sqrt.f64 (/.f64 x y))
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) 4)) 8)
(sqrt.f64 (/.f64 x y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) 4))) 16)
(sqrt.f64 (/.f64 x y))
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) z) 0)
(*.f64 (sqrt.f64 (/.f64 x y)) z)
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)))
(*.f64 (sqrt.f64 (/.f64 x y)) z)
(+.f64 0 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 (sqrt.f64 (/.f64 x y)) z)
(-.f64 (*.f64 (sqrt.f64 (/.f64 x y)) z) 0)
(*.f64 (sqrt.f64 (/.f64 x y)) z)
(/.f64 (*.f64 (sqrt.f64 (/.f64 x y)) z) 1)
(*.f64 (sqrt.f64 (/.f64 x y)) z)
(/.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (+.f64 z z)) 2)
(*.f64 (sqrt.f64 (/.f64 x y)) z)
(/.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 4)) 4)
(*.f64 (sqrt.f64 (/.f64 x y)) z)
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 4))) 8)
(*.f64 (sqrt.f64 (/.f64 x y)) z)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 4)))) 16)
(*.f64 (sqrt.f64 (/.f64 x y)) z)
(-.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 0)
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) (sqrt.f64 (*.f64 y x)))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x)))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2))
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) (sqrt.f64 (*.f64 y x)))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x)))
(*.f64 1/2 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) z) (*.f64 (sqrt.f64 (*.f64 x y)) 2)))
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) (sqrt.f64 (*.f64 y x)))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x)))
(*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 1)
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) (sqrt.f64 (*.f64 y x)))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x)))
(*.f64 1 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))))
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) (sqrt.f64 (*.f64 y x)))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x)))
(*.f64 2 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2))
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) (sqrt.f64 (*.f64 y x)))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x)))
(*.f64 2 (*.f64 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2) 1))
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) (sqrt.f64 (*.f64 y x)))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x)))
(*.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2) 1/2)
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) (sqrt.f64 (*.f64 y x)))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x)))
(*.f64 (/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2) 2)
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) (sqrt.f64 (*.f64 y x)))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x)))
(/.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 1)
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) (sqrt.f64 (*.f64 y x)))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x)))
(/.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 2) 2)
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) (sqrt.f64 (*.f64 y x)))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x)))
(/.f64 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 4) 4)
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) (sqrt.f64 (*.f64 y x)))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 4)) 8)
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) (sqrt.f64 (*.f64 y x)))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 z 1/2)) (sqrt.f64 (*.f64 x y))) 4))) 16)
(+.f64 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)) (sqrt.f64 (*.f64 y x)))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z)) (sqrt.f64 (*.f64 y x)))

localize32.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x))))
0.4b
(/.f64 1 (*.f64 z x))
5.1b
(sqrt.f64 (*.f64 z x))
5.3b
(sqrt.f64 (/.f64 1 (*.f64 z x)))
Compiler

Compiled 106 to 49 computations (53.8% saved)

series8.0ms (0%)

Counts
3 → 0
Calls

18 calls:

TimeVariablePointExpression
1.0ms
z
@-inf
(sqrt.f64 (/.f64 1 (*.f64 z x)))
1.0ms
z
@-inf
(*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x))))
1.0ms
x
@-inf
(*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x))))
1.0ms
z
@inf
(*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x))))
0.0ms
x
@inf
(*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x))))

rewrite86.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
2050×bool.json-1
2050×bool.json-2
1604×bool.json-3
910×rational.json-simplify-35
758×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01159
111959
234659
381859
4224859
5621659
Stop Event
node limit
Counts
3 → 45
Calls
Call 1
Inputs
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(/.f64 1 (*.f64 z x))
(*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (/.f64 1 (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (/.f64 1 (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (/.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 4)) (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sqrt.f64 (/.f64 1 (*.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sqrt.f64 (/.f64 1 (*.f64 z x))) (sqrt.f64 (/.f64 1 (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (/.f64 1 (*.f64 z x))) (sqrt.f64 (/.f64 1 (*.f64 z x))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1 (*.f64 z x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 1 (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 1 (*.f64 z x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 1 (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 z x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 1/2 (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (/.f64 1/2 (*.f64 z x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 z) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 1 (*.f64 z x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (/.f64 1 z)) (/.f64 1/2 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (/.f64 1 z)) (*.f64 (/.f64 1/2 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (/.f64 1 z)) (*.f64 1/2 (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 x) (/.f64 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 (/.f64 -1 z) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 (/.f64 (/.f64 -1 z) x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1 z) (/.f64 -1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1 x) (/.f64 -1 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (/.f64 1 (*.f64 z x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 -1 z) x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 x) (*.f64 2 (/.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (*.f64 z x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (/.f64 -1 z) x))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (/.f64 1 (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (/.f64 1 (*.f64 z x)) (/.f64 1 (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (/.f64 1 (*.f64 z x)) (/.f64 1 (*.f64 z x)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 (+.f64 z x) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 (+.f64 z x) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 (+.f64 z x) 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 (+.f64 z x) 4))) (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 (+.f64 z x) 4)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)))))))

simplify146.0ms (0.9%)

Algorithm
egg-herbie
Rules
1484×rational.json-simplify-53
1386×rational.json-simplify-35
1102×rational.json-simplify-2
932×rational.json-simplify-41
736×rational.json-simplify-50
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
088773
1179773
2403773
31061773
42267773
53735773
64541773
75144773
85996773
96864773
Stop Event
node limit
Counts
45 → 48
Calls
Call 1
Inputs
(+.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 0)
(+.f64 0 (sqrt.f64 (/.f64 1 (*.f64 z x))))
(-.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 0)
(*.f64 1 (sqrt.f64 (/.f64 1 (*.f64 z x))))
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 1)
(*.f64 2 (/.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2))
(*.f64 2 (*.f64 (/.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2) 1))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2) 1/2)
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2))
(*.f64 (/.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2) 2)
(/.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 1)
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2) 2)
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 4) 4)
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 4)) 8)
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 4)) (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 4))) 16)
(+.f64 (/.f64 1 (*.f64 z x)) 0)
(+.f64 0 (/.f64 1 (*.f64 z x)))
(-.f64 (/.f64 1 (*.f64 z x)) 0)
(*.f64 1 (/.f64 1 (*.f64 z x)))
(*.f64 (/.f64 1 (*.f64 z x)) 1)
(*.f64 2 (/.f64 1/2 (*.f64 z x)))
(*.f64 2 (*.f64 (/.f64 1/2 (*.f64 z x)) 1))
(*.f64 (/.f64 1 z) (/.f64 1 x))
(*.f64 (*.f64 (/.f64 1 (*.f64 z x)) 2) 1/2)
(*.f64 (*.f64 2 (/.f64 1 z)) (/.f64 1/2 x))
(*.f64 (*.f64 2 (/.f64 1 z)) (*.f64 (/.f64 1/2 x) 1))
(*.f64 (*.f64 2 (/.f64 1 z)) (*.f64 1/2 (/.f64 1 x)))
(*.f64 (/.f64 1 x) (/.f64 1 z))
(*.f64 -1 (/.f64 (/.f64 -1 z) x))
(*.f64 -1 (*.f64 (/.f64 (/.f64 -1 z) x) 1))
(*.f64 (/.f64 -1 z) (/.f64 -1 x))
(*.f64 (/.f64 -1 x) (/.f64 -1 z))
(*.f64 1/2 (*.f64 (/.f64 1 (*.f64 z x)) 2))
(*.f64 (/.f64 (/.f64 -1 z) x) -1)
(*.f64 (/.f64 1/2 x) (*.f64 2 (/.f64 1 z)))
(*.f64 (/.f64 1/2 (*.f64 z x)) 2)
(neg.f64 (/.f64 (/.f64 -1 z) x))
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) 0)
(+.f64 0 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)))
(-.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) 0)
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) 1)
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 (+.f64 z x) 2)) 2)
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 (+.f64 z x) 4)) 4)
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 (+.f64 z x) 4))) 8)
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 (+.f64 z x) 4))) (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 (+.f64 z x) 4)))) 16)
Outputs
(+.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 0)
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(+.f64 0 (sqrt.f64 (/.f64 1 (*.f64 z x))))
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(-.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 0)
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(*.f64 1 (sqrt.f64 (/.f64 1 (*.f64 z x))))
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 1)
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(*.f64 2 (/.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2))
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(*.f64 2 (*.f64 (/.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2) 1))
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2) 1/2)
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2))
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(*.f64 (/.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2) 2)
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(/.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 1)
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 2) 2)
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 4) 4)
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 4)) 8)
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 4)) (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) 4))) 16)
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(+.f64 (/.f64 1 (*.f64 z x)) 0)
(/.f64 1 (*.f64 z x))
(+.f64 0 (/.f64 1 (*.f64 z x)))
(/.f64 1 (*.f64 z x))
(-.f64 (/.f64 1 (*.f64 z x)) 0)
(/.f64 1 (*.f64 z x))
(*.f64 1 (/.f64 1 (*.f64 z x)))
(/.f64 1 (*.f64 z x))
(*.f64 (/.f64 1 (*.f64 z x)) 1)
(/.f64 1 (*.f64 z x))
(*.f64 2 (/.f64 1/2 (*.f64 z x)))
(/.f64 1 (*.f64 z x))
(*.f64 2 (*.f64 (/.f64 1/2 (*.f64 z x)) 1))
(/.f64 1 (*.f64 z x))
(*.f64 (/.f64 1 z) (/.f64 1 x))
(/.f64 1 (*.f64 z x))
(*.f64 (*.f64 (/.f64 1 (*.f64 z x)) 2) 1/2)
(/.f64 1 (*.f64 z x))
(*.f64 (*.f64 2 (/.f64 1 z)) (/.f64 1/2 x))
(/.f64 1 (*.f64 z x))
(*.f64 (*.f64 2 (/.f64 1 z)) (*.f64 (/.f64 1/2 x) 1))
(/.f64 1 (*.f64 z x))
(*.f64 (*.f64 2 (/.f64 1 z)) (*.f64 1/2 (/.f64 1 x)))
(/.f64 1 (*.f64 z x))
(*.f64 (/.f64 1 x) (/.f64 1 z))
(/.f64 1 (*.f64 z x))
(*.f64 -1 (/.f64 (/.f64 -1 z) x))
(/.f64 1 (*.f64 z x))
(*.f64 -1 (*.f64 (/.f64 (/.f64 -1 z) x) 1))
(/.f64 1 (*.f64 z x))
(*.f64 (/.f64 -1 z) (/.f64 -1 x))
(/.f64 1 (*.f64 z x))
(*.f64 (/.f64 -1 x) (/.f64 -1 z))
(/.f64 1 (*.f64 z x))
(*.f64 1/2 (*.f64 (/.f64 1 (*.f64 z x)) 2))
(/.f64 1 (*.f64 z x))
(*.f64 (/.f64 (/.f64 -1 z) x) -1)
(/.f64 1 (*.f64 z x))
(*.f64 (/.f64 1/2 x) (*.f64 2 (/.f64 1 z)))
(/.f64 1 (*.f64 z x))
(*.f64 (/.f64 1/2 (*.f64 z x)) 2)
(/.f64 1 (*.f64 z x))
(neg.f64 (/.f64 (/.f64 -1 z) x))
(/.f64 1 (*.f64 z x))
(+.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) 0)
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x))
(+.f64 0 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)))
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x))
(-.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) 0)
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x))
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x)) 1)
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x))
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 (+.f64 z x) 2)) 2)
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x))
(/.f64 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 (+.f64 z x) 4)) 4)
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x))
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 (+.f64 z x) 4))) 8)
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x))
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 (+.f64 z x) 4))) (*.f64 2 (*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (*.f64 (+.f64 z x) 4)))) 16)
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x))

eval382.0ms (2.3%)

Compiler

Compiled 7536 to 4020 computations (46.7% saved)

prune246.0ms (1.5%)

Pruning

11 alts after pruning (3 fresh and 8 done)

PrunedKeptTotal
New3613364
Fresh000
Picked011
Done279
Total36311374
Error
16.8b
Counts
374 → 11
Alt Table
Click to see full alt table
StatusErrorProgram
62.2b
(*.f64 2 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 1 (*.f64 z x)))) 1/2))))
62.2b
(*.f64 2 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 (*.f64 (+.f64 z x) (sqrt.f64 (*.f64 (/.f64 1 z) (/.f64 1 x)))) 1/2))))
38.7b
(*.f64 2 (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 z (*.f64 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))) 1/2))))
62.8b
(*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)))
62.0b
(*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)))
42.2b
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 z x) (*.f64 z y))))
37.0b
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x)))
42.2b
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y x) z)))
61.7b
(*.f64 2 (sqrt.f64 (*.f64 z x)))
43.1b
(*.f64 2 (sqrt.f64 (*.f64 y z)))
38.5b
(*.f64 2 (sqrt.f64 (*.f64 y x)))
Compiler

Compiled 162 to 117 computations (27.8% saved)

localize12.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))
8.1b
(sqrt.f64 (/.f64 x y))
Compiler

Compiled 36 to 17 computations (52.8% saved)

series3.0ms (0%)

Counts
1 → 12
Calls

9 calls:

TimeVariablePointExpression
0.0ms
y
@-inf
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))
0.0ms
x
@0
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))
0.0ms
x
@-inf
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))
0.0ms
x
@inf
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))
0.0ms
y
@inf
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))

rewrite81.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
1900×bool.json-1
1900×bool.json-2
1588×bool.json-3
646×rational.json-simplify-35
564×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01123
111123
231723
372923
4170323
5552323
Stop Event
node limit
Counts
1 → 8
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (sqrt.f64 (/.f64 x y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 2 (sqrt.f64 (/.f64 x y)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 z (sqrt.f64 (/.f64 x y))) 4) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (*.f64 z (sqrt.f64 (/.f64 x y))) 4) (*.f64 (*.f64 z (sqrt.f64 (/.f64 x y))) 4)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))) (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))) (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))))))))

simplify388.0ms (2.4%)

Algorithm
egg-herbie
Rules
4398×rational.json-simplify-41
2252×rational.json-simplify-2
1764×rational.json-simplify-35
1064×rational.json-simplify-53
644×rational.json-simplify-43
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
031460
164460
2134460
3305460
4714460
52146460
62997460
73260460
83326460
93384460
103440460
113495460
123855460
134296460
144542460
154709460
164765460
174820460
184875460
194930460
204985460
217990460
Stop Event
node limit
Counts
20 → 10
Calls
Call 1
Inputs
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(+.f64 (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))) 0)
(+.f64 0 (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))))
(-.f64 (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))) 0)
(/.f64 (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))) 1)
(/.f64 (*.f64 z (sqrt.f64 (/.f64 x y))) 2)
(/.f64 (*.f64 z (*.f64 2 (sqrt.f64 (/.f64 x y)))) 4)
(/.f64 (*.f64 (*.f64 z (sqrt.f64 (/.f64 x y))) 4) 8)
(/.f64 (+.f64 (*.f64 (*.f64 z (sqrt.f64 (/.f64 x y))) 4) (*.f64 (*.f64 z (sqrt.f64 (/.f64 x y))) 4)) 16)
Outputs
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))
(+.f64 (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))) 0)
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))
(+.f64 0 (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))
(-.f64 (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))) 0)
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))
(/.f64 (*.f64 1/2 (*.f64 z (sqrt.f64 (/.f64 x y)))) 1)
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))
(/.f64 (*.f64 z (sqrt.f64 (/.f64 x y))) 2)
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))
(/.f64 (*.f64 z (*.f64 2 (sqrt.f64 (/.f64 x y)))) 4)
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))
(/.f64 (*.f64 (*.f64 z (sqrt.f64 (/.f64 x y))) 4) 8)
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))
(/.f64 (+.f64 (*.f64 (*.f64 z (sqrt.f64 (/.f64 x y))) 4) (*.f64 (*.f64 z (sqrt.f64 (/.f64 x y))) 4)) 16)
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 x y)) z))
(*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z))

localize12.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))
22.2b
(sqrt.f64 (/.f64 z x))
Compiler

Compiled 36 to 17 computations (52.8% saved)

series37.0ms (0.2%)

Counts
1 → 12
Calls

9 calls:

TimeVariablePointExpression
34.0ms
x
@inf
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))
0.0ms
x
@-inf
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))
0.0ms
z
@-inf
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))
0.0ms
z
@0
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))
0.0ms
z
@inf
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))

rewrite80.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
1900×bool.json-1
1900×bool.json-2
1588×bool.json-3
646×rational.json-simplify-35
564×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01123
111123
231723
372923
4170323
5552323
Stop Event
node limit
Counts
1 → 8
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (sqrt.f64 (/.f64 z x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 2 (sqrt.f64 (/.f64 z x)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y (sqrt.f64 (/.f64 z x))) 4) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (*.f64 y (sqrt.f64 (/.f64 z x))) 4) (*.f64 (*.f64 y (sqrt.f64 (/.f64 z x))) 4)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))))))))

simplify360.0ms (2.2%)

Algorithm
egg-herbie
Rules
4380×rational.json-simplify-41
2196×rational.json-simplify-2
1834×rational.json-simplify-35
970×rational.json-simplify-53
674×rational.json-simplify-43
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
029460
161460
2131460
3298460
4707460
52241460
63087460
73479460
83552460
93617460
103680460
113742460
123804460
134133460
144412460
154621460
164768460
174872460
184951460
195022460
205093460
Stop Event
node limit
Counts
20 → 11
Calls
Call 1
Inputs
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) 0)
(+.f64 0 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))))
(-.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) 0)
(/.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) 1)
(/.f64 (*.f64 y (sqrt.f64 (/.f64 z x))) 2)
(/.f64 (*.f64 y (*.f64 2 (sqrt.f64 (/.f64 z x)))) 4)
(/.f64 (*.f64 (*.f64 y (sqrt.f64 (/.f64 z x))) 4) 8)
(/.f64 (+.f64 (*.f64 (*.f64 y (sqrt.f64 (/.f64 z x))) 4) (*.f64 (*.f64 y (sqrt.f64 (/.f64 z x))) 4)) 16)
Outputs
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2))
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2))
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2))
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2))
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2))
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2))
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2))
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2))
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2))
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2))
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2))
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2))
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))
(+.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) 0)
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2))
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))
(+.f64 0 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))))
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2))
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))
(-.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) 0)
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2))
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))
(/.f64 (*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x)))) 1)
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2))
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))
(/.f64 (*.f64 y (sqrt.f64 (/.f64 z x))) 2)
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2))
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))
(/.f64 (*.f64 y (*.f64 2 (sqrt.f64 (/.f64 z x)))) 4)
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2))
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))
(/.f64 (*.f64 (*.f64 y (sqrt.f64 (/.f64 z x))) 4) 8)
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2))
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))
(/.f64 (+.f64 (*.f64 (*.f64 y (sqrt.f64 (/.f64 z x))) 4) (*.f64 (*.f64 y (sqrt.f64 (/.f64 z x))) 4)) 16)
(*.f64 1/2 (*.f64 y (sqrt.f64 (/.f64 z x))))
(*.f64 (sqrt.f64 (/.f64 z x)) (/.f64 y 2))
(*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y))

localize50.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (+.f64 z x) (sqrt.f64 (*.f64 (/.f64 1 z) (/.f64 1 x))))
0.3b
(*.f64 (/.f64 1 z) (/.f64 1 x))
5.1b
(sqrt.f64 (*.f64 z x))
5.3b
(sqrt.f64 (*.f64 (/.f64 1 z) (/.f64 1 x)))
Compiler

Compiled 126 to 74 computations (41.3% saved)

series3.0ms (0%)

Counts
3 → 24
Calls

18 calls:

TimeVariablePointExpression
0.0ms
x
@-inf
(*.f64 (+.f64 z x) (sqrt.f64 (*.f64 (/.f64 1 z) (/.f64 1 x))))
0.0ms
z
@-inf
(*.f64 (+.f64 z x) (sqrt.f64 (*.f64 (/.f64 1 z) (/.f64 1 x))))
0.0ms
z
@-inf
(sqrt.f64 (*.f64 (/.f64 1 z) (/.f64 1 x)))
0.0ms
x
@-inf
(sqrt.f64 (*.f64 (/.f64 1 z) (/.f64 1 x)))
0.0ms
x
@inf
(*.f64 (+.f64 z x) (sqrt.f64 (*.f64 (/.f64 1 z) (/.f64 1 x))))

rewrite85.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
1960×bool.json-1
1960×bool.json-2
1508×bool.json-3
998×rational.json-simplify-35
780×rational.json-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01277
112859
235959
380059
4220859
5624859
Stop Event
node limit
Counts
3 → 141
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 (/.f64 1 z) (/.f64 1 x)))
(*.f64 (/.f64 1 z) (/.f64 1 x))
(*.f64 (+.f64 z x) (sqrt.f64 (*.f64 (/.f64 1 z) (/.f64 1 x))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (/.f64 (/.f64 1 x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (/.f64 (/.f64 1 x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (/.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 4)) (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sqrt.f64 (/.f64 (/.f64 1 x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sqrt.f64 (/.f64 (/.f64 1 x) z)) (sqrt.f64 (/.f64 (/.f64 1 x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (/.f64 (/.f64 1 x) z)) (sqrt.f64 (/.f64 (/.f64 1 x) z)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (/.f64 1 x) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (/.f64 1 x) z))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (/.f64 1 x) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (*.f64 z x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 z (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (-.f64 0 (*.f64 x (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1 z) x)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1 z) (/.f64 1 (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1 x) z)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1 x) (/.f64 2 (/.f64 2 z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 1 x) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 2 (*.f64 z (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 2 (/.f64 z (/.f64 1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 z z) (*.f64 x (*.f64 z (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x x) (*.f64 z (*.f64 x (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 2 x) (+.f64 z z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 2 x) (/.f64 4 (/.f64 2 z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 4 (*.f64 x (*.f64 z 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 4 (*.f64 2 (/.f64 z (/.f64 1/2 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 4 (/.f64 (*.f64 z 4) (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 4) (+.f64 (*.f64 z (*.f64 x (+.f64 x x))) (*.f64 z (*.f64 x (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 2 z) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 2 z) (/.f64 1 (/.f64 1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z 4) (+.f64 (*.f64 x (*.f64 z (+.f64 z z))) (*.f64 x (*.f64 z (+.f64 z z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (*.f64 x (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (-.f64 0 (/.f64 z (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (-.f64 0 (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 4 x) (*.f64 z 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 8 (*.f64 z (*.f64 x 8)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 8 (+.f64 (/.f64 (*.f64 z 4) (/.f64 1 x)) (/.f64 (*.f64 z 4) (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 8 (+.f64 (*.f64 2 (/.f64 z (/.f64 1/2 x))) (*.f64 2 (/.f64 z (/.f64 1/2 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -2 (*.f64 x (*.f64 z -2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -2 (*.f64 x (neg.f64 (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -2 (*.f64 z (neg.f64 (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -2 (-.f64 0 (/.f64 z (/.f64 1/2 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -2 (-.f64 0 (*.f64 z (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 1 z) (/.f64 4 x)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 4 z) (*.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 2 z) x) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 -1 x) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 -1 z) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (/.f64 4 x)) (*.f64 z 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 16 (+.f64 (*.f64 z (*.f64 x 8)) (*.f64 z (*.f64 x 8))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -4 (+.f64 (*.f64 x (*.f64 z -2)) (*.f64 x (*.f64 z -2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -4 (+.f64 (*.f64 x (neg.f64 (+.f64 z z))) (*.f64 x (neg.f64 (+.f64 z z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -4 (+.f64 (*.f64 z (neg.f64 (+.f64 x x))) (*.f64 z (neg.f64 (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -4 (-.f64 0 (*.f64 x (*.f64 z 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (/.f64 1 z) (/.f64 4 x))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (/.f64 -1 x)) (*.f64 z -2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (/.f64 -1 z)) (*.f64 x -2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (/.f64 4 z)) (*.f64 x 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 8 x) (*.f64 z 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 -2 x) (*.f64 z -2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 -2 x) (neg.f64 (+.f64 z z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 4 x) z) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 8 z) (*.f64 x 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 -2 z) (*.f64 x -2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 -2 z) (neg.f64 (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 x z) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 z x) (*.f64 z z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 -1/2 z) (*.f64 x -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 1/2 z) x) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1/2 z) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1/2 z) (/.f64 x 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 -1/2 x) (*.f64 z -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1/2 x) (*.f64 z 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1/2 x) (/.f64 z 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 2 x)) (neg.f64 (+.f64 z z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 2 z)) (neg.f64 (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 4 x)) (neg.f64 (*.f64 z 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 4 z)) (neg.f64 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 (/.f64 1/2 z) x) (/.f64 (/.f64 1/2 z) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (/.f64 4 x)) (*.f64 2 (/.f64 4 x))) (*.f64 2 (*.f64 z 8)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 (/.f64 4 x) z) (/.f64 (/.f64 4 x) z)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 8 z) (/.f64 8 z)) (*.f64 2 (*.f64 x 8)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 -2 z) (/.f64 -2 z)) (*.f64 2 (*.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 -2 z) (/.f64 -2 z)) (*.f64 2 (neg.f64 (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 8 x) (/.f64 8 x)) (*.f64 2 (*.f64 z 8)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 -2 x) (/.f64 -2 x)) (*.f64 2 (*.f64 z -2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 -2 x) (/.f64 -2 x)) (*.f64 2 (neg.f64 (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (/.f64 2 x)) (neg.f64 (/.f64 2 x))) (*.f64 2 (neg.f64 (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (/.f64 2 z)) (neg.f64 (/.f64 2 z))) (*.f64 2 (neg.f64 (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (/.f64 1 z) (/.f64 4 x))) (*.f64 2 (*.f64 (/.f64 1 z) (/.f64 4 x)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (/.f64 -1 x)) (*.f64 2 (/.f64 -1 x))) (*.f64 2 (*.f64 z -2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (/.f64 -1 z)) (*.f64 2 (/.f64 -1 z))) (*.f64 2 (*.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 x z) (/.f64 x z)) (*.f64 x (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 z x) (/.f64 z x)) (*.f64 z (+.f64 z z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (/.f64 4 x)) (neg.f64 (/.f64 4 x))) (+.f64 (neg.f64 (*.f64 z 4)) (neg.f64 (*.f64 z 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (/.f64 4 z)) (neg.f64 (/.f64 4 z))) (+.f64 (neg.f64 (*.f64 x 4)) (neg.f64 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (/.f64 4 z)) (*.f64 2 (/.f64 4 z))) (*.f64 2 (*.f64 x 8)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 1 z) (*.f64 x 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 1 x) (*.f64 z 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 -1 x) z) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 -1 z) x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 x z) x) x)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 x z) (+.f64 x x)) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 z x) z) z)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 z x) (+.f64 z z)) (*.f64 z 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (neg.f64 (/.f64 2 x))) (+.f64 z z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (neg.f64 (/.f64 2 x))) (-.f64 0 (neg.f64 (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (neg.f64 (/.f64 2 z))) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (neg.f64 (/.f64 2 z))) (-.f64 0 (neg.f64 (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (/.f64 4 x))) (-.f64 0 (*.f64 z 8)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (/.f64 -1 x))) (-.f64 0 (*.f64 z -2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (/.f64 4 z))) (-.f64 0 (*.f64 x 8)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (/.f64 -1 z))) (-.f64 0 (*.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 8 x)) (-.f64 0 (*.f64 z 8)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 -2 x)) (+.f64 z z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 -2 x)) (-.f64 0 (*.f64 z -2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 -2 x)) (-.f64 0 (neg.f64 (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 8 z)) (-.f64 0 (*.f64 x 8)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 -2 z)) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 -2 z)) (-.f64 0 (*.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 -2 z)) (-.f64 0 (neg.f64 (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 x z)) (-.f64 0 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 z x)) (-.f64 0 (*.f64 z z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (neg.f64 (/.f64 4 x))) (*.f64 z 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (neg.f64 (/.f64 4 z))) (*.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (/.f64 (/.f64 1 x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x and (/.f64 (/.f64 1 x) z) (/.f64 (/.f64 1 x) z))))) (#(struct:change #<rule egg-rr> (2) ((x or (/.f64 (/.f64 1 x) z) (/.f64 (/.f64 1 x) z))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (*.f64 (+.f64 z x) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (*.f64 (+.f64 z x) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (*.f64 (+.f64 z x) 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (*.f64 (+.f64 z x) 4))) (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (*.f64 (+.f64 z x) 4)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x)) (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x)) (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x)))))))

simplify569.0ms (3.5%)

Algorithm
egg-herbie
Rules
1144×rational.json-simplify-50
1092×rational.json-simplify-41
1080×rational.json-simplify-35
892×rational.json-simplify-49
770×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03152333
110432333
230562333
363642333
Stop Event
node limit
Counts
165 → 143
Calls
Call 1
Inputs
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(+.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 0)
(+.f64 0 (sqrt.f64 (/.f64 (/.f64 1 x) z)))
(-.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 0)
(*.f64 1 (sqrt.f64 (/.f64 (/.f64 1 x) z)))
(*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 1)
(*.f64 2 (/.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2))
(*.f64 2 (*.f64 (/.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2) 1))
(*.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2) 1/2)
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2))
(*.f64 (/.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2) 2)
(/.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 1)
(/.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2) 2)
(/.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 4) 4)
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 4)) 8)
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 4)) (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 4))) 16)
(+.f64 (/.f64 (/.f64 1 x) z) 0)
(+.f64 0 (/.f64 (/.f64 1 x) z))
(-.f64 (/.f64 (/.f64 1 x) z) 0)
(/.f64 1 (*.f64 z x))
(/.f64 1 (/.f64 z (/.f64 1 x)))
(/.f64 1 (-.f64 0 (*.f64 x (neg.f64 z))))
(/.f64 (/.f64 1 z) x)
(/.f64 (/.f64 1 z) (/.f64 1 (/.f64 1 x)))
(/.f64 (/.f64 1 x) z)
(/.f64 (/.f64 1 x) (/.f64 2 (/.f64 2 z)))
(/.f64 (/.f64 (/.f64 1 x) z) 1)
(/.f64 2 (*.f64 z (+.f64 x x)))
(/.f64 2 (/.f64 z (/.f64 1/2 x)))
(/.f64 (+.f64 z z) (*.f64 x (*.f64 z (+.f64 z z))))
(/.f64 (+.f64 x x) (*.f64 z (*.f64 x (+.f64 x x))))
(/.f64 (/.f64 2 x) (+.f64 z z))
(/.f64 (/.f64 2 x) (/.f64 4 (/.f64 2 z)))
(/.f64 4 (*.f64 x (*.f64 z 4)))
(/.f64 4 (*.f64 2 (/.f64 z (/.f64 1/2 x))))
(/.f64 4 (/.f64 (*.f64 z 4) (/.f64 1 x)))
(/.f64 (*.f64 x 4) (+.f64 (*.f64 z (*.f64 x (+.f64 x x))) (*.f64 z (*.f64 x (+.f64 x x)))))
(/.f64 (/.f64 2 z) (+.f64 x x))
(/.f64 (/.f64 2 z) (/.f64 1 (/.f64 1/2 x)))
(/.f64 (*.f64 z 4) (+.f64 (*.f64 x (*.f64 z (+.f64 z z))) (*.f64 x (*.f64 z (+.f64 z z)))))
(/.f64 -1 (*.f64 x (neg.f64 z)))
(/.f64 -1 (-.f64 0 (/.f64 z (/.f64 1 x))))
(/.f64 -1 (-.f64 0 (*.f64 z x)))
(/.f64 (/.f64 4 x) (*.f64 z 4))
(/.f64 8 (*.f64 z (*.f64 x 8)))
(/.f64 8 (+.f64 (/.f64 (*.f64 z 4) (/.f64 1 x)) (/.f64 (*.f64 z 4) (/.f64 1 x))))
(/.f64 8 (+.f64 (*.f64 2 (/.f64 z (/.f64 1/2 x))) (*.f64 2 (/.f64 z (/.f64 1/2 x)))))
(/.f64 -2 (*.f64 x (*.f64 z -2)))
(/.f64 -2 (*.f64 x (neg.f64 (+.f64 z z))))
(/.f64 -2 (*.f64 z (neg.f64 (+.f64 x x))))
(/.f64 -2 (-.f64 0 (/.f64 z (/.f64 1/2 x))))
(/.f64 -2 (-.f64 0 (*.f64 z (+.f64 x x))))
(/.f64 (*.f64 (/.f64 1 z) (/.f64 4 x)) 4)
(/.f64 (/.f64 4 z) (*.f64 x 4))
(/.f64 (/.f64 (/.f64 2 z) x) 2)
(/.f64 (/.f64 -1 x) (neg.f64 z))
(/.f64 (/.f64 -1 z) (neg.f64 x))
(/.f64 (*.f64 2 (/.f64 4 x)) (*.f64 z 8))
(/.f64 16 (+.f64 (*.f64 z (*.f64 x 8)) (*.f64 z (*.f64 x 8))))
(/.f64 -4 (+.f64 (*.f64 x (*.f64 z -2)) (*.f64 x (*.f64 z -2))))
(/.f64 -4 (+.f64 (*.f64 x (neg.f64 (+.f64 z z))) (*.f64 x (neg.f64 (+.f64 z z)))))
(/.f64 -4 (+.f64 (*.f64 z (neg.f64 (+.f64 x x))) (*.f64 z (neg.f64 (+.f64 x x)))))
(/.f64 -4 (-.f64 0 (*.f64 x (*.f64 z 4))))
(/.f64 (*.f64 2 (*.f64 (/.f64 1 z) (/.f64 4 x))) 8)
(/.f64 (*.f64 2 (/.f64 -1 x)) (*.f64 z -2))
(/.f64 (*.f64 2 (/.f64 -1 z)) (*.f64 x -2))
(/.f64 (*.f64 2 (/.f64 4 z)) (*.f64 x 8))
(/.f64 (/.f64 8 x) (*.f64 z 8))
(/.f64 (/.f64 -2 x) (*.f64 z -2))
(/.f64 (/.f64 -2 x) (neg.f64 (+.f64 z z)))
(/.f64 (/.f64 (/.f64 4 x) z) 4)
(/.f64 (/.f64 8 z) (*.f64 x 8))
(/.f64 (/.f64 -2 z) (*.f64 x -2))
(/.f64 (/.f64 -2 z) (neg.f64 (+.f64 x x)))
(/.f64 (/.f64 x z) (*.f64 x x))
(/.f64 (/.f64 z x) (*.f64 z z))
(/.f64 (/.f64 -1/2 z) (*.f64 x -1/2))
(/.f64 (/.f64 (/.f64 1/2 z) x) 1/2)
(/.f64 (/.f64 1/2 z) (*.f64 x 1/2))
(/.f64 (/.f64 1/2 z) (/.f64 x 2))
(/.f64 (/.f64 -1/2 x) (*.f64 z -1/2))
(/.f64 (/.f64 1/2 x) (*.f64 z 1/2))
(/.f64 (/.f64 1/2 x) (/.f64 z 2))
(/.f64 (neg.f64 (/.f64 2 x)) (neg.f64 (+.f64 z z)))
(/.f64 (neg.f64 (/.f64 2 z)) (neg.f64 (+.f64 x x)))
(/.f64 (neg.f64 (/.f64 4 x)) (neg.f64 (*.f64 z 4)))
(/.f64 (neg.f64 (/.f64 4 z)) (neg.f64 (*.f64 x 4)))
(/.f64 (+.f64 (/.f64 (/.f64 1/2 z) x) (/.f64 (/.f64 1/2 z) x)) 1)
(/.f64 (+.f64 (*.f64 2 (/.f64 4 x)) (*.f64 2 (/.f64 4 x))) (*.f64 2 (*.f64 z 8)))
(/.f64 (+.f64 (/.f64 (/.f64 4 x) z) (/.f64 (/.f64 4 x) z)) 8)
(/.f64 (+.f64 (/.f64 8 z) (/.f64 8 z)) (*.f64 2 (*.f64 x 8)))
(/.f64 (+.f64 (/.f64 -2 z) (/.f64 -2 z)) (*.f64 2 (*.f64 x -2)))
(/.f64 (+.f64 (/.f64 -2 z) (/.f64 -2 z)) (*.f64 2 (neg.f64 (+.f64 x x))))
(/.f64 (+.f64 (/.f64 8 x) (/.f64 8 x)) (*.f64 2 (*.f64 z 8)))
(/.f64 (+.f64 (/.f64 -2 x) (/.f64 -2 x)) (*.f64 2 (*.f64 z -2)))
(/.f64 (+.f64 (/.f64 -2 x) (/.f64 -2 x)) (*.f64 2 (neg.f64 (+.f64 z z))))
(/.f64 (+.f64 (neg.f64 (/.f64 2 x)) (neg.f64 (/.f64 2 x))) (*.f64 2 (neg.f64 (+.f64 z z))))
(/.f64 (+.f64 (neg.f64 (/.f64 2 z)) (neg.f64 (/.f64 2 z))) (*.f64 2 (neg.f64 (+.f64 x x))))
(/.f64 (+.f64 (*.f64 2 (*.f64 (/.f64 1 z) (/.f64 4 x))) (*.f64 2 (*.f64 (/.f64 1 z) (/.f64 4 x)))) 16)
(/.f64 (+.f64 (*.f64 2 (/.f64 -1 x)) (*.f64 2 (/.f64 -1 x))) (*.f64 2 (*.f64 z -2)))
(/.f64 (+.f64 (*.f64 2 (/.f64 -1 z)) (*.f64 2 (/.f64 -1 z))) (*.f64 2 (*.f64 x -2)))
(/.f64 (+.f64 (/.f64 x z) (/.f64 x z)) (*.f64 x (+.f64 x x)))
(/.f64 (+.f64 (/.f64 z x) (/.f64 z x)) (*.f64 z (+.f64 z z)))
(/.f64 (+.f64 (neg.f64 (/.f64 4 x)) (neg.f64 (/.f64 4 x))) (+.f64 (neg.f64 (*.f64 z 4)) (neg.f64 (*.f64 z 4))))
(/.f64 (+.f64 (neg.f64 (/.f64 4 z)) (neg.f64 (/.f64 4 z))) (+.f64 (neg.f64 (*.f64 x 4)) (neg.f64 (*.f64 x 4))))
(/.f64 (+.f64 (*.f64 2 (/.f64 4 z)) (*.f64 2 (/.f64 4 z))) (*.f64 2 (*.f64 x 8)))
(/.f64 (/.f64 (/.f64 1 z) (*.f64 x 4)) 1/4)
(/.f64 (/.f64 (/.f64 1 x) (*.f64 z 4)) 1/4)
(/.f64 (/.f64 (/.f64 -1 x) z) -1)
(/.f64 (/.f64 (/.f64 -1 z) x) -1)
(/.f64 (/.f64 (/.f64 x z) x) x)
(/.f64 (/.f64 (/.f64 x z) (+.f64 x x)) (*.f64 x 1/2))
(/.f64 (/.f64 (/.f64 z x) z) z)
(/.f64 (/.f64 (/.f64 z x) (+.f64 z z)) (*.f64 z 1/2))
(/.f64 (neg.f64 (neg.f64 (/.f64 2 x))) (+.f64 z z))
(/.f64 (neg.f64 (neg.f64 (/.f64 2 x))) (-.f64 0 (neg.f64 (+.f64 z z))))
(/.f64 (neg.f64 (neg.f64 (/.f64 2 z))) (+.f64 x x))
(/.f64 (neg.f64 (neg.f64 (/.f64 2 z))) (-.f64 0 (neg.f64 (+.f64 x x))))
(/.f64 (neg.f64 (*.f64 2 (/.f64 4 x))) (-.f64 0 (*.f64 z 8)))
(/.f64 (neg.f64 (*.f64 2 (/.f64 -1 x))) (-.f64 0 (*.f64 z -2)))
(/.f64 (neg.f64 (*.f64 2 (/.f64 4 z))) (-.f64 0 (*.f64 x 8)))
(/.f64 (neg.f64 (*.f64 2 (/.f64 -1 z))) (-.f64 0 (*.f64 x -2)))
(/.f64 (neg.f64 (/.f64 8 x)) (-.f64 0 (*.f64 z 8)))
(/.f64 (neg.f64 (/.f64 -2 x)) (+.f64 z z))
(/.f64 (neg.f64 (/.f64 -2 x)) (-.f64 0 (*.f64 z -2)))
(/.f64 (neg.f64 (/.f64 -2 x)) (-.f64 0 (neg.f64 (+.f64 z z))))
(/.f64 (neg.f64 (/.f64 8 z)) (-.f64 0 (*.f64 x 8)))
(/.f64 (neg.f64 (/.f64 -2 z)) (+.f64 x x))
(/.f64 (neg.f64 (/.f64 -2 z)) (-.f64 0 (*.f64 x -2)))
(/.f64 (neg.f64 (/.f64 -2 z)) (-.f64 0 (neg.f64 (+.f64 x x))))
(/.f64 (neg.f64 (/.f64 x z)) (-.f64 0 (*.f64 x x)))
(/.f64 (neg.f64 (/.f64 z x)) (-.f64 0 (*.f64 z z)))
(/.f64 (neg.f64 (neg.f64 (/.f64 4 x))) (*.f64 z 4))
(/.f64 (neg.f64 (neg.f64 (/.f64 4 z))) (*.f64 x 4))
(+.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x)) 0)
(+.f64 0 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x)))
(-.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x)) 0)
(/.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x)) 1)
(/.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (*.f64 (+.f64 z x) 2)) 2)
(/.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (*.f64 (+.f64 z x) 4)) 4)
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (*.f64 (+.f64 z x) 4))) 8)
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (*.f64 (+.f64 z x) 4))) (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (*.f64 (+.f64 z x) 4)))) 16)
Outputs
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(+.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 0)
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(+.f64 0 (sqrt.f64 (/.f64 (/.f64 1 x) z)))
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(-.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 0)
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(*.f64 1 (sqrt.f64 (/.f64 (/.f64 1 x) z)))
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 1)
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(*.f64 2 (/.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2))
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(*.f64 2 (*.f64 (/.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2) 1))
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(*.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2) 1/2)
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2))
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(*.f64 (/.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2) 2)
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(/.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 1)
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(/.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 2) 2)
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(/.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 4) 4)
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 4)) 8)
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 4)) (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) 4))) 16)
(sqrt.f64 (/.f64 1 (*.f64 z x)))
(+.f64 (/.f64 (/.f64 1 x) z) 0)
(/.f64 1 (*.f64 z x))
(+.f64 0 (/.f64 (/.f64 1 x) z))
(/.f64 1 (*.f64 z x))
(-.f64 (/.f64 (/.f64 1 x) z) 0)
(/.f64 1 (*.f64 z x))
(/.f64 1 (*.f64 z x))
(/.f64 1 (/.f64 z (/.f64 1 x)))
(/.f64 1 (*.f64 z x))
(/.f64 1 (-.f64 0 (*.f64 x (neg.f64 z))))
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 z) x)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 z) (/.f64 1 (/.f64 1 x)))
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1 x) (/.f64 2 (/.f64 2 z)))
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 (/.f64 1 x) z) 1)
(/.f64 1 (*.f64 z x))
(/.f64 2 (*.f64 z (+.f64 x x)))
(/.f64 1 (*.f64 z x))
(/.f64 2 (/.f64 z (/.f64 1/2 x)))
(/.f64 1 (*.f64 z x))
(/.f64 (+.f64 z z) (*.f64 x (*.f64 z (+.f64 z z))))
(/.f64 1 (*.f64 z x))
(/.f64 (+.f64 x x) (*.f64 z (*.f64 x (+.f64 x x))))
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 2 x) (+.f64 z z))
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 2 x) (/.f64 4 (/.f64 2 z)))
(/.f64 1 (*.f64 z x))
(/.f64 4 (*.f64 x (*.f64 z 4)))
(/.f64 1 (*.f64 z x))
(/.f64 4 (*.f64 2 (/.f64 z (/.f64 1/2 x))))
(/.f64 1 (*.f64 z x))
(/.f64 4 (/.f64 (*.f64 z 4) (/.f64 1 x)))
(/.f64 1 (*.f64 z x))
(/.f64 (*.f64 x 4) (+.f64 (*.f64 z (*.f64 x (+.f64 x x))) (*.f64 z (*.f64 x (+.f64 x x)))))
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 2 z) (+.f64 x x))
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 2 z) (/.f64 1 (/.f64 1/2 x)))
(/.f64 1 (*.f64 z x))
(/.f64 (*.f64 z 4) (+.f64 (*.f64 x (*.f64 z (+.f64 z z))) (*.f64 x (*.f64 z (+.f64 z z)))))
(/.f64 1 (*.f64 z x))
(/.f64 -1 (*.f64 x (neg.f64 z)))
(/.f64 1 (*.f64 z x))
(/.f64 -1 (-.f64 0 (/.f64 z (/.f64 1 x))))
(/.f64 1 (*.f64 z x))
(/.f64 -1 (-.f64 0 (*.f64 z x)))
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 4 x) (*.f64 z 4))
(/.f64 1 (*.f64 z x))
(/.f64 8 (*.f64 z (*.f64 x 8)))
(/.f64 1 (*.f64 z x))
(/.f64 8 (+.f64 (/.f64 (*.f64 z 4) (/.f64 1 x)) (/.f64 (*.f64 z 4) (/.f64 1 x))))
(/.f64 1 (*.f64 z x))
(/.f64 8 (+.f64 (*.f64 2 (/.f64 z (/.f64 1/2 x))) (*.f64 2 (/.f64 z (/.f64 1/2 x)))))
(/.f64 1 (*.f64 z x))
(/.f64 -2 (*.f64 x (*.f64 z -2)))
(/.f64 1 (*.f64 z x))
(/.f64 -2 (*.f64 x (neg.f64 (+.f64 z z))))
(/.f64 1 (*.f64 z x))
(/.f64 -2 (*.f64 z (neg.f64 (+.f64 x x))))
(/.f64 1 (*.f64 z x))
(/.f64 -2 (-.f64 0 (/.f64 z (/.f64 1/2 x))))
(/.f64 1 (*.f64 z x))
(/.f64 -2 (-.f64 0 (*.f64 z (+.f64 x x))))
(/.f64 1 (*.f64 z x))
(/.f64 (*.f64 (/.f64 1 z) (/.f64 4 x)) 4)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 4 z) (*.f64 x 4))
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 (/.f64 2 z) x) 2)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 -1 x) (neg.f64 z))
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 -1 z) (neg.f64 x))
(/.f64 1 (*.f64 z x))
(/.f64 (*.f64 2 (/.f64 4 x)) (*.f64 z 8))
(/.f64 1 (*.f64 z x))
(/.f64 16 (+.f64 (*.f64 z (*.f64 x 8)) (*.f64 z (*.f64 x 8))))
(/.f64 1 (*.f64 z x))
(/.f64 -4 (+.f64 (*.f64 x (*.f64 z -2)) (*.f64 x (*.f64 z -2))))
(/.f64 1 (*.f64 z x))
(/.f64 -4 (+.f64 (*.f64 x (neg.f64 (+.f64 z z))) (*.f64 x (neg.f64 (+.f64 z z)))))
(/.f64 1 (*.f64 z x))
(/.f64 -4 (+.f64 (*.f64 z (neg.f64 (+.f64 x x))) (*.f64 z (neg.f64 (+.f64 x x)))))
(/.f64 1 (*.f64 z x))
(/.f64 -4 (-.f64 0 (*.f64 x (*.f64 z 4))))
(/.f64 1 (*.f64 z x))
(/.f64 (*.f64 2 (*.f64 (/.f64 1 z) (/.f64 4 x))) 8)
(/.f64 1 (*.f64 z x))
(/.f64 (*.f64 2 (/.f64 -1 x)) (*.f64 z -2))
(/.f64 1 (*.f64 z x))
(/.f64 (*.f64 2 (/.f64 -1 z)) (*.f64 x -2))
(/.f64 1 (*.f64 z x))
(/.f64 (*.f64 2 (/.f64 4 z)) (*.f64 x 8))
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 8 x) (*.f64 z 8))
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 -2 x) (*.f64 z -2))
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 -2 x) (neg.f64 (+.f64 z z)))
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 (/.f64 4 x) z) 4)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 8 z) (*.f64 x 8))
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 -2 z) (*.f64 x -2))
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 -2 z) (neg.f64 (+.f64 x x)))
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 x z) (*.f64 x x))
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 z x) (*.f64 z z))
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 -1/2 z) (*.f64 x -1/2))
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 (/.f64 1/2 z) x) 1/2)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1/2 z) (*.f64 x 1/2))
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1/2 z) (/.f64 x 2))
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 -1/2 x) (*.f64 z -1/2))
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1/2 x) (*.f64 z 1/2))
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 1/2 x) (/.f64 z 2))
(/.f64 1 (*.f64 z x))
(/.f64 (neg.f64 (/.f64 2 x)) (neg.f64 (+.f64 z z)))
(/.f64 1 (*.f64 z x))
(/.f64 (neg.f64 (/.f64 2 z)) (neg.f64 (+.f64 x x)))
(/.f64 1 (*.f64 z x))
(/.f64 (neg.f64 (/.f64 4 x)) (neg.f64 (*.f64 z 4)))
(/.f64 1 (*.f64 z x))
(/.f64 (neg.f64 (/.f64 4 z)) (neg.f64 (*.f64 x 4)))
(/.f64 1 (*.f64 z x))
(/.f64 (+.f64 (/.f64 (/.f64 1/2 z) x) (/.f64 (/.f64 1/2 z) x)) 1)
(/.f64 1 (*.f64 z x))
(/.f64 (+.f64 (*.f64 2 (/.f64 4 x)) (*.f64 2 (/.f64 4 x))) (*.f64 2 (*.f64 z 8)))
(/.f64 1 (*.f64 z x))
(/.f64 (+.f64 (/.f64 (/.f64 4 x) z) (/.f64 (/.f64 4 x) z)) 8)
(/.f64 1 (*.f64 z x))
(/.f64 (+.f64 (/.f64 8 z) (/.f64 8 z)) (*.f64 2 (*.f64 x 8)))
(/.f64 1 (*.f64 z x))
(/.f64 (+.f64 (/.f64 -2 z) (/.f64 -2 z)) (*.f64 2 (*.f64 x -2)))
(/.f64 1 (*.f64 z x))
(/.f64 (+.f64 (/.f64 -2 z) (/.f64 -2 z)) (*.f64 2 (neg.f64 (+.f64 x x))))
(/.f64 1 (*.f64 z x))
(/.f64 (+.f64 (/.f64 8 x) (/.f64 8 x)) (*.f64 2 (*.f64 z 8)))
(/.f64 1 (*.f64 z x))
(/.f64 (+.f64 (/.f64 -2 x) (/.f64 -2 x)) (*.f64 2 (*.f64 z -2)))
(/.f64 1 (*.f64 z x))
(/.f64 (+.f64 (/.f64 -2 x) (/.f64 -2 x)) (*.f64 2 (neg.f64 (+.f64 z z))))
(/.f64 1 (*.f64 z x))
(/.f64 (+.f64 (neg.f64 (/.f64 2 x)) (neg.f64 (/.f64 2 x))) (*.f64 2 (neg.f64 (+.f64 z z))))
(/.f64 1 (*.f64 z x))
(/.f64 (+.f64 (neg.f64 (/.f64 2 z)) (neg.f64 (/.f64 2 z))) (*.f64 2 (neg.f64 (+.f64 x x))))
(/.f64 1 (*.f64 z x))
(/.f64 (+.f64 (*.f64 2 (*.f64 (/.f64 1 z) (/.f64 4 x))) (*.f64 2 (*.f64 (/.f64 1 z) (/.f64 4 x)))) 16)
(/.f64 1 (*.f64 z x))
(/.f64 (+.f64 (*.f64 2 (/.f64 -1 x)) (*.f64 2 (/.f64 -1 x))) (*.f64 2 (*.f64 z -2)))
(/.f64 1 (*.f64 z x))
(/.f64 (+.f64 (*.f64 2 (/.f64 -1 z)) (*.f64 2 (/.f64 -1 z))) (*.f64 2 (*.f64 x -2)))
(/.f64 1 (*.f64 z x))
(/.f64 (+.f64 (/.f64 x z) (/.f64 x z)) (*.f64 x (+.f64 x x)))
(/.f64 1 (*.f64 z x))
(/.f64 (+.f64 (/.f64 z x) (/.f64 z x)) (*.f64 z (+.f64 z z)))
(/.f64 1 (*.f64 z x))
(/.f64 (+.f64 (neg.f64 (/.f64 4 x)) (neg.f64 (/.f64 4 x))) (+.f64 (neg.f64 (*.f64 z 4)) (neg.f64 (*.f64 z 4))))
(/.f64 1 (*.f64 z x))
(/.f64 (+.f64 (neg.f64 (/.f64 4 z)) (neg.f64 (/.f64 4 z))) (+.f64 (neg.f64 (*.f64 x 4)) (neg.f64 (*.f64 x 4))))
(/.f64 1 (*.f64 z x))
(/.f64 (+.f64 (*.f64 2 (/.f64 4 z)) (*.f64 2 (/.f64 4 z))) (*.f64 2 (*.f64 x 8)))
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 (/.f64 1 z) (*.f64 x 4)) 1/4)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 (/.f64 1 x) (*.f64 z 4)) 1/4)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 (/.f64 -1 x) z) -1)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 (/.f64 -1 z) x) -1)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 (/.f64 x z) x) x)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 (/.f64 x z) (+.f64 x x)) (*.f64 x 1/2))
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 (/.f64 z x) z) z)
(/.f64 1 (*.f64 z x))
(/.f64 (/.f64 (/.f64 z x) (+.f64 z z)) (*.f64 z 1/2))
(/.f64 1 (*.f64 z x))
(/.f64 (neg.f64 (neg.f64 (/.f64 2 x))) (+.f64 z z))
(/.f64 1 (*.f64 z x))
(/.f64 (neg.f64 (neg.f64 (/.f64 2 x))) (-.f64 0 (neg.f64 (+.f64 z z))))
(/.f64 1 (*.f64 z x))
(/.f64 (neg.f64 (neg.f64 (/.f64 2 z))) (+.f64 x x))
(/.f64 1 (*.f64 z x))
(/.f64 (neg.f64 (neg.f64 (/.f64 2 z))) (-.f64 0 (neg.f64 (+.f64 x x))))
(/.f64 1 (*.f64 z x))
(/.f64 (neg.f64 (*.f64 2 (/.f64 4 x))) (-.f64 0 (*.f64 z 8)))
(/.f64 1 (*.f64 z x))
(/.f64 (neg.f64 (*.f64 2 (/.f64 -1 x))) (-.f64 0 (*.f64 z -2)))
(/.f64 1 (*.f64 z x))
(/.f64 (neg.f64 (*.f64 2 (/.f64 4 z))) (-.f64 0 (*.f64 x 8)))
(/.f64 1 (*.f64 z x))
(/.f64 (neg.f64 (*.f64 2 (/.f64 -1 z))) (-.f64 0 (*.f64 x -2)))
(/.f64 1 (*.f64 z x))
(/.f64 (neg.f64 (/.f64 8 x)) (-.f64 0 (*.f64 z 8)))
(/.f64 1 (*.f64 z x))
(/.f64 (neg.f64 (/.f64 -2 x)) (+.f64 z z))
(/.f64 1 (*.f64 z x))
(/.f64 (neg.f64 (/.f64 -2 x)) (-.f64 0 (*.f64 z -2)))
(/.f64 1 (*.f64 z x))
(/.f64 (neg.f64 (/.f64 -2 x)) (-.f64 0 (neg.f64 (+.f64 z z))))
(/.f64 1 (*.f64 z x))
(/.f64 (neg.f64 (/.f64 8 z)) (-.f64 0 (*.f64 x 8)))
(/.f64 1 (*.f64 z x))
(/.f64 (neg.f64 (/.f64 -2 z)) (+.f64 x x))
(/.f64 1 (*.f64 z x))
(/.f64 (neg.f64 (/.f64 -2 z)) (-.f64 0 (*.f64 x -2)))
(/.f64 1 (*.f64 z x))
(/.f64 (neg.f64 (/.f64 -2 z)) (-.f64 0 (neg.f64 (+.f64 x x))))
(/.f64 1 (*.f64 z x))
(/.f64 (neg.f64 (/.f64 x z)) (-.f64 0 (*.f64 x x)))
(/.f64 1 (*.f64 z x))
(/.f64 (neg.f64 (/.f64 z x)) (-.f64 0 (*.f64 z z)))
(/.f64 1 (*.f64 z x))
(/.f64 (neg.f64 (neg.f64 (/.f64 4 x))) (*.f64 z 4))
(/.f64 1 (*.f64 z x))
(/.f64 (neg.f64 (neg.f64 (/.f64 4 z))) (*.f64 x 4))
(/.f64 1 (*.f64 z x))
(+.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x)) 0)
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x))
(+.f64 0 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x)))
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x))
(-.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x)) 0)
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x))
(/.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (+.f64 z x)) 1)
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x))
(/.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (*.f64 (+.f64 z x) 2)) 2)
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x))
(/.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (*.f64 (+.f64 z x) 4)) 4)
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x))
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (*.f64 (+.f64 z x) 4))) 8)
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x))
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (*.f64 (+.f64 z x) 4))) (*.f64 2 (*.f64 (sqrt.f64 (/.f64 (/.f64 1 x) z)) (*.f64 (+.f64 z x) 4)))) 16)
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 z x))) (+.f64 z x))

eval203.0ms (1.2%)

Compiler

Compiled 5002 to 2849 computations (43% saved)

prune43.0ms (0.3%)

Pruning

11 alts after pruning (2 fresh and 9 done)

PrunedKeptTotal
New2162218
Fresh000
Picked101
Done1910
Total21811229
Error
16.8b
Counts
229 → 11
Alt Table
Click to see full alt table
StatusErrorProgram
62.4b
(*.f64 2 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 (/.f64 (/.f64 z x) z) z))) 1/2))))
62.2b
(*.f64 2 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 (*.f64 (+.f64 z x) (sqrt.f64 (/.f64 (/.f64 1 x) z))) 1/2))))
38.7b
(*.f64 2 (+.f64 (sqrt.f64 (*.f64 y x)) (*.f64 z (*.f64 (*.f64 (+.f64 y x) (sqrt.f64 (/.f64 1 (*.f64 y x)))) 1/2))))
62.8b
(*.f64 2 (*.f64 (sqrt.f64 (/.f64 z x)) (*.f64 1/2 y)))
62.0b
(*.f64 2 (*.f64 (sqrt.f64 (/.f64 x y)) (*.f64 1/2 z)))
42.2b
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 z x) (*.f64 z y))))
37.0b
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x)))
42.2b
(*.f64 2 (sqrt.f64 (*.f64 (+.f64 y x) z)))
61.7b
(*.f64 2 (sqrt.f64 (*.f64 z x)))
43.1b
(*.f64 2 (sqrt.f64 (*.f64 y z)))
38.5b
(*.f64 2 (sqrt.f64 (*.f64 y x)))
Compiler

Compiled 162 to 116 computations (28.4% saved)

regimes68.0ms (0.4%)

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

6 calls:

15.0ms
(+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))
10.0ms
z
9.0ms
x
9.0ms
y
9.0ms
(sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))
Results
ErrorSegmentsBranch
17.5b1x
17.5b1y
17.5b1z
17.5b1(*.f64 2 (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))
17.5b1(sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z)))
17.5b1(+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))
Compiler

Compiled 302 to 166 computations (45% saved)

regimes21.0ms (0.1%)

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

3 calls:

6.0ms
y
6.0ms
z
6.0ms
x
Results
ErrorSegmentsBranch
17.5b1x
17.5b1y
17.5b1z
Compiler

Compiled 91 to 59 computations (35.2% saved)

regimes47.0ms (0.3%)

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

3 calls:

19.0ms
z
15.0ms
x
11.0ms
y
Results
ErrorSegmentsBranch
19.8b2x
17.5b2y
19.6b4z
Compiler

Compiled 79 to 53 computations (32.9% saved)

bsearch107.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
106.0ms
-3.9097325433286544e-277
1.1789421960426277e-263
Results
99.0ms64×body256valid
6.0ms54×body256invalid
Compiler

Compiled 119 to 88 computations (26.1% saved)

regimes54.0ms (0.3%)

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

3 calls:

33.0ms
z
12.0ms
x
8.0ms
y
Results
ErrorSegmentsBranch
21.0b2x
18.8b2y
20.9b4z
Compiler

Compiled 41 to 29 computations (29.3% saved)

bsearch44.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
44.0ms
-3.9097325433286544e-277
1.1789421960426277e-263
Results
23.0ms192×body256valid
19.0ms179×body256invalid
Compiler

Compiled 287 to 220 computations (23.3% saved)

regimes32.0ms (0.2%)

Accuracy

Total -43.5b remaining (-224.8%)

Threshold costs -43.5b (-224.8%)

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

3 calls:

13.0ms
z
11.0ms
x
8.0ms
y
Results
ErrorSegmentsBranch
21.5b2x
19.4b2y
21.3b4z
Compiler

Compiled 33 to 24 computations (27.3% saved)

bsearch45.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
45.0ms
-3.9097325433286544e-277
1.1789421960426277e-263
Results
21.0ms192×body256valid
20.0ms191×body256invalid
Compiler

Compiled 263 to 208 computations (20.9% saved)

simplify5.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
043234
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 y z))))
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 y x)))))
(if (<=.f64 y -7906338019816821/1581267603963364205878869896241541461324661326282360299663291859589299527874963647593440497667477535118649045814975093057732880760826511538023542187037019608761854877160674698159897716735103252665935684988068320848140683464255411707953932466009059033912578566502802887127604801681488301032705683661296923932091466727292928) (*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x))) (*.f64 2 (sqrt.f64 (*.f64 (+.f64 y x) z))))
(if (<=.f64 y -7584193176231935/19958403095347198116563727130368385660674512604354575415025472424372118918689640657849579654926357010893424468441924952439724379883935936607391717982848314203200056729510856765175377214443629871826533567445439239933308104551208703888888552684480441575071209068757560416423584952303440099278848) (*.f64 2 (sqrt.f64 (*.f64 y x))) (*.f64 2 (sqrt.f64 (*.f64 (+.f64 y x) z))))
(if (<=.f64 y -101201126653655/202402253307310618352495346718917307049556649764142118356901358027430339567995346891960383701437124495187077864316811911389808737385793476867013399940738509921517424276566361364466907742093216341239767678472745068562007483424692698618103355649159556340810056512358769552333414615230502532186327508646006263307707741093494784) (*.f64 2 (sqrt.f64 (*.f64 y x))) (*.f64 2 (sqrt.f64 (*.f64 y z))))
(*.f64 2 (sqrt.f64 (*.f64 y x)))
Outputs
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 x (+.f64 z y)) (*.f64 y z))))
(*.f64 2 (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 y x)))))
(if (<=.f64 y -7906338019816821/1581267603963364205878869896241541461324661326282360299663291859589299527874963647593440497667477535118649045814975093057732880760826511538023542187037019608761854877160674698159897716735103252665935684988068320848140683464255411707953932466009059033912578566502802887127604801681488301032705683661296923932091466727292928) (*.f64 2 (sqrt.f64 (*.f64 (+.f64 y z) x))) (*.f64 2 (sqrt.f64 (*.f64 (+.f64 y x) z))))
(if (<=.f64 y -7584193176231935/19958403095347198116563727130368385660674512604354575415025472424372118918689640657849579654926357010893424468441924952439724379883935936607391717982848314203200056729510856765175377214443629871826533567445439239933308104551208703888888552684480441575071209068757560416423584952303440099278848) (*.f64 2 (sqrt.f64 (*.f64 y x))) (*.f64 2 (sqrt.f64 (*.f64 (+.f64 y x) z))))
(if (<=.f64 y -101201126653655/202402253307310618352495346718917307049556649764142118356901358027430339567995346891960383701437124495187077864316811911389808737385793476867013399940738509921517424276566361364466907742093216341239767678472745068562007483424692698618103355649159556340810056512358769552333414615230502532186327508646006263307707741093494784) (*.f64 2 (sqrt.f64 (*.f64 y x))) (*.f64 2 (sqrt.f64 (*.f64 y z))))
(*.f64 2 (sqrt.f64 (*.f64 y x)))
Compiler

Compiled 102 to 72 computations (29.4% saved)

soundness15.0ms (0.1%)

Algorithm
egg-herbie
Rules
18×rational.json-simplify-1
18×rational.json-simplify-1
14×rational.json-simplify-2
14×rational.json-simplify-2
rational.json-simplify-51
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01441
12035
22835
33735
44135
01441
12035
22835
33735
44135
Stop Event
saturated
saturated
Compiler

Compiled 142 to 64 computations (54.9% saved)

end59.0ms (0.4%)

Compiler

Compiled 133 to 80 computations (39.8% saved)

Profiling

Loading profile data...