Details

Time bar (total: 5.0s)

analyze368.0ms (7.4%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
0%0%99.9%0.1%0%0%0%4
0%0%99.9%0.1%0%0%0%5
0%0%99.9%0.1%0%0%0%6
12.5%12.5%87.4%0.1%0%0%0%7
18.8%18.7%81.1%0.1%0%0%0%8
25.8%25%71.8%0.1%3.1%0%0%9
36.4%34.3%60.1%0.1%5.5%0%0%10
44.5%41.3%51.5%0.1%7%0%0%11
51.5%46.8%44.1%0.1%9%0%0%12
Compiler

Compiled 13 to 9 computations (30.8% saved)

sample961.0ms (19.3%)

Results
835.0ms8256×body256valid
115.0ms1278×body256infinite
Bogosity

preprocess5.0ms (0.1%)

Algorithm
egg-herbie
Rules
14×rational_best-simplify-2
rational_best-simplify-1
trig-simplify-13
Iterations

Useful iterations: 0 (0.0ms)

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

Compiled 15 to 11 computations (26.7% saved)

simplify114.0ms (2.3%)

Algorithm
egg-herbie
Rules
rational_best-simplify-2
rational_best-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

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

eval0.0ms (0%)

Compiler

Compiled 12 to 8 computations (33.3% 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 (*.f64 x y) (*.f64 (-.f64 1 x) z))
Compiler

Compiled 12 to 8 computations (33.3% saved)

localize9.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 27 to 14 computations (48.1% saved)

series5.0ms (0.1%)

Counts
2 → 60
Calls

15 calls:

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

rewrite95.0ms (1.9%)

Algorithm
batch-egg-rewrite
Rules
994×rational_best-simplify-57
756×rational_best-simplify-80
666×rational_best-simplify-43
596×rational_best-simplify-44
522×rational_best-simplify-78
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01038
18238
226438
3111738
4495638
Stop Event
node limit
Counts
2 → 32
Calls
Call 1
Inputs
(+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))
(*.f64 (-.f64 1 x) z)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (/.f64 1 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (/.f64 1 (/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) (/.f64 1 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (/.f64 1 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))) (/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (/.f64 (/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) (/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))) (*.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (/.f64 1 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) 2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 1 x) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 1 x) z))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 1 x) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 (-.f64 1 x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 x) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 x) z) (/.f64 (*.f64 (-.f64 1 x) z) (*.f64 (-.f64 1 x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 x) (+.f64 z z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (-.f64 1 x) (+.f64 z z))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 1 x) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 (-.f64 1 x) z)))))))

simplify245.0ms (4.9%)

Algorithm
egg-herbie
Rules
942×rational_best-simplify-80
870×rational_best-simplify-2
834×rational_best-simplify-78
728×rational_best-simplify-24
496×rational_best-simplify-132
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0831832
11601780
25801780
315271780
439011780
572851780
Stop Event
node limit
Counts
92 → 60
Calls
Call 1
Inputs
z
(+.f64 (*.f64 (+.f64 (*.f64 -1 z) y) x) z)
(+.f64 (*.f64 (+.f64 (*.f64 -1 z) y) x) z)
(+.f64 (*.f64 (+.f64 (*.f64 -1 z) y) x) z)
(*.f64 (+.f64 (*.f64 -1 z) y) x)
(+.f64 (*.f64 (+.f64 (*.f64 -1 z) y) x) z)
(+.f64 (*.f64 (+.f64 (*.f64 -1 z) y) x) z)
(+.f64 (*.f64 (+.f64 (*.f64 -1 z) y) x) z)
(*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y))))
(+.f64 (*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y)))) z)
(+.f64 (*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y)))) z)
(+.f64 (*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y)))) z)
(*.f64 z (-.f64 1 x))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(*.f64 z (-.f64 1 x))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(*.f64 z (-.f64 1 x))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
z
(+.f64 (*.f64 -1 (*.f64 z x)) z)
(+.f64 (*.f64 -1 (*.f64 z x)) z)
(+.f64 (*.f64 -1 (*.f64 z x)) z)
(*.f64 -1 (*.f64 z x))
(+.f64 z (*.f64 -1 (*.f64 z x)))
(+.f64 z (*.f64 -1 (*.f64 z x)))
(+.f64 z (*.f64 -1 (*.f64 z x)))
(*.f64 -1 (*.f64 z x))
(+.f64 z (*.f64 -1 (*.f64 z x)))
(+.f64 z (*.f64 -1 (*.f64 z x)))
(+.f64 z (*.f64 -1 (*.f64 z x)))
(*.f64 z (-.f64 1 x))
(*.f64 z (-.f64 1 x))
(*.f64 z (-.f64 1 x))
(*.f64 z (-.f64 1 x))
(*.f64 z (-.f64 1 x))
(*.f64 z (-.f64 1 x))
(*.f64 z (-.f64 1 x))
(*.f64 z (-.f64 1 x))
(*.f64 z (-.f64 1 x))
(*.f64 z (-.f64 1 x))
(*.f64 z (-.f64 1 x))
(*.f64 z (-.f64 1 x))
(-.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) 0)
(-.f64 0 (neg.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))))
(*.f64 1 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))
(*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) 1)
(*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))))
(*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (/.f64 1 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))))
(*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (/.f64 1 (/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))))
(*.f64 (/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))
(*.f64 (/.f64 1 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))))
(*.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) (/.f64 1 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))))
(*.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (/.f64 1 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))
(*.f64 (/.f64 1 (/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))) (/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (/.f64 (/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) (/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))))))
(*.f64 (/.f64 (/.f64 1 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))) (*.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))))
(*.f64 (/.f64 (/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))))
(*.f64 (/.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (/.f64 1 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))))
(*.f64 (/.f64 (/.f64 1 (/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))))
(/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) 1)
(/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))))
(/.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) 2) 2)
(/.f64 (*.f64 (neg.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) 2) -2)
(pow.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) 1)
(neg.f64 (neg.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))))
(+.f64 (*.f64 (-.f64 1 x) z) 0)
(+.f64 0 (*.f64 (-.f64 1 x) z))
(-.f64 (*.f64 (-.f64 1 x) z) 0)
(-.f64 0 (neg.f64 (*.f64 (-.f64 1 x) z)))
(/.f64 (*.f64 (-.f64 1 x) z) 1)
(/.f64 (*.f64 (-.f64 1 x) z) (/.f64 (*.f64 (-.f64 1 x) z) (*.f64 (-.f64 1 x) z)))
(/.f64 (*.f64 (-.f64 1 x) (+.f64 z z)) 2)
(/.f64 (neg.f64 (*.f64 (-.f64 1 x) (+.f64 z z))) -2)
(pow.f64 (*.f64 (-.f64 1 x) z) 1)
(neg.f64 (neg.f64 (*.f64 (-.f64 1 x) z)))
Outputs
z
(+.f64 (*.f64 (+.f64 (*.f64 -1 z) y) x) z)
(+.f64 z (*.f64 (+.f64 (*.f64 z -1) y) x))
(+.f64 z (*.f64 (+.f64 (neg.f64 z) y) x))
(+.f64 (*.f64 (+.f64 (*.f64 -1 z) y) x) z)
(+.f64 z (*.f64 (+.f64 (*.f64 z -1) y) x))
(+.f64 z (*.f64 (+.f64 (neg.f64 z) y) x))
(+.f64 (*.f64 (+.f64 (*.f64 -1 z) y) x) z)
(+.f64 z (*.f64 (+.f64 (*.f64 z -1) y) x))
(+.f64 z (*.f64 (+.f64 (neg.f64 z) y) x))
(*.f64 (+.f64 (*.f64 -1 z) y) x)
(*.f64 (+.f64 (*.f64 z -1) y) x)
(*.f64 (+.f64 (neg.f64 z) y) x)
(+.f64 (*.f64 (+.f64 (*.f64 -1 z) y) x) z)
(+.f64 z (*.f64 (+.f64 (*.f64 z -1) y) x))
(+.f64 z (*.f64 (+.f64 (neg.f64 z) y) x))
(+.f64 (*.f64 (+.f64 (*.f64 -1 z) y) x) z)
(+.f64 z (*.f64 (+.f64 (*.f64 z -1) y) x))
(+.f64 z (*.f64 (+.f64 (neg.f64 z) y) x))
(+.f64 (*.f64 (+.f64 (*.f64 -1 z) y) x) z)
(+.f64 z (*.f64 (+.f64 (*.f64 z -1) y) x))
(+.f64 z (*.f64 (+.f64 (neg.f64 z) y) x))
(*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y))))
(neg.f64 (*.f64 x (+.f64 z (neg.f64 y))))
(*.f64 (+.f64 z (neg.f64 y)) (neg.f64 x))
(*.f64 x (neg.f64 (+.f64 z (neg.f64 y))))
(+.f64 (*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y)))) z)
(+.f64 z (*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y)))))
(+.f64 z (neg.f64 (*.f64 x (+.f64 z (neg.f64 y)))))
(+.f64 z (*.f64 (+.f64 z (neg.f64 y)) (neg.f64 x)))
(+.f64 z (*.f64 x (neg.f64 (+.f64 z (neg.f64 y)))))
(+.f64 (*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y)))) z)
(+.f64 z (*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y)))))
(+.f64 z (neg.f64 (*.f64 x (+.f64 z (neg.f64 y)))))
(+.f64 z (*.f64 (+.f64 z (neg.f64 y)) (neg.f64 x)))
(+.f64 z (*.f64 x (neg.f64 (+.f64 z (neg.f64 y)))))
(+.f64 (*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y)))) z)
(+.f64 z (*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y)))))
(+.f64 z (neg.f64 (*.f64 x (+.f64 z (neg.f64 y)))))
(+.f64 z (*.f64 (+.f64 z (neg.f64 y)) (neg.f64 x)))
(+.f64 z (*.f64 x (neg.f64 (+.f64 z (neg.f64 y)))))
(*.f64 z (-.f64 1 x))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(*.f64 z (-.f64 1 x))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(*.f64 z (-.f64 1 x))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
z
(+.f64 (*.f64 -1 (*.f64 z x)) z)
(+.f64 z (*.f64 z (*.f64 -1 x)))
(+.f64 z (*.f64 x (neg.f64 z)))
(+.f64 z (*.f64 z (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 z x)) z)
(+.f64 z (*.f64 z (*.f64 -1 x)))
(+.f64 z (*.f64 x (neg.f64 z)))
(+.f64 z (*.f64 z (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 z x)) z)
(+.f64 z (*.f64 z (*.f64 -1 x)))
(+.f64 z (*.f64 x (neg.f64 z)))
(+.f64 z (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 z x))
(*.f64 z (*.f64 -1 x))
(*.f64 x (neg.f64 z))
(*.f64 z (neg.f64 x))
(+.f64 z (*.f64 -1 (*.f64 z x)))
(+.f64 z (*.f64 z (*.f64 -1 x)))
(+.f64 z (*.f64 x (neg.f64 z)))
(+.f64 z (*.f64 z (neg.f64 x)))
(+.f64 z (*.f64 -1 (*.f64 z x)))
(+.f64 z (*.f64 z (*.f64 -1 x)))
(+.f64 z (*.f64 x (neg.f64 z)))
(+.f64 z (*.f64 z (neg.f64 x)))
(+.f64 z (*.f64 -1 (*.f64 z x)))
(+.f64 z (*.f64 z (*.f64 -1 x)))
(+.f64 z (*.f64 x (neg.f64 z)))
(+.f64 z (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 z x))
(*.f64 z (*.f64 -1 x))
(*.f64 x (neg.f64 z))
(*.f64 z (neg.f64 x))
(+.f64 z (*.f64 -1 (*.f64 z x)))
(+.f64 z (*.f64 z (*.f64 -1 x)))
(+.f64 z (*.f64 x (neg.f64 z)))
(+.f64 z (*.f64 z (neg.f64 x)))
(+.f64 z (*.f64 -1 (*.f64 z x)))
(+.f64 z (*.f64 z (*.f64 -1 x)))
(+.f64 z (*.f64 x (neg.f64 z)))
(+.f64 z (*.f64 z (neg.f64 x)))
(+.f64 z (*.f64 -1 (*.f64 z x)))
(+.f64 z (*.f64 z (*.f64 -1 x)))
(+.f64 z (*.f64 x (neg.f64 z)))
(+.f64 z (*.f64 z (neg.f64 x)))
(*.f64 z (-.f64 1 x))
(*.f64 z (-.f64 1 x))
(*.f64 z (-.f64 1 x))
(*.f64 z (-.f64 1 x))
(*.f64 z (-.f64 1 x))
(*.f64 z (-.f64 1 x))
(*.f64 z (-.f64 1 x))
(*.f64 z (-.f64 1 x))
(*.f64 z (-.f64 1 x))
(*.f64 z (-.f64 1 x))
(*.f64 z (-.f64 1 x))
(*.f64 z (-.f64 1 x))
(-.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) 0)
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(-.f64 0 (neg.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(*.f64 1 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) 1)
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (/.f64 1 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (/.f64 1 (/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(*.f64 (/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(*.f64 (/.f64 1 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(*.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) (/.f64 1 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(*.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (/.f64 1 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(*.f64 (/.f64 1 (/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))) (/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (/.f64 (/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) (/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))))))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(*.f64 (/.f64 (/.f64 1 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))) (*.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(*.f64 (/.f64 (/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(*.f64 (/.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (/.f64 1 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(*.f64 (/.f64 (/.f64 1 (/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)))) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) 1)
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (/.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(/.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) 2) 2)
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(/.f64 (*.f64 (neg.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))) 2) -2)
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(pow.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z)) 1)
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(neg.f64 (neg.f64 (+.f64 (*.f64 x y) (*.f64 (-.f64 1 x) z))))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 1 x)))
(+.f64 (*.f64 (-.f64 1 x) z) 0)
(*.f64 z (-.f64 1 x))
(+.f64 0 (*.f64 (-.f64 1 x) z))
(*.f64 z (-.f64 1 x))
(-.f64 (*.f64 (-.f64 1 x) z) 0)
(*.f64 z (-.f64 1 x))
(-.f64 0 (neg.f64 (*.f64 (-.f64 1 x) z)))
(*.f64 z (-.f64 1 x))
(/.f64 (*.f64 (-.f64 1 x) z) 1)
(*.f64 z (-.f64 1 x))
(/.f64 (*.f64 (-.f64 1 x) z) (/.f64 (*.f64 (-.f64 1 x) z) (*.f64 (-.f64 1 x) z)))
(*.f64 z (-.f64 1 x))
(/.f64 (*.f64 (-.f64 1 x) (+.f64 z z)) 2)
(*.f64 z (-.f64 1 x))
(/.f64 (neg.f64 (*.f64 (-.f64 1 x) (+.f64 z z))) -2)
(*.f64 z (-.f64 1 x))
(pow.f64 (*.f64 (-.f64 1 x) z) 1)
(*.f64 z (-.f64 1 x))
(neg.f64 (neg.f64 (*.f64 (-.f64 1 x) z)))
(*.f64 z (-.f64 1 x))

eval15.0ms (0.3%)

Compiler

Compiled 999 to 493 computations (50.7% saved)

prune11.0ms (0.2%)

Pruning

6 alts after pruning (6 fresh and 0 done)

PrunedKeptTotal
New54660
Fresh000
Picked101
Done000
Total55661
Error
0.0b
Counts
61 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
26.3b
(+.f64 (*.f64 x y) (*.f64 z (neg.f64 x)))
0.0b
(+.f64 z (*.f64 (+.f64 (neg.f64 z) y) x))
26.3b
(*.f64 (+.f64 (neg.f64 z) y) x)
23.0b
(*.f64 z (-.f64 1 x))
40.1b
(*.f64 y x)
36.6b
z
Compiler

Compiled 94 to 63 computations (33% saved)

localize11.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 26 to 7 computations (73.1% saved)

series2.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite89.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
956×rational_best-simplify-57
690×rational_best-simplify-80
600×rational_best-simplify-43
550×rational_best-simplify-44
484×rational_best-5
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0917
18017
227217
3107117
4464717
Stop Event
node limit
Counts
1 → 10
Calls
Call 1
Inputs
(*.f64 (+.f64 (neg.f64 z) y) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (neg.f64 z) y) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 (neg.f64 z) y) x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 (neg.f64 z) y) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 (+.f64 (neg.f64 z) y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (neg.f64 z) y) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (neg.f64 z) y) x) (/.f64 (*.f64 (+.f64 (neg.f64 z) y) x) (*.f64 (+.f64 (neg.f64 z) y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (neg.f64 z) y) (+.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (*.f64 (+.f64 (neg.f64 z) y) x)) 2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 (neg.f64 z) y) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 (+.f64 (neg.f64 z) y) x)))))))

simplify148.0ms (3%)

Algorithm
egg-herbie
Rules
1576×rational_best-simplify-132
1398×rational_best-simplify-80
1270×rational_best-simplify-78
990×rational_best-simplify-82
764×rational_best-simplify-2
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
035916
160854
2106686
3250686
41050686
52900686
66007686
Stop Event
node limit
Counts
46 → 20
Calls
Call 1
Inputs
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(*.f64 (-.f64 y z) x)
(*.f64 (-.f64 y z) x)
(*.f64 (-.f64 y z) x)
(*.f64 (-.f64 y z) x)
(*.f64 (-.f64 y z) x)
(*.f64 (-.f64 y z) x)
(*.f64 (-.f64 y z) x)
(*.f64 (-.f64 y z) x)
(*.f64 (-.f64 y z) x)
(*.f64 (-.f64 y z) x)
(*.f64 (-.f64 y z) x)
(*.f64 (-.f64 y z) x)
(+.f64 (*.f64 (+.f64 (neg.f64 z) y) x) 0)
(+.f64 0 (*.f64 (+.f64 (neg.f64 z) y) x))
(-.f64 (*.f64 (+.f64 (neg.f64 z) y) x) 0)
(-.f64 0 (neg.f64 (*.f64 (+.f64 (neg.f64 z) y) x)))
(/.f64 (*.f64 (+.f64 (neg.f64 z) y) x) 1)
(/.f64 (*.f64 (+.f64 (neg.f64 z) y) x) (/.f64 (*.f64 (+.f64 (neg.f64 z) y) x) (*.f64 (+.f64 (neg.f64 z) y) x)))
(/.f64 (*.f64 (+.f64 (neg.f64 z) y) (+.f64 x x)) 2)
(/.f64 (*.f64 (neg.f64 (*.f64 (+.f64 (neg.f64 z) y) x)) 2) -2)
(pow.f64 (*.f64 (+.f64 (neg.f64 z) y) x) 1)
(neg.f64 (neg.f64 (*.f64 (+.f64 (neg.f64 z) y) x)))
Outputs
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 x z)))
(+.f64 (*.f64 y x) (*.f64 x (neg.f64 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 x z)))
(+.f64 (*.f64 y x) (*.f64 x (neg.f64 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 x z)))
(+.f64 (*.f64 y x) (*.f64 x (neg.f64 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 -1 (*.f64 z x))
(*.f64 -1 (*.f64 x z))
(*.f64 x (neg.f64 z))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 x z)))
(+.f64 (*.f64 y x) (*.f64 x (neg.f64 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 x z)))
(+.f64 (*.f64 y x) (*.f64 x (neg.f64 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 x z)))
(+.f64 (*.f64 y x) (*.f64 x (neg.f64 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 -1 (*.f64 z x))
(*.f64 -1 (*.f64 x z))
(*.f64 x (neg.f64 z))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 x z)))
(+.f64 (*.f64 y x) (*.f64 x (neg.f64 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 x z)))
(+.f64 (*.f64 y x) (*.f64 x (neg.f64 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 x z)))
(+.f64 (*.f64 y x) (*.f64 x (neg.f64 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 -1 (*.f64 z x))
(*.f64 -1 (*.f64 x z))
(*.f64 x (neg.f64 z))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 x z)))
(+.f64 (*.f64 y x) (*.f64 x (neg.f64 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 x z)))
(+.f64 (*.f64 y x) (*.f64 x (neg.f64 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 x z)))
(+.f64 (*.f64 y x) (*.f64 x (neg.f64 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 x z)))
(+.f64 (*.f64 y x) (*.f64 x (neg.f64 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 x z)))
(+.f64 (*.f64 y x) (*.f64 x (neg.f64 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 x z)))
(+.f64 (*.f64 y x) (*.f64 x (neg.f64 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 x z)))
(+.f64 (*.f64 y x) (*.f64 x (neg.f64 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 x z)))
(+.f64 (*.f64 y x) (*.f64 x (neg.f64 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 x z)))
(+.f64 (*.f64 y x) (*.f64 x (neg.f64 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 (-.f64 y z) x)
(*.f64 x (-.f64 y z))
(*.f64 (-.f64 y z) x)
(*.f64 x (-.f64 y z))
(*.f64 (-.f64 y z) x)
(*.f64 x (-.f64 y z))
(*.f64 (-.f64 y z) x)
(*.f64 x (-.f64 y z))
(*.f64 (-.f64 y z) x)
(*.f64 x (-.f64 y z))
(*.f64 (-.f64 y z) x)
(*.f64 x (-.f64 y z))
(*.f64 (-.f64 y z) x)
(*.f64 x (-.f64 y z))
(*.f64 (-.f64 y z) x)
(*.f64 x (-.f64 y z))
(*.f64 (-.f64 y z) x)
(*.f64 x (-.f64 y z))
(*.f64 (-.f64 y z) x)
(*.f64 x (-.f64 y z))
(*.f64 (-.f64 y z) x)
(*.f64 x (-.f64 y z))
(*.f64 (-.f64 y z) x)
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 (+.f64 (neg.f64 z) y) x) 0)
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 x z)))
(+.f64 (*.f64 y x) (*.f64 x (neg.f64 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(+.f64 0 (*.f64 (+.f64 (neg.f64 z) y) x))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 x z)))
(+.f64 (*.f64 y x) (*.f64 x (neg.f64 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(-.f64 (*.f64 (+.f64 (neg.f64 z) y) x) 0)
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 x z)))
(+.f64 (*.f64 y x) (*.f64 x (neg.f64 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(-.f64 0 (neg.f64 (*.f64 (+.f64 (neg.f64 z) y) x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 x z)))
(+.f64 (*.f64 y x) (*.f64 x (neg.f64 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(/.f64 (*.f64 (+.f64 (neg.f64 z) y) x) 1)
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 x z)))
(+.f64 (*.f64 y x) (*.f64 x (neg.f64 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(/.f64 (*.f64 (+.f64 (neg.f64 z) y) x) (/.f64 (*.f64 (+.f64 (neg.f64 z) y) x) (*.f64 (+.f64 (neg.f64 z) y) x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 x z)))
(+.f64 (*.f64 y x) (*.f64 x (neg.f64 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(/.f64 (*.f64 (+.f64 (neg.f64 z) y) (+.f64 x x)) 2)
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 x z)))
(+.f64 (*.f64 y x) (*.f64 x (neg.f64 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(/.f64 (*.f64 (neg.f64 (*.f64 (+.f64 (neg.f64 z) y) x)) 2) -2)
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 x z)))
(+.f64 (*.f64 y x) (*.f64 x (neg.f64 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(pow.f64 (*.f64 (+.f64 (neg.f64 z) y) x) 1)
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 x z)))
(+.f64 (*.f64 y x) (*.f64 x (neg.f64 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(neg.f64 (neg.f64 (*.f64 (+.f64 (neg.f64 z) y) x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 x z)))
(+.f64 (*.f64 y x) (*.f64 x (neg.f64 z)))
(*.f64 x (+.f64 y (neg.f64 z)))

localize3.0ms (0.1%)

Compiler

Compiled 8 to 4 computations (50% saved)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 9 computations (35.7% saved)

series0.0ms (0%)

Counts
1 → 12
Calls

6 calls:

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

rewrite71.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
1616×rational_best-5
1614×rational_best-4
1614×rational_best-2
1614×rational_best-3
1614×rational_best-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
15613
218113
375313
4326613
Stop Event
node limit
Counts
1 → 7
Calls
Call 1
Inputs
(*.f64 z (-.f64 1 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (-.f64 1 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (-.f64 1 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (-.f64 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (-.f64 1 x)) (/.f64 (*.f64 z (-.f64 1 x)) (*.f64 z (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (-.f64 2 (+.f64 x x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (-.f64 1 x)) 1)))))

simplify162.0ms (3.3%)

Algorithm
egg-herbie
Rules
1768×rational_best-simplify-80
1354×rational_best-simplify-78
1066×rational_best-simplify-44
1040×rational_best-simplify-132
938×rational_best-simplify-43
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
025301
138279
279279
3199279
4801279
52497279
64205279
76796279
Stop Event
node limit
Counts
19 → 18
Calls
Call 1
Inputs
z
(+.f64 (*.f64 -1 (*.f64 z x)) z)
(+.f64 (*.f64 -1 (*.f64 z x)) z)
(+.f64 (*.f64 -1 (*.f64 z x)) z)
(*.f64 -1 (*.f64 z x))
(+.f64 z (*.f64 -1 (*.f64 z x)))
(+.f64 z (*.f64 -1 (*.f64 z x)))
(+.f64 z (*.f64 -1 (*.f64 z x)))
(*.f64 -1 (*.f64 z x))
(+.f64 z (*.f64 -1 (*.f64 z x)))
(+.f64 z (*.f64 -1 (*.f64 z x)))
(+.f64 z (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 z (-.f64 1 x)) 0)
(+.f64 0 (*.f64 z (-.f64 1 x)))
(-.f64 (*.f64 z (-.f64 1 x)) 0)
(/.f64 (*.f64 z (-.f64 1 x)) 1)
(/.f64 (*.f64 z (-.f64 1 x)) (/.f64 (*.f64 z (-.f64 1 x)) (*.f64 z (-.f64 1 x))))
(/.f64 (*.f64 z (-.f64 2 (+.f64 x x))) 2)
(pow.f64 (*.f64 z (-.f64 1 x)) 1)
Outputs
z
(+.f64 (*.f64 -1 (*.f64 z x)) z)
(+.f64 z (*.f64 z (*.f64 -1 x)))
(+.f64 z (neg.f64 (*.f64 z x)))
(+.f64 z (*.f64 z (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 z x)) z)
(+.f64 z (*.f64 z (*.f64 -1 x)))
(+.f64 z (neg.f64 (*.f64 z x)))
(+.f64 z (*.f64 z (neg.f64 x)))
(+.f64 (*.f64 -1 (*.f64 z x)) z)
(+.f64 z (*.f64 z (*.f64 -1 x)))
(+.f64 z (neg.f64 (*.f64 z x)))
(+.f64 z (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 z x))
(*.f64 z (*.f64 -1 x))
(neg.f64 (*.f64 z x))
(*.f64 z (neg.f64 x))
(+.f64 z (*.f64 -1 (*.f64 z x)))
(+.f64 z (*.f64 z (*.f64 -1 x)))
(+.f64 z (neg.f64 (*.f64 z x)))
(+.f64 z (*.f64 z (neg.f64 x)))
(+.f64 z (*.f64 -1 (*.f64 z x)))
(+.f64 z (*.f64 z (*.f64 -1 x)))
(+.f64 z (neg.f64 (*.f64 z x)))
(+.f64 z (*.f64 z (neg.f64 x)))
(+.f64 z (*.f64 -1 (*.f64 z x)))
(+.f64 z (*.f64 z (*.f64 -1 x)))
(+.f64 z (neg.f64 (*.f64 z x)))
(+.f64 z (*.f64 z (neg.f64 x)))
(*.f64 -1 (*.f64 z x))
(*.f64 z (*.f64 -1 x))
(neg.f64 (*.f64 z x))
(*.f64 z (neg.f64 x))
(+.f64 z (*.f64 -1 (*.f64 z x)))
(+.f64 z (*.f64 z (*.f64 -1 x)))
(+.f64 z (neg.f64 (*.f64 z x)))
(+.f64 z (*.f64 z (neg.f64 x)))
(+.f64 z (*.f64 -1 (*.f64 z x)))
(+.f64 z (*.f64 z (*.f64 -1 x)))
(+.f64 z (neg.f64 (*.f64 z x)))
(+.f64 z (*.f64 z (neg.f64 x)))
(+.f64 z (*.f64 -1 (*.f64 z x)))
(+.f64 z (*.f64 z (*.f64 -1 x)))
(+.f64 z (neg.f64 (*.f64 z x)))
(+.f64 z (*.f64 z (neg.f64 x)))
(+.f64 (*.f64 z (-.f64 1 x)) 0)
(*.f64 z (-.f64 1 x))
(+.f64 0 (*.f64 z (-.f64 1 x)))
(*.f64 z (-.f64 1 x))
(-.f64 (*.f64 z (-.f64 1 x)) 0)
(*.f64 z (-.f64 1 x))
(/.f64 (*.f64 z (-.f64 1 x)) 1)
(*.f64 z (-.f64 1 x))
(/.f64 (*.f64 z (-.f64 1 x)) (/.f64 (*.f64 z (-.f64 1 x)) (*.f64 z (-.f64 1 x))))
(*.f64 z (-.f64 1 x))
(/.f64 (*.f64 z (-.f64 2 (+.f64 x x))) 2)
(pow.f64 (*.f64 z (-.f64 1 x)) 1)
(*.f64 z (-.f64 1 x))

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 18 to 6 computations (66.7% saved)

localize7.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 23 to 7 computations (69.6% saved)

series3.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

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

rewrite97.0ms (1.9%)

Algorithm
batch-egg-rewrite
Rules
1120×rational_best-simplify-57
782×rational_best-simplify-44
684×rational_best-simplify-43
562×rational_best-simplify-47
558×rational_best-5
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01023
18923
230217
3122217
4546217
Stop Event
node limit
Counts
1 → 25
Calls
Call 1
Inputs
(+.f64 (*.f64 x y) (*.f64 z (neg.f64 x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 y (neg.f64 z))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 x (+.f64 y (neg.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 y (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 1 (+.f64 y (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 y (neg.f64 z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 y (neg.f64 z))) (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) (+.f64 y (neg.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 y (neg.f64 z))) (/.f64 1 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (+.f64 y (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 x (+.f64 y (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))) (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) (+.f64 y (neg.f64 z)))) (*.f64 x (+.f64 y (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (neg.f64 z)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))) (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) (+.f64 y (neg.f64 z)))) (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))) (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 y (neg.f64 z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 y (neg.f64 z))) (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (*.f64 x (+.f64 y (neg.f64 z)))) 2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 y (neg.f64 z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 x (+.f64 y (neg.f64 z)))))))))

simplify200.0ms (4%)

Algorithm
egg-herbie
Rules
1208×rational_best-simplify-80
1154×rational_best-simplify-82
1152×rational_best-simplify-83
1144×rational_best-simplify-78
902×rational_best-simplify-94
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0671171
11391113
26741113
331041113
456921113
Stop Event
node limit
Counts
61 → 37
Calls
Call 1
Inputs
(*.f64 (+.f64 (*.f64 -1 z) y) x)
(*.f64 (+.f64 (*.f64 -1 z) y) x)
(*.f64 (+.f64 (*.f64 -1 z) y) x)
(*.f64 (+.f64 (*.f64 -1 z) y) x)
(*.f64 (+.f64 (*.f64 -1 z) y) x)
(*.f64 (+.f64 (*.f64 -1 z) y) x)
(*.f64 (+.f64 (*.f64 -1 z) y) x)
(*.f64 (+.f64 (*.f64 -1 z) y) x)
(*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y))))
(*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y))))
(*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y))))
(*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y))))
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(-.f64 (*.f64 x (+.f64 y (neg.f64 z))) 0)
(-.f64 0 (neg.f64 (*.f64 x (+.f64 y (neg.f64 z)))))
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 x (*.f64 1 (+.f64 y (neg.f64 z))))
(*.f64 (*.f64 x (+.f64 y (neg.f64 z))) 1)
(*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))
(*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) (+.f64 y (neg.f64 z)))))
(*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (/.f64 1 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))))
(*.f64 1 (*.f64 x (+.f64 y (neg.f64 z))))
(*.f64 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 x (+.f64 y (neg.f64 z))))
(*.f64 (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))
(*.f64 (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))) (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))))
(*.f64 (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) (+.f64 y (neg.f64 z)))) (*.f64 x (+.f64 y (neg.f64 z))))
(*.f64 (+.f64 y (neg.f64 z)) x)
(*.f64 (/.f64 1 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))) (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))))
(*.f64 (/.f64 (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))))
(*.f64 (/.f64 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))
(*.f64 (/.f64 (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) (+.f64 y (neg.f64 z)))) (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))
(*.f64 (/.f64 (/.f64 1 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))) (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))
(/.f64 (*.f64 x (+.f64 y (neg.f64 z))) 1)
(/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))
(/.f64 (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) 2) 2)
(/.f64 (*.f64 (neg.f64 (*.f64 x (+.f64 y (neg.f64 z)))) 2) -2)
(pow.f64 (*.f64 x (+.f64 y (neg.f64 z))) 1)
(neg.f64 (neg.f64 (*.f64 x (+.f64 y (neg.f64 z)))))
Outputs
(*.f64 (+.f64 (*.f64 -1 z) y) x)
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 (+.f64 (*.f64 -1 z) y) x)
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 (+.f64 (*.f64 -1 z) y) x)
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 (+.f64 (*.f64 -1 z) y) x)
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 (+.f64 (*.f64 -1 z) y) x)
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 (+.f64 (*.f64 -1 z) y) x)
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 (+.f64 (*.f64 -1 z) y) x)
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 (+.f64 (*.f64 -1 z) y) x)
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y))))
(neg.f64 (*.f64 x (+.f64 z (neg.f64 y))))
(*.f64 (+.f64 z (neg.f64 y)) (neg.f64 x))
(*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y))))
(neg.f64 (*.f64 x (+.f64 z (neg.f64 y))))
(*.f64 (+.f64 z (neg.f64 y)) (neg.f64 x))
(*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y))))
(neg.f64 (*.f64 x (+.f64 z (neg.f64 y))))
(*.f64 (+.f64 z (neg.f64 y)) (neg.f64 x))
(*.f64 -1 (*.f64 x (+.f64 z (*.f64 -1 y))))
(neg.f64 (*.f64 x (+.f64 z (neg.f64 y))))
(*.f64 (+.f64 z (neg.f64 y)) (neg.f64 x))
(*.f64 -1 (*.f64 z x))
(*.f64 x (neg.f64 z))
(*.f64 z (neg.f64 x))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x))
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x))
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x))
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x))
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x))
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x))
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x))
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x))
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x))
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x))
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x))
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x))
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x))
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x))
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x))
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x))
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x))
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x))
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x))
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x))
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x))
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x))
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x))
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x))
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x))
(*.f64 -1 (*.f64 z x))
(*.f64 x (neg.f64 z))
(*.f64 z (neg.f64 x))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x))
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x))
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x))
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x))
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x))
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x))
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x))
(*.f64 -1 (*.f64 z x))
(*.f64 x (neg.f64 z))
(*.f64 z (neg.f64 x))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x))
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x))
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x))
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x))
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 y x))
(+.f64 (*.f64 x (neg.f64 z)) (*.f64 y x))
(+.f64 (*.f64 z (neg.f64 x)) (*.f64 y x))
(-.f64 (*.f64 x (+.f64 y (neg.f64 z))) 0)
(*.f64 x (+.f64 y (neg.f64 z)))
(-.f64 0 (neg.f64 (*.f64 x (+.f64 y (neg.f64 z)))))
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 x (*.f64 1 (+.f64 y (neg.f64 z))))
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 (*.f64 x (+.f64 y (neg.f64 z))) 1)
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) (+.f64 y (neg.f64 z)))))
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (/.f64 1 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))))
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 1 (*.f64 x (+.f64 y (neg.f64 z))))
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 x (+.f64 y (neg.f64 z))))
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))) (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))))
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) (+.f64 y (neg.f64 z)))) (*.f64 x (+.f64 y (neg.f64 z))))
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 (+.f64 y (neg.f64 z)) x)
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 (/.f64 1 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))) (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))))
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 (/.f64 (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))))
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 (/.f64 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 (/.f64 (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 y (neg.f64 z)))) (+.f64 y (neg.f64 z)))) (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 (/.f64 (/.f64 1 (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z))))) (*.f64 x (+.f64 y (neg.f64 z)))) (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))
(*.f64 x (+.f64 y (neg.f64 z)))
(/.f64 (*.f64 x (+.f64 y (neg.f64 z))) 1)
(*.f64 x (+.f64 y (neg.f64 z)))
(/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (/.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 x (+.f64 y (neg.f64 z)))))
(*.f64 x (+.f64 y (neg.f64 z)))
(/.f64 (*.f64 (*.f64 x (+.f64 y (neg.f64 z))) 2) 2)
(*.f64 x (+.f64 y (neg.f64 z)))
(/.f64 (*.f64 (neg.f64 (*.f64 x (+.f64 y (neg.f64 z)))) 2) -2)
(*.f64 x (+.f64 y (neg.f64 z)))
(pow.f64 (*.f64 x (+.f64 y (neg.f64 z))) 1)
(*.f64 x (+.f64 y (neg.f64 z)))
(neg.f64 (neg.f64 (*.f64 x (+.f64 y (neg.f64 z)))))
(*.f64 x (+.f64 y (neg.f64 z)))

eval14.0ms (0.3%)

Compiler

Compiled 1029 to 260 computations (74.7% saved)

prune13.0ms (0.3%)

Pruning

7 alts after pruning (4 fresh and 3 done)

PrunedKeptTotal
New92395
Fresh011
Picked011
Done224
Total947101
Error
0.0b
Counts
101 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
26.3b
(+.f64 (*.f64 x y) (*.f64 z (neg.f64 x)))
14.3b
(+.f64 z (*.f64 y x))
26.3b
(*.f64 (-.f64 y z) x)
23.0b
(*.f64 z (-.f64 1 x))
49.0b
(*.f64 z (neg.f64 x))
40.1b
(*.f64 y x)
36.6b
z
Compiler

Compiled 52 to 35 computations (32.7% saved)

localize7.0ms (0.1%)

Compiler

Compiled 11 to 5 computations (54.5% saved)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 5 computations (64.3% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

9 calls:

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

rewrite88.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
1876×rational_best-5
1874×rational_best-4
1874×rational_best-2
1874×rational_best-3
1874×rational_best-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
15913
220813
387113
4380313
Stop Event
node limit
Counts
1 → 7
Calls
Call 1
Inputs
(*.f64 (-.f64 y z) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 y z) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 y z) x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 y z) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 y z) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 y z) x) (/.f64 (*.f64 (-.f64 y z) x) (*.f64 (-.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 y z) (+.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 y z) x) 1)))))

simplify165.0ms (3.3%)

Algorithm
egg-herbie
Rules
1756×rational_best-simplify-80
1356×rational_best-simplify-78
1086×rational_best-simplify-44
1042×rational_best-simplify-132
908×rational_best-simplify-43
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
025601
140559
279487
3205451
4817451
52521451
64219451
76768451
Stop Event
node limit
Counts
31 → 18
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 (-.f64 y z) x) 0)
(+.f64 0 (*.f64 (-.f64 y z) x))
(-.f64 (*.f64 (-.f64 y z) x) 0)
(/.f64 (*.f64 (-.f64 y z) x) 1)
(/.f64 (*.f64 (-.f64 y z) x) (/.f64 (*.f64 (-.f64 y z) x) (*.f64 (-.f64 y z) x)))
(/.f64 (*.f64 (-.f64 y z) (+.f64 x x)) 2)
(pow.f64 (*.f64 (-.f64 y z) x) 1)
Outputs
(*.f64 -1 (*.f64 z x))
(neg.f64 (*.f64 z x))
(*.f64 z (neg.f64 x))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y))
(+.f64 (neg.f64 (*.f64 z x)) (*.f64 x y))
(*.f64 x (+.f64 y (*.f64 -1 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y))
(+.f64 (neg.f64 (*.f64 z x)) (*.f64 x y))
(*.f64 x (+.f64 y (*.f64 -1 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y))
(+.f64 (neg.f64 (*.f64 z x)) (*.f64 x y))
(*.f64 x (+.f64 y (*.f64 -1 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y))
(+.f64 (neg.f64 (*.f64 z x)) (*.f64 x y))
(*.f64 x (+.f64 y (*.f64 -1 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y))
(+.f64 (neg.f64 (*.f64 z x)) (*.f64 x y))
(*.f64 x (+.f64 y (*.f64 -1 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y))
(+.f64 (neg.f64 (*.f64 z x)) (*.f64 x y))
(*.f64 x (+.f64 y (*.f64 -1 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y))
(+.f64 (neg.f64 (*.f64 z x)) (*.f64 x y))
(*.f64 x (+.f64 y (*.f64 -1 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y))
(+.f64 (neg.f64 (*.f64 z x)) (*.f64 x y))
(*.f64 x (+.f64 y (*.f64 -1 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y))
(+.f64 (neg.f64 (*.f64 z x)) (*.f64 x y))
(*.f64 x (+.f64 y (*.f64 -1 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y))
(+.f64 (neg.f64 (*.f64 z x)) (*.f64 x y))
(*.f64 x (+.f64 y (*.f64 -1 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y))
(+.f64 (neg.f64 (*.f64 z x)) (*.f64 x y))
(*.f64 x (+.f64 y (*.f64 -1 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y))
(+.f64 (neg.f64 (*.f64 z x)) (*.f64 x y))
(*.f64 x (+.f64 y (*.f64 -1 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 -1 (*.f64 z x))
(neg.f64 (*.f64 z x))
(*.f64 z (neg.f64 x))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y))
(+.f64 (neg.f64 (*.f64 z x)) (*.f64 x y))
(*.f64 x (+.f64 y (*.f64 -1 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y))
(+.f64 (neg.f64 (*.f64 z x)) (*.f64 x y))
(*.f64 x (+.f64 y (*.f64 -1 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y))
(+.f64 (neg.f64 (*.f64 z x)) (*.f64 x y))
(*.f64 x (+.f64 y (*.f64 -1 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(*.f64 -1 (*.f64 z x))
(neg.f64 (*.f64 z x))
(*.f64 z (neg.f64 x))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y))
(+.f64 (neg.f64 (*.f64 z x)) (*.f64 x y))
(*.f64 x (+.f64 y (*.f64 -1 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y))
(+.f64 (neg.f64 (*.f64 z x)) (*.f64 x y))
(*.f64 x (+.f64 y (*.f64 -1 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 x y))
(+.f64 (neg.f64 (*.f64 z x)) (*.f64 x y))
(*.f64 x (+.f64 y (*.f64 -1 z)))
(*.f64 x (+.f64 y (neg.f64 z)))
(+.f64 (*.f64 (-.f64 y z) x) 0)
(*.f64 x (-.f64 y z))
(+.f64 0 (*.f64 (-.f64 y z) x))
(*.f64 x (-.f64 y z))
(-.f64 (*.f64 (-.f64 y z) x) 0)
(*.f64 x (-.f64 y z))
(/.f64 (*.f64 (-.f64 y z) x) 1)
(*.f64 x (-.f64 y z))
(/.f64 (*.f64 (-.f64 y z) x) (/.f64 (*.f64 (-.f64 y z) x) (*.f64 (-.f64 y z) x)))
(*.f64 x (-.f64 y z))
(/.f64 (*.f64 (-.f64 y z) (+.f64 x x)) 2)
(*.f64 x (-.f64 y z))
(pow.f64 (*.f64 (-.f64 y z) x) 1)
(*.f64 x (-.f64 y z))

localize5.0ms (0.1%)

Compiler

Compiled 14 to 5 computations (64.3% saved)

eval2.0ms (0%)

Compiler

Compiled 127 to 44 computations (65.4% saved)

prune207.0ms (4.2%)

Pruning

7 alts after pruning (1 fresh and 6 done)

PrunedKeptTotal
New18018
Fresh011
Picked011
Done055
Total18725
Error
0.0b
Counts
25 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
26.3b
(+.f64 (*.f64 x y) (*.f64 z (neg.f64 x)))
14.3b
(+.f64 z (*.f64 y x))
26.3b
(*.f64 (-.f64 y z) x)
23.0b
(*.f64 z (-.f64 1 x))
49.0b
(*.f64 z (neg.f64 x))
40.1b
(*.f64 y x)
36.6b
z
Compiler

Compiled 52 to 35 computations (32.7% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune3.0ms (0.1%)

Pruning

7 alts after pruning (1 fresh and 6 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done066
Total077
Error
0.0b
Counts
7 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
26.3b
(+.f64 (*.f64 x y) (*.f64 z (neg.f64 x)))
14.3b
(+.f64 z (*.f64 y x))
26.3b
(*.f64 (-.f64 y z) x)
23.0b
(*.f64 z (-.f64 1 x))
49.0b
(*.f64 z (neg.f64 x))
40.1b
(*.f64 y x)
36.6b
z
Compiler

Compiled 52 to 35 computations (32.7% saved)

regimes27.0ms (0.5%)

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

4 calls:

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

Compiled 81 to 39 computations (51.9% saved)

regimes58.0ms (1.2%)

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

3 calls:

19.0ms
y
18.0ms
z
14.0ms
x
Results
ErrorSegmentsBranch
0.8b3x
5.8b3y
6.5b4z
Compiler

Compiled 44 to 24 computations (45.5% saved)

bsearch28.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
15.0ms
1.1742152125152169e-14
1.6334654490873476e-8
13.0ms
-7484969.739463093
-108942.90968633082
Results
25.0ms256×body256valid
0.0msbody256infinite
Compiler

Compiled 306 to 205 computations (33% saved)

regimes46.0ms (0.9%)

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

3 calls:

20.0ms
y
13.0ms
z
12.0ms
x
Results
ErrorSegmentsBranch
9.1b3x
14.8b5y
10.1b3z
Compiler

Compiled 33 to 20 computations (39.4% saved)

bsearch31.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
16.0ms
1.1742152125152169e-14
1.6334654490873476e-8
15.0ms
-6.639998246626303e-70
-4.290557678937587e-79
Results
27.0ms288×body256valid
Compiler

Compiled 342 to 247 computations (27.8% saved)

regimes287.0ms (5.8%)

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

3 calls:

195.0ms
x
77.0ms
y
13.0ms
z
Results
ErrorSegmentsBranch
16.1b9x
15.0b7y
14.1b3z
Compiler

Compiled 28 to 18 computations (35.7% saved)

bsearch25.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
14.0ms
5.508104554313776e-33
7.039152804752641e-29
12.0ms
-1.3285225019485231e-138
-2.978534367719585e-140
Results
23.0ms240×body256valid
Compiler

Compiled 258 to 193 computations (25.2% saved)

regimes224.0ms (4.5%)

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

3 calls:

129.0ms
x
71.0ms
z
23.0ms
y
Results
ErrorSegmentsBranch
16.8b9x
25.6b7y
23.1b4z
Compiler

Compiled 23 to 15 computations (34.8% saved)

bsearch399.0ms (8%)

Algorithm
binary-search
Steps
TimeLeftRight
23.0ms
3.922087938324547e+189
2.027566627053664e+192
19.0ms
1.5791884928674489e+122
4.454946159257984e+125
19.0ms
1.033139677334323e+97
2.655768449700439e+104
11.0ms
3.138468678125365e-19
1.1731705233212836e-17
217.0ms
-6.639998246626303e-70
-4.290557678937587e-79
6.0ms
-3.7566329346820576e+40
-2.675962527559408e+40
12.0ms
-2.3637758124509697e+115
-6.900207613890695e+114
92.0ms
-1.963557840622125e+246
-2.371374598511596e+237
Results
290.0ms928×body256valid
97.0ms422×body256infinite
Compiler

Compiled 840 to 619 computations (26.3% saved)

regimes84.0ms (1.7%)

Accuracy

Total -39.2b remaining (-171.2%)

Threshold costs -39.2b (-171.2%)

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

3 calls:

60.0ms
z
15.0ms
y
8.0ms
x
Results
ErrorSegmentsBranch
22.9b3x
28.3b5y
24.3b3z
Compiler

Compiled 19 to 13 computations (31.6% saved)

bsearch205.0ms (4.1%)

Algorithm
binary-search
Steps
TimeLeftRight
12.0ms
3.138468678125365e-19
1.1731705233212836e-17
193.0ms
-6.639998246626303e-70
-4.290557678937587e-79
Results
202.0ms256×body256valid
Compiler

Compiled 210 to 157 computations (25.2% saved)

simplify6.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
070367
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 z (*.f64 (+.f64 (neg.f64 z) y) x))
(if (<=.f64 x -110000) (*.f64 (-.f64 y z) x) (if (<=.f64 x 4835703278458517/302231454903657293676544) (+.f64 z (*.f64 y x)) (*.f64 (-.f64 y z) x)))
(if (<=.f64 x -2859608609356273/62165404551223330269422781018352605012557018849668464680057997111644937126566671941632) (*.f64 (-.f64 y z) x) (if (<=.f64 x 2630622583481433/77371252455336267181195264) (*.f64 z (-.f64 1 x)) (*.f64 (-.f64 y z) x)))
(if (<=.f64 z -6435747806372447/13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096) (*.f64 z (-.f64 1 x)) (if (<=.f64 z 7307508186654515/11417981541647679048466287755595961091061972992) (*.f64 y x) (*.f64 z (-.f64 1 x))))
(if (<=.f64 x -190000000000000006351253198740820480816227454481911115963184491814938986143993382111647674815965185396488144872772293807943693075901871967842476871984884495209221736038685817415448053502446823273018419616743528459863728292944567299278372864) (*.f64 z (neg.f64 x)) (if (<=.f64 x -20000000000000000311188322589336860485364027938421228667395411608616675623295114065299707798300948953524125617356800) (*.f64 y x) (if (<=.f64 x -33999999999999998856806021345479952957440) (*.f64 z (neg.f64 x)) (if (<=.f64 x -4277775550302421/1018517988167243043134222844204689080525734196832968125318070224677190649881668353091698688) (*.f64 y x) (if (<=.f64 x 1298074214633707/324518553658426726783156020576256) z (if (<=.f64 x 15499999999999999053574695568916972114477176115298107544058108109054725328173032788964965844254720) (*.f64 y x) (if (<=.f64 x 230000000000000012780930231873428186770625938965526796539758599638312011047756831731003125032436136698199092760180171233820672) (*.f64 z (neg.f64 x)) (if (<=.f64 x 254999999999999990801583792328580667286454965138704723091781672255562523610415288994038526702883546693949043550930192054674836491865148043820120485034867189336252553803408847520523399729250304) (*.f64 y x) (*.f64 z (neg.f64 x))))))))))
(if (<=.f64 x -3381798007586549/994646472819573284310764496293641680200912301594695434880927953786318994025066751066112) (*.f64 y x) (if (<=.f64 x 7788445287802241/10384593717069655257060992658440192) z (*.f64 y x)))
z
Outputs
(+.f64 z (*.f64 (+.f64 (neg.f64 z) y) x))
(if (<=.f64 x -110000) (*.f64 (-.f64 y z) x) (if (<=.f64 x 4835703278458517/302231454903657293676544) (+.f64 z (*.f64 y x)) (*.f64 (-.f64 y z) x)))
(if (<=.f64 x -2859608609356273/62165404551223330269422781018352605012557018849668464680057997111644937126566671941632) (*.f64 (-.f64 y z) x) (if (<=.f64 x 2630622583481433/77371252455336267181195264) (*.f64 z (-.f64 1 x)) (*.f64 (-.f64 y z) x)))
(if (<=.f64 z -6435747806372447/13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096) (*.f64 z (-.f64 1 x)) (if (<=.f64 z 7307508186654515/11417981541647679048466287755595961091061972992) (*.f64 y x) (*.f64 z (-.f64 1 x))))
(if (<=.f64 x -190000000000000006351253198740820480816227454481911115963184491814938986143993382111647674815965185396488144872772293807943693075901871967842476871984884495209221736038685817415448053502446823273018419616743528459863728292944567299278372864) (*.f64 z (neg.f64 x)) (if (<=.f64 x -20000000000000000311188322589336860485364027938421228667395411608616675623295114065299707798300948953524125617356800) (*.f64 y x) (if (<=.f64 x -33999999999999998856806021345479952957440) (*.f64 z (neg.f64 x)) (if (<=.f64 x -4277775550302421/1018517988167243043134222844204689080525734196832968125318070224677190649881668353091698688) (*.f64 y x) (if (<=.f64 x 1298074214633707/324518553658426726783156020576256) z (if (<=.f64 x 15499999999999999053574695568916972114477176115298107544058108109054725328173032788964965844254720) (*.f64 y x) (if (<=.f64 x 230000000000000012780930231873428186770625938965526796539758599638312011047756831731003125032436136698199092760180171233820672) (*.f64 z (neg.f64 x)) (if (<=.f64 x 254999999999999990801583792328580667286454965138704723091781672255562523610415288994038526702883546693949043550930192054674836491865148043820120485034867189336252553803408847520523399729250304) (*.f64 y x) (*.f64 z (neg.f64 x))))))))))
(if (<=.f64 x -3381798007586549/994646472819573284310764496293641680200912301594695434880927953786318994025066751066112) (*.f64 y x) (if (<=.f64 x 7788445287802241/10384593717069655257060992658440192) z (*.f64 y x)))
z
Compiler

Compiled 173 to 93 computations (46.2% saved)

soundness348.0ms (7%)

Algorithm
egg-herbie
Rules
942×rational_best-simplify-80
870×rational_best-simplify-2
834×rational_best-simplify-78
728×rational_best-simplify-24
496×rational_best-simplify-132
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0831832
11601780
25801780
315271780
439011780
572851780
Stop Event
node limit
Compiler

Compiled 38 to 22 computations (42.1% saved)

end58.0ms (1.2%)

Compiler

Compiled 155 to 70 computations (54.8% saved)

Profiling

Loading profile data...