1 | initial version |
It is not currently possible to compute just a small subset of solutions, as far as I can tell. It would not be hard to improve the implementation of I.variety()
to return the results lazily, though (for example using sage.misc.lazy_list
). This could indeed be useful whenever the number of solutions is large.
However, the expensive part of the computation is the computation of a Gröbner basis which cannot be done lazily. I cannot reproduce the error you mentioned, but this step seems to be the one that fails. The implementation first computes a triangular decomposition which requires a Gröbner basis with respect to the lexicographical term ordering. It could help if you are able to compute a lex-ordered Gröbner basis beforehand, possibly using a different algorithm more suitable for your concrete example.
Also, I encourage you to take a look at the source code of this function to better understand what it does.