-
Notifications
You must be signed in to change notification settings - Fork 266
Open
Description
Here's the main hook for syz(Matrix):
Lines 315 to 320 in 562aea5
| addHook((syz, Matrix), Strategy => Default, (opts, f) -> ( | |
| if not isFreeModule target f or not isFreeModule source f | |
| then error "expected map between free modules"; | |
| if ring f === ZZ or not isHomogeneous f | |
| then syz gb (f, opts, Syzygies=>true) | |
| else mingens image syz gb (f, opts, Syzygies=>true) |
Notice that if the ring isn't the integers and the matrix is homogeneous, it calls
mingens image syz gb ...
Question 1: what's the point of mingens image here?
I think there are many cases when this takes a long time and is probably not necessary at all. Consider this truncation of a free module:
i1 : R = ZZ/101[x_0..x_5];
i2 : elapsedTime M = truncate(12, R^1);
-- 12.5273s elapsed
i3 : elapsedTime syz gb(M.generators, Syzygies => true);
-- 11.7873s elapsed
6188 28560
o3 : Matrix R <-- R
i4 : elapsedTime mingens image oo;
-- 9.87205s elapsed
6188 28560
o4 : Matrix R <-- RThis is a problem because almost everything calls this, for instance presentation:
i6 : elapsedTime presentation truncate(12, R^1);
-- 43.4177s elapsed
6188 28560
o6 : Matrix R <-- RNotice that the matrices are the same size, but probably have a different order.
Question 2: does the order matter? for instance does freeResolution assume anything about the order of columns in the presentation?
cc: @mikestillman
Metadata
Metadata
Assignees
Labels
No labels