Details

Time bar (total: 5.8s)

analyze716.0ms (12.3%)

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.9s (48.9%)

Results
2.3s8256×body256valid
526.0ms1152×body256infinite
Bogosity

preprocess32.0ms (0.6%)

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)

simplify26.0ms (0.4%)

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

eval1.0ms (0%)

Compiler

Compiled 10 to 6 computations (40% saved)

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

localize42.0ms (0.7%)

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)

series8.0ms (0.1%)

Counts
2 → 60
Calls

18 calls:

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

rewrite157.0ms (2.7%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0832
16832
223332
386732
4340232
Stop Event
node limit
Counts
2 → 17
Calls
Call 1
Inputs
(*.f64 y (-.f64 z x))
(+.f64 x (*.f64 y (-.f64 z x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (-.f64 z x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (-.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (-.f64 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 y (-.f64 z x)) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))))))) (#(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 (+.f64 x (*.f64 y (-.f64 z x))) (/.f64 (+.f64 x (*.f64 y (-.f64 z x))) (+.f64 x (*.f64 y (-.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (*.f64 y (-.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) (+.f64 x (*.f64 y (-.f64 z x)))) (/.f64 1 (+.f64 x (*.f64 y (-.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) (+.f64 x (*.f64 y (-.f64 z x)))) (*.f64 (/.f64 1 (+.f64 x (*.f64 y (-.f64 z x)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 x (*.f64 y (-.f64 z x)))) (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) (+.f64 x (*.f64 y (-.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) (+.f64 x (*.f64 y (-.f64 z x)))))) (/.f64 (/.f64 1 (+.f64 x (*.f64 y (-.f64 z x)))) (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) (+.f64 x (*.f64 y (-.f64 z x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 y (-.f64 z x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 y (-.f64 z x))) (/.f64 (+.f64 x (*.f64 y (-.f64 z x))) (+.f64 x (*.f64 y (-.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (*.f64 y (-.f64 z x))) 1)))))

simplify309.0ms (5.3%)

Algorithm
egg-herbie
Rules
1258×rational.json-simplify-58
920×rational.json-simplify-47
680×rational.json-simplify-2
670×rational.json-simplify-49
638×rational.json-simplify-111
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0521631
1971385
22801385
311121341
438361341
564081341
Stop Event
node limit
Counts
77 → 45
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 y (-.f64 z x)) 0)
(/.f64 (*.f64 y (-.f64 z x)) 1)
(/.f64 (*.f64 y (-.f64 z x)) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))))
(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 (+.f64 x (*.f64 y (-.f64 z x))) (/.f64 (+.f64 x (*.f64 y (-.f64 z x))) (+.f64 x (*.f64 y (-.f64 z x)))))
(*.f64 1 (+.f64 x (*.f64 y (-.f64 z x))))
(*.f64 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) (+.f64 x (*.f64 y (-.f64 z x)))) (/.f64 1 (+.f64 x (*.f64 y (-.f64 z x)))))
(*.f64 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) (+.f64 x (*.f64 y (-.f64 z x)))) (*.f64 (/.f64 1 (+.f64 x (*.f64 y (-.f64 z x)))) 1))
(*.f64 (/.f64 1 (+.f64 x (*.f64 y (-.f64 z x)))) (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) (+.f64 x (*.f64 y (-.f64 z x)))))
(*.f64 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) (+.f64 x (*.f64 y (-.f64 z x)))))) (/.f64 (/.f64 1 (+.f64 x (*.f64 y (-.f64 z x)))) (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) (+.f64 x (*.f64 y (-.f64 z x))))))
(/.f64 (+.f64 x (*.f64 y (-.f64 z x))) 1)
(/.f64 (+.f64 x (*.f64 y (-.f64 z x))) (/.f64 (+.f64 x (*.f64 y (-.f64 z x))) (+.f64 x (*.f64 y (-.f64 z x)))))
(pow.f64 (+.f64 x (*.f64 y (-.f64 z x))) 1)
Outputs
(*.f64 -1 (*.f64 y x))
(*.f64 x (neg.f64 y))
(*.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 x (neg.f64 y))
(*.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 x (neg.f64 y))
(*.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 x (neg.f64 y)))
(+.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 y (-.f64 z x)) 0)
(*.f64 y (-.f64 z x))
(/.f64 (*.f64 y (-.f64 z x)) 1)
(*.f64 y (-.f64 z x))
(/.f64 (*.f64 y (-.f64 z x)) (/.f64 (*.f64 y (-.f64 z x)) (*.f64 y (-.f64 z x))))
(*.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 (+.f64 x (*.f64 y (-.f64 z x))) (/.f64 (+.f64 x (*.f64 y (-.f64 z x))) (+.f64 x (*.f64 y (-.f64 z x)))))
(+.f64 x (*.f64 y (-.f64 z x)))
(*.f64 1 (+.f64 x (*.f64 y (-.f64 z x))))
(+.f64 x (*.f64 y (-.f64 z x)))
(*.f64 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) (+.f64 x (*.f64 y (-.f64 z x)))) (/.f64 1 (+.f64 x (*.f64 y (-.f64 z x)))))
(+.f64 x (*.f64 y (-.f64 z x)))
(*.f64 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) (+.f64 x (*.f64 y (-.f64 z x)))) (*.f64 (/.f64 1 (+.f64 x (*.f64 y (-.f64 z x)))) 1))
(+.f64 x (*.f64 y (-.f64 z x)))
(*.f64 (/.f64 1 (+.f64 x (*.f64 y (-.f64 z x)))) (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) (+.f64 x (*.f64 y (-.f64 z x)))))
(+.f64 x (*.f64 y (-.f64 z x)))
(*.f64 (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) (+.f64 x (*.f64 y (-.f64 z x)))))) (/.f64 (/.f64 1 (+.f64 x (*.f64 y (-.f64 z x)))) (*.f64 (+.f64 x (*.f64 y (-.f64 z x))) (+.f64 x (*.f64 y (-.f64 z x))))))
(+.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 x (*.f64 y (-.f64 z x))) (/.f64 (+.f64 x (*.f64 y (-.f64 z x))) (+.f64 x (*.f64 y (-.f64 z x)))))
(+.f64 x (*.f64 y (-.f64 z x)))
(pow.f64 (+.f64 x (*.f64 y (-.f64 z x))) 1)
(+.f64 x (*.f64 y (-.f64 z x)))

eval6.0ms (0.1%)

Compiler

Compiled 506 to 140 computations (72.3% saved)

prune134.0ms (2.3%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New40545
Fresh000
Picked011
Done000
Total40646
Error
0.0b
Counts
46 → 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)))
13.7b
(+.f64 x (*.f64 y z))
27.4b
(*.f64 y (-.f64 z x))
22.1b
(*.f64 x (-.f64 1 y))
35.2b
x
Compiler

Compiled 50 to 33 computations (34% saved)

localize6.0ms (0.1%)

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

rewrite80.0ms (1.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
15913
218913
369013
4267913
Stop Event
node limit
Counts
1 → 9
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 (*.f64 x (-.f64 1 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 x (-.f64 1 y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 x (-.f64 1 y)))) 1)))) (#(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 1 y)) (/.f64 (*.f64 x (-.f64 1 y)) (*.f64 x (-.f64 1 y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (-.f64 1 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 x (-.f64 1 y))))))))

simplify233.0ms (4%)

Algorithm
egg-herbie
Rules
938×rational.json-simplify-111
758×rational.json-simplify-2
756×rational.json-simplify-104
598×rational.json-simplify-79
578×rational.json-simplify-73
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
028471
154449
2129449
3366449
41427449
53689449
65659449
77494449
Stop Event
node limit
Counts
33 → 18
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 (*.f64 x (-.f64 1 y)) 0)
(-.f64 0 (neg.f64 (*.f64 x (-.f64 1 y))))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 x (-.f64 1 y)))) 1)
(/.f64 (*.f64 x (-.f64 1 y)) 1)
(/.f64 (*.f64 x (-.f64 1 y)) (/.f64 (*.f64 x (-.f64 1 y)) (*.f64 x (-.f64 1 y))))
(pow.f64 (*.f64 x (-.f64 1 y)) 1)
(neg.f64 (neg.f64 (*.f64 x (-.f64 1 y))))
Outputs
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
x
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 x (*.f64 y (*.f64 x -1)))
(+.f64 x (*.f64 y (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 x (*.f64 y (*.f64 x -1)))
(+.f64 x (*.f64 y (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 x (*.f64 y (*.f64 x -1)))
(+.f64 x (*.f64 y (neg.f64 x)))
(*.f64 -1 (*.f64 y x))
(*.f64 y (*.f64 x -1))
(*.f64 y (neg.f64 x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 x -1)))
(+.f64 x (*.f64 y (neg.f64 x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 x -1)))
(+.f64 x (*.f64 y (neg.f64 x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 x -1)))
(+.f64 x (*.f64 y (neg.f64 x)))
(*.f64 -1 (*.f64 y x))
(*.f64 y (*.f64 x -1))
(*.f64 y (neg.f64 x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 x -1)))
(+.f64 x (*.f64 y (neg.f64 x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 x -1)))
(+.f64 x (*.f64 y (neg.f64 x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 x -1)))
(+.f64 x (*.f64 y (neg.f64 x)))
(+.f64 (*.f64 x (-.f64 1 y)) 0)
(*.f64 (-.f64 1 y) x)
(+.f64 0 (*.f64 x (-.f64 1 y)))
(*.f64 (-.f64 1 y) x)
(-.f64 (*.f64 x (-.f64 1 y)) 0)
(*.f64 (-.f64 1 y) x)
(-.f64 0 (neg.f64 (*.f64 x (-.f64 1 y))))
(*.f64 (-.f64 1 y) x)
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 x (-.f64 1 y)))) 1)
(*.f64 (-.f64 1 y) x)
(/.f64 (*.f64 x (-.f64 1 y)) 1)
(*.f64 (-.f64 1 y) x)
(/.f64 (*.f64 x (-.f64 1 y)) (/.f64 (*.f64 x (-.f64 1 y)) (*.f64 x (-.f64 1 y))))
(*.f64 (-.f64 1 y) x)
(pow.f64 (*.f64 x (-.f64 1 y)) 1)
(*.f64 (-.f64 1 y) x)
(neg.f64 (neg.f64 (*.f64 x (-.f64 1 y))))
(*.f64 (-.f64 1 y) x)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 5 computations (64.3% saved)

localize5.0ms (0.1%)

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)

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

rewrite85.0ms (1.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
16013
220513
376213
4301113
Stop Event
node limit
Counts
1 → 21
Calls
Call 1
Inputs
(+.f64 x (*.f64 y z))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 x (neg.f64 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y z) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (*.f64 y z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (-.f64 (neg.f64 x) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 x)) (-.f64 1 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 y z))) (-.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (+.f64 x (*.f64 y z)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (*.f64 y z) (-.f64 -1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 x (-.f64 -1 (*.f64 y z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 y z)) (/.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z))) (+.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z))) (/.f64 1 (+.f64 x (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 x (*.f64 y z))) (*.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z))) (*.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z)))) (/.f64 (/.f64 1 (+.f64 x (*.f64 y z))) (*.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (+.f64 x (*.f64 y z))) (*.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z)))) (*.f64 (*.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z))) (*.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 y z)) (/.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (*.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (neg.f64 x) (*.f64 y z)))))))

simplify175.0ms (3%)

Algorithm
egg-herbie
Rules
1514×rational.json-simplify-47
1312×rational.json-simplify-1
1100×rational.json-simplify-2
924×rational.json-simplify-50
816×rational.json-simplify-58
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
051663
1112663
2319663
31807663
46420663
Stop Event
node limit
Counts
57 → 24
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 x (neg.f64 (*.f64 y z)))
(-.f64 (*.f64 y z) (neg.f64 x))
(-.f64 (+.f64 x (*.f64 y z)) 0)
(-.f64 0 (-.f64 (neg.f64 x) (*.f64 y z)))
(-.f64 (-.f64 0 (-.f64 -1 x)) (-.f64 1 (*.f64 y z)))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 y z))) (-.f64 1 x))
(-.f64 (-.f64 0 (-.f64 -1 (+.f64 x (*.f64 y z)))) 1)
(-.f64 (-.f64 (*.f64 y z) (-.f64 -1 x)) 1)
(-.f64 (-.f64 x (-.f64 -1 (*.f64 y z))) 1)
(*.f64 (+.f64 x (*.f64 y z)) 1)
(*.f64 (+.f64 x (*.f64 y z)) (/.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z))))
(*.f64 1 (+.f64 x (*.f64 y z)))
(*.f64 (/.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z))) (+.f64 x (*.f64 y z)))
(*.f64 (*.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z))) (/.f64 1 (+.f64 x (*.f64 y z))))
(*.f64 (/.f64 1 (+.f64 x (*.f64 y z))) (*.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z))))
(*.f64 (*.f64 (*.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z))) (*.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z)))) (/.f64 (/.f64 1 (+.f64 x (*.f64 y z))) (*.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z)))))
(*.f64 (/.f64 (/.f64 1 (+.f64 x (*.f64 y z))) (*.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z)))) (*.f64 (*.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z))) (*.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z)))))
(/.f64 (+.f64 x (*.f64 y z)) 1)
(/.f64 (+.f64 x (*.f64 y z)) (/.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z))))
(pow.f64 (+.f64 x (*.f64 y z)) 1)
(neg.f64 (-.f64 (neg.f64 x) (*.f64 y z)))
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 x (neg.f64 (*.f64 y z)))
(+.f64 (*.f64 y z) x)
(-.f64 (*.f64 y z) (neg.f64 x))
(+.f64 (*.f64 y z) x)
(-.f64 (+.f64 x (*.f64 y z)) 0)
(+.f64 (*.f64 y z) x)
(-.f64 0 (-.f64 (neg.f64 x) (*.f64 y z)))
(+.f64 (*.f64 y z) x)
(-.f64 (-.f64 0 (-.f64 -1 x)) (-.f64 1 (*.f64 y z)))
(+.f64 (*.f64 y z) x)
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 y z))) (-.f64 1 x))
(+.f64 (*.f64 y z) x)
(-.f64 (-.f64 0 (-.f64 -1 (+.f64 x (*.f64 y z)))) 1)
(+.f64 (*.f64 y z) x)
(-.f64 (-.f64 (*.f64 y z) (-.f64 -1 x)) 1)
(+.f64 (*.f64 y z) x)
(-.f64 (-.f64 x (-.f64 -1 (*.f64 y z))) 1)
(+.f64 (*.f64 y z) x)
(*.f64 (+.f64 x (*.f64 y z)) 1)
(+.f64 (*.f64 y z) x)
(*.f64 (+.f64 x (*.f64 y z)) (/.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z))))
(+.f64 (*.f64 y z) x)
(*.f64 1 (+.f64 x (*.f64 y z)))
(+.f64 (*.f64 y z) x)
(*.f64 (/.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z))) (+.f64 x (*.f64 y z)))
(+.f64 (*.f64 y z) x)
(*.f64 (*.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z))) (/.f64 1 (+.f64 x (*.f64 y z))))
(+.f64 (*.f64 y z) x)
(*.f64 (/.f64 1 (+.f64 x (*.f64 y z))) (*.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z))))
(+.f64 (*.f64 y z) x)
(*.f64 (*.f64 (*.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z))) (*.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z)))) (/.f64 (/.f64 1 (+.f64 x (*.f64 y z))) (*.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z)))))
(+.f64 (*.f64 y z) x)
(*.f64 (/.f64 (/.f64 1 (+.f64 x (*.f64 y z))) (*.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z)))) (*.f64 (*.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z))) (*.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z)))))
(+.f64 (*.f64 y z) x)
(/.f64 (+.f64 x (*.f64 y z)) 1)
(+.f64 (*.f64 y z) x)
(/.f64 (+.f64 x (*.f64 y z)) (/.f64 (+.f64 x (*.f64 y z)) (+.f64 x (*.f64 y z))))
(+.f64 (*.f64 y z) x)
(pow.f64 (+.f64 x (*.f64 y z)) 1)
(+.f64 (*.f64 y z) x)
(neg.f64 (-.f64 (neg.f64 x) (*.f64 y z)))
(+.f64 (*.f64 y z) x)

localize10.0ms (0.2%)

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

rewrite126.0ms (2.2%)

Algorithm
batch-egg-rewrite
Rules
1068×rational.json-simplify-2
916×rational.json-simplify-80
916×rational.json-simplify-79
564×rational.json-simplify-47
550×rational.json-simplify-54
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01025
18525
226625
399125
4398025
Stop Event
node limit
Counts
1 → 23
Calls
Call 1
Inputs
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y z) (neg.f64 (*.f64 x (-.f64 1 y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (-.f64 1 y)) (neg.f64 (*.f64 y z)))))) (#(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 0 (-.f64 (neg.f64 (*.f64 x (-.f64 1 y))) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 y z))) (-.f64 1 (*.f64 x (-.f64 1 y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (*.f64 y z) (-.f64 -1 (*.f64 x (-.f64 1 y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 x (-.f64 1 y)))) (-.f64 1 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (*.f64 x (-.f64 1 y)) (-.f64 -1 (*.f64 y z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 (-.f64 -1 (*.f64 y z)) (*.f64 x (-.f64 1 y)))) 1)))) (#(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 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (/.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))) (/.f64 1 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))) (/.f64 (/.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))) (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (+.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))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))))) (/.f64 (/.f64 1 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))) (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))) (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))))) (*.f64 (*.f64 (+.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))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (*.f64 (+.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))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))))) (*.f64 (*.f64 (+.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))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))))) (/.f64 (/.f64 (/.f64 1 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))) (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))))) (*.f64 (*.f64 (+.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))) (+.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 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (/.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (neg.f64 (*.f64 x (-.f64 1 y))) (*.f64 y z)))))))

simplify204.0ms (3.5%)

Algorithm
egg-herbie
Rules
1580×rational.json-simplify-50
1258×rational.json-simplify-43
1218×rational.json-simplify-54
1170×rational.json-simplify-58
678×exponential.json-simplify-26
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0681373
11561343
24111343
323971343
464091335
Stop Event
node limit
Counts
59 → 47
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 y z) (neg.f64 (*.f64 x (-.f64 1 y))))
(-.f64 (*.f64 x (-.f64 1 y)) (neg.f64 (*.f64 y z)))
(-.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 0)
(-.f64 0 (-.f64 (neg.f64 (*.f64 x (-.f64 1 y))) (*.f64 y z)))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 y z))) (-.f64 1 (*.f64 x (-.f64 1 y))))
(-.f64 (-.f64 (*.f64 y z) (-.f64 -1 (*.f64 x (-.f64 1 y)))) 1)
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 x (-.f64 1 y)))) (-.f64 1 (*.f64 y z)))
(-.f64 (-.f64 (*.f64 x (-.f64 1 y)) (-.f64 -1 (*.f64 y z))) 1)
(-.f64 (-.f64 0 (-.f64 (-.f64 -1 (*.f64 y z)) (*.f64 x (-.f64 1 y)))) 1)
(*.f64 1 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))))
(*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 1)
(*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (/.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))))
(*.f64 (/.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))))
(*.f64 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))) (/.f64 1 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))))
(*.f64 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))) (/.f64 (/.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))))
(*.f64 (/.f64 1 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))) (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))))
(*.f64 (*.f64 (*.f64 (+.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))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))))) (/.f64 (/.f64 1 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))) (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))))))
(*.f64 (/.f64 (/.f64 1 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))) (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))))) (*.f64 (*.f64 (+.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))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))))))
(*.f64 (*.f64 (*.f64 (*.f64 (+.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))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))))) (*.f64 (*.f64 (+.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))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))))) (/.f64 (/.f64 (/.f64 1 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))) (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))))) (*.f64 (*.f64 (+.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))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))))))
(/.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 1)
(/.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (/.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))))
(pow.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) 1)
(neg.f64 (-.f64 (neg.f64 (*.f64 x (-.f64 1 y))) (*.f64 y z)))
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))))
(*.f64 y (neg.f64 (+.f64 x (neg.f64 z))))
(*.f64 (+.f64 x (neg.f64 z)) (neg.f64 y))
(*.f64 y (-.f64 (neg.f64 x) (neg.f64 z)))
(*.f64 y (*.f64 -1 (-.f64 x z)))
(+.f64 (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) x))) x)
(+.f64 x (*.f64 -1 (*.f64 y (+.f64 x (*.f64 -1 z)))))
(+.f64 x (*.f64 y (neg.f64 (+.f64 x (neg.f64 z)))))
(+.f64 x (*.f64 (+.f64 x (neg.f64 z)) (neg.f64 y)))
(+.f64 x (*.f64 y (-.f64 (neg.f64 x) (neg.f64 z))))
(+.f64 x (*.f64 y (*.f64 -1 (-.f64 x z))))
(+.f64 (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) x))) x)
(+.f64 x (*.f64 -1 (*.f64 y (+.f64 x (*.f64 -1 z)))))
(+.f64 x (*.f64 y (neg.f64 (+.f64 x (neg.f64 z)))))
(+.f64 x (*.f64 (+.f64 x (neg.f64 z)) (neg.f64 y)))
(+.f64 x (*.f64 y (-.f64 (neg.f64 x) (neg.f64 z))))
(+.f64 x (*.f64 y (*.f64 -1 (-.f64 x z))))
(+.f64 (*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 z) x))) x)
(+.f64 x (*.f64 -1 (*.f64 y (+.f64 x (*.f64 -1 z)))))
(+.f64 x (*.f64 y (neg.f64 (+.f64 x (neg.f64 z)))))
(+.f64 x (*.f64 (+.f64 x (neg.f64 z)) (neg.f64 y)))
(+.f64 x (*.f64 y (-.f64 (neg.f64 x) (neg.f64 z))))
(+.f64 x (*.f64 y (*.f64 -1 (-.f64 x z))))
(*.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 y z) (neg.f64 (*.f64 x (-.f64 1 y))))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(-.f64 (*.f64 x (-.f64 1 y)) (neg.f64 (*.f64 y z)))
(+.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 0 (-.f64 (neg.f64 (*.f64 x (-.f64 1 y))) (*.f64 y z)))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 y z))) (-.f64 1 (*.f64 x (-.f64 1 y))))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(-.f64 (-.f64 (*.f64 y z) (-.f64 -1 (*.f64 x (-.f64 1 y)))) 1)
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 x (-.f64 1 y)))) (-.f64 1 (*.f64 y z)))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(-.f64 (-.f64 (*.f64 x (-.f64 1 y)) (-.f64 -1 (*.f64 y z))) 1)
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(-.f64 (-.f64 0 (-.f64 (-.f64 -1 (*.f64 y z)) (*.f64 x (-.f64 1 y)))) 1)
(+.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 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (/.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(*.f64 (/.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(*.f64 (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (+.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 (*.f64 y z) (*.f64 x (-.f64 1 y))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))) (/.f64 (/.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(*.f64 (/.f64 1 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))) (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(*.f64 (*.f64 (*.f64 (+.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))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))))) (/.f64 (/.f64 1 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))) (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))))))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(*.f64 (/.f64 (/.f64 1 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))) (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))))) (*.f64 (*.f64 (+.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))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))))))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))
(*.f64 (*.f64 (*.f64 (*.f64 (+.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))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))))) (*.f64 (*.f64 (+.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))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))))) (/.f64 (/.f64 (/.f64 1 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))) (*.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))))) (*.f64 (*.f64 (+.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))) (+.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 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (/.f64 (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y))) (+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))))
(+.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)))
(neg.f64 (-.f64 (neg.f64 (*.f64 x (-.f64 1 y))) (*.f64 y z)))
(+.f64 (*.f64 y z) (*.f64 x (-.f64 1 y)))

eval26.0ms (0.4%)

Compiler

Compiled 1556 to 691 computations (55.6% saved)

prune25.0ms (0.4%)

Pruning

8 alts after pruning (3 fresh and 5 done)

PrunedKeptTotal
New1182120
Fresh011
Picked011
Done044
Total1188126
Error
0.0b
Counts
126 → 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)))
13.7b
(+.f64 x (*.f64 y z))
27.4b
(*.f64 y (-.f64 z x))
49.4b
(*.f64 y (neg.f64 x))
40.4b
(*.f64 y z)
22.1b
(*.f64 x (-.f64 1 y))
35.2b
x
Compiler

Compiled 63 to 42 computations (33.3% saved)

localize5.0ms (0.1%)

Compiler

Compiled 8 to 4 computations (50% saved)

localize5.0ms (0.1%)

Compiler

Compiled 11 to 5 computations (54.5% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune3.0ms (0.1%)

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)))
13.7b
(+.f64 x (*.f64 y z))
27.4b
(*.f64 y (-.f64 z x))
49.4b
(*.f64 y (neg.f64 x))
40.4b
(*.f64 y z)
22.1b
(*.f64 x (-.f64 1 y))
35.2b
x
Compiler

Compiled 63 to 42 computations (33.3% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune3.0ms (0.1%)

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)))
13.7b
(+.f64 x (*.f64 y z))
27.4b
(*.f64 y (-.f64 z x))
49.4b
(*.f64 y (neg.f64 x))
40.4b
(*.f64 y z)
22.1b
(*.f64 x (-.f64 1 y))
35.2b
x
Compiler

Compiled 63 to 42 computations (33.3% saved)

regimes30.0ms (0.5%)

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:

8.0ms
(+.f64 x (*.f64 y (-.f64 z x)))
7.0ms
x
6.0ms
y
6.0ms
z
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)

regimes70.0ms (1.2%)

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:

31.0ms
z
21.0ms
x
17.0ms
y
Results
ErrorSegmentsBranch
7.8b3x
0.9b3y
6.2b3z
Compiler

Compiled 38 to 21 computations (44.7% saved)

bsearch31.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
17.0ms
1.113289497965599e-14
5.291311024125449e-7
14.0ms
-2755.9208124279107
-0.942440759689345
Results
26.0ms272×body256valid
Compiler

Compiled 322 to 215 computations (33.2% saved)

regimes49.0ms (0.8%)

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:

17.0ms
z
15.0ms
y
15.0ms
x
Results
ErrorSegmentsBranch
10.5b3x
9.2b3y
13.8b3z
Compiler

Compiled 33 to 20 computations (39.4% saved)

bsearch39.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
18.0ms
1.113289497965599e-14
5.291311024125449e-7
20.0ms
-3.692335527364059e-102
-1.2728869055629101e-114
Results
33.0ms304×body256valid
Compiler

Compiled 358 to 258 computations (27.9% saved)

regimes57.0ms (1%)

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:

25.0ms
y
17.0ms
x
12.0ms
z
Results
ErrorSegmentsBranch
13.6b3x
17.6b5y
14.0b3z
Compiler

Compiled 28 to 18 computations (35.7% saved)

bsearch31.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
15.0ms
5.887208307841706e-122
4.28343561994331e-120
16.0ms
-3.2580488179452056e-150
-1.780863804800629e-157
Results
27.0ms256×body256valid
Compiler

Compiled 272 to 203 computations (25.4% saved)

regimes55.0ms (0.9%)

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

3 calls:

22.0ms
y
21.0ms
z
11.0ms
x
Results
ErrorSegmentsBranch
23.8b3x
18.1b5y
25.6b5z
Compiler

Compiled 23 to 15 computations (34.8% saved)

bsearch59.0ms (1%)

Algorithm
binary-search
Steps
TimeLeftRight
13.0ms
7.649533260775758e+59
1.625999708139237e+61
11.0ms
6.070167563612919e-25
3.490340068749049e-24
17.0ms
-3.692335527364059e-102
-1.2728869055629101e-114
17.0ms
-939068407088.5801
-10771259.865298796
Results
49.0ms512×body256valid
1.0ms15×body256infinite
Compiler

Compiled 448 to 331 computations (26.1% saved)

regimes32.0ms (0.5%)

Accuracy

Total -39.7b remaining (-179.7%)

Threshold costs -39.7b (-179.7%)

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

3 calls:

12.0ms
z
10.0ms
y
9.0ms
x
Results
ErrorSegmentsBranch
23.8b3x
22.1b3y
26.8b3z
Compiler

Compiled 19 to 13 computations (31.6% saved)

bsearch29.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
10.0ms
6.070167563612919e-25
3.490340068749049e-24
19.0ms
-3.692335527364059e-102
-1.2728869055629101e-114
Results
25.0ms256×body256valid
Compiler

Compiled 208 to 155 computations (25.5% saved)

simplify7.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
053291
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 4911261142184431/9444732965739290427392) (+.f64 x (*.f64 y z)) (*.f64 y (-.f64 z x))))
(if (<=.f64 y -4791283953481569/5043456793138493339171717132818382567050206626619577173497381555743452386751642958261026080625269202023248382759272448) (*.f64 y (-.f64 z x)) (if (<=.f64 y 8510837770086989/38685626227668133590597632) (*.f64 x (-.f64 1 y)) (*.f64 y (-.f64 z x))))
(if (<=.f64 x -414619895305101/230344386280611654799899571593522271174128492457058131614758685317726084130380178960334883128519211886075950624436269830308263222041308144077235977260296389382897664) (*.f64 x (-.f64 1 y)) (if (<=.f64 x 1162941958872971/11629419588729710248789180926208072549658261770997088964503843186890228609814366773219056811420217048972200345700258846936553626057834496) (*.f64 y z) (*.f64 x (-.f64 1 y))))
(if (<=.f64 y -790000000000) (*.f64 y (neg.f64 x)) (if (<=.f64 y -1134777778456161/315216049571155833698232320801148910440637914163723573343586347233965774171977684891314130039079325126453023922454528) (*.f64 y z) (if (<=.f64 y 66355061549583/42535295865117307932921825928971026432) x (if (<=.f64 y 15499999999999999572312520281137262702507990033081640228487168) (*.f64 y z) (*.f64 y (neg.f64 x))))))
(if (<=.f64 y -1134777778456161/315216049571155833698232320801148910440637914163723573343586347233965774171977684891314130039079325126453023922454528) (*.f64 y z) (if (<=.f64 y 3266710722441009/2722258935367507707706996859454145691648) x (*.f64 y z)))
x
Outputs
(+.f64 x (*.f64 y (-.f64 z x)))
(if (<=.f64 y -1) (*.f64 y (-.f64 z x)) (if (<=.f64 y 4911261142184431/9444732965739290427392) (+.f64 x (*.f64 y z)) (*.f64 y (-.f64 z x))))
(if (<=.f64 y -4791283953481569/5043456793138493339171717132818382567050206626619577173497381555743452386751642958261026080625269202023248382759272448) (*.f64 y (-.f64 z x)) (if (<=.f64 y 8510837770086989/38685626227668133590597632) (*.f64 x (-.f64 1 y)) (*.f64 y (-.f64 z x))))
(if (<=.f64 x -414619895305101/230344386280611654799899571593522271174128492457058131614758685317726084130380178960334883128519211886075950624436269830308263222041308144077235977260296389382897664) (*.f64 x (-.f64 1 y)) (if (<=.f64 x 1162941958872971/11629419588729710248789180926208072549658261770997088964503843186890228609814366773219056811420217048972200345700258846936553626057834496) (*.f64 y z) (*.f64 x (-.f64 1 y))))
(if (<=.f64 y -790000000000) (*.f64 y (neg.f64 x)) (if (<=.f64 y -1134777778456161/315216049571155833698232320801148910440637914163723573343586347233965774171977684891314130039079325126453023922454528) (*.f64 y z) (if (<=.f64 y 66355061549583/42535295865117307932921825928971026432) x (if (<=.f64 y 15499999999999999572312520281137262702507990033081640228487168) (*.f64 y z) (*.f64 y (neg.f64 x))))))
(if (<=.f64 y -1134777778456161/315216049571155833698232320801148910440637914163723573343586347233965774171977684891314130039079325126453023922454528) (*.f64 y z) (if (<=.f64 y 3266710722441009/2722258935367507707706996859454145691648) x (*.f64 y z)))
x
Compiler

Compiled 142 to 80 computations (43.7% saved)

soundness0.0ms (0%)

end59.0ms (1%)

Compiler

Compiled 124 to 55 computations (55.6% saved)

Profiling

Loading profile data...