Details

Time bar (total: 18.5s)

analyze1.0s (5.5%)

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)

sample2.7s (14.8%)

Results
2.2s8256×body256valid
511.0ms1087×body256infinite
Bogosity

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

simplify8.0ms (0%)

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

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

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

eval11.0ms (0.1%)

Compiler

Compiled 631 to 282 computations (55.3% saved)

prune8.0ms (0%)

Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New55560
Fresh000
Picked101
Done000
Total56561
Error
0.0b
Counts
61 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
14.1b
(+.f64 x (*.f64 y z))
24.6b
(*.f64 y (-.f64 z x))
24.5b
(*.f64 x (-.f64 1 y))
38.3b
x
Compiler

Compiled 40 to 27 computations (32.5% saved)

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

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite181.0ms (1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
15513
212813
323813
442813
591213
6233713
7422313
8529813
9655813
10765813
11784013
Stop Event
node limit
Counts
1 → 22
Calls
Call 1
Inputs
(*.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 -1 (-.f64 1 (*.f64 x (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (*.f64 (+.f64 x x) (*.f64 (+.f64 y -1) 1/2))))))) (#(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 0 (*.f64 x (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 (+.f64 x x) (*.f64 (+.f64 y -1) 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 x (*.f64 (-.f64 1 y) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (-.f64 1 y) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (-.f64 1 y) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x (*.f64 (-.f64 1 y) 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 1 y) 8)))) 32)))) (#(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 x) (*.f64 (+.f64 y -1) 1/2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 1 y) 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 1 y) 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 1 y) 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (-.f64 1 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 x (+.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (+.f64 x x) (*.f64 (+.f64 y -1) 1/2)))))))

simplify371.0ms (2%)

Algorithm
egg-herbie
Rules
2118×rational.json-simplify-35
2020×rational.json-simplify-2
1878×rational.json-simplify-53
1060×rational.json-simplify-1
992×rational.json-simplify-43
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
066640
1170618
2333618
3765618
42601618
54362618
65002618
75206618
85362618
95537618
106410618
117599618
127724618
137775618
147799618
157817618
167956618
Stop Event
node limit
Counts
46 → 29
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)))
(+.f64 (*.f64 x (-.f64 1 y)) 0)
(+.f64 0 (*.f64 x (-.f64 1 y)))
(+.f64 -1 (-.f64 1 (*.f64 x (+.f64 y -1))))
(+.f64 -1 (-.f64 1 (*.f64 (+.f64 x x) (*.f64 (+.f64 y -1) 1/2))))
(+.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 0 (*.f64 x (+.f64 y -1)))
(-.f64 0 (*.f64 (+.f64 x x) (*.f64 (+.f64 y -1) 1/2)))
(/.f64 (*.f64 x (-.f64 1 y)) 1)
(/.f64 (*.f64 x (*.f64 (-.f64 1 y) 2)) 2)
(/.f64 (*.f64 x (*.f64 (-.f64 1 y) 4)) 4)
(/.f64 (*.f64 x (*.f64 (-.f64 1 y) 8)) 8)
(/.f64 (*.f64 2 (*.f64 x (*.f64 (-.f64 1 y) 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 1 y) 8)))) 32)
(/.f64 (*.f64 x (+.f64 y -1)) -1)
(/.f64 (*.f64 (+.f64 x x) (*.f64 (+.f64 y -1) 1/2)) -1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 1 y) 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 1 y) 8)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 1 y) 8))))))) 256)
(pow.f64 (*.f64 x (-.f64 1 y)) 1)
(neg.f64 (*.f64 x (+.f64 y -1)))
(neg.f64 (*.f64 (+.f64 x x) (*.f64 (+.f64 y -1) 1/2)))
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 -1 (*.f64 y x)))
(+.f64 x (*.f64 y (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 y (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 y (neg.f64 x)))
(*.f64 -1 (*.f64 y x))
(*.f64 y (neg.f64 x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 y (neg.f64 x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 y (neg.f64 x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 y (neg.f64 x)))
(*.f64 -1 (*.f64 y x))
(*.f64 y (neg.f64 x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 y (neg.f64 x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 y (neg.f64 x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 y (neg.f64 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 -1 (-.f64 1 (*.f64 x (+.f64 y -1))))
(*.f64 (-.f64 1 y) x)
(+.f64 -1 (-.f64 1 (*.f64 (+.f64 x x) (*.f64 (+.f64 y -1) 1/2))))
(*.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 0 (*.f64 x (+.f64 y -1)))
(*.f64 (-.f64 1 y) x)
(-.f64 0 (*.f64 (+.f64 x x) (*.f64 (+.f64 y -1) 1/2)))
(*.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 x (*.f64 (-.f64 1 y) 4)) 4)
(*.f64 (-.f64 1 y) x)
(/.f64 (*.f64 x (*.f64 (-.f64 1 y) 8)) 8)
(*.f64 (-.f64 1 y) x)
(/.f64 (*.f64 2 (*.f64 x (*.f64 (-.f64 1 y) 8))) 16)
(*.f64 (-.f64 1 y) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 1 y) 8)))) 32)
(*.f64 (-.f64 1 y) x)
(/.f64 (*.f64 x (+.f64 y -1)) -1)
(*.f64 (-.f64 1 y) x)
(/.f64 (*.f64 (+.f64 x x) (*.f64 (+.f64 y -1) 1/2)) -1)
(*.f64 (-.f64 1 y) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 1 y) 8))))) 64)
(*.f64 (-.f64 1 y) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 1 y) 8)))))) 128)
(*.f64 (-.f64 1 y) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 1 y) 8))))))) 256)
(*.f64 (-.f64 1 y) x)
(pow.f64 (*.f64 x (-.f64 1 y)) 1)
(*.f64 (-.f64 1 y) x)
(neg.f64 (*.f64 x (+.f64 y -1)))
(*.f64 (-.f64 1 y) x)
(neg.f64 (*.f64 (+.f64 x x) (*.f64 (+.f64 y -1) 1/2)))
(*.f64 (-.f64 1 y) x)

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)

localize79.0ms (0.4%)

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

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

simplify840.0ms (4.5%)

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)

localize10.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 27 to 14 computations (48.1% saved)

series1.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite237.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
1904×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
01025
17525
216025
330625
457325
5128625
6293425
7508625
8632125
9742525
10750525
11759725
12768625
Stop Event
node limit
Counts
1 → 20
Calls
Call 1
Inputs
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) (*.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 (*.f64 y z) (*.f64 x (-.f64 1 y))) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 1)))))

simplify461.0ms (2.5%)

Algorithm
egg-herbie
Rules
3124×rational.json-simplify-51
2958×rational.json-simplify-2
2102×rational.json-simplify-35
1484×rational.json-simplify-49
1138×rational.json-simplify-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0611298
11321268
23291268
39631268
415741268
523661268
628251268
728961268
829471268
929851268
1034771268
1136441268
1237141268
1337841268
1438381268
1538921268
1639461268
1740001268
1840541268
1950471268
2074771268
2175591268
2276061268
2376521268
2476981268
Stop Event
node limit
Counts
56 → 42
Calls
Call 1
Inputs
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 (*.f64 y z) (*.f64 x (-.f64 1 y))) 0)
(*.f64 1 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))))
(*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 1)
(*.f64 2 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 1/2))
(*.f64 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 4))
(*.f64 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 2))
(*.f64 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 4))
(*.f64 (/.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 4) 4)
(/.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 1)
(/.f64 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 8))))) 128)
(pow.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 1)
Outputs
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 -1 (*.f64 y (+.f64 x (*.f64 -1 z))))
(neg.f64 (*.f64 y (+.f64 x (neg.f64 z))))
(*.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 -1 (*.f64 y (+.f64 x (*.f64 -1 z)))))
(+.f64 x (neg.f64 (*.f64 y (+.f64 x (neg.f64 z)))))
(+.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 -1 (*.f64 y (+.f64 x (*.f64 -1 z)))))
(+.f64 x (neg.f64 (*.f64 y (+.f64 x (neg.f64 z)))))
(+.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 -1 (*.f64 y (+.f64 x (*.f64 -1 z)))))
(+.f64 x (neg.f64 (*.f64 y (+.f64 x (neg.f64 z)))))
(+.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 x (-.f64 1 y))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(*.f64 (-.f64 1 y) x)
(*.f64 x (-.f64 1 y))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(*.f64 (-.f64 1 y) x)
(*.f64 x (-.f64 1 y))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(+.f64 (*.f64 y z) (*.f64 (-.f64 1 y) x))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(-.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 0)
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(*.f64 1 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 1)
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(*.f64 2 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 1/2))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(*.f64 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 2) 1/2)
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(*.f64 4 (/.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 4))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(*.f64 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 4) 1/4)
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 2))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(*.f64 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 1/2) 2)
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 4))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(*.f64 (/.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 4) 4)
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(/.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 1)
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(/.f64 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 2) 2)
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(/.f64 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 4) 4)
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(/.f64 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 8) 8)
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 8)) 16)
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 8))) 32)
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 8)))) 64)
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 8))))) 128)
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(pow.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 1)
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))

eval26.0ms (0.1%)

Compiler

Compiled 1494 to 850 computations (43.1% saved)

prune20.0ms (0.1%)

Pruning

7 alts after pruning (4 fresh and 3 done)

PrunedKeptTotal
New1423145
Fresh011
Picked101
Done033
Total1437150
Error
0.0b
Counts
150 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
24.6b
(+.f64 (*.f64 y z) (*.f64 y (neg.f64 x)))
14.1b
(+.f64 x (*.f64 y z))
24.6b
(*.f64 y (-.f64 z x))
48.6b
(*.f64 y (neg.f64 x))
38.3b
(*.f64 y z)
24.5b
(*.f64 x (-.f64 1 y))
38.3b
x
Compiler

Compiled 52 to 35 computations (32.7% saved)

localize4.0ms (0%)

Compiler

Compiled 8 to 4 computations (50% saved)

localize4.0ms (0%)

Compiler

Compiled 11 to 5 computations (54.5% saved)

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

rewrite118.0ms (0.6%)

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

simplify3.2s (17.5%)

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

eval6.0ms (0%)

Compiler

Compiled 425 to 199 computations (53.2% saved)

prune8.0ms (0%)

Pruning

7 alts after pruning (1 fresh and 6 done)

PrunedKeptTotal
New43043
Fresh011
Picked011
Done055
Total43750
Error
0.0b
Counts
50 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
24.6b
(+.f64 (*.f64 y z) (*.f64 y (neg.f64 x)))
14.1b
(+.f64 x (*.f64 y z))
24.6b
(*.f64 y (-.f64 z x))
48.6b
(*.f64 y (neg.f64 x))
38.3b
(*.f64 y z)
24.5b
(*.f64 x (-.f64 1 y))
38.3b
x
Compiler

Compiled 52 to 35 computations (32.7% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune2.0ms (0%)

Pruning

7 alts after pruning (1 fresh and 6 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done066
Total077
Error
0.0b
Counts
7 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
24.6b
(+.f64 (*.f64 y z) (*.f64 y (neg.f64 x)))
14.1b
(+.f64 x (*.f64 y z))
24.6b
(*.f64 y (-.f64 z x))
48.6b
(*.f64 y (neg.f64 x))
38.3b
(*.f64 y z)
24.5b
(*.f64 x (-.f64 1 y))
38.3b
x
Compiler

Compiled 52 to 35 computations (32.7% saved)

regimes6.2s (33.6%)

Counts
9 → 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 (-.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:

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

Compiled 72 to 33 computations (54.2% saved)

regimes103.0ms (0.6%)

Counts
6 → 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))
Outputs
(*.f64 y (-.f64 z x))
(+.f64 x (*.f64 y z))
(*.f64 y (-.f64 z x))
Calls

3 calls:

71.0ms
z
16.0ms
x
15.0ms
y
Results
ErrorSegmentsBranch
7.7b3x
0.5b3y
7.6b3z
Compiler

Compiled 38 to 21 computations (44.7% saved)

bsearch77.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
15.0ms
0.0007971152571558379
13850254875.622866
61.0ms
-47415230954.14642
-2891433175.780154
Results
73.0ms272×body256valid
0.0msbody256infinite
Compiler

Compiled 322 to 215 computations (33.2% saved)

regimes56.0ms (0.3%)

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 y (-.f64 z x))
(*.f64 x (-.f64 1 y))
(*.f64 y (-.f64 z x))
Calls

3 calls:

29.0ms
y
13.0ms
z
13.0ms
x
Results
ErrorSegmentsBranch
11.9b3x
11.3b7y
10.9b3z
Compiler

Compiled 33 to 20 computations (39.4% saved)

bsearch12.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
0.0ms
7.236851923025454e+25
7.42416853339724e+25
12.0ms
-8.778296999411436e-41
-3.8235223889423104e-42
Results
11.0ms112×body256valid
Compiler

Compiled 142 to 102 computations (28.2% saved)

regimes174.0ms (0.9%)

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

3 calls:

96.0ms
x
51.0ms
z
26.0ms
y
Results
ErrorSegmentsBranch
13.9b3x
18.5b7y
13.5b3z
Compiler

Compiled 28 to 18 computations (35.7% saved)

bsearch96.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
12.0ms
7.42416853339724e+25
2.0071056991636836e+30
84.0ms
-1.7404646253219267e+79
-2.9848342579307744e+75
Results
93.0ms256×body256valid
1.0msbody256infinite
Compiler

Compiled 272 to 203 computations (25.4% saved)

regimes191.0ms (1%)

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

3 calls:

94.0ms
y
81.0ms
z
15.0ms
x
Results
ErrorSegmentsBranch
24.4b5x
18.9b8y
23.3b5z
Compiler

Compiled 23 to 15 computations (34.8% saved)

bsearch260.0ms (1.4%)

Algorithm
binary-search
Steps
TimeLeftRight
76.0ms
0.0007971152571558379
13850254875.622866
15.0ms
1.2504890456149087e-67
6.45652799033069e-54
94.0ms
1.560765809016903e-80
6.262245397085298e-78
8.0ms
-9.182553193285371e-135
-4.252218912388668e-135
38.0ms
-8.308786634092005e-102
-2.2518449783790632e-102
12.0ms
-4.005433004392081e-70
-1.0274835874063098e-72
16.0ms
-4.920407271328817e+94
-2.3336012981048433e+90
Results
248.0ms864×body256valid
3.0ms31×body256infinite
Compiler

Compiled 698 to 523 computations (25.1% saved)

regimes868.0ms (4.7%)

Accuracy

Total -37.2b remaining (-150.6%)

Threshold costs -37.2b (-150.6%)

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

3 calls:

851.0ms
y
9.0ms
x
8.0ms
z
Results
ErrorSegmentsBranch
25.8b3x
25.2b7y
24.7b3z
Compiler

Compiled 19 to 13 computations (31.6% saved)

bsearch8.0ms (0%)

Algorithm
binary-search
Steps
TimeLeftRight
0.0ms
7.236851923025454e+25
7.42416853339724e+25
8.0ms
-3.8235223889423104e-42
-9.815125890168691e-43
Results
7.0ms80×body256valid
Compiler

Compiled 76 to 56 computations (26.3% saved)

simplify5.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
059321
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 x (*.f64 y (-.f64 z x)))
(if (<=.f64 y -2900000000) (*.f64 y (-.f64 z x)) (if (<=.f64 y 1) (+.f64 x (*.f64 y z)) (*.f64 y (-.f64 z x))))
(if (<=.f64 z -8532935171541269/98079714615416886934934209737619787751599303819750539264) (*.f64 y (-.f64 z x)) (if (<=.f64 z 73999999999999997684744192) (*.f64 x (-.f64 1 y)) (*.f64 y (-.f64 z x))))
(if (<=.f64 z -250000000000000002123405358422425744037217481149690153973749775675699226476544) (*.f64 y z) (if (<=.f64 z 55000000000000003204716691456) (*.f64 x (-.f64 1 y)) (*.f64 y z)))
(if (<=.f64 y -5800000000000000280536344762120328080976447536893224971709784144559618524624546445437960192) (*.f64 y (neg.f64 x)) (if (<=.f64 y -8752888960812245/1989292945639146568621528992587283360401824603189390869761855907572637988050133502132224) (*.f64 y z) (if (<=.f64 y -5799975312109267/2521728396569246669585858566409191283525103313309788586748690777871726193375821479130513040312634601011624191379636224) x (if (<=.f64 y -7365128867766319/818347651974035467503297424206899788054160511510766197370822842024033449101168638720817523081476039287721671031890017752304314136471348263332131897344) (*.f64 y z) (if (<=.f64 y 6466367003276193/1042962419883256876169444192465601618458351817556959360325703910069443225478828393565899456512) x (if (<=.f64 y 7092265465785617/7237005577332262213973186563042994240829374041602535252466099000494570602496) (*.f64 y z) (if (<=.f64 y 1) x (*.f64 y (neg.f64 x)))))))))
(if (<=.f64 z -5963246648617347/3138550867693340381917894711603833208051177722232017256448) (*.f64 y z) (if (<=.f64 z 73999999999999997684744192) x (*.f64 y z)))
x
Outputs
(+.f64 x (*.f64 y (-.f64 z x)))
(if (<=.f64 y -2900000000) (*.f64 y (-.f64 z x)) (if (<=.f64 y 1) (+.f64 x (*.f64 y z)) (*.f64 y (-.f64 z x))))
(if (<=.f64 z -8532935171541269/98079714615416886934934209737619787751599303819750539264) (*.f64 y (-.f64 z x)) (if (<=.f64 z 73999999999999997684744192) (*.f64 x (-.f64 1 y)) (*.f64 y (-.f64 z x))))
(if (<=.f64 z -250000000000000002123405358422425744037217481149690153973749775675699226476544) (*.f64 y z) (if (<=.f64 z 55000000000000003204716691456) (*.f64 x (-.f64 1 y)) (*.f64 y z)))
(if (<=.f64 y -5800000000000000280536344762120328080976447536893224971709784144559618524624546445437960192) (*.f64 y (neg.f64 x)) (if (<=.f64 y -8752888960812245/1989292945639146568621528992587283360401824603189390869761855907572637988050133502132224) (*.f64 y z) (if (<=.f64 y -5799975312109267/2521728396569246669585858566409191283525103313309788586748690777871726193375821479130513040312634601011624191379636224) x (if (<=.f64 y -7365128867766319/818347651974035467503297424206899788054160511510766197370822842024033449101168638720817523081476039287721671031890017752304314136471348263332131897344) (*.f64 y z) (if (<=.f64 y 6466367003276193/1042962419883256876169444192465601618458351817556959360325703910069443225478828393565899456512) x (if (<=.f64 y 7092265465785617/7237005577332262213973186563042994240829374041602535252466099000494570602496) (*.f64 y z) (if (<=.f64 y 1) x (*.f64 y (neg.f64 x)))))))))
(if (<=.f64 z -5963246648617347/3138550867693340381917894711603833208051177722232017256448) (*.f64 y z) (if (<=.f64 z 73999999999999997684744192) x (*.f64 y z)))
x
Compiler

Compiled 157 to 86 computations (45.2% saved)

soundness0.0ms (0%)

end251.0ms (1.4%)

Compiler

Compiled 139 to 61 computations (56.1% saved)

Profiling

Loading profile data...