Ask Your Question

Revision history [back]

I wouldn't necessarily expect other algorithms to be implemented, but here are some things you could try:

  1. Try using the sparse=True keyword when you create the matrix; if better algorithms are available, this would be the generic way to use them: e.g. sparse matrices over Z/n for n small. (note that that documentation page doesn't mention kernel specifically.

  2. If you know of an algorithm with a distinctive name, you could try searching the source code for it, using search_src, search_doc, or search_def

    sage: search_src('Euclidean')
    categories/basic.py:44:from euclidean_domains import EuclideanDomains
    categories/cartesian_product.py:169:        sage: EuclideanDomains().CartesianProducts()
    ...
    rings/all.py:37:from euclidean_domain_element import EuclideanDomainElement, is_EuclideanDomainElement
    rings/arith.py:1862:    very similar to the extended Euclidean algorithm. For more details,
    rings/arith.py:1896:        the extended Euclidean algorithm.)
    ...
    
  3. Lastly, you could try reading some of the source files themselves: there are a number of likely filenames in sage/matrix.

And, of course, if you don't find the algorithm you're looking for, you could always implement it, and [add it to sage]!

good luck! :)

I wouldn't necessarily expect other algorithms to be implemented, but here are some things you could try:

  1. Try using the sparse=True keyword when you create the matrix; if better algorithms are available, this would be the generic way to use them: e.g. sparse matrices over Z/n for n small. (note that that documentation page doesn't mention kernel specifically.

  2. If you know of an algorithm with a distinctive name, you could try searching the source code for it, using search_src, search_doc, or search_def

    sage: search_src('Euclidean')
    categories/basic.py:44:from euclidean_domains import EuclideanDomains
    categories/cartesian_product.py:169:        sage: EuclideanDomains().CartesianProducts()
    ...
    rings/all.py:37:from euclidean_domain_element import EuclideanDomainElement, is_EuclideanDomainElement
    rings/arith.py:1862:    very similar to the extended Euclidean algorithm. For more details,
    rings/arith.py:1896:        the extended Euclidean algorithm.)
    ...
    
  3. Lastly, you could try reading some of the source files themselves: there are a number of likely filenames in sage/matrix.

And, of course, if you don't find the algorithm you're looking for, you could always implement it, and [add add it to sage]!sage!

good luck! :)