Details

Time bar (total: 8.5s)

analyze165.0ms (1.9%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
0%0%99.9%0.1%0%0%0%4
0%0%99.9%0.1%0%0%0%5
0%0%99.9%0.1%0%0%0%6
12.5%12.5%87.4%0.1%0%0%0%7
18.8%18.7%81.1%0.1%0%0%0%8
25.8%25%71.8%0.1%3.1%0%0%9
38.3%35.9%57.7%0.1%6.2%0%0%10
45.8%42.9%50.7%0.1%6.2%0%0%11
53.4%48.8%42.5%0.1%8.6%0%0%12
Compiler

Compiled 11 to 8 computations (27.3% saved)

sample2.2s (25.9%)

Results
2.0s8256×body256valid
236.0ms794×body256infinite
Bogosity

preprocess13.0ms (0.1%)

Algorithm
egg-herbie
Rules
14×rational.json-simplify-2
swap-y-z
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01876
12476
033
133
Stop Event
unsound
saturated
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
2
1
Call 2
Inputs
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 y (-.f64 1 (*.f64 x z)))
(*.f64 z (-.f64 1 (*.f64 y x)))
(*.f64 x (-.f64 1 (*.f64 z y)))
Outputs
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 y (-.f64 1 (*.f64 x z)))
(*.f64 z (-.f64 1 (*.f64 y x)))
(*.f64 z (-.f64 1 (*.f64 x y)))
(*.f64 x (-.f64 1 (*.f64 z y)))
(*.f64 x (-.f64 1 (*.f64 y z)))
Symmetry

(sort y z)

Compiler

Compiled 13 to 10 computations (23.1% saved)

simplify8.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
11119
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 x (-.f64 1 (*.f64 y z)))
Outputs
(*.f64 x (-.f64 1 (*.f64 y z)))

eval0.0ms (0%)

Compiler

Compiled 10 to 7 computations (30% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
3.4b
Counts
2 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
3.4b
(*.f64 x (-.f64 1 (*.f64 y z)))
Compiler

Compiled 10 to 7 computations (30% saved)

localize35.0ms (0.4%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(-.f64 1 (*.f64 y z))
3.2b
(*.f64 x (-.f64 1 (*.f64 y z)))
Compiler

Compiled 22 to 10 computations (54.5% saved)

series4.0ms (0%)

Counts
2 → 60
Calls

15 calls:

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

rewrite221.0ms (2.6%)

Algorithm
batch-egg-rewrite
Rules
1814×rational.json-simplify-35
1394×exponential.json-3
1394×rational.json-1
1394×rational.json-2
1394×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0932
16832
214932
328132
450932
5111332
6236332
7396932
8511832
9646632
10750632
11761532
12774032
Stop Event
node limit
Counts
2 → 59
Calls
Call 1
Inputs
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 1 (*.f64 y z))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (-.f64 1 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 1 (*.f64 y z)) (*.f64 x 1/2)) (*.f64 (-.f64 1 (*.f64 y z)) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 y z)) (+.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (-.f64 1 (*.f64 y z)) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 y z)) (*.f64 x 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) (*.f64 x 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) (*.f64 x 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) (*.f64 x 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) (*.f64 x 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) (*.f64 x 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (*.f64 y z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 1 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (neg.f64 (+.f64 (*.f64 y z) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (+.f64 (*.f64 y z) -2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 1 (*.f64 y z)) 1/2) (*.f64 (-.f64 1 (*.f64 y z)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (-.f64 1 (+.f64 (*.f64 y z) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (-.f64 1 (+.f64 1 (+.f64 (+.f64 (*.f64 y z) -2) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (+.f64 (*.f64 y z) -2)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 1 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (*.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (*.f64 y z)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 y z) -1) -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y z) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (+.f64 (*.f64 y z) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (*.f64 y z)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (-.f64 1 (*.f64 y z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (*.f64 y z)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (-.f64 1 (*.f64 y z)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 y z) -1) -4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (+.f64 (*.f64 y z) -2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (*.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 y z)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 y z) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 y z)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 z (+.f64 y y)) -2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 y z)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (+.f64 (*.f64 y z) -1)) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 4 (+.f64 (*.f64 y z) -1))) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 4 (+.f64 (*.f64 y z) -1))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (neg.f64 (*.f64 4 (+.f64 (*.f64 y z) -1)))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (*.f64 y z) -1)))) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 4 (+.f64 (*.f64 y z) -1))))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (*.f64 y z) -1))))) -32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (+.f64 (*.f64 y z) -2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 4 (+.f64 (*.f64 y z) -1)))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 1 (*.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 (*.f64 y z) -1))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 1 (+.f64 (*.f64 y z) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 (-.f64 (+.f64 (*.f64 y z) -2) -2) -1))))))

simplify228.0ms (2.7%)

Algorithm
egg-herbie
Rules
2582×rational.json-simplify-2
2220×rational.json-simplify-35
1246×rational.json-simplify-51
1064×rational.json-simplify-1
942×rational.json-simplify-53
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01362273
13462095
28351843
319921843
452301843
562731843
671031843
774461843
876861843
978671843
Stop Event
node limit
Counts
119 → 79
Calls
Call 1
Inputs
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
x
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 -1 (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 -1 (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
x
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 -1 (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 -1 (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
1
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(*.f64 -1 (*.f64 y z))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(*.f64 -1 (*.f64 y z))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
1
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(*.f64 -1 (*.f64 y z))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(*.f64 -1 (*.f64 y z))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 0)
(+.f64 0 (*.f64 x (-.f64 1 (*.f64 y z))))
(+.f64 (*.f64 (-.f64 1 (*.f64 y z)) (*.f64 x 1/2)) (*.f64 (-.f64 1 (*.f64 y z)) (*.f64 x 1/2)))
(-.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 0)
(/.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 1)
(/.f64 (*.f64 (-.f64 1 (*.f64 y z)) (+.f64 x x)) 2)
(/.f64 (*.f64 x (*.f64 (-.f64 1 (*.f64 y z)) 4)) 4)
(/.f64 (*.f64 (-.f64 1 (*.f64 y z)) (*.f64 x 8)) 8)
(/.f64 (*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) (*.f64 x 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) (*.f64 x 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) (*.f64 x 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) (*.f64 x 8)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) (*.f64 x 8))))))) 256)
(pow.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 1)
(+.f64 (-.f64 1 (*.f64 y z)) 0)
(+.f64 0 (-.f64 1 (*.f64 y z)))
(+.f64 -1 (neg.f64 (+.f64 (*.f64 y z) -2)))
(+.f64 (neg.f64 (+.f64 (*.f64 y z) -2)) -1)
(+.f64 (*.f64 (-.f64 1 (*.f64 y z)) 1/2) (*.f64 (-.f64 1 (*.f64 y z)) 1/2))
(+.f64 -2 (-.f64 1 (+.f64 (*.f64 y z) -2)))
(+.f64 -2 (-.f64 1 (+.f64 1 (+.f64 (+.f64 (*.f64 y z) -2) -1))))
(+.f64 (-.f64 1 (+.f64 (*.f64 y z) -2)) -2)
(*.f64 1 (-.f64 1 (*.f64 y z)))
(*.f64 (-.f64 1 (*.f64 y z)) 1)
(*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) 1/2))
(*.f64 (*.f64 (-.f64 1 (*.f64 y z)) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 y z) -1) -4))
(*.f64 (+.f64 (*.f64 y z) -1) -1)
(*.f64 -1 (+.f64 (*.f64 y z) -1))
(*.f64 (*.f64 (-.f64 1 (*.f64 y z)) 4) 1/4)
(*.f64 1/2 (*.f64 (-.f64 1 (*.f64 y z)) 2))
(*.f64 (*.f64 (-.f64 1 (*.f64 y z)) 1/2) 2)
(*.f64 1/4 (*.f64 (-.f64 1 (*.f64 y z)) 4))
(*.f64 (/.f64 (+.f64 (*.f64 y z) -1) -4) 4)
(*.f64 (+.f64 1 (+.f64 (*.f64 y z) -2)) -1)
(/.f64 (-.f64 1 (*.f64 y z)) 1)
(/.f64 (*.f64 (-.f64 1 (*.f64 y z)) 2) 2)
(/.f64 (+.f64 (*.f64 y z) -1) -1)
(/.f64 (*.f64 (-.f64 1 (*.f64 y z)) 4) 4)
(/.f64 (+.f64 (*.f64 z (+.f64 y y)) -2) -2)
(/.f64 (*.f64 (-.f64 1 (*.f64 y z)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) 8)) 16)
(/.f64 (*.f64 4 (+.f64 (*.f64 y z) -1)) -4)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 4 (+.f64 (*.f64 y z) -1))) -8)
(/.f64 (neg.f64 (*.f64 4 (+.f64 (*.f64 y z) -1))) 4)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) 8)))) 64)
(/.f64 (*.f64 2 (neg.f64 (*.f64 4 (+.f64 (*.f64 y z) -1)))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (*.f64 y z) -1)))) -16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 4 (+.f64 (*.f64 y z) -1))))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (*.f64 y z) -1))))) -32)
(/.f64 (+.f64 1 (+.f64 (*.f64 y z) -2)) -1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) 8)))))) 256)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 4 (+.f64 (*.f64 y z) -1)))))) 32)
(pow.f64 (-.f64 1 (*.f64 y z)) 1)
(neg.f64 (+.f64 (*.f64 y z) -1))
(neg.f64 (+.f64 1 (+.f64 (*.f64 y z) -2)))
(neg.f64 (+.f64 (-.f64 (+.f64 (*.f64 y z) -2) -2) -1))
Outputs
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
x
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 y (*.f64 (*.f64 z x) -1)))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 x (*.f64 y (neg.f64 (*.f64 z x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 y (*.f64 (*.f64 z x) -1)))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 x (*.f64 y (neg.f64 (*.f64 z x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 y (*.f64 (*.f64 z x) -1)))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 x (*.f64 y (neg.f64 (*.f64 z x))))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 y (*.f64 (*.f64 z x) -1))
(neg.f64 (*.f64 y (*.f64 z x)))
(*.f64 z (neg.f64 (*.f64 y x)))
(*.f64 y (neg.f64 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 y (*.f64 (*.f64 z x) -1)))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 x (*.f64 y (neg.f64 (*.f64 z x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 y (*.f64 (*.f64 z x) -1)))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 x (*.f64 y (neg.f64 (*.f64 z x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 y (*.f64 (*.f64 z x) -1)))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 x (*.f64 y (neg.f64 (*.f64 z x))))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 y (*.f64 (*.f64 z x) -1))
(neg.f64 (*.f64 y (*.f64 z x)))
(*.f64 z (neg.f64 (*.f64 y x)))
(*.f64 y (neg.f64 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 y (*.f64 (*.f64 z x) -1)))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 x (*.f64 y (neg.f64 (*.f64 z x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 y (*.f64 (*.f64 z x) -1)))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 x (*.f64 y (neg.f64 (*.f64 z x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 y (*.f64 (*.f64 z x) -1)))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 x (*.f64 y (neg.f64 (*.f64 z x))))
x
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 y (*.f64 (*.f64 z x) -1)))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 x (*.f64 y (neg.f64 (*.f64 z x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 y (*.f64 (*.f64 z x) -1)))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 x (*.f64 y (neg.f64 (*.f64 z x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 y (*.f64 (*.f64 z x) -1)))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 x (*.f64 y (neg.f64 (*.f64 z x))))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 y (*.f64 (*.f64 z x) -1))
(neg.f64 (*.f64 y (*.f64 z x)))
(*.f64 z (neg.f64 (*.f64 y x)))
(*.f64 y (neg.f64 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 y (*.f64 (*.f64 z x) -1)))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 x (*.f64 y (neg.f64 (*.f64 z x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 y (*.f64 (*.f64 z x) -1)))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 x (*.f64 y (neg.f64 (*.f64 z x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 y (*.f64 (*.f64 z x) -1)))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 x (*.f64 y (neg.f64 (*.f64 z x))))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 y (*.f64 (*.f64 z x) -1))
(neg.f64 (*.f64 y (*.f64 z x)))
(*.f64 z (neg.f64 (*.f64 y x)))
(*.f64 y (neg.f64 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 y (*.f64 (*.f64 z x) -1)))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 x (*.f64 y (neg.f64 (*.f64 z x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 y (*.f64 (*.f64 z x) -1)))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 x (*.f64 y (neg.f64 (*.f64 z x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 y (*.f64 (*.f64 z x) -1)))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 x (*.f64 y (neg.f64 (*.f64 z x))))
1
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(*.f64 -1 (*.f64 y z))
(*.f64 y (*.f64 z -1))
(*.f64 y (neg.f64 z))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(*.f64 -1 (*.f64 y z))
(*.f64 y (*.f64 z -1))
(*.f64 y (neg.f64 z))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
1
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(*.f64 -1 (*.f64 y z))
(*.f64 y (*.f64 z -1))
(*.f64 y (neg.f64 z))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(*.f64 -1 (*.f64 y z))
(*.f64 y (*.f64 z -1))
(*.f64 y (neg.f64 z))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(+.f64 1 (*.f64 -1 (*.f64 y z)))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(+.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 0)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(+.f64 0 (*.f64 x (-.f64 1 (*.f64 y z))))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(+.f64 (*.f64 (-.f64 1 (*.f64 y z)) (*.f64 x 1/2)) (*.f64 (-.f64 1 (*.f64 y z)) (*.f64 x 1/2)))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 0)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(/.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 1)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(/.f64 (*.f64 (-.f64 1 (*.f64 y z)) (+.f64 x x)) 2)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(/.f64 (*.f64 x (*.f64 (-.f64 1 (*.f64 y z)) 4)) 4)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(/.f64 (*.f64 (-.f64 1 (*.f64 y z)) (*.f64 x 8)) 8)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(/.f64 (*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) (*.f64 x 8))) 16)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) (*.f64 x 8)))) 32)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) (*.f64 x 8))))) 64)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) (*.f64 x 8)))))) 128)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) (*.f64 x 8))))))) 256)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(pow.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 1)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(+.f64 (-.f64 1 (*.f64 y z)) 0)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(+.f64 0 (-.f64 1 (*.f64 y z)))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(+.f64 -1 (neg.f64 (+.f64 (*.f64 y z) -2)))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(+.f64 (neg.f64 (+.f64 (*.f64 y z) -2)) -1)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(+.f64 (*.f64 (-.f64 1 (*.f64 y z)) 1/2) (*.f64 (-.f64 1 (*.f64 y z)) 1/2))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(+.f64 -2 (-.f64 1 (+.f64 (*.f64 y z) -2)))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(+.f64 -2 (-.f64 1 (+.f64 1 (+.f64 (+.f64 (*.f64 y z) -2) -1))))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(+.f64 (-.f64 1 (+.f64 (*.f64 y z) -2)) -2)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(*.f64 1 (-.f64 1 (*.f64 y z)))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(*.f64 (-.f64 1 (*.f64 y z)) 1)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) 1/2))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(*.f64 (*.f64 (-.f64 1 (*.f64 y z)) 2) 1/2)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(*.f64 4 (/.f64 (+.f64 (*.f64 y z) -1) -4))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(*.f64 (+.f64 (*.f64 y z) -1) -1)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(*.f64 -1 (+.f64 (*.f64 y z) -1))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(*.f64 (*.f64 (-.f64 1 (*.f64 y z)) 4) 1/4)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(*.f64 1/2 (*.f64 (-.f64 1 (*.f64 y z)) 2))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(*.f64 (*.f64 (-.f64 1 (*.f64 y z)) 1/2) 2)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(*.f64 1/4 (*.f64 (-.f64 1 (*.f64 y z)) 4))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(*.f64 (/.f64 (+.f64 (*.f64 y z) -1) -4) 4)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(*.f64 (+.f64 1 (+.f64 (*.f64 y z) -2)) -1)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(/.f64 (-.f64 1 (*.f64 y z)) 1)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(/.f64 (*.f64 (-.f64 1 (*.f64 y z)) 2) 2)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(/.f64 (+.f64 (*.f64 y z) -1) -1)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(/.f64 (*.f64 (-.f64 1 (*.f64 y z)) 4) 4)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(/.f64 (+.f64 (*.f64 z (+.f64 y y)) -2) -2)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(/.f64 (*.f64 (-.f64 1 (*.f64 y z)) 8) 8)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) 8)) 16)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(/.f64 (*.f64 4 (+.f64 (*.f64 y z) -1)) -4)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) 8))) 32)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 4 (+.f64 (*.f64 y z) -1))) -8)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(/.f64 (neg.f64 (*.f64 4 (+.f64 (*.f64 y z) -1))) 4)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) 8)))) 64)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(/.f64 (*.f64 2 (neg.f64 (*.f64 4 (+.f64 (*.f64 y z) -1)))) 8)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (*.f64 y z) -1)))) -16)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) 8))))) 128)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 4 (+.f64 (*.f64 y z) -1))))) 16)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (*.f64 y z) -1))))) -32)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(/.f64 (+.f64 1 (+.f64 (*.f64 y z) -2)) -1)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 y z)) 8)))))) 256)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 4 (+.f64 (*.f64 y z) -1)))))) 32)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(pow.f64 (-.f64 1 (*.f64 y z)) 1)
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(neg.f64 (+.f64 (*.f64 y z) -1))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(neg.f64 (+.f64 1 (+.f64 (*.f64 y z) -2)))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))
(neg.f64 (+.f64 (-.f64 (+.f64 (*.f64 y z) -2) -2) -1))
(+.f64 1 (*.f64 y (*.f64 z -1)))
(+.f64 1 (*.f64 y (neg.f64 z)))
(-.f64 1 (*.f64 y z))

eval171.0ms (2%)

Compiler

Compiled 863 to 537 computations (37.8% saved)

prune12.0ms (0.1%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New74579
Fresh000
Picked011
Done000
Total74680
Error
0.0b
Counts
80 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
3.8b
(+.f64 x (*.f64 y (neg.f64 (*.f64 z x))))
41.7b
(*.f64 z (neg.f64 (*.f64 y x)))
42.1b
(*.f64 y (neg.f64 (*.f64 z x)))
3.4b
(*.f64 x (-.f64 1 (*.f64 y z)))
42.6b
(*.f64 x (*.f64 y (neg.f64 z)))
22.9b
x
Compiler

Compiled 52 to 35 computations (32.7% saved)

localize347.0ms (4.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
6.5b
(*.f64 x (*.f64 y (neg.f64 z)))
Compiler

Compiled 18 to 6 computations (66.7% saved)

series5.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

TimeVariablePointExpression
2.0ms
z
@inf
(*.f64 x (*.f64 y (neg.f64 z)))
1.0ms
x
@0
(*.f64 x (*.f64 y (neg.f64 z)))
1.0ms
y
@0
(*.f64 x (*.f64 y (neg.f64 z)))
1.0ms
z
@0
(*.f64 x (*.f64 y (neg.f64 z)))
0.0ms
x
@inf
(*.f64 x (*.f64 y (neg.f64 z)))

rewrite119.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
1712×rational.json-1
1712×rational.json-2
1702×rational.json-simplify-35
1206×exponential.json-3
1206×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0917
16417
215617
334817
471417
5188217
6422817
7636217
8773617
Stop Event
node limit
Counts
1 → 18
Calls
Call 1
Inputs
(*.f64 x (*.f64 y (neg.f64 z)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 x (neg.f64 z))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (*.f64 x (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (*.f64 x (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 (*.f64 y z) -1/2)) (*.f64 x (*.f64 (*.f64 y z) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (*.f64 x (neg.f64 z))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 x (neg.f64 z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -2 (*.f64 x (*.f64 y z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 y (*.f64 z -4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y (*.f64 x (neg.f64 z))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 y z)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 y (*.f64 x (neg.f64 z))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x (*.f64 y z))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x (neg.f64 z))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x (neg.f64 z))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x (neg.f64 z))) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x (neg.f64 z))) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (*.f64 x (neg.f64 z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 x (*.f64 y z)))))))

simplify236.0ms (2.8%)

Algorithm
egg-herbie
Rules
2434×rational.json-simplify-35
1852×exponential.json-simplify-26
1494×rational.json-simplify-49
1134×rational.json-simplify-53
1072×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
058918
1151918
2356918
3884918
43124918
54466918
65926918
76081918
86139918
96243918
107544918
117593918
Stop Event
node limit
Counts
54 → 22
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 x (neg.f64 z))) 0)
(+.f64 0 (*.f64 y (*.f64 x (neg.f64 z))))
(+.f64 -1 (-.f64 1 (*.f64 x (*.f64 y z))))
(+.f64 (*.f64 x (*.f64 (*.f64 y z) -1/2)) (*.f64 x (*.f64 (*.f64 y z) -1/2)))
(-.f64 (*.f64 y (*.f64 x (neg.f64 z))) 0)
(-.f64 0 (*.f64 x (*.f64 y z)))
(/.f64 (*.f64 y (*.f64 x (neg.f64 z))) 1)
(/.f64 (*.f64 -2 (*.f64 x (*.f64 y z))) 2)
(/.f64 (*.f64 x (*.f64 y (*.f64 z -4))) 4)
(/.f64 (*.f64 (*.f64 y (*.f64 x (neg.f64 z))) 8) 8)
(/.f64 (*.f64 x (*.f64 y z)) -1)
(/.f64 (*.f64 2 (*.f64 (*.f64 y (*.f64 x (neg.f64 z))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 x (*.f64 y z))) -2)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x (neg.f64 z))) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x (neg.f64 z))) 8)))) 64)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x (neg.f64 z))) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x (neg.f64 z))) 8))))) 128)
(pow.f64 (*.f64 y (*.f64 x (neg.f64 z))) 1)
(neg.f64 (*.f64 x (*.f64 y z)))
Outputs
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(+.f64 (*.f64 y (*.f64 x (neg.f64 z))) 0)
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(+.f64 0 (*.f64 y (*.f64 x (neg.f64 z))))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(+.f64 -1 (-.f64 1 (*.f64 x (*.f64 y z))))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(+.f64 (*.f64 x (*.f64 (*.f64 y z) -1/2)) (*.f64 x (*.f64 (*.f64 y z) -1/2)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(-.f64 (*.f64 y (*.f64 x (neg.f64 z))) 0)
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(-.f64 0 (*.f64 x (*.f64 y z)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 y (*.f64 x (neg.f64 z))) 1)
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 -2 (*.f64 x (*.f64 y z))) 2)
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 x (*.f64 y (*.f64 z -4))) 4)
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 (*.f64 y (*.f64 x (neg.f64 z))) 8) 8)
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 x (*.f64 y z)) -1)
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 2 (*.f64 (*.f64 y (*.f64 x (neg.f64 z))) 8)) 16)
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 2 (*.f64 x (*.f64 y z))) -2)
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x (neg.f64 z))) 8))) 32)
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x (neg.f64 z))) 8)))) 64)
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x (neg.f64 z))) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x (neg.f64 z))) 8))))) 128)
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(pow.f64 (*.f64 y (*.f64 x (neg.f64 z))) 1)
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
4.2b
(*.f64 y (neg.f64 (*.f64 z x)))
Compiler

Compiled 19 to 6 computations (68.4% saved)

series1.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite150.0ms (1.8%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0917
16217
214517
333917
474317
5197617
6437717
7658417
8745717
9777717
Stop Event
node limit
Counts
1 → 21
Calls
Call 1
Inputs
(*.f64 y (neg.f64 (*.f64 z x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 z x) (neg.f64 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (*.f64 z x) (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (*.f64 y (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (-.f64 1 (+.f64 (*.f64 y (*.f64 z x)) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 z (*.f64 x -1/2))) (*.f64 y (*.f64 z (*.f64 x -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (*.f64 y (*.f64 z x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (*.f64 z x) (neg.f64 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 y (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 -1 (+.f64 (*.f64 y (*.f64 z x)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 1 (*.f64 y (*.f64 z x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 z x) (neg.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 -2 (*.f64 y x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 z (*.f64 x -4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 z x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (*.f64 z x) (neg.f64 y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 x (+.f64 z z))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (*.f64 z x) (neg.f64 y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (*.f64 z x) (neg.f64 y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (*.f64 z x) (neg.f64 y)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 z x) (neg.f64 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 y (*.f64 z x)))))))

simplify225.0ms (2.6%)

Algorithm
egg-herbie
Rules
2464×rational.json-simplify-2
1962×rational.json-simplify-35
1356×rational.json-simplify-48
1228×rational.json-simplify-53
1148×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
063991
1158991
2391991
31171991
42755991
54407991
65578991
76324991
86838991
97216991
Stop Event
node limit
Counts
57 → 29
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 (*.f64 z x) (neg.f64 y)) 0)
(+.f64 0 (*.f64 (*.f64 z x) (neg.f64 y)))
(+.f64 -1 (-.f64 1 (*.f64 y (*.f64 z x))))
(+.f64 -2 (-.f64 1 (+.f64 (*.f64 y (*.f64 z x)) -1)))
(+.f64 (*.f64 y (*.f64 z (*.f64 x -1/2))) (*.f64 y (*.f64 z (*.f64 x -1/2))))
(+.f64 (-.f64 1 (*.f64 y (*.f64 z x))) -1)
(-.f64 (*.f64 (*.f64 z x) (neg.f64 y)) 0)
(-.f64 0 (*.f64 y (*.f64 z x)))
(-.f64 -1 (+.f64 (*.f64 y (*.f64 z x)) -1))
(-.f64 (-.f64 1 (*.f64 y (*.f64 z x))) 1)
(/.f64 (*.f64 (*.f64 z x) (neg.f64 y)) 1)
(/.f64 (*.f64 z (*.f64 -2 (*.f64 y x))) 2)
(/.f64 (*.f64 y (*.f64 z (*.f64 x -4))) 4)
(/.f64 (*.f64 y (*.f64 z x)) -1)
(/.f64 (*.f64 (*.f64 (*.f64 z x) (neg.f64 y)) 8) 8)
(/.f64 (*.f64 y (*.f64 x (+.f64 z z))) -2)
(/.f64 (*.f64 2 (*.f64 (*.f64 (*.f64 z x) (neg.f64 y)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (*.f64 z x) (neg.f64 y)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (*.f64 z x) (neg.f64 y)) 8)))) 64)
(pow.f64 (*.f64 (*.f64 z x) (neg.f64 y)) 1)
(neg.f64 (*.f64 y (*.f64 z x)))
Outputs
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(+.f64 (*.f64 (*.f64 z x) (neg.f64 y)) 0)
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(+.f64 0 (*.f64 (*.f64 z x) (neg.f64 y)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(+.f64 -1 (-.f64 1 (*.f64 y (*.f64 z x))))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(+.f64 -2 (-.f64 1 (+.f64 (*.f64 y (*.f64 z x)) -1)))
(+.f64 -2 (-.f64 1 (+.f64 -1 (*.f64 y (*.f64 z x)))))
(+.f64 -2 (-.f64 1 (+.f64 -1 (*.f64 x (*.f64 y z)))))
(+.f64 (*.f64 y (*.f64 z (*.f64 x -1/2))) (*.f64 y (*.f64 z (*.f64 x -1/2))))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(+.f64 (-.f64 1 (*.f64 y (*.f64 z x))) -1)
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(-.f64 (*.f64 (*.f64 z x) (neg.f64 y)) 0)
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(-.f64 0 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(-.f64 -1 (+.f64 (*.f64 y (*.f64 z x)) -1))
(-.f64 -1 (+.f64 -1 (*.f64 y (*.f64 z x))))
(-.f64 -1 (+.f64 -1 (*.f64 x (*.f64 y z))))
(-.f64 (-.f64 1 (*.f64 y (*.f64 z x))) 1)
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 (*.f64 z x) (neg.f64 y)) 1)
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 z (*.f64 -2 (*.f64 y x))) 2)
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 y (*.f64 z (*.f64 x -4))) 4)
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 y (*.f64 z x)) -1)
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 (*.f64 (*.f64 z x) (neg.f64 y)) 8) 8)
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 y (*.f64 x (+.f64 z z))) -2)
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 2 (*.f64 (*.f64 (*.f64 z x) (neg.f64 y)) 8)) 16)
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (*.f64 z x) (neg.f64 y)) 8))) 32)
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (*.f64 z x) (neg.f64 y)) 8)))) 64)
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(pow.f64 (*.f64 (*.f64 z x) (neg.f64 y)) 1)
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))
(neg.f64 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 x (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 z (neg.f64 x)))

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
7.2b
(*.f64 z (neg.f64 (*.f64 y x)))
Compiler

Compiled 19 to 6 computations (68.4% saved)

series1.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite148.0ms (1.7%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0917
16217
214517
333917
474317
5197617
6437717
7658417
8745717
9777717
Stop Event
node limit
Counts
1 → 21
Calls
Call 1
Inputs
(*.f64 z (neg.f64 (*.f64 y x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 y x) (neg.f64 z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (*.f64 y x) (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (*.f64 z (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (-.f64 1 (+.f64 (*.f64 z (*.f64 y x)) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 y (*.f64 x -1/2))) (*.f64 z (*.f64 y (*.f64 x -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (*.f64 z (*.f64 y x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (*.f64 y x) (neg.f64 z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 z (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 -1 (+.f64 (*.f64 z (*.f64 y x)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 1 (*.f64 z (*.f64 y x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y x) (neg.f64 z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 -2 (*.f64 z x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 y (*.f64 x -4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 y x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (*.f64 y x) (neg.f64 z)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 x (+.f64 y y))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (*.f64 y x) (neg.f64 z)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (*.f64 y x) (neg.f64 z)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (*.f64 y x) (neg.f64 z)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 y x) (neg.f64 z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 z (*.f64 y x)))))))

simplify546.0ms (6.4%)

Algorithm
egg-herbie
Rules
2226×rational.json-simplify-2
1948×rational.json-simplify-35
1356×rational.json-simplify-48
1160×rational.json-simplify-1
1088×exponential.json-simplify-26
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
064991
1160991
2405991
31210991
42844991
54505991
65675991
76410991
86712991
97015991
107866991
Stop Event
node limit
Counts
57 → 28
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 (*.f64 y x) (neg.f64 z)) 0)
(+.f64 0 (*.f64 (*.f64 y x) (neg.f64 z)))
(+.f64 -1 (-.f64 1 (*.f64 z (*.f64 y x))))
(+.f64 -2 (-.f64 1 (+.f64 (*.f64 z (*.f64 y x)) -1)))
(+.f64 (*.f64 z (*.f64 y (*.f64 x -1/2))) (*.f64 z (*.f64 y (*.f64 x -1/2))))
(+.f64 (-.f64 1 (*.f64 z (*.f64 y x))) -1)
(-.f64 (*.f64 (*.f64 y x) (neg.f64 z)) 0)
(-.f64 0 (*.f64 z (*.f64 y x)))
(-.f64 -1 (+.f64 (*.f64 z (*.f64 y x)) -1))
(-.f64 (-.f64 1 (*.f64 z (*.f64 y x))) 1)
(/.f64 (*.f64 (*.f64 y x) (neg.f64 z)) 1)
(/.f64 (*.f64 y (*.f64 -2 (*.f64 z x))) 2)
(/.f64 (*.f64 z (*.f64 y (*.f64 x -4))) 4)
(/.f64 (*.f64 z (*.f64 y x)) -1)
(/.f64 (*.f64 (*.f64 (*.f64 y x) (neg.f64 z)) 8) 8)
(/.f64 (*.f64 z (*.f64 x (+.f64 y y))) -2)
(/.f64 (*.f64 2 (*.f64 (*.f64 (*.f64 y x) (neg.f64 z)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (*.f64 y x) (neg.f64 z)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (*.f64 y x) (neg.f64 z)) 8)))) 64)
(pow.f64 (*.f64 (*.f64 y x) (neg.f64 z)) 1)
(neg.f64 (*.f64 z (*.f64 y x)))
Outputs
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(+.f64 (*.f64 (*.f64 y x) (neg.f64 z)) 0)
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(+.f64 0 (*.f64 (*.f64 y x) (neg.f64 z)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(+.f64 -1 (-.f64 1 (*.f64 z (*.f64 y x))))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(+.f64 -2 (-.f64 1 (+.f64 (*.f64 z (*.f64 y x)) -1)))
(+.f64 -2 (-.f64 1 (+.f64 -1 (*.f64 y (*.f64 z x)))))
(+.f64 (*.f64 z (*.f64 y (*.f64 x -1/2))) (*.f64 z (*.f64 y (*.f64 x -1/2))))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(+.f64 (-.f64 1 (*.f64 z (*.f64 y x))) -1)
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(-.f64 (*.f64 (*.f64 y x) (neg.f64 z)) 0)
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(-.f64 0 (*.f64 z (*.f64 y x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(-.f64 -1 (+.f64 (*.f64 z (*.f64 y x)) -1))
(-.f64 -1 (+.f64 -1 (*.f64 y (*.f64 z x))))
(-.f64 (-.f64 1 (*.f64 z (*.f64 y x))) 1)
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 (*.f64 y x) (neg.f64 z)) 1)
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 y (*.f64 -2 (*.f64 z x))) 2)
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 z (*.f64 y (*.f64 x -4))) 4)
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 z (*.f64 y x)) -1)
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 (*.f64 (*.f64 y x) (neg.f64 z)) 8) 8)
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 z (*.f64 x (+.f64 y y))) -2)
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 2 (*.f64 (*.f64 (*.f64 y x) (neg.f64 z)) 8)) 16)
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (*.f64 y x) (neg.f64 z)) 8))) 32)
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (*.f64 y x) (neg.f64 z)) 8)))) 64)
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(pow.f64 (*.f64 (*.f64 y x) (neg.f64 z)) 1)
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(neg.f64 (*.f64 z (*.f64 y x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 27 to 7 computations (74.1% saved)

series1.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite155.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
1572×rational.json-1
1316×exponential.json-3
1316×rational.json-2
1316×rational.json-4
1316×rational.json-3
Iterations

Useful iterations: 7 (0.0ms)

IterNodesCost
01023
16923
215623
336423
480823
5215823
6454623
7642219
8741219
9799419
Stop Event
node limit
Counts
1 → 27
Calls
Call 1
Inputs
(+.f64 x (*.f64 y (neg.f64 (*.f64 z x))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (-.f64 1 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (-.f64 1 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 x 1/2) (-.f64 1 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 x (*.f64 y (*.f64 z -1/2))) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 1/2 (*.f64 y (*.f64 z -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 1/2 (*.f64 (neg.f64 y) (*.f64 z 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 1/2 (*.f64 (*.f64 y (neg.f64 z)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (*.f64 y z)) (+.f64 x x)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (-.f64 1 (*.f64 y z)) (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 x (*.f64 y (*.f64 z -2))) (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (+.f64 2 (*.f64 y (*.f64 z -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x 1/2) (-.f64 1 (*.f64 y z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (*.f64 y z)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 y z)) (+.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 1)))))

simplify302.0ms (3.5%)

Algorithm
egg-herbie
Rules
1994×rational.json-simplify-2
1838×rational.json-simplify-35
1148×rational.json-simplify-48
878×rational.json-simplify-1
742×exponential.json-simplify-26
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0861413
12061405
24531405
313461189
427001189
535101189
639401189
741951189
844431189
946661189
1052641189
1157761189
1264531189
1375411189
1478701189
Stop Event
node limit
Counts
63 → 37
Calls
Call 1
Inputs
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 y z) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 y z) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 y z) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 y z) 1) x))
x
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 -1 (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 -1 (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
x
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 -1 (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 -1 (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(-.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 0)
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 1)
(*.f64 1 (*.f64 x (-.f64 1 (*.f64 y z))))
(*.f64 2 (*.f64 (*.f64 x 1/2) (-.f64 1 (*.f64 y z))))
(*.f64 2 (+.f64 (*.f64 x (*.f64 y (*.f64 z -1/2))) (*.f64 x 1/2)))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 y (*.f64 z -1/2))))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 (neg.f64 y) (*.f64 z 1/2))))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 (*.f64 y (neg.f64 z)) 1/2)))
(*.f64 (*.f64 (-.f64 1 (*.f64 y z)) (+.f64 x x)) 1/2)
(*.f64 4 (/.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 4))
(*.f64 (*.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 4) 1/4)
(*.f64 1/2 (*.f64 (-.f64 1 (*.f64 y z)) (+.f64 x x)))
(*.f64 1/2 (+.f64 (*.f64 x (*.f64 y (*.f64 z -2))) (+.f64 x x)))
(*.f64 (*.f64 x 1/2) (+.f64 2 (*.f64 y (*.f64 z -2))))
(*.f64 (*.f64 (*.f64 x 1/2) (-.f64 1 (*.f64 y z))) 2)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 1/4 (*.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 4))
(*.f64 (/.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 4) 4)
(/.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 1)
(/.f64 (*.f64 (-.f64 1 (*.f64 y z)) (+.f64 x x)) 2)
(/.f64 (*.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 4) 4)
(/.f64 (*.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 8)))) 64)
(pow.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 1)
Outputs
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 (-.f64 (*.f64 y z) 1) x))
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 (-.f64 (*.f64 y z) 1) x))
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 (-.f64 (*.f64 y z) 1) x))
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 (-.f64 (*.f64 y z) 1) x))
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
x
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
x
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 y (*.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(-.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 0)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 1)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 1 (*.f64 x (-.f64 1 (*.f64 y z))))
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 2 (*.f64 (*.f64 x 1/2) (-.f64 1 (*.f64 y z))))
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 2 (+.f64 (*.f64 x (*.f64 y (*.f64 z -1/2))) (*.f64 x 1/2)))
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 y (*.f64 z -1/2))))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 (neg.f64 y) (*.f64 z 1/2))))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 y (*.f64 z -1/2))))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 (*.f64 y (neg.f64 z)) 1/2)))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 y (*.f64 z -1/2))))
(*.f64 (*.f64 (-.f64 1 (*.f64 y z)) (+.f64 x x)) 1/2)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 4 (/.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 4))
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 4) 1/4)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 1/2 (*.f64 (-.f64 1 (*.f64 y z)) (+.f64 x x)))
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 1/2 (+.f64 (*.f64 x (*.f64 y (*.f64 z -2))) (+.f64 x x)))
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 x 1/2) (+.f64 2 (*.f64 y (*.f64 z -2))))
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 (*.f64 x 1/2) (-.f64 1 (*.f64 y z))) 2)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 1/4 (*.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 4))
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (/.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 4) 4)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(/.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 1)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(/.f64 (*.f64 (-.f64 1 (*.f64 y z)) (+.f64 x x)) 2)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(/.f64 (*.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 4) 4)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(/.f64 (*.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 8) 8)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(/.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 8)) 16)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 8))) 32)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 8)))) 64)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(pow.f64 (*.f64 x (-.f64 1 (*.f64 y z))) 1)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (+.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))

eval23.0ms (0.3%)

Compiler

Compiled 1431 to 662 computations (53.7% saved)

prune23.0ms (0.3%)

Pruning

6 alts after pruning (2 fresh and 4 done)

PrunedKeptTotal
New1441145
Fresh011
Picked101
Done044
Total1456151
Error
0.0b
Counts
151 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
3.8b
(-.f64 x (*.f64 y (*.f64 z x)))
41.7b
(*.f64 z (neg.f64 (*.f64 y x)))
42.1b
(*.f64 y (neg.f64 (*.f64 z x)))
3.4b
(*.f64 x (-.f64 1 (*.f64 y z)))
42.6b
(*.f64 x (*.f64 y (neg.f64 z)))
22.9b
x
Compiler

Compiled 51 to 34 computations (33.3% saved)

localize6.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 21 to 6 computations (71.4% saved)

series2.0ms (0%)

Counts
2 → 36
Calls

18 calls:

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

rewrite111.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
1452×rational.json-simplify-35
1448×exponential.json-3
1448×rational.json-1
1448×rational.json-2
1448×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0832
15432
212932
328832
454432
5131632
6297532
7517832
8663632
Stop Event
node limit
Counts
2 → 63
Calls
Call 1
Inputs
(*.f64 y (*.f64 z x))
(-.f64 x (*.f64 y (*.f64 z x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 z x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 x (*.f64 z 1/2))) (*.f64 y (*.f64 x (*.f64 z 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (*.f64 z x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 z x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 x (+.f64 y y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 z (*.f64 y 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y (*.f64 z x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (*.f64 z x)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (neg.f64 (*.f64 y (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 x (*.f64 y (*.f64 z x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 x (*.f64 y (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (+.f64 x (-.f64 -1 (*.f64 y (*.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (*.f64 y (*.f64 z x))) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 x (-.f64 1 (*.f64 y (*.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x (-.f64 1 (*.f64 y (*.f64 z x)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x 1/2) (*.f64 x (-.f64 1/2 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x 1/2) (-.f64 1 (*.f64 y z))) (*.f64 (*.f64 x 1/2) (-.f64 1 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (*.f64 y (*.f64 z x))) (+.f64 x -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (+.f64 (-.f64 x (*.f64 y (*.f64 z x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x 1) (-.f64 -1 (*.f64 y (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (-.f64 x (*.f64 y (*.f64 z x))) 2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 (*.f64 x 1/2) (-.f64 1 (*.f64 y z))) -1) (+.f64 1 (*.f64 (*.f64 x 1/2) (-.f64 1 (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (-.f64 1 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x (*.f64 y (*.f64 z x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 x (*.f64 y (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 x 1/2) (-.f64 1 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 2 (-.f64 1 (*.f64 y z)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (-.f64 1/2 (*.f64 y (*.f64 z 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (-.f64 1/2 (*.f64 (*.f64 y z) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 y (*.f64 z x)) x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (-.f64 x (*.f64 y (*.f64 z x))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (-.f64 (/.f64 x 4) (/.f64 (*.f64 y (*.f64 z x)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (-.f64 4 (*.f64 z (*.f64 y 4)))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (+.f64 (*.f64 y z) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y z) -1) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 (*.f64 y (*.f64 z x)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 x (*.f64 2 (-.f64 1 (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (-.f64 2 (*.f64 y (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x 1/2) (-.f64 1 (*.f64 y z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (*.f64 y z)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 x (-.f64 4 (*.f64 z (*.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 x (*.f64 y (*.f64 z x))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 2 (*.f64 y (+.f64 z z))) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 x (*.f64 y (*.f64 z x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 2 (-.f64 1 (*.f64 y z)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 y (*.f64 z x)) x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 4 (*.f64 z (*.f64 y 4)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 2 (+.f64 (*.f64 y z) -1))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x (*.f64 y (*.f64 z x))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 (*.f64 z (*.f64 y 4)) 4)) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 x (*.f64 y (*.f64 z x))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x (-.f64 (*.f64 z (*.f64 y 4)) 4))) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 y (*.f64 z x))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 y (*.f64 z x))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x (-.f64 (*.f64 z (*.f64 y 4)) 4)))) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 y (*.f64 z x))) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 x (*.f64 y (*.f64 z x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (*.f64 y (*.f64 z x)) x))))))

simplify140.0ms (1.6%)

Algorithm
egg-herbie
Rules
1174×rational.json-simplify-2
1028×rational.json-simplify-53
954×rational.json-simplify-52
848×rational.json-simplify-51
844×rational.json-simplify-44
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01531973
13651973
27641973
319771973
444381973
552241973
662161973
769901973
Stop Event
node limit
Counts
99 → 85
Calls
Call 1
Inputs
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
x
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 -1 (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 -1 (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
x
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 -1 (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 -1 (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 (*.f64 y (*.f64 z x)) 0)
(+.f64 0 (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 x (*.f64 z 1/2))) (*.f64 y (*.f64 x (*.f64 z 1/2))))
(-.f64 (*.f64 y (*.f64 z x)) 0)
(/.f64 (*.f64 y (*.f64 z x)) 1)
(/.f64 (*.f64 z (*.f64 x (+.f64 y y))) 2)
(/.f64 (*.f64 x (*.f64 z (*.f64 y 4))) 4)
(/.f64 (*.f64 (*.f64 y (*.f64 z x)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8))))) 128)
(pow.f64 (*.f64 y (*.f64 z x)) 1)
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 (-.f64 x (*.f64 y (*.f64 z x))) 0)
(+.f64 0 (-.f64 x (*.f64 y (*.f64 z x))))
(+.f64 1 (+.f64 x (-.f64 -1 (*.f64 y (*.f64 z x)))))
(+.f64 (neg.f64 (*.f64 y (*.f64 z x))) x)
(+.f64 -1 (+.f64 x (-.f64 1 (*.f64 y (*.f64 z x)))))
(+.f64 (+.f64 x (-.f64 1 (*.f64 y (*.f64 z x)))) -1)
(+.f64 (*.f64 x 1/2) (*.f64 x (-.f64 1/2 (*.f64 y z))))
(+.f64 (*.f64 (*.f64 x 1/2) (-.f64 1 (*.f64 y z))) (*.f64 (*.f64 x 1/2) (-.f64 1 (*.f64 y z))))
(+.f64 (-.f64 1 (*.f64 y (*.f64 z x))) (+.f64 x -1))
(+.f64 -2 (+.f64 (-.f64 x (*.f64 y (*.f64 z x))) 2))
(+.f64 (+.f64 x 1) (-.f64 -1 (*.f64 y (*.f64 z x))))
(+.f64 (+.f64 (-.f64 x (*.f64 y (*.f64 z x))) 2) -2)
(+.f64 (+.f64 (*.f64 (*.f64 x 1/2) (-.f64 1 (*.f64 y z))) -1) (+.f64 1 (*.f64 (*.f64 x 1/2) (-.f64 1 (*.f64 y z)))))
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 (-.f64 x (*.f64 y (*.f64 z x))) 1)
(*.f64 1 (-.f64 x (*.f64 y (*.f64 z x))))
(*.f64 2 (*.f64 (*.f64 x 1/2) (-.f64 1 (*.f64 y z))))
(*.f64 (*.f64 x (*.f64 2 (-.f64 1 (*.f64 y z)))) 1/2)
(*.f64 (+.f64 x x) (-.f64 1/2 (*.f64 y (*.f64 z 1/2))))
(*.f64 (+.f64 x x) (-.f64 1/2 (*.f64 (*.f64 y z) 1/2)))
(*.f64 (-.f64 (*.f64 y (*.f64 z x)) x) -1)
(*.f64 4 (/.f64 (-.f64 x (*.f64 y (*.f64 z x))) 4))
(*.f64 4 (-.f64 (/.f64 x 4) (/.f64 (*.f64 y (*.f64 z x)) 4)))
(*.f64 (*.f64 x (-.f64 4 (*.f64 z (*.f64 y 4)))) 1/4)
(*.f64 (neg.f64 x) (+.f64 (*.f64 y z) -1))
(*.f64 (+.f64 (*.f64 y z) -1) (neg.f64 x))
(*.f64 -1 (-.f64 (*.f64 y (*.f64 z x)) x))
(*.f64 1/2 (*.f64 x (*.f64 2 (-.f64 1 (*.f64 y z)))))
(*.f64 (*.f64 x 1/2) (-.f64 2 (*.f64 y (+.f64 z z))))
(*.f64 (*.f64 (*.f64 x 1/2) (-.f64 1 (*.f64 y z))) 2)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 1/4 (*.f64 x (-.f64 4 (*.f64 z (*.f64 y 4)))))
(*.f64 (/.f64 (-.f64 x (*.f64 y (*.f64 z x))) 4) 4)
(*.f64 (-.f64 2 (*.f64 y (+.f64 z z))) (*.f64 x 1/2))
(/.f64 (-.f64 x (*.f64 y (*.f64 z x))) 1)
(/.f64 (*.f64 x (*.f64 2 (-.f64 1 (*.f64 y z)))) 2)
(/.f64 (-.f64 (*.f64 y (*.f64 z x)) x) -1)
(/.f64 (*.f64 x (-.f64 4 (*.f64 z (*.f64 y 4)))) 4)
(/.f64 (*.f64 x (*.f64 2 (+.f64 (*.f64 y z) -1))) -2)
(/.f64 (*.f64 (-.f64 x (*.f64 y (*.f64 z x))) 8) 8)
(/.f64 (*.f64 x (-.f64 (*.f64 z (*.f64 y 4)) 4)) -4)
(/.f64 (*.f64 2 (*.f64 (-.f64 x (*.f64 y (*.f64 z x))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 x (-.f64 (*.f64 z (*.f64 y 4)) 4))) -8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 y (*.f64 z x))) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 y (*.f64 z x))) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (-.f64 (*.f64 z (*.f64 y 4)) 4)))) -16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 y (*.f64 z x))) 8))))) 128)
(pow.f64 (-.f64 x (*.f64 y (*.f64 z x))) 1)
(neg.f64 (-.f64 (*.f64 y (*.f64 z x)) x))
Outputs
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
x
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 y (*.f64 z x)))
(*.f64 z (neg.f64 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 y (*.f64 z x)))
(*.f64 z (neg.f64 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
x
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 y (*.f64 z x)))
(*.f64 z (neg.f64 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 y (*.f64 z x)))
(*.f64 z (neg.f64 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 (*.f64 y (*.f64 z x)) 0)
(*.f64 y (*.f64 z x))
(+.f64 0 (*.f64 y (*.f64 z x)))
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 x (*.f64 z 1/2))) (*.f64 y (*.f64 x (*.f64 z 1/2))))
(*.f64 y (*.f64 z x))
(-.f64 (*.f64 y (*.f64 z x)) 0)
(*.f64 y (*.f64 z x))
(/.f64 (*.f64 y (*.f64 z x)) 1)
(*.f64 y (*.f64 z x))
(/.f64 (*.f64 z (*.f64 x (+.f64 y y))) 2)
(*.f64 y (*.f64 z x))
(/.f64 (*.f64 x (*.f64 z (*.f64 y 4))) 4)
(*.f64 y (*.f64 z x))
(/.f64 (*.f64 (*.f64 y (*.f64 z x)) 8) 8)
(*.f64 y (*.f64 z x))
(/.f64 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8)) 16)
(*.f64 y (*.f64 z x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8))) 32)
(*.f64 y (*.f64 z x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8)))) 64)
(*.f64 y (*.f64 z x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8))))) 128)
(*.f64 y (*.f64 z x))
(pow.f64 (*.f64 y (*.f64 z x)) 1)
(*.f64 y (*.f64 z x))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 (-.f64 x (*.f64 y (*.f64 z x))) 0)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(+.f64 0 (-.f64 x (*.f64 y (*.f64 z x))))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(+.f64 1 (+.f64 x (-.f64 -1 (*.f64 y (*.f64 z x)))))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 (neg.f64 (*.f64 y (*.f64 z x))) x)
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 -1 (+.f64 x (-.f64 1 (*.f64 y (*.f64 z x)))))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 (+.f64 x (-.f64 1 (*.f64 y (*.f64 z x)))) -1)
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 (*.f64 x 1/2) (*.f64 x (-.f64 1/2 (*.f64 y z))))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 (*.f64 x 1/2) (-.f64 1 (*.f64 y z))) (*.f64 (*.f64 x 1/2) (-.f64 1 (*.f64 y z))))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (-.f64 1 (*.f64 y (*.f64 z x))) (+.f64 x -1))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 -2 (+.f64 (-.f64 x (*.f64 y (*.f64 z x))) 2))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (+.f64 x 1) (-.f64 -1 (*.f64 y (*.f64 z x))))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 z (neg.f64 (*.f64 y x))))
(+.f64 (+.f64 (-.f64 x (*.f64 y (*.f64 z x))) 2) -2)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (+.f64 (*.f64 (*.f64 x 1/2) (-.f64 1 (*.f64 y z))) -1) (+.f64 1 (*.f64 (*.f64 x 1/2) (-.f64 1 (*.f64 y z)))))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (-.f64 x (*.f64 y (*.f64 z x))) 1)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 1 (-.f64 x (*.f64 y (*.f64 z x))))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 2 (*.f64 (*.f64 x 1/2) (-.f64 1 (*.f64 y z))))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 x (*.f64 2 (-.f64 1 (*.f64 y z)))) 1/2)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (+.f64 x x) (-.f64 1/2 (*.f64 y (*.f64 z 1/2))))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (+.f64 x x) (-.f64 1/2 (*.f64 (*.f64 y z) 1/2)))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (-.f64 (*.f64 y (*.f64 z x)) x) -1)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 4 (/.f64 (-.f64 x (*.f64 y (*.f64 z x))) 4))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 4 (-.f64 (/.f64 x 4) (/.f64 (*.f64 y (*.f64 z x)) 4)))
(*.f64 4 (-.f64 (/.f64 x 4) (*.f64 (*.f64 z x) (/.f64 y 4))))
(*.f64 4 (-.f64 (/.f64 x 4) (*.f64 y (/.f64 (*.f64 z x) 4))))
(*.f64 4 (-.f64 (/.f64 x 4) (*.f64 z (/.f64 (*.f64 y x) 4))))
(*.f64 4 (-.f64 (/.f64 x 4) (*.f64 y (*.f64 z (/.f64 x 4)))))
(*.f64 (*.f64 x (-.f64 4 (*.f64 z (*.f64 y 4)))) 1/4)
(*.f64 x (*.f64 (-.f64 4 (*.f64 y (*.f64 4 z))) 1/4))
(*.f64 (-.f64 4 (*.f64 y (*.f64 z 4))) (*.f64 1/4 x))
(*.f64 x (*.f64 (-.f64 4 (*.f64 y (*.f64 z 4))) 1/4))
(*.f64 (neg.f64 x) (+.f64 (*.f64 y z) -1))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (+.f64 (*.f64 y z) -1) (neg.f64 x))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 -1 (-.f64 (*.f64 y (*.f64 z x)) x))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 1/2 (*.f64 x (*.f64 2 (-.f64 1 (*.f64 y z)))))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 x 1/2) (-.f64 2 (*.f64 y (+.f64 z z))))
(*.f64 x (*.f64 1/2 (-.f64 2 (*.f64 y (+.f64 z z)))))
(*.f64 (*.f64 (*.f64 x 1/2) (-.f64 1 (*.f64 y z))) 2)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 1/4 (*.f64 x (-.f64 4 (*.f64 z (*.f64 y 4)))))
(*.f64 x (*.f64 (-.f64 4 (*.f64 y (*.f64 4 z))) 1/4))
(*.f64 (-.f64 4 (*.f64 y (*.f64 z 4))) (*.f64 1/4 x))
(*.f64 x (*.f64 (-.f64 4 (*.f64 y (*.f64 z 4))) 1/4))
(*.f64 (/.f64 (-.f64 x (*.f64 y (*.f64 z x))) 4) 4)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (-.f64 2 (*.f64 y (+.f64 z z))) (*.f64 x 1/2))
(*.f64 x (*.f64 1/2 (-.f64 2 (*.f64 y (+.f64 z z)))))
(/.f64 (-.f64 x (*.f64 y (*.f64 z x))) 1)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(/.f64 (*.f64 x (*.f64 2 (-.f64 1 (*.f64 y z)))) 2)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(/.f64 (-.f64 (*.f64 y (*.f64 z x)) x) -1)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(/.f64 (*.f64 x (-.f64 4 (*.f64 z (*.f64 y 4)))) 4)
(*.f64 (-.f64 4 (*.f64 y (*.f64 4 z))) (/.f64 x 4))
(*.f64 (/.f64 x 4) (-.f64 4 (*.f64 y (*.f64 z 4))))
(*.f64 x (/.f64 (-.f64 4 (*.f64 y (*.f64 z 4))) 4))
(/.f64 (*.f64 x (*.f64 2 (+.f64 (*.f64 y z) -1))) -2)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(/.f64 (*.f64 (-.f64 x (*.f64 y (*.f64 z x))) 8) 8)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(/.f64 (*.f64 x (-.f64 (*.f64 z (*.f64 y 4)) 4)) -4)
(*.f64 (-.f64 (*.f64 y (*.f64 4 z)) 4) (/.f64 x -4))
(*.f64 x (/.f64 (-.f64 (*.f64 y (*.f64 z 4)) 4) -4))
(/.f64 (*.f64 2 (*.f64 (-.f64 x (*.f64 y (*.f64 z x))) 8)) 16)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(/.f64 (*.f64 2 (*.f64 x (-.f64 (*.f64 z (*.f64 y 4)) 4))) -8)
(*.f64 (-.f64 (*.f64 y (*.f64 4 z)) 4) (/.f64 x -4))
(*.f64 x (/.f64 (-.f64 (*.f64 y (*.f64 z 4)) 4) -4))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 y (*.f64 z x))) 8))) 32)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 y (*.f64 z x))) 8)))) 64)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (-.f64 (*.f64 z (*.f64 y 4)) 4)))) -16)
(*.f64 (-.f64 (*.f64 y (*.f64 4 z)) 4) (/.f64 x -4))
(*.f64 x (/.f64 (-.f64 (*.f64 y (*.f64 z 4)) 4) -4))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 y (*.f64 z x))) 8))))) 128)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(pow.f64 (-.f64 x (*.f64 y (*.f64 z x))) 1)
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))
(neg.f64 (-.f64 (*.f64 y (*.f64 z x)) x))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(-.f64 x (*.f64 y (*.f64 z x)))

eval16.0ms (0.2%)

Compiler

Compiled 930 to 482 computations (48.2% saved)

prune14.0ms (0.2%)

Pruning

6 alts after pruning (1 fresh and 5 done)

PrunedKeptTotal
New85085
Fresh011
Picked011
Done044
Total85691
Error
0.0b
Counts
91 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
3.8b
(-.f64 x (*.f64 y (*.f64 z x)))
41.7b
(*.f64 z (neg.f64 (*.f64 y x)))
42.1b
(*.f64 y (neg.f64 (*.f64 z x)))
3.4b
(*.f64 x (-.f64 1 (*.f64 y z)))
42.6b
(*.f64 x (*.f64 y (neg.f64 z)))
22.9b
x
Compiler

Compiled 51 to 34 computations (33.3% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune2.0ms (0%)

Pruning

6 alts after pruning (1 fresh and 5 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done055
Total066
Error
0.0b
Counts
6 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
3.8b
(-.f64 x (*.f64 y (*.f64 z x)))
41.7b
(*.f64 z (neg.f64 (*.f64 y x)))
42.1b
(*.f64 y (neg.f64 (*.f64 z x)))
3.4b
(*.f64 x (-.f64 1 (*.f64 y z)))
42.6b
(*.f64 x (*.f64 y (neg.f64 z)))
22.9b
x
Compiler

Compiled 51 to 34 computations (33.3% saved)

regimes73.0ms (0.9%)

Counts
7 → 3
Calls
Call 1
Inputs
x
(*.f64 x (*.f64 y (neg.f64 z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 z (neg.f64 (*.f64 y x)))
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(+.f64 x (*.f64 y (neg.f64 (*.f64 z x))))
Outputs
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
Calls

6 calls:

15.0ms
x
15.0ms
z
14.0ms
(*.f64 y z)
11.0ms
y
10.0ms
(*.f64 x (-.f64 1 (*.f64 y z)))
Results
ErrorSegmentsBranch
1.0b3x
1.8b2y
1.9b2z
1.1b2(*.f64 x (-.f64 1 (*.f64 y z)))
0.1b3(-.f64 1 (*.f64 y z))
0.1b3(*.f64 y z)
Compiler

Compiled 80 to 45 computations (43.8% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
3.8443006549485953e+133
2.656594607038858e+143
0.0ms
-2.0674608030817747e+131
-2.813522319650888e+106
Compiler

Compiled 16 to 12 computations (25% saved)

regimes568.0ms (6.7%)

Counts
4 → 5
Calls
Call 1
Inputs
x
(*.f64 x (*.f64 y (neg.f64 z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 z (neg.f64 (*.f64 y x)))
Outputs
(*.f64 z (neg.f64 (*.f64 y x)))
x
(*.f64 y (neg.f64 (*.f64 z x)))
x
(*.f64 z (neg.f64 (*.f64 y x)))
Calls

3 calls:

281.0ms
x
267.0ms
y
19.0ms
z
Results
ErrorSegmentsBranch
18.6b7x
13.8b3y
11.8b5z
Compiler

Compiled 34 to 21 computations (38.2% saved)

bsearch340.0ms (4%)

Algorithm
binary-search
Steps
TimeLeftRight
305.0ms
1.9591965933157832e+146
5.164205220143023e+147
5.0ms
3.010591185618737e+98
4.216331688251773e+98
15.0ms
8.137537067674969e+58
3.5483664261533683e+61
15.0ms
-4.220433012809279e-125
-2.0786640720747743e-134
Results
331.0ms432×body256valid
4.0ms47×body256infinite
Compiler

Compiled 421 to 309 computations (26.6% saved)

regimes605.0ms (7.1%)

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

3 calls:

566.0ms
y
21.0ms
x
16.0ms
z
Results
ErrorSegmentsBranch
18.6b7x
13.8b3y
12.9b5z
Compiler

Compiled 28 to 18 computations (35.7% saved)

bsearch49.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
12.0ms
1.9591965933157832e+146
5.164205220143023e+147
8.0ms
3.010591185618737e+98
4.216331688251773e+98
14.0ms
8.137537067674969e+58
3.5483664261533683e+61
16.0ms
-4.220433012809279e-125
-2.0786640720747743e-134
Results
39.0ms432×body256valid
4.0ms45×body256infinite
Compiler

Compiled 421 to 309 computations (26.6% saved)

regimes268.0ms (3.1%)

Accuracy

Total -46.9b remaining (-325.4%)

Threshold costs -46.9b (-325.4%)

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

3 calls:

244.0ms
x
15.0ms
z
8.0ms
y
Results
ErrorSegmentsBranch
21.4b3x
15.9b3y
14.4b5z
Compiler

Compiled 22 to 15 computations (31.8% saved)

bsearch660.0ms (7.7%)

Algorithm
binary-search
Steps
TimeLeftRight
12.0ms
1.9591965933157832e+146
5.164205220143023e+147
0.0ms
2.9076994862203134e+98
3.010591185618737e+98
634.0ms
8.137537067674969e+58
3.5483664261533683e+61
14.0ms
-4.220433012809279e-125
-2.0786640720747743e-134
Results
654.0ms384×body256valid
2.0ms23×body256infinite
Compiler

Compiled 376 to 276 computations (26.6% saved)

simplify5.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
060351
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(if (<=.f64 (*.f64 y z) -199999999999999982405111001914463627825705729939051460364922737117355163153802565541919878198424069508213948681199740222346696327168) (*.f64 y (neg.f64 (*.f64 z x))) (if (<=.f64 (*.f64 y z) 49999999999999996074101824835349657503774913686486230752187555524924150803830162236428630807572544714024682228918922745266209965473792) (*.f64 x (-.f64 1 (*.f64 y z))) (*.f64 y (neg.f64 (*.f64 z x)))))
(if (<=.f64 z -4001264621376699/95268205270873786358080970147496530326800480428008152797215483387004752771599292606210513399154418065180265231976520474104247304665780191232) (*.f64 z (neg.f64 (*.f64 y x))) (if (<=.f64 z 16499999999999998808075809225231341040328650319347482110197760) x (if (<=.f64 z 339999999999999971895944586424545662563549598468438427671047163314019776660028888071559059729285120) (*.f64 y (neg.f64 (*.f64 z x))) (if (<=.f64 z 1120000000000000032140223629930867719454525247454291456843154938062299071428022202505601559213264535504816297638180086199671044673084035020198248448) x (*.f64 z (neg.f64 (*.f64 y x)))))))
(if (<=.f64 z -4001264621376699/95268205270873786358080970147496530326800480428008152797215483387004752771599292606210513399154418065180265231976520474104247304665780191232) (*.f64 y (neg.f64 (*.f64 z x))) (if (<=.f64 z 34000000000000002560905678218396284651621838722941351633092608) x (if (<=.f64 z 420000000000000008136215935268462382860750389803340998352620886714513869370015311858343953309892608) (*.f64 y (neg.f64 (*.f64 z x))) (if (<=.f64 z 550000000000000041133268450231358399806205474754497700404331131948773409849217068635538437050805245050881144828025292077772388227650709633753939968) x (*.f64 y (neg.f64 (*.f64 z x)))))))
(if (<=.f64 z -4001264621376699/95268205270873786358080970147496530326800480428008152797215483387004752771599292606210513399154418065180265231976520474104247304665780191232) (*.f64 x (*.f64 y (neg.f64 z))) (if (<=.f64 z 7399999999999999768189570468943727721359570026448748179095552) x (if (<=.f64 z 300000000000000014484211794056620768648133791035952974905474021993132769424173480518925525601746944) (*.f64 x (*.f64 y (neg.f64 z))) (if (<=.f64 z 700000000000000020087639768706792324659078279658932160526971836288936919642513876566000974508290334690510186023862553874794402920677521887623905280) x (*.f64 x (*.f64 y (neg.f64 z)))))))
x
Outputs
(if (<=.f64 (*.f64 y z) -199999999999999982405111001914463627825705729939051460364922737117355163153802565541919878198424069508213948681199740222346696327168) (*.f64 y (neg.f64 (*.f64 z x))) (if (<=.f64 (*.f64 y z) 49999999999999996074101824835349657503774913686486230752187555524924150803830162236428630807572544714024682228918922745266209965473792) (*.f64 x (-.f64 1 (*.f64 y z))) (*.f64 y (neg.f64 (*.f64 z x)))))
(if (<=.f64 z -4001264621376699/95268205270873786358080970147496530326800480428008152797215483387004752771599292606210513399154418065180265231976520474104247304665780191232) (*.f64 z (neg.f64 (*.f64 y x))) (if (<=.f64 z 16499999999999998808075809225231341040328650319347482110197760) x (if (<=.f64 z 339999999999999971895944586424545662563549598468438427671047163314019776660028888071559059729285120) (*.f64 y (neg.f64 (*.f64 z x))) (if (<=.f64 z 1120000000000000032140223629930867719454525247454291456843154938062299071428022202505601559213264535504816297638180086199671044673084035020198248448) x (*.f64 z (neg.f64 (*.f64 y x)))))))
(if (<=.f64 z -4001264621376699/95268205270873786358080970147496530326800480428008152797215483387004752771599292606210513399154418065180265231976520474104247304665780191232) (*.f64 y (neg.f64 (*.f64 z x))) (if (<=.f64 z 34000000000000002560905678218396284651621838722941351633092608) x (if (<=.f64 z 420000000000000008136215935268462382860750389803340998352620886714513869370015311858343953309892608) (*.f64 y (neg.f64 (*.f64 z x))) (if (<=.f64 z 550000000000000041133268450231358399806205474754497700404331131948773409849217068635538437050805245050881144828025292077772388227650709633753939968) x (*.f64 y (neg.f64 (*.f64 z x)))))))
(if (<=.f64 z -4001264621376699/95268205270873786358080970147496530326800480428008152797215483387004752771599292606210513399154418065180265231976520474104247304665780191232) (*.f64 x (*.f64 y (neg.f64 z))) (if (<=.f64 z 7399999999999999768189570468943727721359570026448748179095552) x (if (<=.f64 z 300000000000000014484211794056620768648133791035952974905474021993132769424173480518925525601746944) (*.f64 x (*.f64 y (neg.f64 z))) (if (<=.f64 z 700000000000000020087639768706792324659078279658932160526971836288936919642513876566000974508290334690510186023862553874794402920677521887623905280) x (*.f64 x (*.f64 y (neg.f64 z)))))))
x
Compiler

Compiled 155 to 76 computations (51% saved)

soundness236.0ms (2.8%)

Algorithm
egg-herbie
Rules
2582×rational.json-simplify-2
2220×rational.json-simplify-35
1246×rational.json-simplify-51
1064×rational.json-simplify-1
942×rational.json-simplify-53
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01362273
13462095
28351843
319921843
452301843
562731843
671031843
774461843
876861843
978671843
Stop Event
node limit
Compiler

Compiled 23 to 12 computations (47.8% saved)

end60.0ms (0.7%)

Compiler

Compiled 211 to 90 computations (57.3% saved)

Profiling

Loading profile data...