-
-
Notifications
You must be signed in to change notification settings - Fork 482
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create matrix class for FLINT's nmod_mat module #31548
Comments
Branch: u/roed/nmod_mat |
Branch pushed to git repo; I updated commit sha1. New commits:
|
Commit: |
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:10
Sage development has entered the release candidate phase for 9.3. Setting a new milestone for this ticket based on a cursory review of ticket status, priority, and last modification date. |
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
|
Dependencies: #31069 |
comment:22
If you aren't yet ready for comments, I apologize. However, I made a quick skim over things before I realized you set this as needs review for the patchbot. For I know you said this is for the patchbot, but it would be good to have doctests for
change - X = self.matrix_space(B.ncols(), self.ncols())(X)
- return X.T
+ return self.matrix_space(B.ncols(), self.ncols())(X).T (perhaps casting the result as a matrix too), and mark I am not sure about the name of the files being Why is
It would be good to implement a |
comment:23
No problem! I'm still working on stuff, so comments are easily incorporated. I also realized that the patchbot won't test this since it relies on spkgs until #31069 is merged. Do you think The Thanks! |
comment:24
Replying to @roed314:
Yea, I didn't quite realize that either. ^^;;
The former for the name of the file, the latter for the name of the class considering the other matrix classes in Sage. Let me know if there is anything I can do to help too. |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:26
Replying to @tscrim:
Even for a 2 by 2 matrix where the calling overhead is most substantial, changing to
I don't think it's worth the cost of recompiling everything depending on I agree about sparse matrices, but currently in I'm not sure what you mean by using
Agreed. I've added them.
I've added the
Agreed. I've changed it to
I've created #31731 and removed it from this ticket.
Both done. |
comment:27
All tests pass in |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:29
(I accidentally made a comment instead of editing the ticket description) New commits:
|
comment:30
This ticket is now actually ready for review, though the patchbot won't run currently (since it depends on #31069 which changes spkgs). |
This comment has been minimized.
This comment has been minimized.
comment:33
Needs rebase. |
Reviewer: Travis Scrimshaw |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:35
Setting a new milestone for this ticket based on a cursory review. |
This tickets adds a new class for dense matrices over
Zmod(N)
implemented using FLINT'snmod_mat_t
type, along with some supporting ancillary changes:Zmod(N)
for compositeN
to return the Howell form (see the introduction and Chapter 4 of Storjohann's thesis). Since this echelon form can have more rows than the input matrix, made some supporting changes including a new method_echelon_copy
.Zmod(N)
to return the number of leading 1s in Howell form (it raised aNotImplementedError
before), andpivots
to be the locations of these leading 1s. There is also a method_pivots
for accessing the columns where the leading entry is not 1.N
have improved speed and functionality for inversion,charpoly
,det
,minpoly
,echelon_form
,solve_right
andright_kernel_matrix
. There is also a new methodminpoly_ideal
for the ideal vanishing on a matrix (the natural generalization of the minimal polynomial, which generates this ideal when it is principal).stack
andaugment
to return a matrix over a common base ring of the two inputs, rather than just using the top/left matrix to determine the base ring._change_implementation
on matrices, together with rough heuristics for matrices on matrices modN
in determining when it's worth switching between FLINT and linbox (linbox is faster for large matrices, FLINT for smaller, and FLINT offers extra functionality for matrices modulo composite integers).ulong_extras
for number theoretic functions on longsmatrix_cyclo_dense
(which uses a multimodular approach), and moved the_reduction_matrix
method to the base field which will yield better caching behavior.solve_right
and getting different random matrices with a different implementation.Depends on #31069
CC: @edgarcosta
Component: linear algebra
Author: David Roe, Edgar Costa
Branch/Commit: u/roed/nmod_mat @
a3c8e38
Reviewer: Travis Scrimshaw
Issue created by migration from https://trac.sagemath.org/ticket/31548
The text was updated successfully, but these errors were encountered: