Details

Time bar (total: 8.6s)

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

sample3.3s (38.1%)

Results
3.1s8256×body256valid
112.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 (-.f64 1 x) y) (*.f64 x z))
(+.f64 (*.f64 (-.f64 1 y) x) (*.f64 y z))
(+.f64 (*.f64 (-.f64 1 z) y) (*.f64 z x))
(+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))
Outputs
(+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))
(+.f64 (*.f64 (-.f64 1 y) x) (*.f64 y z))
(+.f64 (*.f64 x (-.f64 1 y)) (*.f64 y z))
(+.f64 (*.f64 (-.f64 1 z) y) (*.f64 z x))
(+.f64 (*.f64 y (-.f64 1 z)) (*.f64 x z))
(+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))
Compiler

Compiled 15 to 11 computations (26.7% saved)

simplify14.0ms (0.2%)

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

Compiled 12 to 8 computations (33.3% saved)

localize71.0ms (0.8%)

Local error

Found 2 expressions with local error:

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

Compiled 27 to 14 computations (48.1% saved)

series4.0ms (0%)

Counts
2 → 60
Calls

15 calls:

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

rewrite209.0ms (2.4%)

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

Useful iterations: 0 (0.0ms)

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

simplify369.0ms (4.3%)

Algorithm
egg-herbie
Rules
1072×rational_best-simplify-80
1024×rational_best-simplify-82
834×rational_best-simplify-78
732×rational_best-simplify-2
628×rational_best-simplify-83
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0831832
11601780
25381780
312341780
426001780
547691780
Stop Event
node limit
Counts
92 → 61
Calls
Call 1
Inputs
y
(+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) y)
(+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) y)
(+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) y)
(*.f64 (+.f64 z (*.f64 -1 y)) x)
(+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) y)
(+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) y)
(+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) y)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x))
(+.f64 y (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x)))
(+.f64 y (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x)))
(+.f64 y (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x)))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(*.f64 y (-.f64 1 x))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(*.f64 y (-.f64 1 x))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(*.f64 y (-.f64 1 x))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
y
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(-.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 0)
(-.f64 0 (neg.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))))
(*.f64 1 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)))
(*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 1)
(*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))))
(*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (/.f64 1 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)))))
(*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (/.f64 1 (/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)))))
(*.f64 (/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)))
(*.f64 (/.f64 1 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))) (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))))
(*.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))) (/.f64 1 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))))
(*.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (/.f64 1 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)))) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)))
(*.f64 (/.f64 1 (/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)))) (/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (/.f64 (/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))) (/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))))))
(*.f64 (/.f64 (/.f64 1 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))) (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)))) (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))))))
(*.f64 (/.f64 (/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))) (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))))
(*.f64 (/.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (/.f64 1 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)))) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))) (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))))
(*.f64 (/.f64 (/.f64 1 (/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)))) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))) (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))))
(/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 1)
(/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))))
(/.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 2) 2)
(/.f64 (neg.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 2)) -2)
(pow.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 1)
(neg.f64 (neg.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))))
(+.f64 (*.f64 (-.f64 1 x) y) 0)
(+.f64 0 (*.f64 (-.f64 1 x) y))
(-.f64 (*.f64 (-.f64 1 x) y) 0)
(-.f64 0 (neg.f64 (*.f64 (-.f64 1 x) y)))
(/.f64 (*.f64 (-.f64 1 x) y) 1)
(/.f64 (*.f64 (-.f64 1 x) y) (/.f64 (*.f64 (-.f64 1 x) y) (*.f64 (-.f64 1 x) y)))
(/.f64 (*.f64 (-.f64 1 x) (+.f64 y y)) 2)
(/.f64 (neg.f64 (*.f64 (-.f64 1 x) (+.f64 y y))) -2)
(pow.f64 (*.f64 (-.f64 1 x) y) 1)
(neg.f64 (neg.f64 (*.f64 (-.f64 1 x) y)))
Outputs
y
(+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) y)
(+.f64 y (*.f64 (+.f64 z (*.f64 y -1)) x))
(+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x))
(+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) y)
(+.f64 y (*.f64 (+.f64 z (*.f64 y -1)) x))
(+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x))
(+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) y)
(+.f64 y (*.f64 (+.f64 z (*.f64 y -1)) x))
(+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x))
(*.f64 (+.f64 z (*.f64 -1 y)) x)
(*.f64 (+.f64 z (*.f64 y -1)) x)
(*.f64 (+.f64 z (neg.f64 y)) x)
(+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) y)
(+.f64 y (*.f64 (+.f64 z (*.f64 y -1)) x))
(+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x))
(+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) y)
(+.f64 y (*.f64 (+.f64 z (*.f64 y -1)) x))
(+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x))
(+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) y)
(+.f64 y (*.f64 (+.f64 z (*.f64 y -1)) x))
(+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x))
(*.f64 -1 (*.f64 x (+.f64 y (*.f64 z -1))))
(neg.f64 (*.f64 x (+.f64 y (neg.f64 z))))
(*.f64 (+.f64 y (neg.f64 z)) (neg.f64 x))
(+.f64 y (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x)))
(+.f64 y (*.f64 -1 (*.f64 x (+.f64 y (*.f64 z -1)))))
(+.f64 y (neg.f64 (*.f64 x (+.f64 y (neg.f64 z)))))
(+.f64 y (*.f64 (+.f64 y (neg.f64 z)) (neg.f64 x)))
(+.f64 y (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x)))
(+.f64 y (*.f64 -1 (*.f64 x (+.f64 y (*.f64 z -1)))))
(+.f64 y (neg.f64 (*.f64 x (+.f64 y (neg.f64 z)))))
(+.f64 y (*.f64 (+.f64 y (neg.f64 z)) (neg.f64 x)))
(+.f64 y (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x)))
(+.f64 y (*.f64 -1 (*.f64 x (+.f64 y (*.f64 z -1)))))
(+.f64 y (neg.f64 (*.f64 x (+.f64 y (neg.f64 z)))))
(+.f64 y (*.f64 (+.f64 y (neg.f64 z)) (neg.f64 x)))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(*.f64 y (-.f64 1 x))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(*.f64 y (-.f64 1 x))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(*.f64 y (-.f64 1 x))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
y
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 y (*.f64 -1 x)))
(+.f64 y (*.f64 x (neg.f64 y)))
(+.f64 y (*.f64 y (neg.f64 x)))
(+.f64 y (*.f64 (neg.f64 y) x))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 y (*.f64 -1 x)))
(+.f64 y (*.f64 x (neg.f64 y)))
(+.f64 y (*.f64 y (neg.f64 x)))
(+.f64 y (*.f64 (neg.f64 y) x))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 y (*.f64 -1 x)))
(+.f64 y (*.f64 x (neg.f64 y)))
(+.f64 y (*.f64 y (neg.f64 x)))
(+.f64 y (*.f64 (neg.f64 y) x))
(*.f64 -1 (*.f64 y x))
(*.f64 y (*.f64 -1 x))
(*.f64 x (neg.f64 y))
(*.f64 y (neg.f64 x))
(*.f64 (neg.f64 y) x)
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 y (*.f64 -1 x)))
(+.f64 y (*.f64 x (neg.f64 y)))
(+.f64 y (*.f64 y (neg.f64 x)))
(+.f64 y (*.f64 (neg.f64 y) x))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 y (*.f64 -1 x)))
(+.f64 y (*.f64 x (neg.f64 y)))
(+.f64 y (*.f64 y (neg.f64 x)))
(+.f64 y (*.f64 (neg.f64 y) x))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 y (*.f64 -1 x)))
(+.f64 y (*.f64 x (neg.f64 y)))
(+.f64 y (*.f64 y (neg.f64 x)))
(+.f64 y (*.f64 (neg.f64 y) x))
(*.f64 -1 (*.f64 y x))
(*.f64 y (*.f64 -1 x))
(*.f64 x (neg.f64 y))
(*.f64 y (neg.f64 x))
(*.f64 (neg.f64 y) x)
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 y (*.f64 -1 x)))
(+.f64 y (*.f64 x (neg.f64 y)))
(+.f64 y (*.f64 y (neg.f64 x)))
(+.f64 y (*.f64 (neg.f64 y) x))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 y (*.f64 -1 x)))
(+.f64 y (*.f64 x (neg.f64 y)))
(+.f64 y (*.f64 y (neg.f64 x)))
(+.f64 y (*.f64 (neg.f64 y) x))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 y (*.f64 -1 x)))
(+.f64 y (*.f64 x (neg.f64 y)))
(+.f64 y (*.f64 y (neg.f64 x)))
(+.f64 y (*.f64 (neg.f64 y) x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(*.f64 y (-.f64 1 x))
(-.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 0)
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(-.f64 0 (neg.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(*.f64 1 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 1)
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (/.f64 1 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)))))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (/.f64 1 (/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)))))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(*.f64 (/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(*.f64 (/.f64 1 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))) (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(*.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))) (/.f64 1 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(*.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (/.f64 1 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)))) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(*.f64 (/.f64 1 (/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)))) (/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (/.f64 (/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))) (/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))))))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(*.f64 (/.f64 (/.f64 1 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))) (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)))) (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))))))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(*.f64 (/.f64 (/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))) (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(*.f64 (/.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (/.f64 1 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)))) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))) (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(*.f64 (/.f64 (/.f64 1 (/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)))) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))) (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 1)
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (/.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(/.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 2) 2)
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(/.f64 (neg.f64 (*.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 2)) -2)
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(pow.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z)) 1)
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(neg.f64 (neg.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 z x))
(+.f64 (*.f64 (-.f64 1 x) y) 0)
(*.f64 y (-.f64 1 x))
(+.f64 0 (*.f64 (-.f64 1 x) y))
(*.f64 y (-.f64 1 x))
(-.f64 (*.f64 (-.f64 1 x) y) 0)
(*.f64 y (-.f64 1 x))
(-.f64 0 (neg.f64 (*.f64 (-.f64 1 x) y)))
(*.f64 y (-.f64 1 x))
(/.f64 (*.f64 (-.f64 1 x) y) 1)
(*.f64 y (-.f64 1 x))
(/.f64 (*.f64 (-.f64 1 x) y) (/.f64 (*.f64 (-.f64 1 x) y) (*.f64 (-.f64 1 x) y)))
(*.f64 y (-.f64 1 x))
(/.f64 (*.f64 (-.f64 1 x) (+.f64 y y)) 2)
(*.f64 y (-.f64 1 x))
(/.f64 (neg.f64 (*.f64 (-.f64 1 x) (+.f64 y y))) -2)
(*.f64 y (-.f64 1 x))
(pow.f64 (*.f64 (-.f64 1 x) y) 1)
(*.f64 y (-.f64 1 x))
(neg.f64 (neg.f64 (*.f64 (-.f64 1 x) y)))
(*.f64 y (-.f64 1 x))

eval14.0ms (0.2%)

Compiler

Compiled 1008 to 500 computations (50.4% saved)

prune12.0ms (0.1%)

Pruning

6 alts after pruning (6 fresh and 0 done)

PrunedKeptTotal
New55661
Fresh000
Picked101
Done000
Total56662
Error
0.0b
Counts
62 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
27.5b
(+.f64 (*.f64 (neg.f64 y) x) (*.f64 x z))
0.0b
(+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x))
27.5b
(*.f64 (+.f64 z (neg.f64 y)) x)
40.5b
(*.f64 z x)
22.8b
(*.f64 y (-.f64 1 x))
35.4b
y
Compiler

Compiled 94 to 63 computations (33% saved)

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 26 to 7 computations (73.1% saved)

series3.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite90.0ms (1.1%)

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

Useful iterations: 0 (0.0ms)

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

simplify150.0ms (1.7%)

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
52894686
66002686
Stop Event
node limit
Counts
46 → 22
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(+.f64 (*.f64 (+.f64 z (neg.f64 y)) x) 0)
(+.f64 0 (*.f64 (+.f64 z (neg.f64 y)) x))
(-.f64 (*.f64 (+.f64 z (neg.f64 y)) x) 0)
(-.f64 0 (neg.f64 (*.f64 (+.f64 z (neg.f64 y)) x)))
(/.f64 (*.f64 (+.f64 z (neg.f64 y)) x) 1)
(/.f64 (*.f64 (+.f64 z (neg.f64 y)) x) (/.f64 (*.f64 (+.f64 z (neg.f64 y)) x) (*.f64 (+.f64 z (neg.f64 y)) x)))
(/.f64 (*.f64 (+.f64 z (neg.f64 y)) (+.f64 x x)) 2)
(/.f64 (*.f64 (neg.f64 (*.f64 (+.f64 z (neg.f64 y)) x)) 2) -2)
(pow.f64 (*.f64 (+.f64 z (neg.f64 y)) x) 1)
(neg.f64 (neg.f64 (*.f64 (+.f64 z (neg.f64 y)) x)))
Outputs
(*.f64 -1 (*.f64 y x))
(*.f64 x (neg.f64 y))
(neg.f64 (*.f64 y x))
(*.f64 y (neg.f64 x))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z))
(*.f64 x (+.f64 z (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z))
(*.f64 x (+.f64 z (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 z x)
(*.f64 x z)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z))
(*.f64 x (+.f64 z (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z))
(*.f64 x (+.f64 z (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 z x)
(*.f64 x z)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z))
(*.f64 x (+.f64 z (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z))
(*.f64 x (+.f64 z (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 z x)
(*.f64 x z)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z))
(*.f64 x (+.f64 z (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z))
(*.f64 x (+.f64 z (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y x))
(*.f64 x (neg.f64 y))
(neg.f64 (*.f64 y x))
(*.f64 y (neg.f64 x))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z))
(*.f64 x (+.f64 z (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z))
(*.f64 x (+.f64 z (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y x))
(*.f64 x (neg.f64 y))
(neg.f64 (*.f64 y x))
(*.f64 y (neg.f64 x))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z))
(*.f64 x (+.f64 z (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z))
(*.f64 x (+.f64 z (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 (-.f64 z y) x)
(*.f64 x (-.f64 z y))
(*.f64 (-.f64 z y) x)
(*.f64 x (-.f64 z y))
(*.f64 (-.f64 z y) x)
(*.f64 x (-.f64 z y))
(*.f64 (-.f64 z y) x)
(*.f64 x (-.f64 z y))
(*.f64 (-.f64 z y) x)
(*.f64 x (-.f64 z y))
(*.f64 (-.f64 z y) x)
(*.f64 x (-.f64 z y))
(*.f64 (-.f64 z y) x)
(*.f64 x (-.f64 z y))
(*.f64 (-.f64 z y) x)
(*.f64 x (-.f64 z y))
(*.f64 (-.f64 z y) x)
(*.f64 x (-.f64 z y))
(*.f64 (-.f64 z y) x)
(*.f64 x (-.f64 z y))
(*.f64 (-.f64 z y) x)
(*.f64 x (-.f64 z y))
(*.f64 (-.f64 z y) x)
(*.f64 x (-.f64 z y))
(+.f64 (*.f64 (+.f64 z (neg.f64 y)) x) 0)
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z))
(*.f64 x (+.f64 z (neg.f64 y)))
(+.f64 0 (*.f64 (+.f64 z (neg.f64 y)) x))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z))
(*.f64 x (+.f64 z (neg.f64 y)))
(-.f64 (*.f64 (+.f64 z (neg.f64 y)) x) 0)
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z))
(*.f64 x (+.f64 z (neg.f64 y)))
(-.f64 0 (neg.f64 (*.f64 (+.f64 z (neg.f64 y)) x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z))
(*.f64 x (+.f64 z (neg.f64 y)))
(/.f64 (*.f64 (+.f64 z (neg.f64 y)) x) 1)
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z))
(*.f64 x (+.f64 z (neg.f64 y)))
(/.f64 (*.f64 (+.f64 z (neg.f64 y)) x) (/.f64 (*.f64 (+.f64 z (neg.f64 y)) x) (*.f64 (+.f64 z (neg.f64 y)) x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z))
(*.f64 x (+.f64 z (neg.f64 y)))
(/.f64 (*.f64 (+.f64 z (neg.f64 y)) (+.f64 x x)) 2)
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z))
(*.f64 x (+.f64 z (neg.f64 y)))
(/.f64 (*.f64 (neg.f64 (*.f64 (+.f64 z (neg.f64 y)) x)) 2) -2)
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z))
(*.f64 x (+.f64 z (neg.f64 y)))
(pow.f64 (*.f64 (+.f64 z (neg.f64 y)) x) 1)
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z))
(*.f64 x (+.f64 z (neg.f64 y)))
(neg.f64 (neg.f64 (*.f64 (+.f64 z (neg.f64 y)) x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z))
(*.f64 x (+.f64 z (neg.f64 y)))

localize3.0ms (0%)

Compiler

Compiled 8 to 4 computations (50% saved)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 9 computations (35.7% saved)

series0.0ms (0%)

Counts
1 → 12
Calls

6 calls:

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

rewrite67.0ms (0.8%)

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 y (-.f64 1 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (-.f64 1 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (-.f64 1 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (-.f64 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (-.f64 1 x)) (/.f64 (*.f64 y (-.f64 1 x)) (*.f64 y (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (-.f64 2 (+.f64 x x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (-.f64 1 x)) 1)))))

simplify238.0ms (2.8%)

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

Useful iterations: 1 (0.0ms)

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

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 18 to 6 computations (66.7% saved)

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 23 to 7 computations (69.6% saved)

series2.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite100.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
1128×rational_best-simplify-57
800×rational_best-simplify-44
700×rational_best-simplify-43
578×rational_best-simplify-47
564×rational_best-5
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01023
18917
230617
3124417
4552717
Stop Event
node limit
Counts
1 → 30
Calls
Call 1
Inputs
(+.f64 (*.f64 (neg.f64 y) x) (*.f64 x z))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 x (+.f64 (neg.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 (neg.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (+.f64 (neg.f64 y) z) (/.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (+.f64 (neg.f64 y) z) (*.f64 x (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) z))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (+.f64 (neg.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) z))) (+.f64 (neg.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (/.f64 1 (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (+.f64 (neg.f64 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))) (*.f64 x (+.f64 (neg.f64 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (neg.f64 y) z) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 x) (*.f64 (+.f64 (neg.f64 y) z) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 x) (+.f64 (*.f64 (neg.f64 y) (*.f64 x x)) (*.f64 x (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x x) (*.f64 (+.f64 (neg.f64 y) z) (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) z))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))) (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) z))) (+.f64 (neg.f64 y) z))) (*.f64 x (+.f64 (neg.f64 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z)))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))) (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) z))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z)))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))) (*.f64 x (+.f64 (neg.f64 y) z))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) z))) (+.f64 (neg.f64 y) z))) (*.f64 x (+.f64 (neg.f64 y) z))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z)))) (*.f64 x (+.f64 (neg.f64 y) z))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 (neg.f64 y) z) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 y) z))) 2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 y) z))))))))

simplify353.0ms (4.1%)

Algorithm
egg-herbie
Rules
1312×rational_best-simplify-82
1310×rational_best-simplify-80
1228×rational_best-simplify-78
978×rational_best-simplify-54
856×rational_best-simplify-2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0861286
11921222
28521222
337161216
466141216
Stop Event
node limit
Counts
66 → 49
Calls
Call 1
Inputs
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (+.f64 z (*.f64 -1 y)) x)
(*.f64 (+.f64 z (*.f64 -1 y)) x)
(*.f64 (+.f64 z (*.f64 -1 y)) x)
(*.f64 (+.f64 z (*.f64 -1 y)) x)
(*.f64 (+.f64 z (*.f64 -1 y)) x)
(*.f64 (+.f64 z (*.f64 -1 y)) x)
(*.f64 (+.f64 z (*.f64 -1 y)) x)
(*.f64 (+.f64 z (*.f64 -1 y)) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x))
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(-.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 0)
(-.f64 0 (neg.f64 (*.f64 x (+.f64 (neg.f64 y) z))))
(*.f64 x (+.f64 (neg.f64 y) z))
(*.f64 x (*.f64 (+.f64 (neg.f64 y) z) (/.f64 x x)))
(*.f64 x (*.f64 (+.f64 (neg.f64 y) z) (*.f64 x (/.f64 1 x))))
(*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) z))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (+.f64 (neg.f64 y) z))))
(*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 1)
(*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))))
(*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) z))) (+.f64 (neg.f64 y) z))))
(*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (/.f64 1 (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z)))))
(*.f64 1 (*.f64 x (+.f64 (neg.f64 y) z)))
(*.f64 (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))) (*.f64 x (+.f64 (neg.f64 y) z)))
(*.f64 (+.f64 (neg.f64 y) z) x)
(*.f64 (/.f64 1 x) (*.f64 (+.f64 (neg.f64 y) z) (*.f64 x x)))
(*.f64 (/.f64 1 x) (+.f64 (*.f64 (neg.f64 y) (*.f64 x x)) (*.f64 x (*.f64 x z))))
(*.f64 (*.f64 x x) (*.f64 (+.f64 (neg.f64 y) z) (/.f64 1 x)))
(*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) z))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))))
(*.f64 (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))) (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) z))))
(*.f64 (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) z))) (+.f64 (neg.f64 y) z))) (*.f64 x (+.f64 (neg.f64 y) z)))
(*.f64 (/.f64 1 (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z)))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))) (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))))))
(*.f64 (/.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) z))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z)))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))))))
(*.f64 (/.f64 (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))) (*.f64 x (+.f64 (neg.f64 y) z))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))))
(*.f64 (/.f64 (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) z))) (+.f64 (neg.f64 y) z))) (*.f64 x (+.f64 (neg.f64 y) z))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))))
(*.f64 (/.f64 (/.f64 1 (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z)))) (*.f64 x (+.f64 (neg.f64 y) z))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))))
(/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 1)
(/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))))
(/.f64 (*.f64 x (*.f64 (+.f64 (neg.f64 y) z) 2)) 2)
(/.f64 (*.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 y) z))) 2) -2)
(pow.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 1)
(neg.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 y) z))))
Outputs
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y)))
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 y (neg.f64 x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y)))
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 y (neg.f64 x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y)))
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 y (neg.f64 x)))
(*.f64 -1 (*.f64 y x))
(*.f64 -1 (*.f64 x y))
(*.f64 x (neg.f64 y))
(*.f64 y (neg.f64 x))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y)))
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 y (neg.f64 x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y)))
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 y (neg.f64 x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y)))
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 y (neg.f64 x)))
(*.f64 -1 (*.f64 y x))
(*.f64 -1 (*.f64 x y))
(*.f64 x (neg.f64 y))
(*.f64 y (neg.f64 x))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y)))
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 y (neg.f64 x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y)))
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 y (neg.f64 x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y)))
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 y (neg.f64 x)))
(*.f64 (+.f64 z (*.f64 -1 y)) x)
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 (+.f64 z (*.f64 -1 y)) x)
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 (+.f64 z (*.f64 -1 y)) x)
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 (+.f64 z (*.f64 -1 y)) x)
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 (+.f64 z (*.f64 -1 y)) x)
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 (+.f64 z (*.f64 -1 y)) x)
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 (+.f64 z (*.f64 -1 y)) x)
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 (+.f64 z (*.f64 -1 y)) x)
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x))
(*.f64 -1 (*.f64 x (+.f64 y (*.f64 z -1))))
(neg.f64 (*.f64 x (+.f64 y (neg.f64 z))))
(*.f64 (+.f64 y (neg.f64 z)) (neg.f64 x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x))
(*.f64 -1 (*.f64 x (+.f64 y (*.f64 z -1))))
(neg.f64 (*.f64 x (+.f64 y (neg.f64 z))))
(*.f64 (+.f64 y (neg.f64 z)) (neg.f64 x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x))
(*.f64 -1 (*.f64 x (+.f64 y (*.f64 z -1))))
(neg.f64 (*.f64 x (+.f64 y (neg.f64 z))))
(*.f64 (+.f64 y (neg.f64 z)) (neg.f64 x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x))
(*.f64 -1 (*.f64 x (+.f64 y (*.f64 z -1))))
(neg.f64 (*.f64 x (+.f64 y (neg.f64 z))))
(*.f64 (+.f64 y (neg.f64 z)) (neg.f64 x))
(*.f64 -1 (*.f64 y x))
(*.f64 -1 (*.f64 x y))
(*.f64 x (neg.f64 y))
(*.f64 y (neg.f64 x))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y)))
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 y (neg.f64 x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y)))
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 y (neg.f64 x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y)))
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 y (neg.f64 x)))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y)))
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 y (neg.f64 x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y)))
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 y (neg.f64 x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y)))
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 y (neg.f64 x)))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y)))
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 y (neg.f64 x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y)))
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 y (neg.f64 x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 x y)))
(+.f64 (*.f64 z x) (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 y (neg.f64 x)))
(-.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 0)
(*.f64 x (+.f64 z (neg.f64 y)))
(-.f64 0 (neg.f64 (*.f64 x (+.f64 (neg.f64 y) z))))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 x (+.f64 (neg.f64 y) z))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 x (*.f64 (+.f64 (neg.f64 y) z) (/.f64 x x)))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 x (*.f64 (+.f64 (neg.f64 y) z) (*.f64 x (/.f64 1 x))))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) z))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (+.f64 (neg.f64 y) z))))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 1)
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) z))) (+.f64 (neg.f64 y) z))))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (/.f64 1 (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z)))))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 1 (*.f64 x (+.f64 (neg.f64 y) z)))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))) (*.f64 x (+.f64 (neg.f64 y) z)))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 (+.f64 (neg.f64 y) z) x)
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 (/.f64 1 x) (*.f64 (+.f64 (neg.f64 y) z) (*.f64 x x)))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 (/.f64 1 x) (+.f64 (*.f64 (neg.f64 y) (*.f64 x x)) (*.f64 x (*.f64 x z))))
(*.f64 (/.f64 1 x) (+.f64 (*.f64 x (*.f64 (neg.f64 y) x)) (*.f64 x (*.f64 z x))))
(*.f64 (/.f64 1 x) (*.f64 x (+.f64 (*.f64 z x) (*.f64 x (neg.f64 y)))))
(*.f64 (/.f64 1 x) (*.f64 x (+.f64 (*.f64 z x) (*.f64 y (neg.f64 x)))))
(*.f64 x (/.f64 (+.f64 (*.f64 z x) (*.f64 x (neg.f64 y))) x))
(*.f64 (*.f64 x x) (*.f64 (+.f64 (neg.f64 y) z) (/.f64 1 x)))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) z))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))) (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) z))))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) z))) (+.f64 (neg.f64 y) z))) (*.f64 x (+.f64 (neg.f64 y) z)))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 (/.f64 1 (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z)))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))) (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))))))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 (/.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) z))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z)))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))))))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 (/.f64 (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))) (*.f64 x (+.f64 (neg.f64 y) z))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 (/.f64 (*.f64 x (*.f64 (/.f64 1 (*.f64 x (+.f64 (neg.f64 y) z))) (+.f64 (neg.f64 y) z))) (*.f64 x (+.f64 (neg.f64 y) z))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 (/.f64 (/.f64 1 (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z)))) (*.f64 x (+.f64 (neg.f64 y) z))) (*.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))))
(*.f64 x (+.f64 z (neg.f64 y)))
(/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 1)
(*.f64 x (+.f64 z (neg.f64 y)))
(/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (/.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 x (+.f64 (neg.f64 y) z))))
(*.f64 x (+.f64 z (neg.f64 y)))
(/.f64 (*.f64 x (*.f64 (+.f64 (neg.f64 y) z) 2)) 2)
(*.f64 x (+.f64 z (neg.f64 y)))
(/.f64 (*.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 y) z))) 2) -2)
(*.f64 x (+.f64 z (neg.f64 y)))
(pow.f64 (*.f64 x (+.f64 (neg.f64 y) z)) 1)
(*.f64 x (+.f64 z (neg.f64 y)))
(neg.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 y) z))))
(*.f64 x (+.f64 z (neg.f64 y)))

eval98.0ms (1.1%)

Compiler

Compiled 1200 to 306 computations (74.5% saved)

prune116.0ms (1.4%)

Pruning

8 alts after pruning (5 fresh and 3 done)

PrunedKeptTotal
New1084112
Fresh011
Picked011
Done224
Total1108118
Error
0.0b
Counts
118 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
27.5b
(+.f64 (*.f64 (neg.f64 y) x) (*.f64 x z))
13.4b
(+.f64 y (*.f64 z x))
22.8b
(+.f64 y (*.f64 y (neg.f64 x)))
27.5b
(*.f64 (-.f64 z y) x)
40.5b
(*.f64 z x)
22.8b
(*.f64 y (-.f64 1 x))
49.8b
(*.f64 y (neg.f64 x))
35.4b
y
Compiler

Compiled 61 to 41 computations (32.8% saved)

localize4.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 z y) x)
Compiler

Compiled 14 to 5 computations (64.3% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

9 calls:

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

rewrite110.0ms (1.3%)

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 z y) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 z y) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 z y) x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 z y) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 z y) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 z y) x) (/.f64 (*.f64 (-.f64 z y) x) (*.f64 (-.f64 z y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 z y) (+.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 z y) x) 1)))))

simplify207.0ms (2.4%)

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 y x))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 (-.f64 z y) x) 0)
(+.f64 0 (*.f64 (-.f64 z y) x))
(-.f64 (*.f64 (-.f64 z y) x) 0)
(/.f64 (*.f64 (-.f64 z y) x) 1)
(/.f64 (*.f64 (-.f64 z y) x) (/.f64 (*.f64 (-.f64 z y) x) (*.f64 (-.f64 z y) x)))
(/.f64 (*.f64 (-.f64 z y) (+.f64 x x)) 2)
(pow.f64 (*.f64 (-.f64 z y) x) 1)
Outputs
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(*.f64 y (neg.f64 x))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z))
(*.f64 x (+.f64 z (*.f64 -1 y)))
(*.f64 x (+.f64 z (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z))
(*.f64 x (+.f64 z (*.f64 -1 y)))
(*.f64 x (+.f64 z (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z))
(*.f64 x (+.f64 z (*.f64 -1 y)))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 z x)
(*.f64 x z)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z))
(*.f64 x (+.f64 z (*.f64 -1 y)))
(*.f64 x (+.f64 z (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z))
(*.f64 x (+.f64 z (*.f64 -1 y)))
(*.f64 x (+.f64 z (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z))
(*.f64 x (+.f64 z (*.f64 -1 y)))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 z x)
(*.f64 x z)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z))
(*.f64 x (+.f64 z (*.f64 -1 y)))
(*.f64 x (+.f64 z (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z))
(*.f64 x (+.f64 z (*.f64 -1 y)))
(*.f64 x (+.f64 z (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z))
(*.f64 x (+.f64 z (*.f64 -1 y)))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 z x)
(*.f64 x z)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z))
(*.f64 x (+.f64 z (*.f64 -1 y)))
(*.f64 x (+.f64 z (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z))
(*.f64 x (+.f64 z (*.f64 -1 y)))
(*.f64 x (+.f64 z (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z))
(*.f64 x (+.f64 z (*.f64 -1 y)))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(*.f64 y (neg.f64 x))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z))
(*.f64 x (+.f64 z (*.f64 -1 y)))
(*.f64 x (+.f64 z (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z))
(*.f64 x (+.f64 z (*.f64 -1 y)))
(*.f64 x (+.f64 z (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z))
(*.f64 x (+.f64 z (*.f64 -1 y)))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(*.f64 y (neg.f64 x))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z))
(*.f64 x (+.f64 z (*.f64 -1 y)))
(*.f64 x (+.f64 z (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z))
(*.f64 x (+.f64 z (*.f64 -1 y)))
(*.f64 x (+.f64 z (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 x z))
(+.f64 (neg.f64 (*.f64 y x)) (*.f64 x z))
(*.f64 x (+.f64 z (*.f64 -1 y)))
(*.f64 x (+.f64 z (neg.f64 y)))
(+.f64 (*.f64 (-.f64 z y) x) 0)
(*.f64 x (-.f64 z y))
(+.f64 0 (*.f64 (-.f64 z y) x))
(*.f64 x (-.f64 z y))
(-.f64 (*.f64 (-.f64 z y) x) 0)
(*.f64 x (-.f64 z y))
(/.f64 (*.f64 (-.f64 z y) x) 1)
(*.f64 x (-.f64 z y))
(/.f64 (*.f64 (-.f64 z y) x) (/.f64 (*.f64 (-.f64 z y) x) (*.f64 (-.f64 z y) x)))
(*.f64 x (-.f64 z y))
(/.f64 (*.f64 (-.f64 z y) (+.f64 x x)) 2)
(*.f64 x (-.f64 z y))
(pow.f64 (*.f64 (-.f64 z y) x) 1)
(*.f64 x (-.f64 z y))

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 17 to 6 computations (64.7% saved)

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite296.0ms (3.5%)

Algorithm
batch-egg-rewrite
Rules
892×rational_best-simplify-57
812×rational_best-simplify-82
632×rational_best-simplify-44
606×rational_best-simplify-80
580×rational_best-simplify-43
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0817
17217
225117
3100517
4441517
Stop Event
node limit
Counts
1 → 36
Calls
Call 1
Inputs
(+.f64 y (*.f64 y (neg.f64 x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 y (+.f64 (neg.f64 x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (+.f64 (neg.f64 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (*.f64 (+.f64 (neg.f64 x) 1) (/.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (*.f64 (+.f64 (neg.f64 x) 1) (*.f64 y (/.f64 1 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (*.f64 (/.f64 1 (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (+.f64 (neg.f64 x) (/.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (+.f64 (neg.f64 x) (*.f64 y (/.f64 1 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (*.f64 (/.f64 1 (*.f64 y (+.f64 (neg.f64 x) 1))) (+.f64 (neg.f64 x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (/.f64 1 (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 y (+.f64 (neg.f64 x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 y (+.f64 (neg.f64 x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (neg.f64 x) 1) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 y) (*.f64 (+.f64 (neg.f64 x) 1) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 y) (+.f64 (*.f64 y y) (*.f64 (neg.f64 x) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y y) (*.f64 (+.f64 (neg.f64 x) 1) (/.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))) (/.f64 1 (*.f64 y (+.f64 (neg.f64 x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (*.f64 (/.f64 1 (*.f64 y (+.f64 (neg.f64 x) 1))) (+.f64 (neg.f64 x) 1))) (*.f64 y (+.f64 (neg.f64 x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1)))) (*.f64 y (+.f64 (neg.f64 x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1)))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))) (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1)))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 y (*.f64 (/.f64 1 (*.f64 y (+.f64 (neg.f64 x) 1))) (+.f64 (neg.f64 x) 1))) (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (/.f64 1 (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1)))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1)))))) (*.f64 (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1))))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1)))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (*.f64 y (*.f64 (/.f64 1 (*.f64 y (+.f64 (neg.f64 x) 1))) (+.f64 (neg.f64 x) 1))) (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1)))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1)))) (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 (*.f64 x -2) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 y (+.f64 (*.f64 x -2) 2))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 y (+.f64 (neg.f64 x) 1))))))))

simplify235.0ms (2.7%)

Algorithm
egg-herbie
Rules
1362×rational_best-simplify-82
1340×rational_best-simplify-80
1258×rational_best-simplify-78
978×rational_best-simplify-54
976×rational_best-simplify-2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0951050
12281044
29541044
339901038
467501038
Stop Event
node limit
Counts
60 → 48
Calls
Call 1
Inputs
(*.f64 y (+.f64 1 (*.f64 -1 x)))
(*.f64 y (+.f64 1 (*.f64 -1 x)))
(*.f64 y (+.f64 1 (*.f64 -1 x)))
(*.f64 y (+.f64 1 (*.f64 -1 x)))
(*.f64 y (+.f64 1 (*.f64 -1 x)))
(*.f64 y (+.f64 1 (*.f64 -1 x)))
(*.f64 y (+.f64 1 (*.f64 -1 x)))
(*.f64 y (+.f64 1 (*.f64 -1 x)))
(*.f64 -1 (*.f64 y (-.f64 x 1)))
(*.f64 -1 (*.f64 y (-.f64 x 1)))
(*.f64 -1 (*.f64 y (-.f64 x 1)))
(*.f64 -1 (*.f64 y (-.f64 x 1)))
y
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(-.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) 0)
(-.f64 0 (neg.f64 (*.f64 y (+.f64 (neg.f64 x) 1))))
(*.f64 y (+.f64 (neg.f64 x) 1))
(*.f64 y (*.f64 (+.f64 (neg.f64 x) 1) (/.f64 y y)))
(*.f64 y (*.f64 (+.f64 (neg.f64 x) 1) (*.f64 y (/.f64 1 y))))
(*.f64 y (*.f64 (/.f64 1 (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1))))
(*.f64 y (+.f64 (neg.f64 x) (/.f64 y y)))
(*.f64 y (+.f64 (neg.f64 x) (*.f64 y (/.f64 1 y))))
(*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) 1)
(*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))))
(*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (*.f64 (/.f64 1 (*.f64 y (+.f64 (neg.f64 x) 1))) (+.f64 (neg.f64 x) 1))))
(*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (/.f64 1 (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1)))))
(*.f64 1 (*.f64 y (+.f64 (neg.f64 x) 1)))
(*.f64 (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 y (+.f64 (neg.f64 x) 1)))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 (/.f64 1 y) (*.f64 (+.f64 (neg.f64 x) 1) (*.f64 y y)))
(*.f64 (/.f64 1 y) (+.f64 (*.f64 y y) (*.f64 (neg.f64 x) (*.f64 y y))))
(*.f64 (*.f64 y y) (*.f64 (+.f64 (neg.f64 x) 1) (/.f64 1 y)))
(*.f64 (/.f64 1 (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))))
(*.f64 (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))) (/.f64 1 (*.f64 y (+.f64 (neg.f64 x) 1))))
(*.f64 (*.f64 y (*.f64 (/.f64 1 (*.f64 y (+.f64 (neg.f64 x) 1))) (+.f64 (neg.f64 x) 1))) (*.f64 y (+.f64 (neg.f64 x) 1)))
(*.f64 (/.f64 1 (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1)))) (*.f64 y (+.f64 (neg.f64 x) 1)))
(*.f64 (/.f64 1 (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1)))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))) (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))))))
(*.f64 (/.f64 (/.f64 1 (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1)))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1))))))
(*.f64 (/.f64 (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))))
(*.f64 (/.f64 (*.f64 y (*.f64 (/.f64 1 (*.f64 y (+.f64 (neg.f64 x) 1))) (+.f64 (neg.f64 x) 1))) (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))))
(*.f64 (/.f64 (/.f64 (/.f64 1 (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1)))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1)))))) (*.f64 (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1))))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1)))))))
(*.f64 (/.f64 (/.f64 (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1)))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1))))))
(*.f64 (/.f64 (/.f64 (*.f64 y (*.f64 (/.f64 1 (*.f64 y (+.f64 (neg.f64 x) 1))) (+.f64 (neg.f64 x) 1))) (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1)))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1))))))
(*.f64 (/.f64 (/.f64 1 (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1)))) (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))))
(/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) 1)
(/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))))
(/.f64 (*.f64 y (+.f64 (*.f64 x -2) 2)) 2)
(/.f64 (neg.f64 (*.f64 y (+.f64 (*.f64 x -2) 2))) -2)
(pow.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) 1)
(neg.f64 (neg.f64 (*.f64 y (+.f64 (neg.f64 x) 1))))
Outputs
(*.f64 y (+.f64 1 (*.f64 -1 x)))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 y (+.f64 1 (*.f64 -1 x)))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 y (+.f64 1 (*.f64 -1 x)))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 y (+.f64 1 (*.f64 -1 x)))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 y (+.f64 1 (*.f64 -1 x)))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 y (+.f64 1 (*.f64 -1 x)))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 y (+.f64 1 (*.f64 -1 x)))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 y (+.f64 1 (*.f64 -1 x)))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 -1 (*.f64 y (-.f64 x 1)))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 -1 (*.f64 y (-.f64 x 1)))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 -1 (*.f64 y (-.f64 x 1)))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 -1 (*.f64 y (-.f64 x 1)))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
y
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 y (neg.f64 x)))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 y (neg.f64 x)))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 y (neg.f64 x)))
(*.f64 -1 (*.f64 y x))
(*.f64 y (neg.f64 x))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 y (neg.f64 x)))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 y (neg.f64 x)))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 y (neg.f64 x)))
(*.f64 -1 (*.f64 y x))
(*.f64 y (neg.f64 x))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 y (neg.f64 x)))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 y (neg.f64 x)))
(+.f64 y (*.f64 -1 (*.f64 y x)))
(+.f64 y (*.f64 y (neg.f64 x)))
(-.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) 0)
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(-.f64 0 (neg.f64 (*.f64 y (+.f64 (neg.f64 x) 1))))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 y (+.f64 (neg.f64 x) 1))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 y (*.f64 (+.f64 (neg.f64 x) 1) (/.f64 y y)))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 y (*.f64 (+.f64 (neg.f64 x) 1) (*.f64 y (/.f64 1 y))))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 y (*.f64 (/.f64 1 (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1))))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 y (+.f64 (neg.f64 x) (/.f64 y y)))
(*.f64 y (+.f64 (neg.f64 x) (*.f64 y (/.f64 1 y))))
(*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) 1)
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (*.f64 (/.f64 1 (*.f64 y (+.f64 (neg.f64 x) 1))) (+.f64 (neg.f64 x) 1))))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (/.f64 1 (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1)))))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 1 (*.f64 y (+.f64 (neg.f64 x) 1)))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 y (+.f64 (neg.f64 x) 1)))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 (+.f64 (neg.f64 x) 1) y)
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 (/.f64 1 y) (*.f64 (+.f64 (neg.f64 x) 1) (*.f64 y y)))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 (/.f64 1 y) (+.f64 (*.f64 y y) (*.f64 (neg.f64 x) (*.f64 y y))))
(*.f64 (/.f64 1 y) (+.f64 (*.f64 y y) (*.f64 y (*.f64 (neg.f64 x) y))))
(*.f64 (/.f64 1 y) (*.f64 y (+.f64 y (*.f64 y (neg.f64 x)))))
(*.f64 y (/.f64 (+.f64 y (*.f64 y (neg.f64 x))) y))
(*.f64 (*.f64 y y) (*.f64 (+.f64 (neg.f64 x) 1) (/.f64 1 y)))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 (/.f64 1 (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))) (/.f64 1 (*.f64 y (+.f64 (neg.f64 x) 1))))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 (*.f64 y (*.f64 (/.f64 1 (*.f64 y (+.f64 (neg.f64 x) 1))) (+.f64 (neg.f64 x) 1))) (*.f64 y (+.f64 (neg.f64 x) 1)))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 (/.f64 1 (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1)))) (*.f64 y (+.f64 (neg.f64 x) 1)))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 (/.f64 1 (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1)))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))) (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))))))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 (/.f64 (/.f64 1 (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1)))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1))))))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 (/.f64 (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 (/.f64 (*.f64 y (*.f64 (/.f64 1 (*.f64 y (+.f64 (neg.f64 x) 1))) (+.f64 (neg.f64 x) 1))) (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 (/.f64 (/.f64 (/.f64 1 (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1)))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1)))))) (*.f64 (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1))))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1)))))))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 (/.f64 (/.f64 (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1)))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1))))))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 (/.f64 (/.f64 (*.f64 y (*.f64 (/.f64 1 (*.f64 y (+.f64 (neg.f64 x) 1))) (+.f64 (neg.f64 x) 1))) (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1)))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (+.f64 (neg.f64 x) 1))))))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(*.f64 (/.f64 (/.f64 1 (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1)))) (*.f64 y (+.f64 (neg.f64 x) 1))) (*.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) 1)
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (/.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) (*.f64 y (+.f64 (neg.f64 x) 1))))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(/.f64 (*.f64 y (+.f64 (*.f64 x -2) 2)) 2)
(/.f64 (neg.f64 (*.f64 y (+.f64 (*.f64 x -2) 2))) -2)
(/.f64 (*.f64 y (+.f64 (*.f64 x -2) 2)) 2)
(pow.f64 (*.f64 y (+.f64 (neg.f64 x) 1)) 1)
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))
(neg.f64 (neg.f64 (*.f64 y (+.f64 (neg.f64 x) 1))))
(*.f64 y (+.f64 1 (neg.f64 x)))
(*.f64 y (neg.f64 (+.f64 -1 x)))

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

series1.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite78.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
1872×rational_best-5
1870×rational_best-4
1870×rational_best-2
1870×rational_best-3
1870×rational_best-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
16013
220613
385913
4377513
Stop Event
node limit
Counts
1 → 18
Calls
Call 1
Inputs
(+.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 (+.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 *.f64 (+.f64 y (*.f64 z x)) (*.f64 (+.f64 y (*.f64 z x)) (/.f64 1 (+.f64 y (*.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (*.f64 z x)) (/.f64 1 (/.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 y (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x))) (+.f64 y (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 y (*.f64 z x))) (*.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x))) (/.f64 1 (+.f64 y (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (*.f64 z x)) (/.f64 1 (+.f64 y (*.f64 z x)))) (+.f64 y (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x)))) (*.f64 (+.f64 y (*.f64 z x)) (*.f64 (/.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x))) (/.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (+.f64 y (*.f64 z x))) (*.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x)))) (*.f64 (*.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x))) (*.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x))) (+.f64 y (*.f64 z x))) (*.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (+.f64 y (*.f64 z x)) (/.f64 1 (+.f64 y (*.f64 z x)))) (+.f64 y (*.f64 z x))) (*.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x))))))) (#(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 /.f64 (*.f64 (+.f64 y (*.f64 z x)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 y (*.f64 z x)) 1)))))

simplify210.0ms (2.5%)

Algorithm
egg-herbie
Rules
1274×rational_best-simplify-80
1220×rational_best-simplify-78
1186×rational_best-simplify-94
1156×rational_best-simplify-24
1042×rational_best-simplify-135
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
041636
177636
2493636
33159636
46624636
Stop Event
node limit
Counts
54 → 22
Calls
Call 1
Inputs
(*.f64 z x)
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
y
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
y
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
y
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
(*.f64 z x)
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
(*.f64 z x)
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
y
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
(*.f64 z x)
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
(*.f64 z x)
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
(-.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))))
(*.f64 (+.f64 y (*.f64 z x)) (*.f64 (+.f64 y (*.f64 z x)) (/.f64 1 (+.f64 y (*.f64 z x)))))
(*.f64 (+.f64 y (*.f64 z x)) (/.f64 1 (/.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x)))))
(*.f64 1 (+.f64 y (*.f64 z x)))
(*.f64 (/.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x))) (+.f64 y (*.f64 z x)))
(*.f64 (/.f64 1 (+.f64 y (*.f64 z x))) (*.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x))))
(*.f64 (*.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x))) (/.f64 1 (+.f64 y (*.f64 z x))))
(*.f64 (*.f64 (+.f64 y (*.f64 z x)) (/.f64 1 (+.f64 y (*.f64 z x)))) (+.f64 y (*.f64 z x)))
(*.f64 (/.f64 1 (/.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x)))) (*.f64 (+.f64 y (*.f64 z x)) (*.f64 (/.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x))) (/.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x))))))
(*.f64 (/.f64 (/.f64 1 (+.f64 y (*.f64 z x))) (*.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x)))) (*.f64 (*.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x))) (*.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x)))))
(*.f64 (/.f64 (/.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x))) (+.f64 y (*.f64 z x))) (*.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x))))
(*.f64 (/.f64 (*.f64 (+.f64 y (*.f64 z x)) (/.f64 1 (+.f64 y (*.f64 z x)))) (+.f64 y (*.f64 z x))) (*.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x))))
(/.f64 (+.f64 y (*.f64 z x)) 1)
(/.f64 (+.f64 y (*.f64 z x)) (/.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x))))
(/.f64 (*.f64 (+.f64 y (*.f64 z x)) 2) 2)
(pow.f64 (+.f64 y (*.f64 z x)) 1)
Outputs
(*.f64 z x)
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
y
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
y
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
y
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
(*.f64 z x)
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
(*.f64 z x)
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
y
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
(*.f64 z x)
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
(*.f64 z x)
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
(+.f64 (*.f64 z x) y)
(-.f64 (+.f64 y (*.f64 z x)) 0)
(+.f64 (*.f64 z x) y)
(*.f64 (+.f64 y (*.f64 z x)) 1)
(+.f64 (*.f64 z x) y)
(*.f64 (+.f64 y (*.f64 z x)) (/.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x))))
(+.f64 (*.f64 z x) y)
(*.f64 (+.f64 y (*.f64 z x)) (*.f64 (+.f64 y (*.f64 z x)) (/.f64 1 (+.f64 y (*.f64 z x)))))
(+.f64 (*.f64 z x) y)
(*.f64 (+.f64 y (*.f64 z x)) (/.f64 1 (/.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x)))))
(+.f64 (*.f64 z x) y)
(*.f64 1 (+.f64 y (*.f64 z x)))
(+.f64 (*.f64 z x) y)
(*.f64 (/.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x))) (+.f64 y (*.f64 z x)))
(+.f64 (*.f64 z x) y)
(*.f64 (/.f64 1 (+.f64 y (*.f64 z x))) (*.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x))))
(+.f64 (*.f64 z x) y)
(*.f64 (*.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x))) (/.f64 1 (+.f64 y (*.f64 z x))))
(+.f64 (*.f64 z x) y)
(*.f64 (*.f64 (+.f64 y (*.f64 z x)) (/.f64 1 (+.f64 y (*.f64 z x)))) (+.f64 y (*.f64 z x)))
(+.f64 (*.f64 z x) y)
(*.f64 (/.f64 1 (/.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x)))) (*.f64 (+.f64 y (*.f64 z x)) (*.f64 (/.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x))) (/.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x))))))
(+.f64 (*.f64 z x) y)
(*.f64 (/.f64 (/.f64 1 (+.f64 y (*.f64 z x))) (*.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x)))) (*.f64 (*.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x))) (*.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x)))))
(+.f64 (*.f64 z x) y)
(*.f64 (/.f64 (/.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x))) (+.f64 y (*.f64 z x))) (*.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x))))
(+.f64 (*.f64 z x) y)
(*.f64 (/.f64 (*.f64 (+.f64 y (*.f64 z x)) (/.f64 1 (+.f64 y (*.f64 z x)))) (+.f64 y (*.f64 z x))) (*.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x))))
(+.f64 (*.f64 z x) y)
(/.f64 (+.f64 y (*.f64 z x)) 1)
(+.f64 (*.f64 z x) y)
(/.f64 (+.f64 y (*.f64 z x)) (/.f64 (+.f64 y (*.f64 z x)) (+.f64 y (*.f64 z x))))
(+.f64 (*.f64 z x) y)
(/.f64 (*.f64 (+.f64 y (*.f64 z x)) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 z x) y) 2) 2)
(pow.f64 (+.f64 y (*.f64 z x)) 1)
(+.f64 (*.f64 z x) y)

eval18.0ms (0.2%)

Compiler

Compiled 1384 to 608 computations (56.1% saved)

prune99.0ms (1.2%)

Pruning

8 alts after pruning (1 fresh and 7 done)

PrunedKeptTotal
New88088
Fresh011
Picked011
Done066
Total88896
Error
0.0b
Counts
96 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
27.5b
(+.f64 (*.f64 (neg.f64 y) x) (*.f64 x z))
13.4b
(+.f64 y (*.f64 z x))
22.8b
(+.f64 y (*.f64 y (neg.f64 x)))
27.5b
(*.f64 (-.f64 z y) x)
40.5b
(*.f64 z x)
22.8b
(*.f64 y (-.f64 1 x))
49.8b
(*.f64 y (neg.f64 x))
35.4b
y
Compiler

Compiled 61 to 41 computations (32.8% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune3.0ms (0%)

Pruning

8 alts after pruning (1 fresh and 7 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done077
Total088
Error
0.0b
Counts
8 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
27.5b
(+.f64 (*.f64 (neg.f64 y) x) (*.f64 x z))
13.4b
(+.f64 y (*.f64 z x))
22.8b
(+.f64 y (*.f64 y (neg.f64 x)))
27.5b
(*.f64 (-.f64 z y) x)
40.5b
(*.f64 z x)
22.8b
(*.f64 y (-.f64 1 x))
49.8b
(*.f64 y (neg.f64 x))
35.4b
y
Compiler

Compiled 61 to 41 computations (32.8% saved)

regimes235.0ms (2.8%)

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

4 calls:

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

Compiled 87 to 41 computations (52.9% saved)

regimes117.0ms (1.4%)

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

3 calls:

79.0ms
x
20.0ms
y
17.0ms
z
Results
ErrorSegmentsBranch
0.7b3x
7.9b3y
6.0b3z
Compiler

Compiled 50 to 25 computations (50% saved)

bsearch31.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
16.0ms
0.0007078388326068544
377066883458851.94
16.0ms
-108942.90968633082
-0.22844338086689694
Results
28.0ms304×body256valid
0.0msbody256infinite
Compiler

Compiled 360 to 241 computations (33.1% saved)

regimes210.0ms (2.5%)

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

3 calls:

119.0ms
z
75.0ms
x
14.0ms
y
Results
ErrorSegmentsBranch
8.5b3x
10.1b3y
13.9b7z
Compiler

Compiled 33 to 20 computations (39.4% saved)

bsearch152.0ms (1.8%)

Algorithm
binary-search
Steps
TimeLeftRight
136.0ms
0.0007078388326068544
377066883458851.94
15.0ms
-3.8483170664771114e-61
-4.606093384750195e-66
Results
148.0ms304×body256valid
0.0msbody256infinite
Compiler

Compiled 360 to 260 computations (27.8% saved)

regimes150.0ms (1.8%)

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

3 calls:

110.0ms
x
24.0ms
z
14.0ms
y
Results
ErrorSegmentsBranch
15.4b9x
12.7b3y
16.0b7z
Compiler

Compiled 28 to 18 computations (35.7% saved)

bsearch230.0ms (2.7%)

Algorithm
binary-search
Steps
TimeLeftRight
8.0ms
3.644960704503085e-84
1.2017984466552874e-83
222.0ms
-1.6420228061904059e-217
-1.1763928323355854e-219
Results
228.0ms192×body256valid
Compiler

Compiled 210 to 157 computations (25.2% saved)

regimes96.0ms (1.1%)

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

3 calls:

38.0ms
z
33.0ms
x
24.0ms
y
Results
ErrorSegmentsBranch
14.5b11x
20.9b7y
23.9b11z
Compiler

Compiled 23 to 15 computations (34.8% saved)

bsearch177.0ms (2.1%)

Algorithm
10×binary-search
Steps
TimeLeftRight
23.0ms
3.922087938324547e+189
2.027566627053664e+192
18.0ms
1.5791884928674489e+122
4.454946159257984e+125
19.0ms
1.033139677334323e+97
2.655768449700439e+104
20.0ms
3.9532044743297254e+60
4.346416065103431e+78
14.0ms
1.3777410511011257e-41
1.360397148169762e-32
15.0ms
-3.8483170664771114e-61
-4.606093384750195e-66
16.0ms
-28062005604121424.0
-45633619639.41733
6.0ms
-3.7566329346820576e+40
-2.675962527559408e+40
11.0ms
-2.3637758124509697e+115
-6.900207613890695e+114
36.0ms
-1.963557840622125e+246
-2.371374598511596e+237
Results
118.0ms1264×body256valid
45.0ms469×body256infinite
Compiler

Compiled 1149 to 846 computations (26.4% saved)

regimes45.0ms (0.5%)

Accuracy

Total -40.7b remaining (-189.6%)

Threshold costs -40.7b (-189.6%)

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

3 calls:

23.0ms
z
12.0ms
y
9.0ms
x
Results
ErrorSegmentsBranch
21.5b3x
23.2b3y
26.8b7z
Compiler

Compiled 19 to 13 computations (31.6% saved)

bsearch31.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
15.0ms
1.3777410511011257e-41
1.360397148169762e-32
16.0ms
-3.8483170664771114e-61
-4.606093384750195e-66
Results
28.0ms288×body256valid
Compiler

Compiled 234 to 175 computations (25.2% saved)

simplify6.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
075399
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x))
(if (<=.f64 x -1) (*.f64 (-.f64 z y) x) (if (<=.f64 x 1) (+.f64 y (*.f64 z x)) (*.f64 (-.f64 z y) x)))
(if (<=.f64 x -4776423681039293/28948022309329048855892746252171976963317496166410141009864396001978282409984) (*.f64 (-.f64 z y) x) (if (<=.f64 x 45000) (*.f64 y (-.f64 1 x)) (*.f64 (-.f64 z y) x)))
(if (<=.f64 y -2980834737217361/24840289476811342962383671815400040884110176273867145778224832608416815242982030181294054541258343647207803691154097171298745280705837030263108596400658898227271279616333598488804244570105575117204207987099463500014285549661056925696) (*.f64 y (-.f64 1 x)) (if (<=.f64 y 2734063405978765/546812681195752981093125556779405341338292357723303109106442651602488249799843980805878294255763456) (*.f64 z x) (*.f64 y (-.f64 1 x))))
(if (<=.f64 x -16000000000000000223137820865918791007586653711786213297793506734554887830818088698214536209257691587356722454391952183431447815578195534565449196121327150512517563949227437203745263197829149449773314489187971419097303753839711297541247074304) (*.f64 z x) (if (<=.f64 x -18000000000000000280069490330403174436827625144579105800655870447755008060965602658769737018470854058171713055621120) (*.f64 y (neg.f64 x)) (if (<=.f64 x -31999999999999998070693323891301714755584) (*.f64 z x) (if (<=.f64 x -410000000000) (*.f64 y (neg.f64 x)) (if (<=.f64 x -8003549208083295/29642774844752946028434172162224104410437116074403984394101141506025761187823616) (*.f64 z x) (if (<=.f64 x 8476709496519237/730750818665451459101842416358141509827966271488) y (if (<=.f64 x 4500000000000000372464409657473640705398029867656244096145718668983495819264) (*.f64 z x) (if (<=.f64 x 1499999999999999903408865346644674673247483061533619996637975112429525498213187755309954815155595378688) (*.f64 y (neg.f64 x)) (if (<=.f64 x 9199999999999999618791027820880500872822410778673001458830975400370929573139704087000695457746236951722344324195099697217536) (*.f64 z x) (if (<=.f64 x 16500000000000000010040404284858079466588549180582252991907291887737136258616467726939231988523386802853307767866698989847379497842532903836406938864659073112929285966029736329612791828709376) (*.f64 y (neg.f64 x)) (*.f64 z x)))))))))))
(if (<=.f64 x -5500124238772519/14474011154664524427946373126085988481658748083205070504932198000989141204992) (*.f64 z x) (if (<=.f64 x 3507603929594167/46768052394588893382517914646921056628989841375232) y (*.f64 z x)))
y
Outputs
(+.f64 y (*.f64 (+.f64 z (neg.f64 y)) x))
(if (<=.f64 x -1) (*.f64 (-.f64 z y) x) (if (<=.f64 x 1) (+.f64 y (*.f64 z x)) (*.f64 (-.f64 z y) x)))
(if (<=.f64 x -4776423681039293/28948022309329048855892746252171976963317496166410141009864396001978282409984) (*.f64 (-.f64 z y) x) (if (<=.f64 x 45000) (*.f64 y (-.f64 1 x)) (*.f64 (-.f64 z y) x)))
(if (<=.f64 y -2980834737217361/24840289476811342962383671815400040884110176273867145778224832608416815242982030181294054541258343647207803691154097171298745280705837030263108596400658898227271279616333598488804244570105575117204207987099463500014285549661056925696) (*.f64 y (-.f64 1 x)) (if (<=.f64 y 2734063405978765/546812681195752981093125556779405341338292357723303109106442651602488249799843980805878294255763456) (*.f64 z x) (*.f64 y (-.f64 1 x))))
(if (<=.f64 x -16000000000000000223137820865918791007586653711786213297793506734554887830818088698214536209257691587356722454391952183431447815578195534565449196121327150512517563949227437203745263197829149449773314489187971419097303753839711297541247074304) (*.f64 z x) (if (<=.f64 x -18000000000000000280069490330403174436827625144579105800655870447755008060965602658769737018470854058171713055621120) (*.f64 y (neg.f64 x)) (if (<=.f64 x -31999999999999998070693323891301714755584) (*.f64 z x) (if (<=.f64 x -410000000000) (*.f64 y (neg.f64 x)) (if (<=.f64 x -8003549208083295/29642774844752946028434172162224104410437116074403984394101141506025761187823616) (*.f64 z x) (if (<=.f64 x 8476709496519237/730750818665451459101842416358141509827966271488) y (if (<=.f64 x 4500000000000000372464409657473640705398029867656244096145718668983495819264) (*.f64 z x) (if (<=.f64 x 1499999999999999903408865346644674673247483061533619996637975112429525498213187755309954815155595378688) (*.f64 y (neg.f64 x)) (if (<=.f64 x 9199999999999999618791027820880500872822410778673001458830975400370929573139704087000695457746236951722344324195099697217536) (*.f64 z x) (if (<=.f64 x 16500000000000000010040404284858079466588549180582252991907291887737136258616467726939231988523386802853307767866698989847379497842532903836406938864659073112929285966029736329612791828709376) (*.f64 y (neg.f64 x)) (*.f64 z x)))))))))))
(if (<=.f64 x -5500124238772519/14474011154664524427946373126085988481658748083205070504932198000989141204992) (*.f64 z x) (if (<=.f64 x 3507603929594167/46768052394588893382517914646921056628989841375232) y (*.f64 z x)))
y
Compiler

Compiled 187 to 99 computations (47.1% saved)

soundness180.0ms (2.1%)

Algorithm
egg-herbie
Rules
1072×rational_best-simplify-80
1024×rational_best-simplify-82
834×rational_best-simplify-78
732×rational_best-simplify-2
628×rational_best-simplify-83
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0831832
11601780
25381780
312341780
426001780
547691780
Stop Event
node limit
Compiler

Compiled 38 to 22 computations (42.1% saved)

end62.0ms (0.7%)

Compiler

Compiled 169 to 76 computations (55% saved)

Profiling

Loading profile data...