Details

Time bar (total: 11.2s)

analyze175.0ms (1.6%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
0%0%99.9%0.1%0%0%0%4
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 (19.5%)

Results
1.9s8256×body256valid
167.0ms807×body256infinite
Bogosity

preprocess10.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)

simplify352.0ms (3.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
2.8b
Counts
2 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
2.8b
(*.f64 x (-.f64 1 (*.f64 y z)))
Compiler

Compiled 10 to 7 computations (30% saved)

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 22 to 10 computations (54.5% saved)

series3.0ms (0%)

Counts
1 → 36
Calls

9 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)))

rewrite225.0ms (2%)

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
0919
16819
214919
328119
450919
5111319
6236319
7396919
8511819
9646619
10750619
11761519
12774019
Stop Event
node limit
Counts
1 → 14
Calls
Call 1
Inputs
(*.f64 x (-.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)))))

simplify919.0ms (8.2%)

Algorithm
egg-herbie
Rules
3656×rational.json-simplify-35
2980×rational.json-simplify-2
1534×rational.json-simplify-53
1080×exponential.json-simplify-26
810×rational.json-simplify-43
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0521022
1135978
2258978
3566978
41989978
53932978
64519978
74752978
84936978
95120978
105121978
115999978
126439978
136628978
146686978
156881978
167061978
177241978
187421978
197601978
207781978
217961978
Stop Event
node limit
Counts
50 → 25
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)
(+.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)
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 -1 (*.f64 y (*.f64 z x))))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 (*.f64 z x) (neg.f64 y)))
(+.f64 x (*.f64 y (*.f64 z (neg.f64 x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 -1 (*.f64 y (*.f64 z x))))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 (*.f64 z x) (neg.f64 y)))
(+.f64 x (*.f64 y (*.f64 z (neg.f64 x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 -1 (*.f64 y (*.f64 z x))))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 (*.f64 z x) (neg.f64 y)))
(+.f64 x (*.f64 y (*.f64 z (neg.f64 x))))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 y (*.f64 z (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 -1 (*.f64 y (*.f64 z x))))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 (*.f64 z x) (neg.f64 y)))
(+.f64 x (*.f64 y (*.f64 z (neg.f64 x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 -1 (*.f64 y (*.f64 z x))))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 (*.f64 z x) (neg.f64 y)))
(+.f64 x (*.f64 y (*.f64 z (neg.f64 x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 -1 (*.f64 y (*.f64 z x))))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 (*.f64 z x) (neg.f64 y)))
(+.f64 x (*.f64 y (*.f64 z (neg.f64 x))))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 y (*.f64 z (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 -1 (*.f64 y (*.f64 z x))))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 (*.f64 z x) (neg.f64 y)))
(+.f64 x (*.f64 y (*.f64 z (neg.f64 x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 -1 (*.f64 y (*.f64 z x))))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 (*.f64 z x) (neg.f64 y)))
(+.f64 x (*.f64 y (*.f64 z (neg.f64 x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 -1 (*.f64 y (*.f64 z x))))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 (*.f64 z x) (neg.f64 y)))
(+.f64 x (*.f64 y (*.f64 z (neg.f64 x))))
x
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 -1 (*.f64 y (*.f64 z x))))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 (*.f64 z x) (neg.f64 y)))
(+.f64 x (*.f64 y (*.f64 z (neg.f64 x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 -1 (*.f64 y (*.f64 z x))))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 (*.f64 z x) (neg.f64 y)))
(+.f64 x (*.f64 y (*.f64 z (neg.f64 x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 -1 (*.f64 y (*.f64 z x))))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 (*.f64 z x) (neg.f64 y)))
(+.f64 x (*.f64 y (*.f64 z (neg.f64 x))))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 y (*.f64 z (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 -1 (*.f64 y (*.f64 z x))))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 (*.f64 z x) (neg.f64 y)))
(+.f64 x (*.f64 y (*.f64 z (neg.f64 x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 -1 (*.f64 y (*.f64 z x))))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 (*.f64 z x) (neg.f64 y)))
(+.f64 x (*.f64 y (*.f64 z (neg.f64 x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 -1 (*.f64 y (*.f64 z x))))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 (*.f64 z x) (neg.f64 y)))
(+.f64 x (*.f64 y (*.f64 z (neg.f64 x))))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(neg.f64 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 z x) (neg.f64 y))
(*.f64 y (*.f64 z (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 -1 (*.f64 y (*.f64 z x))))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 (*.f64 z x) (neg.f64 y)))
(+.f64 x (*.f64 y (*.f64 z (neg.f64 x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 -1 (*.f64 y (*.f64 z x))))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 (*.f64 z x) (neg.f64 y)))
(+.f64 x (*.f64 y (*.f64 z (neg.f64 x))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(+.f64 x (*.f64 -1 (*.f64 y (*.f64 z x))))
(+.f64 x (neg.f64 (*.f64 y (*.f64 z x))))
(+.f64 x (*.f64 (*.f64 z x) (neg.f64 y)))
(+.f64 x (*.f64 y (*.f64 z (neg.f64 x))))
(+.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)

eval4.0ms (0%)

Compiler

Compiled 260 to 147 computations (43.5% saved)

prune6.0ms (0.1%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New22325
Fresh000
Picked011
Done000
Total22426
Error
0.1b
Counts
26 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
5.7b
(+.f64 x (*.f64 (*.f64 z x) (neg.f64 y)))
41.5b
(*.f64 (*.f64 z x) (neg.f64 y))
2.8b
(*.f64 x (-.f64 1 (*.f64 y z)))
24.5b
x
Compiler

Compiled 34 to 23 computations (32.4% saved)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 17 to 6 computations (64.7% saved)

series7.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

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

rewrite273.0ms (2.4%)

Algorithm
batch-egg-rewrite
Rules
1742×rational.json-simplify-35
1694×rational.json-1
1694×rational.json-2
1194×exponential.json-3
1194×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0917
16217
214517
333717
471517
5184317
6408117
7621917
8767317
Stop Event
node limit
Counts
1 → 21
Calls
Call 1
Inputs
(*.f64 (*.f64 z x) (neg.f64 y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 x (neg.f64 y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (*.f64 x (neg.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (*.f64 z (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 x (*.f64 y -1/2))) (*.f64 z (*.f64 x (*.f64 y -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (*.f64 z (*.f64 x y))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (*.f64 x (neg.f64 y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 z (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 1 (*.f64 z (*.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 x (neg.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 x (*.f64 y -2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 x (*.f64 y -4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 x y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 z (*.f64 x (neg.f64 y))) 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 z (*.f64 x (neg.f64 y))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 z (*.f64 x (+.f64 y y)))) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 x (neg.f64 y))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 x (neg.f64 y))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 x (neg.f64 y))) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 x (neg.f64 y))) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (*.f64 x (neg.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 z (*.f64 x y)))))))

simplify498.0ms (4.4%)

Algorithm
egg-herbie
Rules
2560×rational.json-simplify-35
2376×rational.json-simplify-2
1706×rational.json-simplify-53
1148×rational.json-simplify-1
782×exponential.json-simplify-26
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
067969
1179969
2387969
3944969
42501969
54115969
65454969
75917969
86215969
96301969
106363969
117162969
127566969
137854969
Stop Event
node limit
Counts
57 → 25
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 z (*.f64 x (neg.f64 y))) 0)
(+.f64 0 (*.f64 z (*.f64 x (neg.f64 y))))
(+.f64 -1 (-.f64 1 (*.f64 z (*.f64 x y))))
(+.f64 (*.f64 z (*.f64 x (*.f64 y -1/2))) (*.f64 z (*.f64 x (*.f64 y -1/2))))
(+.f64 (-.f64 1 (*.f64 z (*.f64 x y))) -1)
(-.f64 (*.f64 z (*.f64 x (neg.f64 y))) 0)
(-.f64 0 (*.f64 z (*.f64 x y)))
(-.f64 (-.f64 1 (*.f64 z (*.f64 x y))) 1)
(/.f64 (*.f64 z (*.f64 x (neg.f64 y))) 1)
(/.f64 (*.f64 z (*.f64 x (*.f64 y -2))) 2)
(/.f64 (*.f64 z (*.f64 x (*.f64 y -4))) 4)
(/.f64 (*.f64 z (*.f64 x y)) -1)
(/.f64 (*.f64 (*.f64 z (*.f64 x (neg.f64 y))) 8) 8)
(/.f64 (*.f64 z (*.f64 x (+.f64 y y))) -2)
(/.f64 (*.f64 2 (*.f64 (*.f64 z (*.f64 x (neg.f64 y))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 z (*.f64 x (+.f64 y y)))) -4)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 x (neg.f64 y))) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 x (neg.f64 y))) 8)))) 64)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 x (neg.f64 y))) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 x (neg.f64 y))) 8))))) 128)
(pow.f64 (*.f64 z (*.f64 x (neg.f64 y))) 1)
(neg.f64 (*.f64 z (*.f64 x y)))
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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 z (neg.f64 x)))
(+.f64 (*.f64 z (*.f64 x (neg.f64 y))) 0)
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 z (neg.f64 x)))
(+.f64 0 (*.f64 z (*.f64 x (neg.f64 y))))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 z (neg.f64 x)))
(+.f64 -1 (-.f64 1 (*.f64 z (*.f64 x y))))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 z (neg.f64 x)))
(+.f64 (*.f64 z (*.f64 x (*.f64 y -1/2))) (*.f64 z (*.f64 x (*.f64 y -1/2))))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 z (neg.f64 x)))
(+.f64 (-.f64 1 (*.f64 z (*.f64 x y))) -1)
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 z (neg.f64 x)))
(-.f64 (*.f64 z (*.f64 x (neg.f64 y))) 0)
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 z (neg.f64 x)))
(-.f64 0 (*.f64 z (*.f64 x y)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 z (neg.f64 x)))
(-.f64 (-.f64 1 (*.f64 z (*.f64 x y))) 1)
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 z (*.f64 x (neg.f64 y))) 1)
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 z (*.f64 x (*.f64 y -2))) 2)
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 z (*.f64 x (*.f64 y -4))) 4)
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 z (*.f64 x y)) -1)
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 (*.f64 z (*.f64 x (neg.f64 y))) 8) 8)
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 z (*.f64 x (+.f64 y y))) -2)
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 2 (*.f64 (*.f64 z (*.f64 x (neg.f64 y))) 8)) 16)
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 2 (*.f64 z (*.f64 x (+.f64 y y)))) -4)
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 x (neg.f64 y))) 8))) 32)
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 x (neg.f64 y))) 8)))) 64)
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 z (neg.f64 x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 x (neg.f64 y))) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 x (neg.f64 y))) 8))))) 128)
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 z (neg.f64 x)))
(pow.f64 (*.f64 z (*.f64 x (neg.f64 y))) 1)
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 z (neg.f64 x)))
(neg.f64 (*.f64 z (*.f64 x y)))
(neg.f64 (*.f64 x (*.f64 y z)))
(*.f64 y (neg.f64 (*.f64 z x)))
(*.f64 y (*.f64 z (neg.f64 x)))

localize9.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 25 to 7 computations (72% saved)

series1.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite153.0ms (1.4%)

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

Useful iterations: 6 (0.0ms)

IterNodesCost
01023
16923
215623
336423
479523
5207323
6440419
7635819
8732519
9785619
Stop Event
node limit
Counts
1 → 30
Calls
Call 1
Inputs
(+.f64 x (*.f64 (*.f64 z x) (neg.f64 y)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (-.f64 1 (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (-.f64 1 (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (-.f64 1 (*.f64 z y)) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 x 1/2) (*.f64 x (*.f64 z (*.f64 y -1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 (-.f64 1 (*.f64 z y)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 1/2 (*.f64 (*.f64 z (neg.f64 y)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 1/2 (*.f64 z (*.f64 y -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 2 (-.f64 1 (*.f64 z y)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (*.f64 z y)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (-.f64 1 (*.f64 z y))) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 x (*.f64 2 (-.f64 1 (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 x (*.f64 z (*.f64 y -2))) (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (*.f64 2 (-.f64 1 (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (+.f64 2 (*.f64 z (*.f64 y -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (*.f64 z y)) (*.f64 x 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (*.f64 z y)) 1/2) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 2 (-.f64 1 (*.f64 z y)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 1)))))

simplify315.0ms (2.8%)

Algorithm
egg-herbie
Rules
2236×rational.json-simplify-2
1844×rational.json-simplify-35
980×rational.json-simplify-48
904×rational.json-simplify-1
722×rational.json-simplify-53
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0881638
12091502
24711502
315781270
431231270
539691270
644551270
746831270
848921270
950791270
1056941270
1161131270
1266031270
1374811270
1479661270
Stop Event
node limit
Counts
66 → 49
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 z y))) 0)
(*.f64 x (-.f64 1 (*.f64 z y)))
(*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 1)
(*.f64 1 (*.f64 x (-.f64 1 (*.f64 z y))))
(*.f64 2 (*.f64 (-.f64 1 (*.f64 z y)) (*.f64 x 1/2)))
(*.f64 2 (+.f64 (*.f64 x 1/2) (*.f64 x (*.f64 z (*.f64 y -1/2)))))
(*.f64 (+.f64 x x) (*.f64 (-.f64 1 (*.f64 z y)) 1/2))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 (*.f64 z (neg.f64 y)) 1/2)))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 z (*.f64 y -1/2))))
(*.f64 (*.f64 x (*.f64 2 (-.f64 1 (*.f64 z y)))) 1/2)
(*.f64 4 (/.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4))
(*.f64 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4) 1/4)
(*.f64 (-.f64 1 (*.f64 z y)) x)
(*.f64 (*.f64 2 (-.f64 1 (*.f64 z y))) (*.f64 x 1/2))
(*.f64 1/2 (*.f64 x (*.f64 2 (-.f64 1 (*.f64 z y)))))
(*.f64 1/2 (+.f64 (*.f64 x (*.f64 z (*.f64 y -2))) (+.f64 x x)))
(*.f64 (*.f64 x 1/2) (*.f64 2 (-.f64 1 (*.f64 z y))))
(*.f64 (*.f64 x 1/2) (+.f64 2 (*.f64 z (*.f64 y -2))))
(*.f64 (*.f64 (-.f64 1 (*.f64 z y)) (*.f64 x 1/2)) 2)
(*.f64 (*.f64 (-.f64 1 (*.f64 z y)) 1/2) (+.f64 x x))
(*.f64 1/4 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4))
(*.f64 (/.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4) 4)
(/.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 1)
(/.f64 (*.f64 x (*.f64 2 (-.f64 1 (*.f64 z y)))) 2)
(/.f64 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4) 4)
(/.f64 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 8)))) 64)
(pow.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 1)
Outputs
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) 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 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 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 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 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 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 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 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 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) 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 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) 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 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) 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 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) 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 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) 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 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) 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 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) 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 z (neg.f64 x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) 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 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) 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 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) 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 z (neg.f64 x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) 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 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) 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 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) 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 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) 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 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) 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 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) 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 z (neg.f64 x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) 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 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) 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 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) 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 z (neg.f64 x)))
(*.f64 y (*.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) 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 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) 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 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(-.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 0)
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 x (-.f64 1 (*.f64 z y)))
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 1)
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 1 (*.f64 x (-.f64 1 (*.f64 z y))))
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 2 (*.f64 (-.f64 1 (*.f64 z y)) (*.f64 x 1/2)))
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 2 (+.f64 (*.f64 x 1/2) (*.f64 x (*.f64 z (*.f64 y -1/2)))))
(*.f64 2 (*.f64 x (+.f64 1/2 (*.f64 y (*.f64 z -1/2)))))
(*.f64 x (*.f64 (+.f64 1/2 (*.f64 z (*.f64 y -1/2))) 2))
(*.f64 x (*.f64 2 (+.f64 1/2 (*.f64 y (*.f64 z -1/2)))))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 y (*.f64 z -1/2))))
(*.f64 (+.f64 x x) (*.f64 (-.f64 1 (*.f64 z y)) 1/2))
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 (*.f64 z (neg.f64 y)) 1/2)))
(*.f64 2 (+.f64 (*.f64 x 1/2) (*.f64 x (*.f64 z (*.f64 y -1/2)))))
(*.f64 2 (*.f64 x (+.f64 1/2 (*.f64 y (*.f64 z -1/2)))))
(*.f64 x (*.f64 (+.f64 1/2 (*.f64 z (*.f64 y -1/2))) 2))
(*.f64 x (*.f64 2 (+.f64 1/2 (*.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 z (*.f64 y -1/2))))
(*.f64 2 (+.f64 (*.f64 x 1/2) (*.f64 x (*.f64 z (*.f64 y -1/2)))))
(*.f64 2 (*.f64 x (+.f64 1/2 (*.f64 y (*.f64 z -1/2)))))
(*.f64 x (*.f64 (+.f64 1/2 (*.f64 z (*.f64 y -1/2))) 2))
(*.f64 x (*.f64 2 (+.f64 1/2 (*.f64 y (*.f64 z -1/2)))))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 y (*.f64 z -1/2))))
(*.f64 (*.f64 x (*.f64 2 (-.f64 1 (*.f64 z y)))) 1/2)
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 4 (/.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4))
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4) 1/4)
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (-.f64 1 (*.f64 z y)) x)
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 2 (-.f64 1 (*.f64 z y))) (*.f64 x 1/2))
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 1/2 (*.f64 x (*.f64 2 (-.f64 1 (*.f64 z y)))))
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 1/2 (+.f64 (*.f64 x (*.f64 z (*.f64 y -2))) (+.f64 x x)))
(*.f64 1/2 (+.f64 x (+.f64 x (*.f64 x (*.f64 z (*.f64 y -2))))))
(*.f64 1/2 (+.f64 (+.f64 x x) (*.f64 y (*.f64 (*.f64 z -2) x))))
(*.f64 1/2 (*.f64 x (+.f64 2 (*.f64 y (*.f64 z -2)))))
(*.f64 1/2 (*.f64 x (+.f64 2 (*.f64 z (*.f64 y -2)))))
(*.f64 (*.f64 x 1/2) (*.f64 2 (-.f64 1 (*.f64 z y))))
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 x 1/2) (+.f64 2 (*.f64 z (*.f64 y -2))))
(*.f64 1/2 (+.f64 x (+.f64 x (*.f64 x (*.f64 z (*.f64 y -2))))))
(*.f64 1/2 (+.f64 (+.f64 x x) (*.f64 y (*.f64 (*.f64 z -2) x))))
(*.f64 1/2 (*.f64 x (+.f64 2 (*.f64 y (*.f64 z -2)))))
(*.f64 1/2 (*.f64 x (+.f64 2 (*.f64 z (*.f64 y -2)))))
(*.f64 (*.f64 (-.f64 1 (*.f64 z y)) (*.f64 x 1/2)) 2)
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 (-.f64 1 (*.f64 z y)) 1/2) (+.f64 x x))
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 1/4 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4))
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(*.f64 (/.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4) 4)
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(/.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 1)
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(/.f64 (*.f64 x (*.f64 2 (-.f64 1 (*.f64 z y)))) 2)
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(/.f64 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4) 4)
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(/.f64 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 8) 8)
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(/.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 8)) 16)
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) 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 z y))) 8))) 32)
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) 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 z y))) 8)))) 64)
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))
(pow.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 1)
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 x (*.f64 y (*.f64 z x)))

eval18.0ms (0.2%)

Compiler

Compiled 1045 to 542 computations (48.1% saved)

prune16.0ms (0.1%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New95499
Fresh011
Picked101
Done022
Total967103
Error
0.0b
Counts
103 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
5.7b
(-.f64 x (*.f64 y (*.f64 z x)))
4.8b
(+.f64 x (neg.f64 (*.f64 z (*.f64 x y))))
41.5b
(*.f64 (*.f64 z x) (neg.f64 y))
2.8b
(*.f64 x (-.f64 1 (*.f64 y z)))
42.0b
(neg.f64 (*.f64 z (*.f64 x y)))
41.1b
(neg.f64 (*.f64 x (*.f64 y z)))
24.5b
x
Compiler

Compiled 62 to 41 computations (33.9% saved)

localize350.0ms (3.1%)

Local error

Found 1 expressions with local error:

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

Compiled 20 to 6 computations (70% saved)

series1.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite227.0ms (2%)

Algorithm
batch-egg-rewrite
Rules
2168×rational.json-simplify-2
1512×rational.json-simplify-1
1370×exponential.json-3
1370×rational.json-1
1370×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
14813
211713
325013
445213
5105813
6217013
7336113
8399313
9494913
10554213
11554213
12689613
13798613
Stop Event
node limit
Counts
1 → 14
Calls
Call 1
Inputs
(*.f64 x (*.f64 y z))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 y 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 x (*.f64 (*.f64 y z) 1/2)) (*.f64 x (*.f64 (*.f64 y z) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 y z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 y (+.f64 z z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 x (*.f64 z 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 y (*.f64 z 8))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x (*.f64 y (*.f64 z 8)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 y (*.f64 z 8))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 y (*.f64 z 8)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 y (*.f64 z 8))))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 y (*.f64 z 8)))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 y z)) 1)))))

simplify467.0ms (4.2%)

Algorithm
egg-herbie
Rules
4324×rational.json-simplify-53
3824×rational.json-simplify-35
2442×rational.json-simplify-2
1568×exponential.json-simplify-26
682×rational.json-simplify-43
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
050650
1139650
2292650
3736650
41988650
53653650
64149650
74512650
84729650
94940650
105829650
116577650
126577650
136577650
146787650
156997650
167207650
177417650
187627650
Stop Event
node limit
Counts
50 → 17
Calls
Call 1
Inputs
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 x (*.f64 y z)) 0)
(+.f64 0 (*.f64 x (*.f64 y z)))
(+.f64 (*.f64 x (*.f64 (*.f64 y z) 1/2)) (*.f64 x (*.f64 (*.f64 y z) 1/2)))
(-.f64 (*.f64 x (*.f64 y z)) 0)
(/.f64 (*.f64 x (*.f64 y z)) 1)
(/.f64 (*.f64 x (*.f64 y (+.f64 z z))) 2)
(/.f64 (*.f64 y (*.f64 x (*.f64 z 4))) 4)
(/.f64 (*.f64 x (*.f64 y (*.f64 z 8))) 8)
(/.f64 (*.f64 2 (*.f64 x (*.f64 y (*.f64 z 8)))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 y (*.f64 z 8))))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 y (*.f64 z 8)))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 y (*.f64 z 8))))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 y (*.f64 z 8)))))))) 256)
(pow.f64 (*.f64 x (*.f64 y z)) 1)
Outputs
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(+.f64 (*.f64 x (*.f64 y z)) 0)
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(+.f64 0 (*.f64 x (*.f64 y z)))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(+.f64 (*.f64 x (*.f64 (*.f64 y z) 1/2)) (*.f64 x (*.f64 (*.f64 y z) 1/2)))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(-.f64 (*.f64 x (*.f64 y z)) 0)
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 x (*.f64 y z)) 1)
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 x (*.f64 y (+.f64 z z))) 2)
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 y (*.f64 x (*.f64 z 4))) 4)
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 x (*.f64 y (*.f64 z 8))) 8)
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 x (*.f64 y (*.f64 z 8)))) 16)
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 y (*.f64 z 8))))) 32)
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 y (*.f64 z 8)))))) 64)
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 y (*.f64 z 8))))))) 128)
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 y (*.f64 z 8)))))))) 256)
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(pow.f64 (*.f64 x (*.f64 y z)) 1)
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))

localize19.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
6.0b
(*.f64 z (*.f64 x y))
Compiler

Compiled 20 to 6 computations (70% saved)

series1.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite224.0ms (2%)

Algorithm
batch-egg-rewrite
Rules
2168×rational.json-simplify-2
1512×rational.json-simplify-1
1370×exponential.json-3
1370×rational.json-1
1370×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
14813
211713
325013
445213
5105813
6217013
7336113
8399313
9494913
10554213
11554213
12689613
13798613
Stop Event
node limit
Counts
1 → 14
Calls
Call 1
Inputs
(*.f64 z (*.f64 x y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 (*.f64 x y) 1/2)) (*.f64 z (*.f64 (*.f64 x y) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (*.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 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 z (*.f64 x (*.f64 y 8))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 z (*.f64 x (*.f64 y 8)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 x (*.f64 y 8))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 x (*.f64 y 8)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 x (*.f64 y 8))))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 x (*.f64 y 8)))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (*.f64 x y)) 1)))))

simplify469.0ms (4.2%)

Algorithm
egg-herbie
Rules
4344×rational.json-simplify-53
3944×rational.json-simplify-35
2452×rational.json-simplify-2
1600×exponential.json-simplify-26
688×rational.json-simplify-43
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
050650
1139650
2292650
3737650
42003650
53669650
64194650
74561650
84783650
94999650
105896650
116669650
126669650
136669650
146884650
157099650
167314650
177529650
187744650
Stop Event
node limit
Counts
50 → 16
Calls
Call 1
Inputs
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 z (*.f64 x y)) 0)
(+.f64 0 (*.f64 z (*.f64 x y)))
(+.f64 (*.f64 z (*.f64 (*.f64 x y) 1/2)) (*.f64 z (*.f64 (*.f64 x y) 1/2)))
(-.f64 (*.f64 z (*.f64 x y)) 0)
(/.f64 (*.f64 z (*.f64 x y)) 1)
(/.f64 (*.f64 z (*.f64 x (+.f64 y y))) 2)
(/.f64 (*.f64 x (*.f64 z (*.f64 y 4))) 4)
(/.f64 (*.f64 z (*.f64 x (*.f64 y 8))) 8)
(/.f64 (*.f64 2 (*.f64 z (*.f64 x (*.f64 y 8)))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 x (*.f64 y 8))))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 x (*.f64 y 8)))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 x (*.f64 y 8))))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 x (*.f64 y 8)))))))) 256)
(pow.f64 (*.f64 z (*.f64 x y)) 1)
Outputs
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(+.f64 (*.f64 z (*.f64 x y)) 0)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(+.f64 0 (*.f64 z (*.f64 x y)))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(+.f64 (*.f64 z (*.f64 (*.f64 x y) 1/2)) (*.f64 z (*.f64 (*.f64 x y) 1/2)))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(-.f64 (*.f64 z (*.f64 x y)) 0)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 z (*.f64 x y)) 1)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 z (*.f64 x (+.f64 y y))) 2)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 x (*.f64 z (*.f64 y 4))) 4)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 z (*.f64 x (*.f64 y 8))) 8)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 z (*.f64 x (*.f64 y 8)))) 16)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 x (*.f64 y 8))))) 32)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 x (*.f64 y 8)))))) 64)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 x (*.f64 y 8))))))) 128)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 x (*.f64 y 8)))))))) 256)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(pow.f64 (*.f64 z (*.f64 x y)) 1)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 28 to 7 computations (75% saved)

series1.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite133.0ms (1.2%)

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

Useful iterations: 5 (0.0ms)

IterNodesCost
01023
17123
217123
341123
496023
5267719
6488819
7638419
8757919
Stop Event
node limit
Counts
1 → 22
Calls
Call 1
Inputs
(+.f64 x (neg.f64 (*.f64 z (*.f64 x y))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (-.f64 1 (*.f64 z (*.f64 x y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (-.f64 1 (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (-.f64 1 (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 x 1/2) (-.f64 1 (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 2 (-.f64 1 (*.f64 z y)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 x (*.f64 2 (-.f64 1 (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x 1/2) (-.f64 1 (*.f64 z y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (*.f64 z y)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 2 (-.f64 1 (*.f64 z y)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 1)))))

simplify988.0ms (8.8%)

Algorithm
egg-herbie
Rules
3794×rational.json-simplify-49
3736×rational.json-simplify-35
1436×rational.json-simplify-2
922×rational.json-simplify-1
690×rational.json-simplify-48
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0641066
11451058
23421058
310321058
419661058
528821058
633891058
737041058
839351058
941511058
1043111058
1144951058
1246211058
1347681058
1448801058
1549701058
1650801058
1751691058
1852581058
1952581058
2052581058
2153401058
2254221058
2355041058
2455861058
2556681058
2657501058
2758321058
2859141058
2959961058
3060781058
3161601058
3262421058
3363241058
3464061058
Stop Event
node limit
Counts
58 → 31
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 x (-.f64 1 (*.f64 z y))) 0)
(-.f64 (+.f64 x (-.f64 1 (*.f64 z (*.f64 x y)))) 1)
(*.f64 x (-.f64 1 (*.f64 z y)))
(*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 1)
(*.f64 1 (*.f64 x (-.f64 1 (*.f64 z y))))
(*.f64 2 (*.f64 (*.f64 x 1/2) (-.f64 1 (*.f64 z y))))
(*.f64 (*.f64 x (*.f64 2 (-.f64 1 (*.f64 z y)))) 1/2)
(*.f64 4 (/.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4))
(*.f64 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4) 1/4)
(*.f64 1/2 (*.f64 x (*.f64 2 (-.f64 1 (*.f64 z y)))))
(*.f64 (*.f64 (*.f64 x 1/2) (-.f64 1 (*.f64 z y))) 2)
(*.f64 (-.f64 1 (*.f64 z y)) x)
(*.f64 1/4 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4))
(*.f64 (/.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4) 4)
(/.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 1)
(/.f64 (*.f64 x (*.f64 2 (-.f64 1 (*.f64 z y)))) 2)
(/.f64 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4) 4)
(/.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4))))) 64)
(pow.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 1)
Outputs
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 (-.f64 1 (*.f64 y z)) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 (+.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
x
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
x
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 -1 (*.f64 y (*.f64 z x)))
(*.f64 (*.f64 y x) (neg.f64 z))
(*.f64 y (*.f64 x (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 z x))) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 0)
(*.f64 x (-.f64 1 (*.f64 y z)))
(-.f64 (+.f64 x (-.f64 1 (*.f64 z (*.f64 x y)))) 1)
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 x (-.f64 1 (*.f64 z y)))
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 1)
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 1 (*.f64 x (-.f64 1 (*.f64 z y))))
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 2 (*.f64 (*.f64 x 1/2) (-.f64 1 (*.f64 z y))))
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 (*.f64 x (*.f64 2 (-.f64 1 (*.f64 z y)))) 1/2)
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 4 (/.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4))
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4) 1/4)
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 1/2 (*.f64 x (*.f64 2 (-.f64 1 (*.f64 z y)))))
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 (*.f64 (*.f64 x 1/2) (-.f64 1 (*.f64 z y))) 2)
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 (-.f64 1 (*.f64 z y)) x)
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 1/4 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4))
(*.f64 x (-.f64 1 (*.f64 y z)))
(*.f64 (/.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4) 4)
(*.f64 x (-.f64 1 (*.f64 y z)))
(/.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 1)
(*.f64 x (-.f64 1 (*.f64 y z)))
(/.f64 (*.f64 x (*.f64 2 (-.f64 1 (*.f64 z y)))) 2)
(*.f64 x (-.f64 1 (*.f64 y z)))
(/.f64 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4) 4)
(*.f64 x (-.f64 1 (*.f64 y z)))
(/.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4)) 8)
(*.f64 x (-.f64 1 (*.f64 y z)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4))) 16)
(*.f64 x (-.f64 1 (*.f64 y z)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4)))) 32)
(*.f64 x (-.f64 1 (*.f64 y z)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 4))))) 64)
(*.f64 x (-.f64 1 (*.f64 y z)))
(pow.f64 (*.f64 x (-.f64 1 (*.f64 z y))) 1)
(*.f64 x (-.f64 1 (*.f64 y z)))

localize7.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 21 to 6 computations (71.4% saved)

series1.0ms (0%)

Counts
2 → 36
Calls

18 calls:

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

rewrite111.0ms (1%)

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))))))

simplify143.0ms (1.3%)

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)))

eval30.0ms (0.3%)

Compiler

Compiled 1804 to 996 computations (44.8% saved)

prune23.0ms (0.2%)

Pruning

7 alts after pruning (1 fresh and 6 done)

PrunedKeptTotal
New1650165
Fresh011
Picked011
Done055
Total1657172
Error
0.0b
Counts
172 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
5.7b
(-.f64 x (*.f64 y (*.f64 z x)))
4.8b
(+.f64 x (neg.f64 (*.f64 z (*.f64 x y))))
41.5b
(*.f64 (*.f64 z x) (neg.f64 y))
2.8b
(*.f64 x (-.f64 1 (*.f64 y z)))
42.0b
(neg.f64 (*.f64 z (*.f64 x y)))
41.1b
(neg.f64 (*.f64 x (*.f64 y z)))
24.5b
x
Compiler

Compiled 62 to 41 computations (33.9% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune3.0ms (0%)

Pruning

7 alts after pruning (1 fresh and 6 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done066
Total077
Error
0.0b
Counts
7 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
5.7b
(-.f64 x (*.f64 y (*.f64 z x)))
4.8b
(+.f64 x (neg.f64 (*.f64 z (*.f64 x y))))
41.5b
(*.f64 (*.f64 z x) (neg.f64 y))
2.8b
(*.f64 x (-.f64 1 (*.f64 y z)))
42.0b
(neg.f64 (*.f64 z (*.f64 x y)))
41.1b
(neg.f64 (*.f64 x (*.f64 y z)))
24.5b
x
Compiler

Compiled 62 to 41 computations (33.9% saved)

regimes83.0ms (0.7%)

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

6 calls:

22.0ms
z
16.0ms
x
14.0ms
(*.f64 y z)
10.0ms
(-.f64 1 (*.f64 y z))
9.0ms
y
Results
ErrorSegmentsBranch
1.1b3x
1.4b2y
0.7b4z
1.1b2(*.f64 x (-.f64 1 (*.f64 y z)))
0.1b3(-.f64 1 (*.f64 y z))
0.1b3(*.f64 y z)
Compiler

Compiled 88 to 45 computations (48.9% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
9.729691844246147e+140
1.1796691413337828e+143
0.0ms
-inf
-4.674516080844315e+295
Compiler

Compiled 16 to 12 computations (25% saved)

regimes78.0ms (0.7%)

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

4 calls:

27.0ms
z
27.0ms
x
11.0ms
(*.f64 y z)
11.0ms
y
Results
ErrorSegmentsBranch
20.5b7x
13.8b3y
13.6b8z
2.4b4(*.f64 y z)
Compiler

Compiled 40 to 25 computations (37.5% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
9.729691844246147e+140
1.1796691413337828e+143
0.0ms
1.4867002351540628e-6
1661.824676420232
0.0ms
-1.7500864941387482
-0.010545939537442916
Compiler

Compiled 16 to 12 computations (25% saved)

regimes65.0ms (0.6%)

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

4 calls:

20.0ms
x
19.0ms
z
15.0ms
(*.f64 y z)
9.0ms
y
Results
ErrorSegmentsBranch
20.6b7x
14.9b3y
14.7b5z
1.5b5(*.f64 y z)
Compiler

Compiled 34 to 22 computations (35.3% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
6.712872370263676e+148
3.6218914873527216e+155
0.0ms
1.4867002351540628e-6
1661.824676420232
0.0ms
-1.7500864941387482
-0.010545939537442916
0.0ms
-inf
-4.674516080844315e+295
Compiler

Compiled 16 to 12 computations (25% saved)

regimes44.0ms (0.4%)

Accuracy

Total -57.1b remaining (-1330.3%)

Threshold costs -57.1b (-1330.3%)

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

4 calls:

15.0ms
x
12.0ms
z
8.0ms
y
7.0ms
(*.f64 y z)
Results
ErrorSegmentsBranch
21.9b5x
15.1b3y
16.9b3z
4.3b3(*.f64 y z)
Compiler

Compiled 28 to 19 computations (32.1% saved)

bsearch26.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
16.0ms
1.4867002351540628e-6
1661.824676420232
10.0ms
-1.7500864941387482
-0.010545939537442916
Results
23.0ms256×body256valid
Compiler

Compiled 224 to 172 computations (23.2% saved)

simplify4.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
043375
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(if (<=.f64 (*.f64 y z) -inf.0) (neg.f64 (*.f64 z (*.f64 x y))) (if (<=.f64 (*.f64 y z) 1000000000000000016976219238238959704141045173573106739630601035115997744067216908958262325956255112879408454231155599236459402033650892537856) (*.f64 x (-.f64 1 (*.f64 y z))) (*.f64 (*.f64 z x) (neg.f64 y))))
(if (<=.f64 (*.f64 y z) -1) (*.f64 (*.f64 z x) (neg.f64 y)) (if (<=.f64 (*.f64 y z) 4722366482869645/2361183241434822606848) x (if (<=.f64 (*.f64 y z) 1000000000000000016976219238238959704141045173573106739630601035115997744067216908958262325956255112879408454231155599236459402033650892537856) (neg.f64 (*.f64 x (*.f64 y z))) (*.f64 (*.f64 z x) (neg.f64 y)))))
(if (<=.f64 (*.f64 y z) -inf.0) (neg.f64 (*.f64 z (*.f64 x y))) (if (<=.f64 (*.f64 y z) -1) (neg.f64 (*.f64 x (*.f64 y z))) (if (<=.f64 (*.f64 y z) 4722366482869645/2361183241434822606848) x (if (<=.f64 (*.f64 y z) 100000000000000004897672657515052057957222700353074388874504237459016826359338475616123152924727646379311306468151027676205343291866258521710227619840) (neg.f64 (*.f64 x (*.f64 y z))) (neg.f64 (*.f64 z (*.f64 x y)))))))
(if (<=.f64 (*.f64 y z) -1) (neg.f64 (*.f64 x (*.f64 y z))) (if (<=.f64 (*.f64 y z) 1) x (neg.f64 (*.f64 x (*.f64 y z)))))
x
Outputs
(if (<=.f64 (*.f64 y z) -inf.0) (neg.f64 (*.f64 z (*.f64 x y))) (if (<=.f64 (*.f64 y z) 1000000000000000016976219238238959704141045173573106739630601035115997744067216908958262325956255112879408454231155599236459402033650892537856) (*.f64 x (-.f64 1 (*.f64 y z))) (*.f64 (*.f64 z x) (neg.f64 y))))
(if (<=.f64 (*.f64 y z) -1) (*.f64 (*.f64 z x) (neg.f64 y)) (if (<=.f64 (*.f64 y z) 4722366482869645/2361183241434822606848) x (if (<=.f64 (*.f64 y z) 1000000000000000016976219238238959704141045173573106739630601035115997744067216908958262325956255112879408454231155599236459402033650892537856) (neg.f64 (*.f64 x (*.f64 y z))) (*.f64 (*.f64 z x) (neg.f64 y)))))
(if (<=.f64 (*.f64 y z) -inf.0) (neg.f64 (*.f64 z (*.f64 x y))) (if (<=.f64 (*.f64 y z) -1) (neg.f64 (*.f64 x (*.f64 y z))) (if (<=.f64 (*.f64 y z) 4722366482869645/2361183241434822606848) x (if (<=.f64 (*.f64 y z) 100000000000000004897672657515052057957222700353074388874504237459016826359338475616123152924727646379311306468151027676205343291866258521710227619840) (neg.f64 (*.f64 x (*.f64 y z))) (neg.f64 (*.f64 z (*.f64 x y)))))))
(if (<=.f64 (*.f64 y z) -1) (neg.f64 (*.f64 x (*.f64 y z))) (if (<=.f64 (*.f64 y z) 1) x (neg.f64 (*.f64 x (*.f64 y z)))))
x
Compiler

Compiled 158 to 73 computations (53.8% saved)

soundness1.9s (17.1%)

Algorithm
egg-herbie
Rules
3656×rational.json-simplify-35
3656×rational.json-simplify-35
2980×rational.json-simplify-2
2980×rational.json-simplify-2
1534×rational.json-simplify-53
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0521022
1135978
2258978
3566978
41989978
53932978
64519978
74752978
84936978
95120978
105121978
115999978
126439978
136628978
146686978
156881978
167061978
177241978
187421978
197601978
207781978
217961978
0521022
1135978
2258978
3566978
41989978
53932978
64519978
74752978
84936978
95120978
105121978
115999978
126439978
136628978
146686978
156881978
167061978
177241978
187421978
197601978
207781978
217961978
Stop Event
node limit
node limit
Compiler

Compiled 60 to 30 computations (50% saved)

end622.0ms (5.5%)

Compiler

Compiled 214 to 86 computations (59.8% saved)

Profiling

Loading profile data...