Details

Time bar (total: 5.1s)

analyze623.0ms (12.2%)

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%25%74.9%0.1%0%0%0%9
37.5%37.4%62.4%0.1%0%0%0%10
44.5%44.5%55.4%0.1%0%0%0%11
50.4%50.3%49.5%0.1%0%0%0%12
Compiler

Compiled 16 to 10 computations (37.5% saved)

sample3.8s (73.8%)

Results
1.6s2835×body1024valid
936.0ms1172×body2048valid
641.0ms2974×body256valid
520.0ms1274×body512valid
0.0msbody4096valid
Bogosity

preprocess14.0ms (0.3%)

Algorithm
egg-herbie
Rules
92×rational.json-simplify-1
70×rational.json-simplify-44
60×rational.json-simplify-46
48×rational.json-simplify-42
32×rational.json-simplify-16
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
027132
158132
2120132
3177132
4221132
5259132
6281132
7281132
033
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
2
Call 2
Inputs
(-.f64 (fma.f64 x y z) (+.f64 1 (+.f64 (*.f64 x y) z)))
(-.f64 (fma.f64 y x z) (+.f64 1 (+.f64 (*.f64 y x) z)))
(-.f64 (fma.f64 z y x) (+.f64 1 (+.f64 (*.f64 z y) x)))
(-.f64 (fma.f64 x z y) (+.f64 1 (+.f64 (*.f64 x z) y)))
Outputs
(-.f64 (fma.f64 x y z) (+.f64 1 (+.f64 (*.f64 x y) z)))
(-.f64 (fma.f64 x y z) (+.f64 1 (+.f64 z (*.f64 x y))))
(-.f64 (fma.f64 x y z) (+.f64 z (+.f64 1 (*.f64 x y))))
(-.f64 (fma.f64 y x z) (+.f64 1 (+.f64 (*.f64 y x) z)))
(-.f64 (fma.f64 y x z) (+.f64 1 (+.f64 z (*.f64 x y))))
(-.f64 (fma.f64 y x z) (+.f64 z (+.f64 1 (*.f64 x y))))
(+.f64 (-.f64 (-.f64 (fma.f64 y x z) z) (*.f64 x y)) -1)
(+.f64 -1 (-.f64 (-.f64 (fma.f64 y x z) z) (*.f64 x y)))
(-.f64 (fma.f64 z y x) (+.f64 1 (+.f64 (*.f64 z y) x)))
(-.f64 (fma.f64 z y x) (+.f64 1 (+.f64 x (*.f64 y z))))
(-.f64 (fma.f64 z y x) (+.f64 x (+.f64 1 (*.f64 y z))))
(+.f64 (-.f64 (fma.f64 z y x) (+.f64 x (*.f64 y z))) -1)
(+.f64 -1 (-.f64 (fma.f64 z y x) (+.f64 x (*.f64 y z))))
(-.f64 (fma.f64 x z y) (+.f64 1 (+.f64 (*.f64 x z) y)))
(-.f64 (fma.f64 x z y) (+.f64 1 (+.f64 y (*.f64 x z))))
(-.f64 (fma.f64 x z y) (+.f64 y (+.f64 1 (*.f64 x z))))
Compiler

Compiled 18 to 12 computations (33.3% saved)

simplify71.0ms (1.4%)

Algorithm
egg-herbie
Rules
24×rational.json-simplify-1
18×rational.json-simplify-44
14×rational.json-simplify-46
12×rational.json-simplify-42
rational.json-simplify-16
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01233
12133
23833
35233
46333
57333
67933
77933
Stop Event
saturated
Counts
1 → 5
Calls
Call 1
Inputs
(-.f64 (fma.f64 x y z) (+.f64 1 (+.f64 (*.f64 x y) z)))
Outputs
(-.f64 (fma.f64 x y z) (+.f64 1 (+.f64 (*.f64 x y) z)))
(-.f64 (fma.f64 x y z) (+.f64 (*.f64 x y) (+.f64 z 1)))
(-.f64 (fma.f64 x y z) (+.f64 z (+.f64 (*.f64 x y) 1)))
(+.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) -1)
(+.f64 -1 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))

eval1.0ms (0%)

Compiler

Compiled 63 to 23 computations (63.5% saved)

prune2.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New415
Fresh101
Picked000
Done000
Total516
Error
6.8b
Counts
6 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
6.8b
(+.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) -1)
Compiler

Compiled 15 to 9 computations (40% saved)

localize243.0ms (4.8%)

Local error

Found 1 expressions with local error:

NewErrorProgram
6.6b
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
Compiler

Compiled 41 to 10 computations (75.6% saved)

series9.0ms (0.2%)

Counts
1 → 36
Calls

9 calls:

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

rewrite114.0ms (2.2%)

Algorithm
batch-egg-rewrite
Rules
1070×rational.json-simplify-2
606×rational.json-simplify-47
556×rational.json-simplify-54
532×rational.json-simplify-58
520×rational.json-5
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01027
18627
229927
3111927
4434227
Stop Event
node limit
Counts
1 → 32
Calls
Call 1
Inputs
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (-.f64 (-.f64 (fma.f64 x y z) (*.f64 x y)) (-.f64 z -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 (*.f64 x y)) (-.f64 (fma.f64 x y z) (-.f64 z 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 (*.f64 x y)) (+.f64 (-.f64 (fma.f64 x y z) (-.f64 z 1)) 0))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (-.f64 (fma.f64 x y z) (*.f64 x y)) (-.f64 z -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (fma.f64 x y z) (-.f64 z -1)) (-.f64 1 (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (fma.f64 x y z) (-.f64 z -1)) (+.f64 (-.f64 1 (*.f64 x y)) 0))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (*.f64 x y)) (-.f64 (fma.f64 x y z) (-.f64 z -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (fma.f64 x y z) (-.f64 z 1)) (-.f64 -1 (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 z) (-.f64 1 (-.f64 (*.f64 x y) (fma.f64 x y z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 (-.f64 (*.f64 x y) (fma.f64 x y z))) (-.f64 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (/.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x y) (-.f64 z (fma.f64 x y z))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (/.f64 1 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (/.f64 (/.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (/.f64 -1 (+.f64 (*.f64 x y) (-.f64 z (fma.f64 x y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (/.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))) (-.f64 -1 (-.f64 (-.f64 (fma.f64 x y z) (*.f64 x y)) (-.f64 z -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))) (/.f64 (/.f64 1 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (+.f64 (*.f64 x y) (-.f64 z (fma.f64 x y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))) (*.f64 (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))) (*.f64 (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))))) (/.f64 (/.f64 (/.f64 1 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))) (*.f64 (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (/.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x y) (-.f64 z (fma.f64 x y z))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 (*.f64 x y) (-.f64 z (fma.f64 x y z))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 z (-.f64 (*.f64 x y) (fma.f64 x y z))))))))

simplify177.0ms (3.5%)

Algorithm
egg-herbie
Rules
1516×rational.json-simplify-50
1194×rational.json-simplify-43
1190×rational.json-simplify-54
1098×rational.json-simplify-58
644×rational.json-simplify-42
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
075900
1145900
2390900
32174900
45682900
Stop Event
node limit
Counts
68 → 35
Calls
Call 1
Inputs
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
(+.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) 0)
(+.f64 0 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))
(+.f64 1 (-.f64 (-.f64 (fma.f64 x y z) (*.f64 x y)) (-.f64 z -1)))
(+.f64 (-.f64 -1 (*.f64 x y)) (-.f64 (fma.f64 x y z) (-.f64 z 1)))
(+.f64 (-.f64 -1 (*.f64 x y)) (+.f64 (-.f64 (fma.f64 x y z) (-.f64 z 1)) 0))
(+.f64 (-.f64 (-.f64 (fma.f64 x y z) (*.f64 x y)) (-.f64 z -1)) 1)
(+.f64 (-.f64 (fma.f64 x y z) (-.f64 z -1)) (-.f64 1 (*.f64 x y)))
(+.f64 (-.f64 (fma.f64 x y z) (-.f64 z -1)) (+.f64 (-.f64 1 (*.f64 x y)) 0))
(+.f64 (-.f64 1 (*.f64 x y)) (-.f64 (fma.f64 x y z) (-.f64 z -1)))
(+.f64 (-.f64 (fma.f64 x y z) (-.f64 z 1)) (-.f64 -1 (*.f64 x y)))
(+.f64 (-.f64 -1 z) (-.f64 1 (-.f64 (*.f64 x y) (fma.f64 x y z))))
(+.f64 (-.f64 -1 (-.f64 (*.f64 x y) (fma.f64 x y z))) (-.f64 1 z))
(*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) 1)
(*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (/.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))))
(*.f64 1 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))
(*.f64 (/.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))
(*.f64 (+.f64 (*.f64 x y) (-.f64 z (fma.f64 x y z))) -1)
(*.f64 (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (/.f64 1 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))))
(*.f64 (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (/.f64 (/.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))))
(*.f64 (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (/.f64 -1 (+.f64 (*.f64 x y) (-.f64 z (fma.f64 x y z)))))
(*.f64 (neg.f64 (/.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))) (-.f64 -1 (-.f64 (-.f64 (fma.f64 x y z) (*.f64 x y)) (-.f64 z -1))))
(*.f64 (/.f64 1 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))))
(*.f64 (*.f64 (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))) (/.f64 (/.f64 1 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))))
(*.f64 -1 (+.f64 (*.f64 x y) (-.f64 z (fma.f64 x y z))))
(*.f64 (/.f64 (/.f64 1 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))) (*.f64 (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))))
(*.f64 (*.f64 (*.f64 (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))) (*.f64 (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))))) (/.f64 (/.f64 (/.f64 1 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))) (*.f64 (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))))))
(/.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) 1)
(/.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (/.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))))
(/.f64 (+.f64 (*.f64 x y) (-.f64 z (fma.f64 x y z))) -1)
(pow.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) 1)
(neg.f64 (+.f64 (*.f64 x y) (-.f64 z (fma.f64 x y z))))
(neg.f64 (+.f64 z (-.f64 (*.f64 x y) (fma.f64 x y z))))
Outputs
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
(+.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) 0)
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(+.f64 0 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(+.f64 1 (-.f64 (-.f64 (fma.f64 x y z) (*.f64 x y)) (-.f64 z -1)))
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(+.f64 (-.f64 -1 (*.f64 x y)) (-.f64 (fma.f64 x y z) (-.f64 z 1)))
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(+.f64 (-.f64 -1 (*.f64 x y)) (+.f64 (-.f64 (fma.f64 x y z) (-.f64 z 1)) 0))
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(+.f64 (-.f64 (-.f64 (fma.f64 x y z) (*.f64 x y)) (-.f64 z -1)) 1)
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(+.f64 (-.f64 (fma.f64 x y z) (-.f64 z -1)) (-.f64 1 (*.f64 x y)))
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(+.f64 (-.f64 (fma.f64 x y z) (-.f64 z -1)) (+.f64 (-.f64 1 (*.f64 x y)) 0))
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(+.f64 (-.f64 1 (*.f64 x y)) (-.f64 (fma.f64 x y z) (-.f64 z -1)))
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(+.f64 (-.f64 (fma.f64 x y z) (-.f64 z 1)) (-.f64 -1 (*.f64 x y)))
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(+.f64 (-.f64 -1 z) (-.f64 1 (-.f64 (*.f64 x y) (fma.f64 x y z))))
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(+.f64 (-.f64 -1 (-.f64 (*.f64 x y) (fma.f64 x y z))) (-.f64 1 z))
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) 1)
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (/.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))))
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(*.f64 1 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(*.f64 (/.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(*.f64 (+.f64 (*.f64 x y) (-.f64 z (fma.f64 x y z))) -1)
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(*.f64 (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (/.f64 1 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))))
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(*.f64 (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (/.f64 (/.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))))
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(*.f64 (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (/.f64 -1 (+.f64 (*.f64 x y) (-.f64 z (fma.f64 x y z)))))
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(*.f64 (neg.f64 (/.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))) (-.f64 -1 (-.f64 (-.f64 (fma.f64 x y z) (*.f64 x y)) (-.f64 z -1))))
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(*.f64 (/.f64 1 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))))
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(*.f64 (*.f64 (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))) (/.f64 (/.f64 1 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))))
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(*.f64 -1 (+.f64 (*.f64 x y) (-.f64 z (fma.f64 x y z))))
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(*.f64 (/.f64 (/.f64 1 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))) (*.f64 (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))))
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(*.f64 (*.f64 (*.f64 (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))) (*.f64 (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))))) (/.f64 (/.f64 (/.f64 1 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))))) (*.f64 (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))) (*.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))))))
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(/.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) 1)
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(/.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (/.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))))
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(/.f64 (+.f64 (*.f64 x y) (-.f64 z (fma.f64 x y z))) -1)
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(pow.f64 (-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y))) 1)
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(neg.f64 (+.f64 (*.f64 x y) (-.f64 z (fma.f64 x y z))))
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))
(neg.f64 (+.f64 z (-.f64 (*.f64 x y) (fma.f64 x y z))))
(-.f64 (fma.f64 x y z) (+.f64 z (*.f64 x y)))
(-.f64 (-.f64 (fma.f64 x y z) z) (*.f64 x y))

eval7.0ms (0.1%)

Compiler

Compiled 979 to 203 computations (79.3% saved)

prune6.0ms (0.1%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New34135
Fresh000
Picked101
Done000
Total35136
Error
0b
Counts
36 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(+.f64 0 -1)
Compiler

Compiled 6 to 6 computations (0% saved)

localize9.0ms (0.2%)

Compiler

Compiled 8 to 8 computations (0% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune1.0ms (0%)

Pruning

1 alts after pruning (0 fresh and 1 done)

PrunedKeptTotal
New000
Fresh000
Picked011
Done000
Total011
Error
0b
Counts
1 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(+.f64 0 -1)
Compiler

Compiled 6 to 6 computations (0% saved)

regimes16.0ms (0.3%)

Accuracy

Total -49.4b remaining (-∞%)

Threshold costs -49.4b (-∞%)

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

4 calls:

4.0ms
z
4.0ms
x
4.0ms
y
3.0ms
(-.f64 (fma.f64 x y z) (+.f64 1 (+.f64 (*.f64 x y) z)))
Results
ErrorSegmentsBranch
0b1x
0b1y
0b1z
0b1(-.f64 (fma.f64 x y z) (+.f64 1 (+.f64 (*.f64 x y) z)))
Compiler

Compiled 57 to 34 computations (40.4% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
051
Stop Event
done
saturated
Calls
Call 1
Inputs
(+.f64 0 -1)
Outputs
(+.f64 0 -1)
-1
Compiler

Compiled 4 to 4 computations (0% saved)

soundness24.0ms (0.5%)

Algorithm
egg-herbie
Rules
24×rational.json-simplify-1
18×rational.json-simplify-44
14×rational.json-simplify-46
12×rational.json-simplify-42
rational.json-simplify-16
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01233
12133
23833
35233
46333
57333
67933
77933
Stop Event
saturated
Compiler

Compiled 63 to 21 computations (66.7% saved)

end16.0ms (0.3%)

Compiler

Compiled 4 to 4 computations (0% saved)

Profiling

Loading profile data...