Details

Time bar (total: 18.5s)

analyze1.1s (6.1%)

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.6%25%72.5%0.1%2.3%0%0%9
36.7%34.3%59.3%0.1%6.2%0%0%10
44.2%40.6%51.3%0.1%8%0%0%11
52.1%46.8%43%0.1%10%0%0%12
Compiler

Compiled 11 to 7 computations (36.4% saved)

sample3.4s (18.6%)

Results
3.3s8256×body256valid
92.0ms1093×body256infinite
Bogosity

preprocess10.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01776
12576
033
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
2
Call 2
Inputs
(+.f64 x (*.f64 y (-.f64 z x)))
(+.f64 y (*.f64 x (-.f64 z y)))
(+.f64 z (*.f64 y (-.f64 x z)))
(+.f64 x (*.f64 z (-.f64 y x)))
Outputs
(+.f64 x (*.f64 y (-.f64 z x)))
(+.f64 y (*.f64 x (-.f64 z y)))
(+.f64 z (*.f64 y (-.f64 x z)))
(+.f64 x (*.f64 z (-.f64 y x)))
Compiler

Compiled 13 to 9 computations (30.8% saved)

simplify10.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

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

eval0.0ms (0%)

Compiler

Compiled 10 to 6 computations (40% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

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

Compiled 10 to 6 computations (40% saved)

localize6.0ms (0%)

Local error

Found 2 expressions with local error:

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

Compiled 21 to 6 computations (71.4% saved)

series4.0ms (0%)

Counts
2 → 60
Calls

18 calls:

TimeVariablePointExpression
0.0ms
z
@-inf
(*.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 x (*.f64 y (-.f64 z x)))
0.0ms
y
@-inf
(*.f64 y (-.f64 z x))

rewrite116.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
1812×rational.json-1
1576×rational.json-simplify-35
1284×rational.json-2
1284×rational.json-3
1276×exponential.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0832
15232
211432
324832
447432
5111432
6316832
7587432
8786832
Stop Event
node limit
Counts
2 → 34
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 (-.f64 z x) (*.f64 y 1/2)) (*.f64 (-.f64 z x) (*.f64 y 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 (-.f64 z x) (+.f64 y y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 z x) (*.f64 y 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 (-.f64 z x) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 y (*.f64 (-.f64 z x) 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (-.f64 z x) 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (-.f64 z x) 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (-.f64 z x) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (-.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 (+.f64 x (*.f64 y (-.f64 z x))) 0)))) (#(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 (*.f64 y (-.f64 z x))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 1/4) 4)))) (#(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 (+.f64 x (*.f64 y (-.f64 z x))) 2) 2)))) (#(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 (+.f64 x (*.f64 y (-.f64 z x))) 8) 8)))) (#(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 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 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 8)))) (*.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)))))

simplify450.0ms (2.4%)

Algorithm
egg-herbie
Rules
3728×rational.json-simplify-41
2422×rational.json-simplify-35
2058×rational.json-simplify-2
748×rational.json-simplify-53
676×exponential.json-simplify-26
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0921912
12101666
25431666
314241622
427051622
534841622
639171622
742301622
844251622
945551622
1046831622
1150771622
1252431622
1353011622
1453521622
1554701622
1655671622
1756371622
1857691622
1958991622
Stop Event
node limit
Counts
94 → 60
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 (*.f64 y z) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 (*.f64 y z) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(+.f64 (*.f64 y z) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 (*.f64 y z) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 (*.f64 y z) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(*.f64 -1 (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (-.f64 y 1) x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (-.f64 y 1) x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (-.f64 y 1) x)))
x
(+.f64 (*.f64 y (-.f64 z x)) x)
(+.f64 (*.f64 y (-.f64 z x)) x)
(+.f64 (*.f64 y (-.f64 z x)) x)
(*.f64 y (-.f64 z x))
(+.f64 (*.f64 y (-.f64 z x)) x)
(+.f64 (*.f64 y (-.f64 z x)) x)
(+.f64 (*.f64 y (-.f64 z x)) x)
(*.f64 y (-.f64 z x))
(+.f64 (*.f64 y (-.f64 z x)) x)
(+.f64 (*.f64 y (-.f64 z x)) x)
(+.f64 (*.f64 y (-.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 (*.f64 y z) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 -1 (*.f64 y x))))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 -1 (*.f64 y x))))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 y (-.f64 z x)) 0)
(+.f64 0 (*.f64 y (-.f64 z x)))
(+.f64 (*.f64 (-.f64 z x) (*.f64 y 1/2)) (*.f64 (-.f64 z x) (*.f64 y 1/2)))
(-.f64 (*.f64 y (-.f64 z x)) 0)
(/.f64 (*.f64 y (-.f64 z x)) 1)
(/.f64 (*.f64 (-.f64 z x) (+.f64 y y)) 2)
(/.f64 (*.f64 (-.f64 z x) (*.f64 y 4)) 4)
(/.f64 (*.f64 y (*.f64 (-.f64 z x) 8)) 8)
(/.f64 (*.f64 2 (*.f64 y (*.f64 (-.f64 z x) 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (-.f64 z x) 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (-.f64 z x) 8))))) 64)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (-.f64 z x) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (-.f64 z x) 8)))))) 128)
(pow.f64 (*.f64 y (-.f64 z x)) 1)
(-.f64 (+.f64 x (*.f64 y (-.f64 z x))) 0)
(*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 1)
(*.f64 1 (+.f64 x (*.f64 y (-.f64 z x))))
(*.f64 2 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 1/2))
(*.f64 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 2) 1/2)
(*.f64 4 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 1/4))
(*.f64 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 4) 1/4)
(*.f64 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 8) 1/8)
(*.f64 1/2 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 2))
(*.f64 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 4))
(*.f64 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 1/4) 4)
(/.f64 (+.f64 x (*.f64 y (-.f64 z x))) 1)
(/.f64 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 2) 2)
(/.f64 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 4) 4)
(/.f64 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 8)) 16)
(/.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 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 8)))) (*.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)
Outputs
(*.f64 -1 (*.f64 y x))
(*.f64 y (neg.f64 x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 y z))
(*.f64 y (+.f64 z (neg.f64 x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 y z))
(*.f64 y (+.f64 z (neg.f64 x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 y z))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 y z))
(*.f64 y (+.f64 z (neg.f64 x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 y z))
(*.f64 y (+.f64 z (neg.f64 x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 y z))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 y z))
(*.f64 y (+.f64 z (neg.f64 x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 y z))
(*.f64 y (+.f64 z (neg.f64 x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 y z))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 y z))
(*.f64 y (+.f64 z (neg.f64 x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 y z))
(*.f64 y (+.f64 z (neg.f64 x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 y z))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y x))
(*.f64 y (neg.f64 x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 y z))
(*.f64 y (+.f64 z (neg.f64 x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 y z))
(*.f64 y (+.f64 z (neg.f64 x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 y z))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y x))
(*.f64 y (neg.f64 x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 y z))
(*.f64 y (+.f64 z (neg.f64 x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 y z))
(*.f64 y (+.f64 z (neg.f64 x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 y z))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 1 (*.f64 -1 y))))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 1 (neg.f64 y))))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(+.f64 (*.f64 y z) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 1 (*.f64 -1 y))))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 1 (neg.f64 y))))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(+.f64 (*.f64 y z) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 1 (*.f64 -1 y))))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 1 (neg.f64 y))))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 x (+.f64 1 (*.f64 -1 y)))
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 x (-.f64 1 y))
(+.f64 (*.f64 y z) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 1 (*.f64 -1 y))))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 1 (neg.f64 y))))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(+.f64 (*.f64 y z) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 1 (*.f64 -1 y))))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 1 (neg.f64 y))))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(+.f64 (*.f64 y z) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 1 (*.f64 -1 y))))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 1 (neg.f64 y))))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(*.f64 -1 (*.f64 (-.f64 y 1) x))
(*.f64 x (+.f64 1 (*.f64 -1 y)))
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 x (-.f64 1 y))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (-.f64 y 1) x)))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 1 (*.f64 -1 y))))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 1 (neg.f64 y))))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (-.f64 y 1) x)))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 1 (*.f64 -1 y))))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 1 (neg.f64 y))))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 (-.f64 y 1) x)))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 1 (*.f64 -1 y))))
(+.f64 (*.f64 y z) (*.f64 x (+.f64 1 (neg.f64 y))))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
x
(+.f64 (*.f64 y (-.f64 z x)) x)
(+.f64 x (*.f64 y (-.f64 z x)))
(+.f64 (*.f64 y (-.f64 z x)) x)
(+.f64 x (*.f64 y (-.f64 z x)))
(+.f64 (*.f64 y (-.f64 z x)) x)
(+.f64 x (*.f64 y (-.f64 z x)))
(*.f64 y (-.f64 z x))
(+.f64 (*.f64 y (-.f64 z x)) x)
(+.f64 x (*.f64 y (-.f64 z x)))
(+.f64 (*.f64 y (-.f64 z x)) x)
(+.f64 x (*.f64 y (-.f64 z x)))
(+.f64 (*.f64 y (-.f64 z x)) x)
(+.f64 x (*.f64 y (-.f64 z x)))
(*.f64 y (-.f64 z x))
(+.f64 (*.f64 y (-.f64 z x)) x)
(+.f64 x (*.f64 y (-.f64 z x)))
(+.f64 (*.f64 y (-.f64 z x)) x)
(+.f64 x (*.f64 y (-.f64 z x)))
(+.f64 (*.f64 y (-.f64 z x)) x)
(+.f64 x (*.f64 y (-.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 y (neg.f64 x)))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 x (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 y z)))
(+.f64 x (*.f64 y (+.f64 z (neg.f64 x))))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 x (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 y z)))
(+.f64 x (*.f64 y (+.f64 z (neg.f64 x))))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 x (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 y z)))
(+.f64 x (*.f64 y (+.f64 z (neg.f64 x))))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 x (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 y z)))
(+.f64 x (*.f64 y (+.f64 z (neg.f64 x))))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 x (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 y z)))
(+.f64 x (*.f64 y (+.f64 z (neg.f64 x))))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 x (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 y z)))
(+.f64 x (*.f64 y (+.f64 z (neg.f64 x))))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 x (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 y z)))
(+.f64 x (*.f64 y (+.f64 z (neg.f64 x))))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 x (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 y z)))
(+.f64 x (*.f64 y (+.f64 z (neg.f64 x))))
(+.f64 (*.f64 y z) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 x (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 y z)))
(+.f64 x (*.f64 y (+.f64 z (neg.f64 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 (-.f64 z x) (*.f64 y 1/2)) (*.f64 (-.f64 z x) (*.f64 y 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 (-.f64 z x) (+.f64 y y)) 2)
(*.f64 y (-.f64 z x))
(/.f64 (*.f64 (-.f64 z x) (*.f64 y 4)) 4)
(*.f64 y (-.f64 z x))
(/.f64 (*.f64 y (*.f64 (-.f64 z x) 8)) 8)
(*.f64 y (-.f64 z x))
(/.f64 (*.f64 2 (*.f64 y (*.f64 (-.f64 z x) 8))) 16)
(*.f64 y (-.f64 z x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (-.f64 z x) 8)))) 32)
(*.f64 y (-.f64 z x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (-.f64 z x) 8))))) 64)
(*.f64 y (-.f64 z x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (-.f64 z x) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (-.f64 z x) 8)))))) 128)
(*.f64 y (-.f64 z x))
(pow.f64 (*.f64 y (-.f64 z x)) 1)
(*.f64 y (-.f64 z x))
(-.f64 (+.f64 x (*.f64 y (-.f64 z x))) 0)
(+.f64 x (*.f64 y (-.f64 z x)))
(*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 1)
(+.f64 x (*.f64 y (-.f64 z x)))
(*.f64 1 (+.f64 x (*.f64 y (-.f64 z x))))
(+.f64 x (*.f64 y (-.f64 z x)))
(*.f64 2 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 1/2))
(+.f64 x (*.f64 y (-.f64 z x)))
(*.f64 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 2) 1/2)
(+.f64 x (*.f64 y (-.f64 z x)))
(*.f64 4 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 1/4))
(+.f64 x (*.f64 y (-.f64 z x)))
(*.f64 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 4) 1/4)
(+.f64 x (*.f64 y (-.f64 z x)))
(*.f64 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 8) 1/8)
(+.f64 x (*.f64 y (-.f64 z x)))
(*.f64 1/2 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 2))
(+.f64 x (*.f64 y (-.f64 z x)))
(*.f64 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 1/2) 2)
(+.f64 x (*.f64 y (-.f64 z x)))
(*.f64 1/4 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 4))
(+.f64 x (*.f64 y (-.f64 z x)))
(*.f64 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 1/4) 4)
(+.f64 x (*.f64 y (-.f64 z x)))
(/.f64 (+.f64 x (*.f64 y (-.f64 z x))) 1)
(+.f64 x (*.f64 y (-.f64 z x)))
(/.f64 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 2) 2)
(+.f64 x (*.f64 y (-.f64 z x)))
(/.f64 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 4) 4)
(+.f64 x (*.f64 y (-.f64 z x)))
(/.f64 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 8) 8)
(+.f64 x (*.f64 y (-.f64 z x)))
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 8)) 16)
(+.f64 x (*.f64 y (-.f64 z x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 8))) 32)
(+.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 x (*.f64 y (-.f64 z x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) 8))))) 128)
(+.f64 x (*.f64 y (-.f64 z x)))
(pow.f64 (+.f64 x (*.f64 y (-.f64 z x))) 1)
(+.f64 x (*.f64 y (-.f64 z x)))

eval9.0ms (0%)

Compiler

Compiled 631 to 282 computations (55.3% saved)

prune11.0ms (0.1%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New54660
Fresh000
Picked011
Done000
Total54761
Error
0.0b
Counts
61 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
0.0b
(+.f64 x (*.f64 y (-.f64 z x)))
19.3b
(+.f64 x (*.f64 y (neg.f64 x)))
12.3b
(+.f64 x (*.f64 y z))
32.2b
(*.f64 y (-.f64 z x))
19.3b
(*.f64 x (-.f64 1 y))
31.1b
x
Compiler

Compiled 104 to 69 computations (33.7% saved)

localize9.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 27 to 14 computations (48.1% saved)

series3.0ms (0%)

Counts
2 → 60
Calls

15 calls:

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

rewrite231.0ms (1.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01038
17538
216038
330638
457338
5128538
6293938
7508938
8632438
9742838
10750838
11760038
12768938
Stop Event
node limit
Counts
2 → 33
Calls
Call 1
Inputs
(*.f64 x (-.f64 1 y))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (-.f64 1 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (-.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 (-.f64 1 y) 1/2)) (*.f64 x (*.f64 (-.f64 1 y) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (-.f64 1 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 1 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (-.f64 1 y) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 y) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (-.f64 1 y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 y)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 y)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (-.f64 1 y)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 1)))))

simplify422.0ms (2.3%)

Algorithm
egg-herbie
Rules
3198×rational.json-simplify-41
2488×rational.json-simplify-35
1776×rational.json-simplify-2
764×rational.json-simplify-51
500×exponential.json-simplify-26
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0891821
12101769
25211769
314841769
429841769
538161769
641541769
743631769
844991769
946201769
1047351769
1150391769
1251931769
1352441769
1452611769
1552791769
1652931769
1752971769
1854121769
1955401769
Stop Event
node limit
Counts
93 → 58
Calls
Call 1
Inputs
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
x
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(*.f64 -1 (*.f64 y x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
x
(+.f64 (*.f64 y (+.f64 (*.f64 -1 x) z)) x)
(+.f64 (*.f64 y (+.f64 (*.f64 -1 x) z)) x)
(+.f64 (*.f64 y (+.f64 (*.f64 -1 x) z)) x)
(*.f64 y (+.f64 (*.f64 -1 x) z))
(+.f64 (*.f64 y (+.f64 (*.f64 -1 x) z)) x)
(+.f64 (*.f64 y (+.f64 (*.f64 -1 x) z)) x)
(+.f64 (*.f64 y (+.f64 (*.f64 -1 x) z)) x)
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) x)))
(+.f64 (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) x))) x)
(+.f64 (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) x))) x)
(+.f64 (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) x))) x)
(*.f64 (-.f64 1 y) x)
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(*.f64 (-.f64 1 y) x)
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(*.f64 (-.f64 1 y) x)
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 x (-.f64 1 y)) 0)
(+.f64 0 (*.f64 x (-.f64 1 y)))
(+.f64 (*.f64 x (*.f64 (-.f64 1 y) 1/2)) (*.f64 x (*.f64 (-.f64 1 y) 1/2)))
(-.f64 (*.f64 x (-.f64 1 y)) 0)
(/.f64 (*.f64 x (-.f64 1 y)) 1)
(/.f64 (*.f64 x (*.f64 (-.f64 1 y) 2)) 2)
(/.f64 (*.f64 (-.f64 1 y) (*.f64 x 4)) 4)
(/.f64 (*.f64 (*.f64 x (-.f64 1 y)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 y)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 y)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 y)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 y)) 8))))) 128)
(pow.f64 (*.f64 x (-.f64 1 y)) 1)
(-.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 0)
(*.f64 1 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)))
(*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 1)
(*.f64 2 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 1/2))
(*.f64 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 4))
(*.f64 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 2))
(*.f64 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 4))
(*.f64 (/.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 4) 4)
(/.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 1)
(/.f64 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 8))))) 128)
(pow.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 1)
Outputs
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
x
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 x (*.f64 y (*.f64 x -1)))
(+.f64 x (*.f64 y (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 x (*.f64 y (*.f64 x -1)))
(+.f64 x (*.f64 y (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 x (*.f64 y (*.f64 x -1)))
(+.f64 x (*.f64 y (neg.f64 x)))
(*.f64 -1 (*.f64 y x))
(*.f64 y (*.f64 x -1))
(*.f64 y (neg.f64 x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 x -1)))
(+.f64 x (*.f64 y (neg.f64 x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 x -1)))
(+.f64 x (*.f64 y (neg.f64 x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 x -1)))
(+.f64 x (*.f64 y (neg.f64 x)))
(*.f64 -1 (*.f64 y x))
(*.f64 y (*.f64 x -1))
(*.f64 y (neg.f64 x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 x -1)))
(+.f64 x (*.f64 y (neg.f64 x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 x -1)))
(+.f64 x (*.f64 y (neg.f64 x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 x -1)))
(+.f64 x (*.f64 y (neg.f64 x)))
x
(+.f64 (*.f64 y (+.f64 (*.f64 -1 x) z)) x)
(+.f64 x (*.f64 y (+.f64 (*.f64 x -1) z)))
(+.f64 x (*.f64 y (+.f64 (neg.f64 x) z)))
(+.f64 (*.f64 y (+.f64 (*.f64 -1 x) z)) x)
(+.f64 x (*.f64 y (+.f64 (*.f64 x -1) z)))
(+.f64 x (*.f64 y (+.f64 (neg.f64 x) z)))
(+.f64 (*.f64 y (+.f64 (*.f64 -1 x) z)) x)
(+.f64 x (*.f64 y (+.f64 (*.f64 x -1) z)))
(+.f64 x (*.f64 y (+.f64 (neg.f64 x) z)))
(*.f64 y (+.f64 (*.f64 -1 x) z))
(*.f64 y (+.f64 (*.f64 x -1) z))
(*.f64 y (+.f64 (neg.f64 x) z))
(+.f64 (*.f64 y (+.f64 (*.f64 -1 x) z)) x)
(+.f64 x (*.f64 y (+.f64 (*.f64 x -1) z)))
(+.f64 x (*.f64 y (+.f64 (neg.f64 x) z)))
(+.f64 (*.f64 y (+.f64 (*.f64 -1 x) z)) x)
(+.f64 x (*.f64 y (+.f64 (*.f64 x -1) z)))
(+.f64 x (*.f64 y (+.f64 (neg.f64 x) z)))
(+.f64 (*.f64 y (+.f64 (*.f64 -1 x) z)) x)
(+.f64 x (*.f64 y (+.f64 (*.f64 x -1) z)))
(+.f64 x (*.f64 y (+.f64 (neg.f64 x) z)))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) x)))
(*.f64 y (*.f64 (+.f64 x (*.f64 -1 z)) -1))
(*.f64 y (neg.f64 (+.f64 x (neg.f64 z))))
(*.f64 (+.f64 x (neg.f64 z)) (neg.f64 y))
(+.f64 (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) x))) x)
(+.f64 x (*.f64 y (*.f64 (+.f64 x (*.f64 -1 z)) -1)))
(+.f64 x (*.f64 y (neg.f64 (+.f64 x (neg.f64 z)))))
(+.f64 x (*.f64 (+.f64 x (neg.f64 z)) (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) x))) x)
(+.f64 x (*.f64 y (*.f64 (+.f64 x (*.f64 -1 z)) -1)))
(+.f64 x (*.f64 y (neg.f64 (+.f64 x (neg.f64 z)))))
(+.f64 x (*.f64 (+.f64 x (neg.f64 z)) (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) x))) x)
(+.f64 x (*.f64 y (*.f64 (+.f64 x (*.f64 -1 z)) -1)))
(+.f64 x (*.f64 y (neg.f64 (+.f64 x (neg.f64 z)))))
(+.f64 x (*.f64 (+.f64 x (neg.f64 z)) (neg.f64 y)))
(*.f64 (-.f64 1 y) x)
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(*.f64 (-.f64 1 y) x)
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(*.f64 (-.f64 1 y) x)
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 x (-.f64 1 y)) 0)
(*.f64 (-.f64 1 y) x)
(+.f64 0 (*.f64 x (-.f64 1 y)))
(*.f64 (-.f64 1 y) x)
(+.f64 (*.f64 x (*.f64 (-.f64 1 y) 1/2)) (*.f64 x (*.f64 (-.f64 1 y) 1/2)))
(*.f64 (-.f64 1 y) x)
(-.f64 (*.f64 x (-.f64 1 y)) 0)
(*.f64 (-.f64 1 y) x)
(/.f64 (*.f64 x (-.f64 1 y)) 1)
(*.f64 (-.f64 1 y) x)
(/.f64 (*.f64 x (*.f64 (-.f64 1 y) 2)) 2)
(*.f64 (-.f64 1 y) x)
(/.f64 (*.f64 (-.f64 1 y) (*.f64 x 4)) 4)
(*.f64 (-.f64 1 y) x)
(/.f64 (*.f64 (*.f64 x (-.f64 1 y)) 8) 8)
(*.f64 (-.f64 1 y) x)
(/.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 y)) 8)) 16)
(*.f64 (-.f64 1 y) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 y)) 8))) 32)
(*.f64 (-.f64 1 y) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 y)) 8)))) 64)
(*.f64 (-.f64 1 y) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 y)) 8))))) 128)
(*.f64 (-.f64 1 y) x)
(pow.f64 (*.f64 x (-.f64 1 y)) 1)
(*.f64 (-.f64 1 y) x)
(-.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 0)
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(*.f64 1 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 1)
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(*.f64 2 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 1/2))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(*.f64 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 2) 1/2)
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(*.f64 4 (/.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 4))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(*.f64 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 4) 1/4)
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 2))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(*.f64 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 1/2) 2)
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 4))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(*.f64 (/.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 4) 4)
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(/.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 1)
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(/.f64 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 2) 2)
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(/.f64 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 4) 4)
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(/.f64 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 8) 8)
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 8)) 16)
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 8))) 32)
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 8)))) 64)
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 8))))) 128)
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(pow.f64 (+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z)) 1)
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 9 computations (35.7% saved)

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 5 computations (64.3% saved)

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 5 computations (64.3% saved)

series1.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite186.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
1524×rational.json-simplify-35
1424×rational.json-simplify-1
1386×exponential.json-3
1386×rational.json-1
1386×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
14613
210213
321413
439713
589613
6231213
7417413
8535813
9686913
10768013
11768013
Stop Event
node limit
Counts
1 → 23
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 (+.f64 x (*.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 x (*.f64 y z)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y z)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 x (*.f64 y z)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y z)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y z)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 x (*.f64 y z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y z)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x (*.f64 y z)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y z)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 x (*.f64 y z)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (*.f64 y z)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (*.f64 y z)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (*.f64 y z)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 y z)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y z)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y z)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y z)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y z)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (*.f64 y z)) 1)))))

simplify782.0ms (4.2%)

Algorithm
egg-herbie
Rules
5824×rational.json-simplify-51
3524×rational.json-simplify-35
1364×rational.json-simplify-49
1152×rational.json-simplify-2
1114×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
054689
1121689
2420689
31176689
41869689
52750689
63233689
73307689
83355689
93387689
103419689
113451689
123483689
133515689
143547689
153579689
163611689
173643689
183675689
194583689
204842689
214935689
225024689
235111689
245197689
255410689
265410689
275496689
285582689
295668689
305754689
315840689
325926689
336012689
346098689
356184689
Stop Event
node limit
Counts
59 → 26
Calls
Call 1
Inputs
(*.f64 y z)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
x
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
x
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
x
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(*.f64 y z)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(*.f64 y z)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
x
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(*.f64 y z)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(*.f64 y z)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(-.f64 (+.f64 x (*.f64 y z)) 0)
(*.f64 (+.f64 x (*.f64 y z)) 1)
(*.f64 1 (+.f64 x (*.f64 y z)))
(*.f64 2 (*.f64 (+.f64 x (*.f64 y z)) 1/2))
(*.f64 (*.f64 (+.f64 x (*.f64 y z)) 2) 1/2)
(*.f64 4 (*.f64 (+.f64 x (*.f64 y z)) 1/4))
(*.f64 (*.f64 (+.f64 x (*.f64 y z)) 4) 1/4)
(*.f64 (*.f64 (+.f64 x (*.f64 y z)) 8) 1/8)
(*.f64 1/2 (*.f64 (+.f64 x (*.f64 y z)) 2))
(*.f64 (*.f64 (+.f64 x (*.f64 y z)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 x (*.f64 y z)) 4))
(*.f64 (*.f64 (+.f64 x (*.f64 y z)) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 x (*.f64 y z)) 8))
(/.f64 (+.f64 x (*.f64 y z)) 1)
(/.f64 (*.f64 (+.f64 x (*.f64 y z)) 2) 2)
(/.f64 (*.f64 (+.f64 x (*.f64 y z)) 4) 4)
(/.f64 (*.f64 (+.f64 x (*.f64 y z)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 y z)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y z)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y z)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y z)) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y z)) 8)))))) 256)
(pow.f64 (+.f64 x (*.f64 y z)) 1)
Outputs
(*.f64 y z)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
x
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
x
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
x
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(*.f64 y z)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(*.f64 y z)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
x
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(*.f64 y z)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(*.f64 y z)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(+.f64 (*.f64 y z) x)
(-.f64 (+.f64 x (*.f64 y z)) 0)
(+.f64 (*.f64 y z) x)
(*.f64 (+.f64 x (*.f64 y z)) 1)
(+.f64 (*.f64 y z) x)
(*.f64 1 (+.f64 x (*.f64 y z)))
(+.f64 (*.f64 y z) x)
(*.f64 2 (*.f64 (+.f64 x (*.f64 y z)) 1/2))
(+.f64 (*.f64 y z) x)
(*.f64 (*.f64 (+.f64 x (*.f64 y z)) 2) 1/2)
(+.f64 (*.f64 y z) x)
(*.f64 4 (*.f64 (+.f64 x (*.f64 y z)) 1/4))
(+.f64 (*.f64 y z) x)
(*.f64 (*.f64 (+.f64 x (*.f64 y z)) 4) 1/4)
(+.f64 (*.f64 y z) x)
(*.f64 (*.f64 (+.f64 x (*.f64 y z)) 8) 1/8)
(+.f64 (*.f64 y z) x)
(*.f64 1/2 (*.f64 (+.f64 x (*.f64 y z)) 2))
(+.f64 (*.f64 y z) x)
(*.f64 (*.f64 (+.f64 x (*.f64 y z)) 1/2) 2)
(+.f64 (*.f64 y z) x)
(*.f64 1/4 (*.f64 (+.f64 x (*.f64 y z)) 4))
(+.f64 (*.f64 y z) x)
(*.f64 (*.f64 (+.f64 x (*.f64 y z)) 1/4) 4)
(+.f64 (*.f64 y z) x)
(*.f64 1/8 (*.f64 (+.f64 x (*.f64 y z)) 8))
(+.f64 (*.f64 y z) x)
(/.f64 (+.f64 x (*.f64 y z)) 1)
(+.f64 (*.f64 y z) x)
(/.f64 (*.f64 (+.f64 x (*.f64 y z)) 2) 2)
(+.f64 (*.f64 y z) x)
(/.f64 (*.f64 (+.f64 x (*.f64 y z)) 4) 4)
(+.f64 (*.f64 y z) x)
(/.f64 (*.f64 (+.f64 x (*.f64 y z)) 8) 8)
(+.f64 (*.f64 y z) x)
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 y z)) 8)) 16)
(+.f64 (*.f64 y z) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y z)) 8))) 32)
(+.f64 (*.f64 y z) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y z)) 8)))) 64)
(+.f64 (*.f64 y z) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y z)) 8))))) 128)
(+.f64 (*.f64 y z) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y z)) 8)))))) 256)
(+.f64 (*.f64 y z) x)
(pow.f64 (+.f64 x (*.f64 y z)) 1)
(+.f64 (*.f64 y z) x)

localize6.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 17 to 6 computations (64.7% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite141.0ms (0.8%)

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

Useful iterations: 5 (0.0ms)

IterNodesCost
0817
15617
213117
328717
459217
5145113
6296413
7488613
8633013
9751113
Stop Event
node limit
Counts
1 → 37
Calls
Call 1
Inputs
(+.f64 x (*.f64 y (neg.f64 x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (-.f64 1 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (-.f64 1 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (-.f64 1 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (-.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (-.f64 1 y) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 (-.f64 1 y) 1/2) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x x) (-.f64 1 y)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 (-.f64 1 y) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 1/2 (*.f64 y -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 1/2 (*.f64 (neg.f64 y) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 1/2 (/.f64 y -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 x (-.f64 1 y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 4 (-.f64 1 y))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 y) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (-.f64 1 y)) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 x x) (-.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 x x) (*.f64 x (*.f64 y -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (*.f64 2 (-.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (+.f64 2 (*.f64 y -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 y) (*.f64 x 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 y) 1/2) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 x (*.f64 4 (-.f64 1 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (-.f64 1 y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 2 (*.f64 y -2)) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1/2 (*.f64 y -1/2)) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1/2 (*.f64 (neg.f64 y) 1/2)) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1/2 (/.f64 y -2)) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 x x) (*.f64 x (*.f64 y -2))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 1 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x x) (-.f64 1 y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 4 (-.f64 1 y))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (-.f64 1 y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 y)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 y)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (-.f64 1 y)) 1)))))

simplify254.0ms (1.4%)

Algorithm
egg-herbie
Rules
2296×rational.json-simplify-2
1680×rational.json-simplify-35
1182×rational.json-simplify-1
824×rational.json-simplify-48
706×exponential.json-simplify-26
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0931061
1207849
2429849
31417849
42959849
54109849
64821849
75232849
85590849
95934849
106323849
116802849
127704849
Stop Event
node limit
Counts
61 → 46
Calls
Call 1
Inputs
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 -1 (*.f64 (-.f64 y 1) x))
(*.f64 -1 (*.f64 (-.f64 y 1) x))
(*.f64 -1 (*.f64 (-.f64 y 1) x))
(*.f64 -1 (*.f64 (-.f64 y 1) x))
x
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(*.f64 -1 (*.f64 y x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(-.f64 (*.f64 x (-.f64 1 y)) 0)
(*.f64 x (-.f64 1 y))
(*.f64 (*.f64 x (-.f64 1 y)) 1)
(*.f64 1 (*.f64 x (-.f64 1 y)))
(*.f64 2 (*.f64 (-.f64 1 y) (*.f64 x 1/2)))
(*.f64 2 (*.f64 (*.f64 (-.f64 1 y) 1/2) x))
(*.f64 (*.f64 (+.f64 x x) (-.f64 1 y)) 1/2)
(*.f64 (+.f64 x x) (*.f64 (-.f64 1 y) 1/2))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 y -1/2)))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 (neg.f64 y) 1/2)))
(*.f64 (+.f64 x x) (+.f64 1/2 (/.f64 y -2)))
(*.f64 4 (/.f64 (*.f64 x (-.f64 1 y)) 4))
(*.f64 (*.f64 x (*.f64 4 (-.f64 1 y))) 1/4)
(*.f64 (-.f64 1 y) x)
(*.f64 (*.f64 2 (-.f64 1 y)) (*.f64 x 1/2))
(*.f64 1/2 (*.f64 (+.f64 x x) (-.f64 1 y)))
(*.f64 1/2 (+.f64 (+.f64 x x) (*.f64 x (*.f64 y -2))))
(*.f64 (*.f64 x 1/2) (*.f64 2 (-.f64 1 y)))
(*.f64 (*.f64 x 1/2) (+.f64 2 (*.f64 y -2)))
(*.f64 (*.f64 (-.f64 1 y) (*.f64 x 1/2)) 2)
(*.f64 (*.f64 (-.f64 1 y) 1/2) (+.f64 x x))
(*.f64 1/4 (*.f64 x (*.f64 4 (-.f64 1 y))))
(*.f64 (/.f64 (*.f64 x (-.f64 1 y)) 4) 4)
(*.f64 (+.f64 2 (*.f64 y -2)) (*.f64 x 1/2))
(*.f64 (+.f64 1/2 (*.f64 y -1/2)) (+.f64 x x))
(*.f64 (+.f64 1/2 (*.f64 (neg.f64 y) 1/2)) (+.f64 x x))
(*.f64 (+.f64 1/2 (/.f64 y -2)) (+.f64 x x))
(*.f64 (+.f64 (+.f64 x x) (*.f64 x (*.f64 y -2))) 1/2)
(/.f64 (*.f64 x (-.f64 1 y)) 1)
(/.f64 (*.f64 (+.f64 x x) (-.f64 1 y)) 2)
(/.f64 (*.f64 x (*.f64 4 (-.f64 1 y))) 4)
(/.f64 (*.f64 (*.f64 x (-.f64 1 y)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 y)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 y)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 y)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 y)) 8))))) 128)
(pow.f64 (*.f64 x (-.f64 1 y)) 1)
Outputs
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 -1 (*.f64 (-.f64 y 1) x))
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 -1 (*.f64 (-.f64 y 1) x))
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 -1 (*.f64 (-.f64 y 1) x))
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 -1 (*.f64 (-.f64 y 1) x))
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
x
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 -1 (*.f64 y x))
(*.f64 y (neg.f64 x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 -1 (*.f64 y x))
(*.f64 y (neg.f64 x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(-.f64 (*.f64 x (-.f64 1 y)) 0)
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 x (-.f64 1 y))
(*.f64 (+.f64 1 (neg.f64 y)) x)
(-.f64 x (*.f64 y x))
(*.f64 (*.f64 x (-.f64 1 y)) 1)
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 1 (*.f64 x (-.f64 1 y)))
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 2 (*.f64 (-.f64 1 y) (*.f64 x 1/2)))
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 2 (*.f64 (*.f64 (-.f64 1 y) 1/2) x))
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 (*.f64 (+.f64 x x) (-.f64 1 y)) 1/2)
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 (+.f64 x x) (*.f64 (-.f64 1 y) 1/2))
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 y -1/2)))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 (neg.f64 y) 1/2)))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 y -1/2)))
(*.f64 (+.f64 x x) (+.f64 1/2 (/.f64 y -2)))
(*.f64 4 (/.f64 (*.f64 x (-.f64 1 y)) 4))
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 (*.f64 x (*.f64 4 (-.f64 1 y))) 1/4)
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 (-.f64 1 y) x)
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 (*.f64 2 (-.f64 1 y)) (*.f64 x 1/2))
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 1/2 (*.f64 (+.f64 x x) (-.f64 1 y)))
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 1/2 (+.f64 (+.f64 x x) (*.f64 x (*.f64 y -2))))
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 (*.f64 x 1/2) (*.f64 2 (-.f64 1 y)))
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 (*.f64 x 1/2) (+.f64 2 (*.f64 y -2)))
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 (*.f64 (-.f64 1 y) (*.f64 x 1/2)) 2)
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 (*.f64 (-.f64 1 y) 1/2) (+.f64 x x))
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 1/4 (*.f64 x (*.f64 4 (-.f64 1 y))))
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 (/.f64 (*.f64 x (-.f64 1 y)) 4) 4)
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 (+.f64 2 (*.f64 y -2)) (*.f64 x 1/2))
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(*.f64 (+.f64 1/2 (*.f64 y -1/2)) (+.f64 x x))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 y -1/2)))
(*.f64 (+.f64 1/2 (*.f64 (neg.f64 y) 1/2)) (+.f64 x x))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 y -1/2)))
(*.f64 (+.f64 1/2 (/.f64 y -2)) (+.f64 x x))
(*.f64 (+.f64 x x) (+.f64 1/2 (/.f64 y -2)))
(*.f64 (+.f64 (+.f64 x x) (*.f64 x (*.f64 y -2))) 1/2)
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(/.f64 (*.f64 x (-.f64 1 y)) 1)
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(/.f64 (*.f64 (+.f64 x x) (-.f64 1 y)) 2)
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(/.f64 (*.f64 x (*.f64 4 (-.f64 1 y))) 4)
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(/.f64 (*.f64 (*.f64 x (-.f64 1 y)) 8) 8)
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 y)) 8)) 16)
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 y)) 8))) 32)
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 y)) 8)))) 64)
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 y)) 8))))) 128)
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))
(pow.f64 (*.f64 x (-.f64 1 y)) 1)
(*.f64 (+.f64 1 (neg.f64 y)) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y x))

eval131.0ms (0.7%)

Compiler

Compiled 1658 to 969 computations (41.6% saved)

prune23.0ms (0.1%)

Pruning

9 alts after pruning (5 fresh and 4 done)

PrunedKeptTotal
New1674171
Fresh011
Picked101
Done145
Total1699178
Error
0.0b
Counts
178 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
19.3b
(-.f64 x (*.f64 y x))
32.2b
(+.f64 (*.f64 y z) (*.f64 y (neg.f64 x)))
0.0b
(+.f64 x (*.f64 y (-.f64 z x)))
12.3b
(+.f64 x (*.f64 y z))
32.2b
(*.f64 y (-.f64 z x))
51.0b
(*.f64 y (neg.f64 x))
43.7b
(*.f64 y z)
19.3b
(*.f64 x (-.f64 1 y))
31.1b
x
Compiler

Compiled 70 to 46 computations (34.3% saved)

localize3.0ms (0%)

Compiler

Compiled 8 to 4 computations (50% saved)

localize4.0ms (0%)

Compiler

Compiled 11 to 5 computations (54.5% saved)

localize7.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 23 to 7 computations (69.6% saved)

series3.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite184.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
1638×rational.json-simplify-35
1616×rational.json-1
1616×rational.json-2
1616×rational.json-3
1596×rational.json-4
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01023
16917
215617
334817
470417
5172317
6352617
7553317
8740117
Stop Event
node limit
Counts
1 → 33
Calls
Call 1
Inputs
(+.f64 (*.f64 y z) (*.f64 y (neg.f64 x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (+.f64 z (neg.f64 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (+.f64 z (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (+.f64 z (neg.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 y (+.f64 z (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 z (neg.f64 x)) (*.f64 y 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 (+.f64 z (neg.f64 x)) 1/2) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (*.f64 (+.f64 z (neg.f64 x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (/.f64 (+.f64 z (neg.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y (+.f64 z (neg.f64 x))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z (neg.f64 x)) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 y (+.f64 z (neg.f64 x))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (/.f64 (+.f64 z (neg.f64 x)) 2) (*.f64 y 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (*.f64 4 (+.f64 z (neg.f64 x)))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 z (neg.f64 x))) (*.f64 y 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (*.f64 y (+.f64 z (neg.f64 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 z (+.f64 y y)) (*.f64 x (*.f64 y -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 1/2) (*.f64 2 (+.f64 z (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 1/2) (+.f64 (*.f64 x -2) (+.f64 z z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 z (neg.f64 x)) (*.f64 y 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 z (neg.f64 x)) 1/2) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 y (*.f64 4 (+.f64 z (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 z (neg.f64 x)) 2) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 y (+.f64 z (neg.f64 x))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x -2) (+.f64 z z)) (*.f64 y 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 z (neg.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y (+.f64 z (neg.f64 x))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 4 (+.f64 z (neg.f64 x)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y (+.f64 z (neg.f64 x))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 z (neg.f64 x))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 z (neg.f64 x))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 z (neg.f64 x))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 z (neg.f64 x))) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 z (neg.f64 x))) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (+.f64 z (neg.f64 x))) 1)))))

simplify983.0ms (5.3%)

Algorithm
egg-herbie
Rules
3240×rational.json-simplify-35
2228×rational.json-simplify-2
1496×rational.json-simplify-1
924×rational.json-simplify-41
818×rational.json-simplify-51
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0891177
12011161
24641161
315431161
432051161
546181161
649491161
752011161
853531161
954661161
1055681161
1163991161
1265141161
1366321161
1467681161
1569091161
1669411161
1769681161
1870241161
1970771161
2070871161
2171821161
2272751161
2373681161
2474611161
2575541161
2676471161
2777401161
2878331161
2979261161
Stop Event
node limit
Counts
69 → 43
Calls
Call 1
Inputs
(*.f64 y (+.f64 (*.f64 -1 x) z))
(*.f64 y (+.f64 (*.f64 -1 x) z))
(*.f64 y (+.f64 (*.f64 -1 x) z))
(*.f64 y (+.f64 (*.f64 -1 x) z))
(*.f64 y (+.f64 (*.f64 -1 x) z))
(*.f64 y (+.f64 (*.f64 -1 x) z))
(*.f64 y (+.f64 (*.f64 -1 x) z))
(*.f64 y (+.f64 (*.f64 -1 x) z))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) x)))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) x)))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) x)))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(-.f64 (*.f64 y (+.f64 z (neg.f64 x))) 0)
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 (*.f64 y (+.f64 z (neg.f64 x))) 1)
(*.f64 1 (*.f64 y (+.f64 z (neg.f64 x))))
(*.f64 2 (*.f64 (+.f64 z (neg.f64 x)) (*.f64 y 1/2)))
(*.f64 2 (*.f64 (*.f64 (+.f64 z (neg.f64 x)) 1/2) y))
(*.f64 (+.f64 y y) (*.f64 (+.f64 z (neg.f64 x)) 1/2))
(*.f64 (+.f64 y y) (/.f64 (+.f64 z (neg.f64 x)) 2))
(*.f64 (*.f64 (*.f64 y (+.f64 z (neg.f64 x))) 2) 1/2)
(*.f64 (+.f64 z (neg.f64 x)) y)
(*.f64 4 (/.f64 (*.f64 y (+.f64 z (neg.f64 x))) 4))
(*.f64 4 (*.f64 (/.f64 (+.f64 z (neg.f64 x)) 2) (*.f64 y 1/2)))
(*.f64 (*.f64 y (*.f64 4 (+.f64 z (neg.f64 x)))) 1/4)
(*.f64 (*.f64 2 (+.f64 z (neg.f64 x))) (*.f64 y 1/2))
(*.f64 1/2 (*.f64 (*.f64 y (+.f64 z (neg.f64 x))) 2))
(*.f64 1/2 (+.f64 (*.f64 z (+.f64 y y)) (*.f64 x (*.f64 y -2))))
(*.f64 (*.f64 y 1/2) (*.f64 2 (+.f64 z (neg.f64 x))))
(*.f64 (*.f64 y 1/2) (+.f64 (*.f64 x -2) (+.f64 z z)))
(*.f64 (*.f64 (+.f64 z (neg.f64 x)) (*.f64 y 1/2)) 2)
(*.f64 (*.f64 (+.f64 z (neg.f64 x)) 1/2) (+.f64 y y))
(*.f64 1/4 (*.f64 y (*.f64 4 (+.f64 z (neg.f64 x)))))
(*.f64 (/.f64 (+.f64 z (neg.f64 x)) 2) (+.f64 y y))
(*.f64 (/.f64 (*.f64 y (+.f64 z (neg.f64 x))) 4) 4)
(*.f64 (+.f64 (*.f64 x -2) (+.f64 z z)) (*.f64 y 1/2))
(/.f64 (*.f64 y (+.f64 z (neg.f64 x))) 1)
(/.f64 (*.f64 (*.f64 y (+.f64 z (neg.f64 x))) 2) 2)
(/.f64 (*.f64 y (*.f64 4 (+.f64 z (neg.f64 x)))) 4)
(/.f64 (*.f64 (*.f64 y (+.f64 z (neg.f64 x))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 z (neg.f64 x))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 z (neg.f64 x))) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 z (neg.f64 x))) 8)))) 64)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 z (neg.f64 x))) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 z (neg.f64 x))) 8))))) 128)
(pow.f64 (*.f64 y (+.f64 z (neg.f64 x))) 1)
Outputs
(*.f64 y (+.f64 (*.f64 -1 x) z))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 y (+.f64 (*.f64 -1 x) z))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 y (+.f64 (*.f64 -1 x) z))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 y (+.f64 (*.f64 -1 x) z))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 y (+.f64 (*.f64 -1 x) z))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 y (+.f64 (*.f64 -1 x) z))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 y (+.f64 (*.f64 -1 x) z))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 y (+.f64 (*.f64 -1 x) z))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) x)))
(*.f64 y (*.f64 (+.f64 x (*.f64 -1 z)) -1))
(*.f64 y (neg.f64 (+.f64 x (neg.f64 z))))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) x)))
(*.f64 y (*.f64 (+.f64 x (*.f64 -1 z)) -1))
(*.f64 y (neg.f64 (+.f64 x (neg.f64 z))))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) x)))
(*.f64 y (*.f64 (+.f64 x (*.f64 -1 z)) -1))
(*.f64 y (neg.f64 (+.f64 x (neg.f64 z))))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) x)))
(*.f64 y (*.f64 (+.f64 x (*.f64 -1 z)) -1))
(*.f64 y (neg.f64 (+.f64 x (neg.f64 z))))
(*.f64 -1 (*.f64 y x))
(*.f64 y (neg.f64 x))
(neg.f64 (*.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(*.f64 y (+.f64 z (neg.f64 x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(*.f64 y (+.f64 z (neg.f64 x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(*.f64 y (+.f64 z (neg.f64 x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(*.f64 y (+.f64 z (neg.f64 x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(*.f64 y (+.f64 z (neg.f64 x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(*.f64 y (+.f64 z (neg.f64 x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(*.f64 y (+.f64 z (neg.f64 x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(*.f64 y (+.f64 z (neg.f64 x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y x))
(*.f64 y (neg.f64 x))
(neg.f64 (*.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(*.f64 y (+.f64 z (neg.f64 x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(*.f64 y (+.f64 z (neg.f64 x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 y x))
(*.f64 y (neg.f64 x))
(neg.f64 (*.f64 y x))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(*.f64 y (+.f64 z (neg.f64 x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(*.f64 y (+.f64 z (neg.f64 x)))
(+.f64 (*.f64 y z) (*.f64 -1 (*.f64 y x)))
(*.f64 y (+.f64 z (neg.f64 x)))
(-.f64 (*.f64 y (+.f64 z (neg.f64 x))) 0)
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 (*.f64 y (+.f64 z (neg.f64 x))) 1)
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 1 (*.f64 y (+.f64 z (neg.f64 x))))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 2 (*.f64 (+.f64 z (neg.f64 x)) (*.f64 y 1/2)))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 2 (*.f64 (*.f64 (+.f64 z (neg.f64 x)) 1/2) y))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 (+.f64 y y) (*.f64 (+.f64 z (neg.f64 x)) 1/2))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 (+.f64 y y) (/.f64 (+.f64 z (neg.f64 x)) 2))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 (*.f64 (*.f64 y (+.f64 z (neg.f64 x))) 2) 1/2)
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 (+.f64 z (neg.f64 x)) y)
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 4 (/.f64 (*.f64 y (+.f64 z (neg.f64 x))) 4))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 4 (*.f64 (/.f64 (+.f64 z (neg.f64 x)) 2) (*.f64 y 1/2)))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 (*.f64 y (*.f64 4 (+.f64 z (neg.f64 x)))) 1/4)
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 (*.f64 2 (+.f64 z (neg.f64 x))) (*.f64 y 1/2))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 1/2 (*.f64 (*.f64 y (+.f64 z (neg.f64 x))) 2))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 1/2 (+.f64 (*.f64 z (+.f64 y y)) (*.f64 x (*.f64 y -2))))
(*.f64 1/2 (+.f64 (*.f64 z (+.f64 y y)) (*.f64 y (*.f64 x -2))))
(*.f64 (*.f64 y 1/2) (*.f64 2 (+.f64 z (neg.f64 x))))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 (*.f64 y 1/2) (+.f64 (*.f64 x -2) (+.f64 z z)))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 (*.f64 (+.f64 z (neg.f64 x)) (*.f64 y 1/2)) 2)
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 (*.f64 (+.f64 z (neg.f64 x)) 1/2) (+.f64 y y))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 1/4 (*.f64 y (*.f64 4 (+.f64 z (neg.f64 x)))))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 (/.f64 (+.f64 z (neg.f64 x)) 2) (+.f64 y y))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 (/.f64 (*.f64 y (+.f64 z (neg.f64 x))) 4) 4)
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 (+.f64 (*.f64 x -2) (+.f64 z z)) (*.f64 y 1/2))
(*.f64 y (+.f64 z (neg.f64 x)))
(/.f64 (*.f64 y (+.f64 z (neg.f64 x))) 1)
(*.f64 y (+.f64 z (neg.f64 x)))
(/.f64 (*.f64 (*.f64 y (+.f64 z (neg.f64 x))) 2) 2)
(*.f64 y (+.f64 z (neg.f64 x)))
(/.f64 (*.f64 y (*.f64 4 (+.f64 z (neg.f64 x)))) 4)
(*.f64 y (+.f64 z (neg.f64 x)))
(/.f64 (*.f64 (*.f64 y (+.f64 z (neg.f64 x))) 8) 8)
(*.f64 y (+.f64 z (neg.f64 x)))
(/.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 z (neg.f64 x))) 8)) 16)
(*.f64 y (+.f64 z (neg.f64 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 z (neg.f64 x))) 8))) 32)
(*.f64 y (+.f64 z (neg.f64 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 z (neg.f64 x))) 8)))) 64)
(*.f64 y (+.f64 z (neg.f64 x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 z (neg.f64 x))) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 z (neg.f64 x))) 8))))) 128)
(*.f64 y (+.f64 z (neg.f64 x)))
(pow.f64 (*.f64 y (+.f64 z (neg.f64 x))) 1)
(*.f64 y (+.f64 z (neg.f64 x)))

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 5 computations (61.5% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite105.0ms (0.6%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
13913
29313
320713
439913
592413
6258513
7511513
8689613
Stop Event
node limit
Counts
1 → 83
Calls
Call 1
Inputs
(-.f64 x (*.f64 y x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 y (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 x (*.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 x (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (-.f64 -1 (*.f64 x (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (neg.f64 x)) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 x (-.f64 1 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x (-.f64 1 (*.f64 x y))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (/.f64 (+.f64 y -1) -2)) (*.f64 x (/.f64 (+.f64 y -1) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x 1/2) (*.f64 x (-.f64 1/2 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (*.f64 x y)) (+.f64 x -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (-.f64 2 (*.f64 x (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x 1) (-.f64 -1 (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 2 (*.f64 x (+.f64 y -1))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (-.f64 1 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (*.f64 2 (-.f64 1 y)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 2 (*.f64 (-.f64 1 y) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 x (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 x (/.f64 (+.f64 y -1) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 2 (-.f64 1 y))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 (-.f64 1 y) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (neg.f64 (*.f64 (+.f64 y -1) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (/.f64 (+.f64 y -1) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (-.f64 1/2 (*.f64 y 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 y -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 x (-.f64 1/4 (*.f64 y 1/4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (+.f64 y -1)) -4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (*.f64 (-.f64 1 y) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (-.f64 1/4 (*.f64 y 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (+.f64 y -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 y) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y -1) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 x (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (/.f64 x 8) (-.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (*.f64 1/2 (*.f64 x 1/4)) (-.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 x (*.f64 x y)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 8) (*.f64 1/8 (-.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 x (+.f64 y -1))) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (-.f64 1 y)) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 x (*.f64 2 (-.f64 1 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (/.f64 (+.f64 y -1) -2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (*.f64 2 (-.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (-.f64 2 (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 x 8)) (*.f64 1/16 (-.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (*.f64 x (+.f64 (*.f64 y 1/2) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 y -1)) (/.f64 x -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 y -1)) (*.f64 -1 (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 2 (-.f64 1 y))) (*.f64 x 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 y) 1/2) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y -1) 1/2) (neg.f64 (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 (*.f64 y 1/2) -1/2)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (*.f64 x (+.f64 y -1)) -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/4) (*.f64 2 (*.f64 2 (-.f64 1 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/4) (-.f64 4 (*.f64 y 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (-.f64 1/4 (*.f64 y 1/4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (-.f64 x (*.f64 x y)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (-.f64 (*.f64 x 8) (*.f64 y (*.f64 x 8))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/2 (*.f64 2 (*.f64 x (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 2 (-.f64 1 y)) 1/2) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 y) 1/4) (*.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (*.f64 (+.f64 y -1) 1/2)) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 x x)) (*.f64 (+.f64 y -1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x -2) (*.f64 2 (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 y -1) -2) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1/2 (*.f64 y 1/2)) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 2 (+.f64 y y)) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 (-.f64 1 y) 1/2)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 (+.f64 y -1) 1/2)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 x (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 2 (-.f64 1 y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 y -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 y -1)) -4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x (*.f64 x y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x (+.f64 y -1))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 x (*.f64 x y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 (*.f64 y 4) 4)) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x (-.f64 (*.f64 y 4) 4))) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x (-.f64 (*.f64 y 4) 4)))) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x y)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x y)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x y)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 x (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 x (+.f64 y -1)))))))

simplify247.0ms (1.3%)

Algorithm
egg-herbie
Rules
2456×rational.json-simplify-2
1788×rational.json-simplify-1
1278×rational.json-simplify-35
1002×rational.json-simplify-41
922×rational.json-simplify-53
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01821555
13871549
27891549
315961549
431341549
548391549
653491549
755891549
858881549
964461549
1079061549
Stop Event
node limit
Counts
107 → 105
Calls
Call 1
Inputs
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
x
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(*.f64 -1 (*.f64 y x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 y (neg.f64 x)))
(+.f64 (-.f64 x (*.f64 x y)) 0)
(+.f64 0 (-.f64 x (*.f64 x y)))
(+.f64 1 (-.f64 -1 (*.f64 x (+.f64 y -1))))
(+.f64 (*.f64 y (neg.f64 x)) x)
(+.f64 -1 (+.f64 x (-.f64 1 (*.f64 x y))))
(+.f64 (+.f64 x (-.f64 1 (*.f64 x y))) -1)
(+.f64 (*.f64 x (/.f64 (+.f64 y -1) -2)) (*.f64 x (/.f64 (+.f64 y -1) -2)))
(+.f64 (*.f64 x 1/2) (*.f64 x (-.f64 1/2 y)))
(+.f64 (-.f64 1 (*.f64 x y)) (+.f64 x -1))
(+.f64 -2 (-.f64 2 (*.f64 x (+.f64 y -1))))
(+.f64 (+.f64 x 1) (-.f64 -1 (*.f64 x y)))
(+.f64 (-.f64 2 (*.f64 x (+.f64 y -1))) -2)
(*.f64 x (-.f64 1 y))
(*.f64 x (*.f64 (*.f64 2 (-.f64 1 y)) 1/2))
(*.f64 x (*.f64 2 (*.f64 (-.f64 1 y) 1/2)))
(*.f64 (-.f64 x (*.f64 x y)) 1)
(*.f64 1 (-.f64 x (*.f64 x y)))
(*.f64 2 (*.f64 x (/.f64 (+.f64 y -1) -2)))
(*.f64 (*.f64 x (*.f64 2 (-.f64 1 y))) 1/2)
(*.f64 (+.f64 x x) (*.f64 (-.f64 1 y) 1/2))
(*.f64 (+.f64 x x) (neg.f64 (*.f64 (+.f64 y -1) 1/2)))
(*.f64 (+.f64 x x) (/.f64 (+.f64 y -1) -2))
(*.f64 (+.f64 x x) (-.f64 1/2 (*.f64 y 1/2)))
(*.f64 (*.f64 x (+.f64 y -1)) -1)
(*.f64 4 (*.f64 x (-.f64 1/4 (*.f64 y 1/4))))
(*.f64 (*.f64 (*.f64 x (+.f64 y -1)) -4) 1/4)
(*.f64 (*.f64 x 4) (*.f64 (-.f64 1 y) 1/4))
(*.f64 (*.f64 x 4) (-.f64 1/4 (*.f64 y 1/4)))
(*.f64 (neg.f64 x) (+.f64 y -1))
(*.f64 (-.f64 1 y) x)
(*.f64 (+.f64 y -1) (neg.f64 x))
(*.f64 -1 (*.f64 x (+.f64 y -1)))
(*.f64 8 (*.f64 (/.f64 x 8) (-.f64 1 y)))
(*.f64 8 (*.f64 (*.f64 1/2 (*.f64 x 1/4)) (-.f64 1 y)))
(*.f64 (*.f64 (-.f64 x (*.f64 x y)) 8) 1/8)
(*.f64 (*.f64 x 8) (*.f64 1/8 (-.f64 1 y)))
(*.f64 (*.f64 2 (*.f64 x (+.f64 y -1))) -1/2)
(*.f64 (*.f64 2 (-.f64 1 y)) (*.f64 x 1/2))
(*.f64 1/2 (*.f64 x (*.f64 2 (-.f64 1 y))))
(*.f64 (*.f64 x (/.f64 (+.f64 y -1) -2)) 2)
(*.f64 (*.f64 x 1/2) (*.f64 2 (-.f64 1 y)))
(*.f64 (*.f64 x 1/2) (-.f64 2 (+.f64 y y)))
(*.f64 (*.f64 2 (*.f64 x 8)) (*.f64 1/16 (-.f64 1 y)))
(*.f64 -2 (*.f64 x (+.f64 (*.f64 y 1/2) -1/2)))
(*.f64 (*.f64 2 (+.f64 y -1)) (/.f64 x -2))
(*.f64 (*.f64 2 (+.f64 y -1)) (*.f64 -1 (*.f64 x 1/2)))
(*.f64 (*.f64 2 (*.f64 2 (-.f64 1 y))) (*.f64 x 1/4))
(*.f64 (*.f64 (-.f64 1 y) 1/2) (+.f64 x x))
(*.f64 (*.f64 (+.f64 y -1) 1/2) (neg.f64 (+.f64 x x)))
(*.f64 (*.f64 x (+.f64 (*.f64 y 1/2) -1/2)) -2)
(*.f64 1/4 (*.f64 (*.f64 x (+.f64 y -1)) -4))
(*.f64 (*.f64 x 1/4) (*.f64 2 (*.f64 2 (-.f64 1 y))))
(*.f64 (*.f64 x 1/4) (-.f64 4 (*.f64 y 4)))
(*.f64 (*.f64 x (-.f64 1/4 (*.f64 y 1/4))) 4)
(*.f64 1/8 (*.f64 (-.f64 x (*.f64 x y)) 8))
(*.f64 1/8 (-.f64 (*.f64 x 8) (*.f64 y (*.f64 x 8))))
(*.f64 -1/2 (*.f64 2 (*.f64 x (+.f64 y -1))))
(*.f64 (*.f64 (*.f64 2 (-.f64 1 y)) 1/2) x)
(*.f64 (*.f64 (-.f64 1 y) 1/4) (*.f64 x 4))
(*.f64 (neg.f64 (*.f64 (+.f64 y -1) 1/2)) (+.f64 x x))
(*.f64 (neg.f64 (+.f64 x x)) (*.f64 (+.f64 y -1) 1/2))
(*.f64 (/.f64 x -2) (*.f64 2 (+.f64 y -1)))
(*.f64 (/.f64 (+.f64 y -1) -2) (+.f64 x x))
(*.f64 (-.f64 1/2 (*.f64 y 1/2)) (+.f64 x x))
(*.f64 (-.f64 2 (+.f64 y y)) (*.f64 x 1/2))
(*.f64 (*.f64 2 (*.f64 (-.f64 1 y) 1/2)) x)
(*.f64 (*.f64 2 (*.f64 (+.f64 y -1) 1/2)) (neg.f64 x))
(/.f64 (-.f64 x (*.f64 x y)) 1)
(/.f64 (*.f64 x (*.f64 2 (-.f64 1 y))) 2)
(/.f64 (*.f64 x (+.f64 y -1)) -1)
(/.f64 (*.f64 (*.f64 x (+.f64 y -1)) -4) 4)
(/.f64 (*.f64 (-.f64 x (*.f64 x y)) 8) 8)
(/.f64 (*.f64 2 (*.f64 x (+.f64 y -1))) -2)
(/.f64 (*.f64 2 (*.f64 (-.f64 x (*.f64 x y)) 8)) 16)
(/.f64 (*.f64 x (-.f64 (*.f64 y 4) 4)) -4)
(/.f64 (*.f64 2 (*.f64 x (-.f64 (*.f64 y 4) 4))) -8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x y)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (-.f64 (*.f64 y 4) 4)))) -16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x y)) 8)))) 64)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x y)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x y)) 8))))) 128)
(pow.f64 (-.f64 x (*.f64 x y)) 1)
(neg.f64 (*.f64 x (+.f64 y -1)))
Outputs
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
x
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 -1 (*.f64 y x))
(*.f64 y (neg.f64 x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 -1 (*.f64 y x))
(*.f64 y (neg.f64 x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(+.f64 x (*.f64 y (neg.f64 x)))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(+.f64 (-.f64 x (*.f64 x y)) 0)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(+.f64 0 (-.f64 x (*.f64 x y)))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(+.f64 1 (-.f64 -1 (*.f64 x (+.f64 y -1))))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(+.f64 (*.f64 y (neg.f64 x)) x)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(+.f64 -1 (+.f64 x (-.f64 1 (*.f64 x y))))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(+.f64 (+.f64 x (-.f64 1 (*.f64 x y))) -1)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(+.f64 (*.f64 x (/.f64 (+.f64 y -1) -2)) (*.f64 x (/.f64 (+.f64 y -1) -2)))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(+.f64 (*.f64 x 1/2) (*.f64 x (-.f64 1/2 y)))
(*.f64 x (+.f64 (-.f64 1/2 y) 1/2))
(*.f64 x (+.f64 1/2 (-.f64 1/2 y)))
(+.f64 (-.f64 1 (*.f64 x y)) (+.f64 x -1))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(+.f64 -2 (-.f64 2 (*.f64 x (+.f64 y -1))))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(+.f64 (+.f64 x 1) (-.f64 -1 (*.f64 x y)))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(+.f64 (-.f64 2 (*.f64 x (+.f64 y -1))) -2)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 x (-.f64 1 y))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 x (*.f64 (*.f64 2 (-.f64 1 y)) 1/2))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 x (*.f64 2 (*.f64 (-.f64 1 y) 1/2)))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (-.f64 x (*.f64 x y)) 1)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 1 (-.f64 x (*.f64 x y)))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 2 (*.f64 x (/.f64 (+.f64 y -1) -2)))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (*.f64 x (*.f64 2 (-.f64 1 y))) 1/2)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (+.f64 x x) (*.f64 (-.f64 1 y) 1/2))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (+.f64 x x) (neg.f64 (*.f64 (+.f64 y -1) 1/2)))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (+.f64 x x) (/.f64 (+.f64 y -1) -2))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (+.f64 x x) (-.f64 1/2 (*.f64 y 1/2)))
(*.f64 (*.f64 x (+.f64 y -1)) -1)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 4 (*.f64 x (-.f64 1/4 (*.f64 y 1/4))))
(*.f64 x (*.f64 (-.f64 1/4 (*.f64 y 1/4)) 4))
(*.f64 x (*.f64 4 (-.f64 1/4 (*.f64 y 1/4))))
(*.f64 (*.f64 (*.f64 x (+.f64 y -1)) -4) 1/4)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (*.f64 x 4) (*.f64 (-.f64 1 y) 1/4))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (*.f64 x 4) (-.f64 1/4 (*.f64 y 1/4)))
(*.f64 x (*.f64 (-.f64 1/4 (*.f64 y 1/4)) 4))
(*.f64 4 (*.f64 x (-.f64 1/4 (*.f64 y 1/4))))
(*.f64 x (*.f64 4 (-.f64 1/4 (*.f64 y 1/4))))
(*.f64 (neg.f64 x) (+.f64 y -1))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (+.f64 y -1) (neg.f64 x))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 -1 (*.f64 x (+.f64 y -1)))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 8 (*.f64 (/.f64 x 8) (-.f64 1 y)))
(*.f64 8 (*.f64 (-.f64 1 y) (/.f64 x 8)))
(*.f64 (-.f64 1 y) (*.f64 8 (/.f64 x 8)))
(*.f64 8 (*.f64 (*.f64 1/2 (*.f64 x 1/4)) (-.f64 1 y)))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (*.f64 (-.f64 x (*.f64 x y)) 8) 1/8)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (*.f64 x 8) (*.f64 1/8 (-.f64 1 y)))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (*.f64 2 (*.f64 x (+.f64 y -1))) -1/2)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (*.f64 2 (-.f64 1 y)) (*.f64 x 1/2))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 1/2 (*.f64 x (*.f64 2 (-.f64 1 y))))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (*.f64 x (/.f64 (+.f64 y -1) -2)) 2)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (*.f64 x 1/2) (*.f64 2 (-.f64 1 y)))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (*.f64 x 1/2) (-.f64 2 (+.f64 y y)))
(*.f64 x (*.f64 1/2 (-.f64 2 (+.f64 y y))))
(*.f64 1/2 (*.f64 (-.f64 2 (+.f64 y y)) x))
(*.f64 (*.f64 2 (*.f64 x 8)) (*.f64 1/16 (-.f64 1 y)))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 -2 (*.f64 x (+.f64 (*.f64 y 1/2) -1/2)))
(*.f64 x (*.f64 (+.f64 (*.f64 y 1/2) -1/2) -2))
(*.f64 x (*.f64 -2 (+.f64 (*.f64 y 1/2) -1/2)))
(*.f64 (+.f64 (*.f64 y 1/2) -1/2) (*.f64 x -2))
(*.f64 (*.f64 2 (+.f64 y -1)) (/.f64 x -2))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (*.f64 2 (+.f64 y -1)) (*.f64 -1 (*.f64 x 1/2)))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (*.f64 2 (*.f64 2 (-.f64 1 y))) (*.f64 x 1/4))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (*.f64 (-.f64 1 y) 1/2) (+.f64 x x))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (*.f64 (+.f64 y -1) 1/2) (neg.f64 (+.f64 x x)))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (*.f64 x (+.f64 (*.f64 y 1/2) -1/2)) -2)
(*.f64 x (*.f64 (+.f64 (*.f64 y 1/2) -1/2) -2))
(*.f64 x (*.f64 -2 (+.f64 (*.f64 y 1/2) -1/2)))
(*.f64 (+.f64 (*.f64 y 1/2) -1/2) (*.f64 x -2))
(*.f64 1/4 (*.f64 (*.f64 x (+.f64 y -1)) -4))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (*.f64 x 1/4) (*.f64 2 (*.f64 2 (-.f64 1 y))))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (*.f64 x 1/4) (-.f64 4 (*.f64 y 4)))
(*.f64 x (*.f64 1/4 (-.f64 4 (*.f64 y 4))))
(*.f64 (*.f64 x (-.f64 1/4 (*.f64 y 1/4))) 4)
(*.f64 x (*.f64 (-.f64 1/4 (*.f64 y 1/4)) 4))
(*.f64 4 (*.f64 x (-.f64 1/4 (*.f64 y 1/4))))
(*.f64 x (*.f64 4 (-.f64 1/4 (*.f64 y 1/4))))
(*.f64 1/8 (*.f64 (-.f64 x (*.f64 x y)) 8))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 1/8 (-.f64 (*.f64 x 8) (*.f64 y (*.f64 x 8))))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 -1/2 (*.f64 2 (*.f64 x (+.f64 y -1))))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (*.f64 (*.f64 2 (-.f64 1 y)) 1/2) x)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (*.f64 (-.f64 1 y) 1/4) (*.f64 x 4))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (neg.f64 (*.f64 (+.f64 y -1) 1/2)) (+.f64 x x))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (neg.f64 (+.f64 x x)) (*.f64 (+.f64 y -1) 1/2))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (/.f64 x -2) (*.f64 2 (+.f64 y -1)))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (/.f64 (+.f64 y -1) -2) (+.f64 x x))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (-.f64 1/2 (*.f64 y 1/2)) (+.f64 x x))
(*.f64 (+.f64 x x) (-.f64 1/2 (*.f64 y 1/2)))
(*.f64 (-.f64 2 (+.f64 y y)) (*.f64 x 1/2))
(*.f64 x (*.f64 1/2 (-.f64 2 (+.f64 y y))))
(*.f64 1/2 (*.f64 (-.f64 2 (+.f64 y y)) x))
(*.f64 (*.f64 x 1/2) (-.f64 2 (+.f64 y y)))
(*.f64 (*.f64 2 (*.f64 (-.f64 1 y) 1/2)) x)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(*.f64 (*.f64 2 (*.f64 (+.f64 y -1) 1/2)) (neg.f64 x))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(/.f64 (-.f64 x (*.f64 x y)) 1)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(/.f64 (*.f64 x (*.f64 2 (-.f64 1 y))) 2)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(/.f64 (*.f64 x (+.f64 y -1)) -1)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(/.f64 (*.f64 (*.f64 x (+.f64 y -1)) -4) 4)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(/.f64 (*.f64 (-.f64 x (*.f64 x y)) 8) 8)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 x (+.f64 y -1))) -2)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 (-.f64 x (*.f64 x y)) 8)) 16)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(/.f64 (*.f64 x (-.f64 (*.f64 y 4) 4)) -4)
(*.f64 (-.f64 (*.f64 y 4) 4) (/.f64 x -4))
(*.f64 x (/.f64 (-.f64 (*.f64 y 4) 4) -4))
(*.f64 x (*.f64 (-.f64 (*.f64 y 4) 4) -1/4))
(/.f64 (*.f64 2 (*.f64 x (-.f64 (*.f64 y 4) 4))) -8)
(*.f64 (-.f64 (*.f64 y 4) 4) (/.f64 x -4))
(*.f64 x (/.f64 (-.f64 (*.f64 y 4) 4) -4))
(*.f64 x (*.f64 (-.f64 (*.f64 y 4) 4) -1/4))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x y)) 8))) 32)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (-.f64 (*.f64 y 4) 4)))) -16)
(*.f64 (-.f64 (*.f64 y 4) 4) (/.f64 x -4))
(*.f64 x (/.f64 (-.f64 (*.f64 y 4) 4) -4))
(*.f64 x (*.f64 (-.f64 (*.f64 y 4) 4) -1/4))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x y)) 8)))) 64)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x y)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x y)) 8))))) 128)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(pow.f64 (-.f64 x (*.f64 x y)) 1)
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))
(neg.f64 (*.f64 x (+.f64 y -1)))
(*.f64 (-.f64 1 y) x)
(-.f64 x (*.f64 y x))

eval82.0ms (0.4%)

Compiler

Compiled 1359 to 824 computations (39.4% saved)

prune22.0ms (0.1%)

Pruning

9 alts after pruning (1 fresh and 8 done)

PrunedKeptTotal
New1480148
Fresh011
Picked011
Done077
Total1489157
Error
0.0b
Counts
157 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
19.3b
(-.f64 x (*.f64 y x))
32.2b
(+.f64 (*.f64 y z) (*.f64 y (neg.f64 x)))
0.0b
(+.f64 x (*.f64 y (-.f64 z x)))
12.3b
(+.f64 x (*.f64 y z))
32.2b
(*.f64 y (-.f64 z x))
51.0b
(*.f64 y (neg.f64 x))
43.7b
(*.f64 y z)
19.3b
(*.f64 x (-.f64 1 y))
31.1b
x
Compiler

Compiled 70 to 46 computations (34.3% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune3.0ms (0%)

Pruning

9 alts after pruning (1 fresh and 8 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done088
Total099
Error
0.0b
Counts
9 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
19.3b
(-.f64 x (*.f64 y x))
32.2b
(+.f64 (*.f64 y z) (*.f64 y (neg.f64 x)))
0.0b
(+.f64 x (*.f64 y (-.f64 z x)))
12.3b
(+.f64 x (*.f64 y z))
32.2b
(*.f64 y (-.f64 z x))
51.0b
(*.f64 y (neg.f64 x))
43.7b
(*.f64 y z)
19.3b
(*.f64 x (-.f64 1 y))
31.1b
x
Compiler

Compiled 70 to 46 computations (34.3% saved)

regimes31.0ms (0.2%)

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

4 calls:

8.0ms
y
7.0ms
(+.f64 x (*.f64 y (-.f64 z x)))
6.0ms
x
6.0ms
z
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1z
0.0b1(+.f64 x (*.f64 y (-.f64 z x)))
Compiler

Compiled 83 to 36 computations (56.6% saved)

regimes2.4s (12.7%)

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

3 calls:

2.3s
z
23.0ms
x
14.0ms
y
Results
ErrorSegmentsBranch
5.4b5x
1.1b3y
5.6b3z
Compiler

Compiled 49 to 24 computations (51% saved)

bsearch6.2s (33.7%)

Algorithm
binary-search
Steps
TimeLeftRight
11.0ms
0.47886210303399224
81.58046361134491
6.2s
-15092286118.268452
-0.0016418970296603046
Results
6.2s272×body256valid
0.0msbody256infinite
Compiler

Compiled 322 to 215 computations (33.2% saved)

regimes91.0ms (0.5%)

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

3 calls:

67.0ms
y
12.0ms
z
11.0ms
x
Results
ErrorSegmentsBranch
8.5b3x
8.8b3y
16.3b3z
Compiler

Compiled 33 to 20 computations (39.4% saved)

bsearch27.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
15.0ms
2.42460430008032e-82
8.820055160681337e-70
12.0ms
-6.872945254168764e-166
-7.623235217104352e-168
Results
24.0ms272×body256valid
Compiler

Compiled 322 to 232 computations (28% saved)

regimes93.0ms (0.5%)

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

3 calls:

74.0ms
z
10.0ms
x
8.0ms
y
Results
ErrorSegmentsBranch
9.5b3x
17.9b2y
17.1b3z
Compiler

Compiled 28 to 18 computations (35.7% saved)

bsearch95.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
5.0923417995244626e-186
3.291227307393411e-172
73.0ms
-6.872945254168764e-166
-7.623235217104352e-168
Results
92.0ms272×body256valid
Compiler

Compiled 288 to 215 computations (25.3% saved)

regimes165.0ms (0.9%)

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

3 calls:

83.0ms
x
72.0ms
z
9.0ms
y
Results
ErrorSegmentsBranch
20.4b3x
19.9b3y
27.1b5z
Compiler

Compiled 23 to 15 computations (34.8% saved)

bsearch91.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
76.0ms
0.47886210303399224
81.58046361134491
15.0ms
-15092286118.268452
-0.0016418970296603046
Results
88.0ms272×body256valid
Compiler

Compiled 230 to 174 computations (24.3% saved)

regimes26.0ms (0.1%)

Accuracy

Total -41.6b remaining (-204.1%)

Threshold costs -41.6b (-204.1%)

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

3 calls:

10.0ms
y
8.0ms
x
8.0ms
z
Results
ErrorSegmentsBranch
20.4b3x
20.9b3y
28.2b3z
Compiler

Compiled 19 to 13 computations (31.6% saved)

bsearch168.0ms (0.9%)

Algorithm
binary-search
Steps
TimeLeftRight
64.0ms
2.5237676546305462e-43
7.119215801913847e-39
103.0ms
-6.872945254168764e-166
-7.623235217104352e-168
Results
165.0ms240×body256valid
Compiler

Compiled 196 to 146 computations (25.5% saved)

simplify5.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
046249
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 x (*.f64 y (-.f64 z x)))
(if (<=.f64 y -1) (*.f64 y (-.f64 z x)) (if (<=.f64 y 1) (+.f64 x (*.f64 y z)) (*.f64 y (-.f64 z x))))
(if (<=.f64 x -4149515568880993/8299031137761985917024815727382322302024892464484873799991314659381305622825816292799414097894207588576395773222601578364790302150823550615773749668227927374122363606803019047370752) (*.f64 x (-.f64 1 y)) (if (<=.f64 x 4939470020567105/133499189745056880149688856635597007162669032647290798121690100488888732861290034376435130433536) (*.f64 y (-.f64 z x)) (*.f64 x (-.f64 1 y))))
(if (<=.f64 x -8630992383272465/16598062275523971834049631454764644604049784928969747599982629318762611245651632585598828195788415177152791546445203156729580604301647101231547499336455854748244727213606038094741504) (*.f64 x (-.f64 1 y)) (if (<=.f64 x 5847854795536261/139234637988958594318883410818490335842688858253435056475195084164406590796163250320615014993816265862385324388842602762167013693889631286567769205313788274787963704661873320009853338386432) (*.f64 y z) (*.f64 x (-.f64 1 y))))
(if (<=.f64 y -1) (*.f64 y (neg.f64 x)) (if (<=.f64 y 1080863910568919/2251799813685248) x (*.f64 y z)))
(if (<=.f64 x -4116319444329945/66392249102095887336198525819058578416199139715878990399930517275050444982606530342395312783153660708611166185780812626918322417206588404926189997345823418992978908854424152378966016) x (if (<=.f64 x 2746232009231673/196159429230833773869868419475239575503198607639501078528) (*.f64 y z) x))
x
Outputs
(+.f64 x (*.f64 y (-.f64 z x)))
(if (<=.f64 y -1) (*.f64 y (-.f64 z x)) (if (<=.f64 y 1) (+.f64 x (*.f64 y z)) (*.f64 y (-.f64 z x))))
(if (<=.f64 x -4149515568880993/8299031137761985917024815727382322302024892464484873799991314659381305622825816292799414097894207588576395773222601578364790302150823550615773749668227927374122363606803019047370752) (*.f64 x (-.f64 1 y)) (if (<=.f64 x 4939470020567105/133499189745056880149688856635597007162669032647290798121690100488888732861290034376435130433536) (*.f64 y (-.f64 z x)) (*.f64 x (-.f64 1 y))))
(if (<=.f64 x -8630992383272465/16598062275523971834049631454764644604049784928969747599982629318762611245651632585598828195788415177152791546445203156729580604301647101231547499336455854748244727213606038094741504) (*.f64 x (-.f64 1 y)) (if (<=.f64 x 5847854795536261/139234637988958594318883410818490335842688858253435056475195084164406590796163250320615014993816265862385324388842602762167013693889631286567769205313788274787963704661873320009853338386432) (*.f64 y z) (*.f64 x (-.f64 1 y))))
(if (<=.f64 y -1) (*.f64 y (neg.f64 x)) (if (<=.f64 y 1080863910568919/2251799813685248) x (*.f64 y z)))
(if (<=.f64 x -4116319444329945/66392249102095887336198525819058578416199139715878990399930517275050444982606530342395312783153660708611166185780812626918322417206588404926189997345823418992978908854424152378966016) x (if (<=.f64 x 2746232009231673/196159429230833773869868419475239575503198607639501078528) (*.f64 y z) x))
x
Compiler

Compiled 125 to 77 computations (38.4% saved)

soundness0.0ms (0%)

end92.0ms (0.5%)

Compiler

Compiled 107 to 52 computations (51.4% saved)

Profiling

Loading profile data...