Karim Belabas on Sat, 03 Sep 2022 13:05:33 +0200
|
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: integer variants of matsolve() / matinverseimage()
|
- To: Max Alekseyev <maxale@gmail.com>
- Subject: Re: integer variants of matsolve() / matinverseimage()
- From: Karim Belabas <Karim.Belabas@math.u-bordeaux.fr>
- Date: Sat, 3 Sep 2022 13:05:00 +0200
- Arc-authentication-results: i=1; smail; arc=none
- Arc-message-signature: i=1; a=rsa-sha256; d=math.u-bordeaux.fr; s=openarc; t=1662203101; c=relaxed/relaxed; bh=rb/LJZeFNeJphLgmjO4QhzyroJsdSDUPILWXU+a6n6Q=; h=DKIM-Signature:Date:From:To:Cc:Subject:Message-ID: Mail-Followup-To:References:MIME-Version:Content-Type: Content-Disposition:Content-Transfer-Encoding:In-Reply-To; b=yIUrqRgRk1EIz6Vo+kkr1x8NgvlAO0T9nr5PL0ZNLioDzRZrgj9AJEIS+Pq3rg/7isx2h0QtxIKHdxGOddsoFG4MsQ3Dw3CZxi6uqMkPv6Rr2T/Ap1jgfC7VB3BJ7rifTF9C1jLjejBRDJopS8k9Ap8vD/t3GTrrWZbT/eYRp7UHED0OJaVXjYFuEH/fehNLAHHfYQTM/a8CUNVacsfd8vKarRmUlJM4xtP4H6HIk69LmJk/8ktm/FdVuqY7dWg+N2tsBsmc2JNGAyZiU2zw7pGuORrx5papxWf8YtJv/0Ve2oDj/0Q+qV6nI4IrDvJxk/1XGVOWq7bNgai9tNLm3zZMoUaxENqHqBouIzIbsnsq1ONkWxorwwPcGKvqsrNovFrWqaNQGU9XEq6xCsZqy6e31sPwkDQDBn1a91exVBXjW8U/yNfO7DAOSL1o6g7dj8VDZkgn994YVQ7GKXsNX+phPxUoK6dHyyXZ9VpbsHPcLkxHVrm5Ab5OpSTZUmdWBBUdyCcvcV1WDKIAH7fZsJeQo/iR8iqG/d0dtsxUj4h0htk3Xr5trlZD7THPBRjn1HPIwye9NC0X0QIi0iUa6EvFYJwQcjI0TLwUkmLOfF5TyIBoRsMUcPxB8zzrRfzDFO8hpwhO5h+obJwEN6VOCtbyuV0dOLf0tNFhTlVFS7w=
- Arc-seal: i=1; a=rsa-sha256; d=math.u-bordeaux.fr; s=openarc; t=1662203101; cv=none; b=Q9WT3lL/SvMwPPW2FsVcU98rakXdOv8ZiOzfoWcCXCE0HMHyrdYrHNxisPu+rD/6Pb7uxPb4B7jO701BEVZDPTq5yQKCIiEoI/W2VJcUzVVITkH/dah/SsHbOq36kDcoeJB59n7NKi+wcNGeO67xLBGBD/z6kMfkX8wWD9uTg3t2xJP8qEBRzl81QnRAU8N1jGNkVTW7DOKVDCWX7T56KKlcMbnJw72njNL56LxUMF73h8n5Rfp3x0ZYxKhYtAGwK/fzlL9mbjIJHW/KSK1NaCRfoQHhbyXWh+gZ+QgYhMpcPZ0U7tyZSvzwHeb3KGwdZ0t1KNJQ4JFxGXfAWECDTF+s6HfX31awqEwKqwfnJ3//yj+MPIrGIRIQQTPnehatMwUNXaXRWPlgbjpo2bXudU/tiA98NtnKffb2MKD4cqCNR/P23hvFNIMQLm1LP4HNzHthRMC2FUFIPkzuiaoXjjaoI86LfceURgFvZAr5VX45zU9y5S38TKA0S/TZNQZ6s1DcOzRTx+Pusg2D3+/LX38AS5IIj48GWSzn3SAhDfLp2e+MNFtGZPlyp1X5tWRzrUFythFYkEUDle35SepXgREHWEHTa/6ckagk3fDoO0+HIg0EL5apnGXBERVHYc3bpjn/qzn8nphMX6zsYVVc3e85OJ3LbIkvUZV+fn0QHHo=
- Authentication-results: smail; dmarc=none header.from=math.u-bordeaux.fr
- Authentication-results: smail; arc=none
- Cc: pari-users@pari.math.u-bordeaux.fr
- Delivery-date: Sat, 03 Sep 2022 13:05:33 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=math.u-bordeaux.fr; s=2022; t=1662203101; bh=rb/LJZeFNeJphLgmjO4QhzyroJsdSDUPILWXU+a6n6Q=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=UwOV+QThGk4SIPseKrYeXzHzFbOEYOH8nBoPmL1QU/9CRgrz5Sjyit4cqSJSgk7ty izDp5trAiJjfBjbBxaMGOzN9+03lCaAA17DGaBX5uwVWuhSJnT+7FB8Eae6H+o3DCj LcgUC4snfiNIZBx6OrrjHfHaqL6bMizkw401i+kQCOTHagXXUnF2Q8KHMXAPtAI4c9 Vz2wx1TXY1MUYI0Zkql1M3Ys6AuVqN+Pf/Ej+krM/CWbJEvac/1l+OxcUQozJYe6VP NiS4iaBxW8YGh4FobMcVXX+MqMuAvhSEGIFw/cYAvfKV2rJ2YL8mriNhYA/zPMg0di +wcPKLV1hny+wZO2sa3AircrzwWdk7fFeOjVhnVM0jdqn3G9O2nvZwBIc3WE6Jmwbw fZbtGo7PcTzntM4Q1qsI0zTVrESjGvnl6QOcxQMlk136qrEJfeWIwm86qQXuRYWA4+ MizuvE70LrJD5+vVGz38AGlvzRzIhOi1sO8xc7lGo4VtQeWiwnMOiQKQfyWf30MdQj eKAxho13DVDMzQt1miFvLOhH7xQRGSMmox7dWqBjS5o78AiwLwIhX1mFTSXjastzoF YTrZ90m8IBITC3NVIyi0GgcQW1b/26Wdg6giv5ZUpOmbu10SED0f/1ipfeCZ7wi+in fQOOdROrFnKTjfhqRH4uWhpE=
- In-reply-to: <CAJkPp5Nw+DU5sPm4P1WD18ZJQB4HU4cYdrXbhBZhJdLvnPJRaA@mail.gmail.com>
- Mail-followup-to: Max Alekseyev <maxale@gmail.com>, pari-users@pari.math.u-bordeaux.fr
- References: <CAJkPp5Nw+DU5sPm4P1WD18ZJQB4HU4cYdrXbhBZhJdLvnPJRaA@mail.gmail.com>
* Max Alekseyev [2022-09-01 13:49]:
> PARI/GP provides function matkerint() but there are no functions
> like matsolveint() or matinverseimageint().
> It looks like matsolvemod() with D=0 does this job, but it's undocumented.
It is documented: ??matsolvemod states that D is a vector of *nonnegative*
integers (explicitly allowing 0, working in Z/(0) = Z), with the
shorthand D = integer for a vector of identical entries: so D = 0 stands
for a system of linear equations in Z.
Note that you can mix integral and modular equations by mixing 0 and
non-zero entries in the vector D and the third example in the
documentation does just that.
This is consistent with the PARI convention for elementary divisors of a
Z-module M of finite type: we have
M ~ \prod_{i <= n} Z/(d_i) with d_n | d_{n_1} | ... | d_1,
which allows the first d_i to be 0. If d_1 = ... = d_r = 0 and d_{r+1} > 0,
then M decomposes in a free part of rank r and a finite torsion part.
(And of course you can do linear algebra in M using coordinates in
\prod_i Z/(d_i) and matsolvemod.)
> Should be it made more explicit / documented?
It can certainly be made more explicit. :-)
Done in commit 353f1f028.
Cheers,
K.B.
--
Karim Belabas, IMB (UMR 5251), Université de Bordeaux
Vice-président en charge du Numérique
T: (+33) 05 40 00 29 77; http://www.math.u-bordeaux.fr/~kbelabas/
`