Details

Time bar (total: 17.5s)

analyze1.2s (6.7%)

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.8s (21.8%)

Results
3.7s8256×body256valid
107.0ms1174×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
y
@inf
(+.f64 x (*.f64 y (-.f64 z x)))
0.0ms
y
@-inf
(*.f64 y (-.f64 z x))
0.0ms
z
@inf
(*.f64 y (-.f64 z x))

rewrite116.0ms (0.7%)

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

simplify454.0ms (2.6%)

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.1%)

Compiler

Compiled 631 to 282 computations (55.3% saved)

prune9.0ms (0.1%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New55560
Fresh000
Picked011
Done000
Total55661
Error
0.0b
Counts
61 → 6
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)))
8.8b
(+.f64 x (*.f64 y z))
27.7b
(*.f64 y (-.f64 z x))
27.3b
(*.f64 x (-.f64 1 y))
35.3b
x
Compiler

Compiled 50 to 33 computations (34% 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
x
@-inf
(*.f64 x (-.f64 1 y))
0.0ms
y
@inf
(*.f64 x (-.f64 1 y))
0.0ms
y
@0
(*.f64 x (-.f64 1 y))

rewrite186.0ms (1.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)))))))

simplify382.0ms (2.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)

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

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

simplify800.0ms (4.6%)

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

rewrite258.0ms (1.5%)

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

simplify519.0ms (3%)

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

eval80.0ms (0.5%)

Compiler

Compiled 1494 to 850 computations (43.1% saved)

prune95.0ms (0.5%)

Pruning

8 alts after pruning (3 fresh and 5 done)

PrunedKeptTotal
New1432145
Fresh011
Picked011
Done044
Total1438151
Error
0.0b
Counts
151 → 8
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)))
8.8b
(+.f64 x (*.f64 y z))
27.7b
(*.f64 y (-.f64 z x))
54.1b
(*.f64 y (neg.f64 x))
36.3b
(*.f64 y z)
27.3b
(*.f64 x (-.f64 1 y))
35.3b
x
Compiler

Compiled 63 to 42 computations (33.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)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune3.0ms (0%)

Pruning

8 alts after pruning (1 fresh and 7 done)

PrunedKeptTotal
New000
Fresh011
Picked011
Done066
Total088
Error
0.0b
Counts
8 → 8
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)))
8.8b
(+.f64 x (*.f64 y z))
27.7b
(*.f64 y (-.f64 z x))
54.1b
(*.f64 y (neg.f64 x))
36.3b
(*.f64 y z)
27.3b
(*.f64 x (-.f64 1 y))
35.3b
x
Compiler

Compiled 63 to 42 computations (33.3% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune3.0ms (0%)

Pruning

8 alts after pruning (1 fresh and 7 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done077
Total088
Error
0.0b
Counts
8 → 8
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)))
8.8b
(+.f64 x (*.f64 y z))
27.7b
(*.f64 y (-.f64 z x))
54.1b
(*.f64 y (neg.f64 x))
36.3b
(*.f64 y z)
27.3b
(*.f64 x (-.f64 1 y))
35.3b
x
Compiler

Compiled 63 to 42 computations (33.3% saved)

regimes70.0ms (0.4%)

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

4 calls:

51.0ms
(+.f64 x (*.f64 y (-.f64 z x)))
6.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 64 to 32 computations (50% saved)

regimes97.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:

21.0ms
z
13.0ms
y
9.0ms
x
Results
ErrorSegmentsBranch
7.6b2x
0.4b3y
5.0b5z
Compiler

Compiled 38 to 21 computations (44.7% saved)

bsearch59.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
43.0ms
1.0843113110407613e-9
132488049789708.53
15.0ms
-67994.25193689745
-1.3544751579665455e-8
Results
55.0ms336×body256valid
Compiler

Compiled 394 to 263 computations (33.2% saved)

regimes121.0ms (0.7%)

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

3 calls:

83.0ms
x
24.0ms
z
12.0ms
y
Results
ErrorSegmentsBranch
10.8b5x
12.8b3y
15.6b5z
Compiler

Compiled 33 to 20 computations (39.4% saved)

bsearch98.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
12.0ms
5.642070778910629e-78
1.3803131532243403e-74
9.0ms
-5.903412225497125e-88
-6.593284114739711e-89
63.0ms
-1.664766057843523e+33
-4.772924126020513e+32
13.0ms
-3.938260423568796e+46
-5.557728199036424e+43
Results
37.0ms432×body256valid
1.0msbody256infinite
Compiler

Compiled 502 to 362 computations (27.9% saved)

regimes42.0ms (0.2%)

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:

17.0ms
z
11.0ms
y
10.0ms
x
Results
ErrorSegmentsBranch
13.6b3x
21.3b3y
17.2b5z
Compiler

Compiled 28 to 18 computations (35.7% saved)

bsearch23.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
13.0ms
8.822762672828417e-101
3.521229764702652e-97
9.0ms
-5.903412225497125e-88
-6.593284114739711e-89
Results
20.0ms224×body256valid
Compiler

Compiled 240 to 179 computations (25.4% saved)

regimes47.0ms (0.3%)

Accuracy

Total -43.5b remaining (-231.8%)

Threshold costs -43.5b (-231.8%)

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

3 calls:

20.0ms
z
17.0ms
x
10.0ms
y
Results
ErrorSegmentsBranch
18.8b5x
21.3b3y
24.0b5z
Compiler

Compiled 23 to 15 computations (34.8% saved)

bsearch35.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
12.0ms
5.642070778910629e-78
1.3803131532243403e-74
3.0ms
-1.4928841269539379e-56
-1.344620110917404e-56
8.0ms
-1.664766057843523e+33
-4.772924126020513e+32
12.0ms
-3.938260423568796e+46
-5.557728199036424e+43
Results
31.0ms368×body256valid
0.0msbody256infinite
Compiler

Compiled 292 to 218 computations (25.3% saved)

simplify2.3s (13.3%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
049282
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 -56000000000000003751539949257631614889885696) (*.f64 x (-.f64 1 y)) (if (<=.f64 x -1050000000000000029323105381908480) (*.f64 y (-.f64 z x)) (if (<=.f64 x -8242260651214319/71671831749689734737838152978190216899892655911508785116799651230841339877765150252188079784691427704832) (*.f64 x (-.f64 1 y)) (if (<=.f64 x 7129625917170701/2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376) (*.f64 y (-.f64 z x)) (*.f64 x (-.f64 1 y))))))
(if (<=.f64 x -8958978968711217/71671831749689734737838152978190216899892655911508785116799651230841339877765150252188079784691427704832) (*.f64 x (-.f64 1 y)) (if (<=.f64 x 456932444904477/2404907604760405225358828131112281116032698930082119547604265954848982041717359046106827774346003151904701415424) (*.f64 y z) (*.f64 x (-.f64 1 y))))
(if (<=.f64 x -56000000000000003751539949257631614889885696) x (if (<=.f64 x -859999999999999941665483602788352) (*.f64 y z) (if (<=.f64 x -6404820609821643/441711766194596082395824375185729628956870974218904739530401550323154944) x (if (<=.f64 x 146666590296083/4074071952668972172536891376818756322102936787331872501272280898708762599526673412366794752) (*.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 -56000000000000003751539949257631614889885696) (*.f64 x (-.f64 1 y)) (if (<=.f64 x -1050000000000000029323105381908480) (*.f64 y (-.f64 z x)) (if (<=.f64 x -8242260651214319/71671831749689734737838152978190216899892655911508785116799651230841339877765150252188079784691427704832) (*.f64 x (-.f64 1 y)) (if (<=.f64 x 7129625917170701/2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376) (*.f64 y (-.f64 z x)) (*.f64 x (-.f64 1 y))))))
(if (<=.f64 x -8958978968711217/71671831749689734737838152978190216899892655911508785116799651230841339877765150252188079784691427704832) (*.f64 x (-.f64 1 y)) (if (<=.f64 x 456932444904477/2404907604760405225358828131112281116032698930082119547604265954848982041717359046106827774346003151904701415424) (*.f64 y z) (*.f64 x (-.f64 1 y))))
(if (<=.f64 x -56000000000000003751539949257631614889885696) x (if (<=.f64 x -859999999999999941665483602788352) (*.f64 y z) (if (<=.f64 x -6404820609821643/441711766194596082395824375185729628956870974218904739530401550323154944) x (if (<=.f64 x 146666590296083/4074071952668972172536891376818756322102936787331872501272280898708762599526673412366794752) (*.f64 y z) x))))
x
Compiler

Compiled 136 to 80 computations (41.2% saved)

soundness0.0ms (0%)

end6.4s (36.8%)

Compiler

Compiled 121 to 59 computations (51.2% saved)

Profiling

Loading profile data...