I left a modified version in the comment here, Add full option to smith_normal_form by isuruf · Pull Request #17451 · sympy/sympy (github.com) <https://github.com/sympy/sympy/pull/17451#issuecomment-2294924849> , that will compute the decomposition.
On Friday, August 16, 2024 at 3:07:41 PM UTC-5 syle...@gmail.com wrote: > You can check Add full option to smith_normal_form by isuruf · Pull > Request #17451 · sympy/sympy (github.com) > <https://github.com/sympy/sympy/pull/17451>. > Although the PR is based on outdated branch, you may have easier time > following the algorithms based on that > > On Friday, August 16, 2024 at 4:44:45 PM UTC+2 Oscar wrote: > >> It would be good to have this in SymPy but unfortunately it is not >> implemented yet. >> >> It is also not available in python-flint or Flint either. >> >> On Fri, 16 Aug 2024 at 15:38, Chris Smith <smi...@gmail.com> wrote: >> > >> > As far as I can tell, these matrices are not computed implicitly. You >> would have to copy the appropriate actions onto an augmented identity >> matrix to see what has happened ( >> https://www.youtube.com/watch?v=UhyzLfiO4Ow). >> > >> > /c >> > >> > On Thursday, August 15, 2024 at 10:51:31 AM UTC-5 bulk...@gmail.com >> wrote: >> >> >> >> Hi, >> >> >> >> I need to perform a Smith decomposition on (a priori not square) >> matrices to find a certain change of basis related to the Smith invariants. >> >> >> >> The Smith normal form is already implemented in SymPy in >> `sympy.matrices.normalforms`, but it returns only the Smith normal form, >> not its decomposition itself. >> >> >> >> In general, the Smith decomposition of a matrix A is defined in terms >> of three matrices V, D, W so that >> >> >> >> A = V * D * W >> >> >> >> where V,W are both square, invertible, and integer-valued matrices. Is >> there any way of obtaining those matrices without reimplementing the >> algorithm myself? I assume that these matrices are computed at least >> implicitely, but I could not find a way of returning them. >> >> >> >> thanks! >> > >> > -- >> > You received this message because you are subscribed to the Google >> Groups "sympy" group. >> > To unsubscribe from this group and stop receiving emails from it, send >> an email to sympy+un...@googlegroups.com. >> > To view this discussion on the web visit >> https://groups.google.com/d/msgid/sympy/7d884ae9-5b11-4e9e-a4ef-1e4f918410a4n%40googlegroups.com. >> >> >> > -- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/ea5973c2-0371-468b-9e11-73054afecf0bn%40googlegroups.com.