From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id 51E16BB9C for ; Wed, 30 Nov 2005 09:49:53 +0100 (CET) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id jAU8nqvd016858 for ; Wed, 30 Nov 2005 09:49:52 +0100 Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id JAA01356 for ; Wed, 30 Nov 2005 09:49:52 +0100 (MET) Received: from smtp.cegetel.net (mf00.sitadelle.com [212.94.174.67]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id jAU8npoU016853 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL) for ; Wed, 30 Nov 2005 09:49:52 +0100 Received: from [192.168.144.2] (unknown [84.6.181.206]) by smtp.cegetel.net (Postfix) with ESMTP id ED5D71A45C9; Wed, 30 Nov 2005 09:49:44 +0100 (CET) Message-ID: <438D67A2.4050500@univ-savoie.fr> Date: Wed, 30 Nov 2005 09:49:38 +0100 From: Christophe Raffalli User-Agent: Mozilla Thunderbird 1.0.7 (X11/20051017) X-Accept-Language: fr, en MIME-Version: 1.0 To: Thomas Gazagnaire , caml-list Subject: Re: [Caml-list] Integral solutions of rational linear equations References: <87slwny8xs.fsf@mid.deneb.enyo.de> <438CA20C.2080200@irisa.fr> In-Reply-To: <438CA20C.2080200@irisa.fr> X-Enigmail-Version: 0.93.0.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enigA9EDC4682576466437A0FF45" X-Miltered: at concorde with ID 438D67B0.001 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at concorde with ID 438D67AF.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; christophe:01 raffalli:01 christophe:01 raffalli:01 univ-savoie:01 caml-list:01 ocaml:01 integers:01 algebra:01 ocaml:01 bignum:01 3.09.0:01 rec:01 val:01 abstr:01 X-Attachments: type="application/pgp-signature" name="signature.asc" name="signature.asc" X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=FORGED_RCVD_HELO autolearn=disabled version=3.0.3 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enigA9EDC4682576466437A0FF45 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Thomas Gazagnaire a =E9crit : > Hello, >=20 > in my one of my Ocaml programs, I need to find all integers solutions o= f > a rational equation systems. This algo uses Gauss reduction and Hermite= > normal form, and need to know if a rational is an integer or not (ie. I= > don't want to use numerical approximation : (1/3) * 3 is an integer but= > 0,333333*3 we don't know). I didn't find any integer algebra package fo= r > ocaml, so I tried to implement Gauss elimination (easy) and Hermite > normal form (more difficult...). But I didn't implement optimized > version of these algorithms... >=20 > So my question is : do you know if exists a native ocaml module or an > interface with a C library which is able to do integer/rational matrix > manipulation (essentialy the Hermite normal form) in an efficient way ?= >=20 you did not look very hard ? OCaml is distributed with the bignum library in standard which does both int and rationnal ... $ ocaml nums.cma Objective Caml version 3.09.0 # open Num let rec fact n =3D if n =3D 0 then Int 1 else fact (n-1) */ Int n ;; val fact : int -> Num.num =3D # fact 100;; - : Num.num =3D Big_int # string_of_num (fact 100);; - : string =3D "933262154439441526816992388562667004907159682643816214685929638952175999= 9322991560894146397615651828625369792082722375825118521091686400000000000= 0000000000000" > Thomas >=20 >=20 > _______________________________________________ > Caml-list mailing list. Subscription management: > http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list > Archives: http://caml.inria.fr > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs --------------enigA9EDC4682576466437A0FF45 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iQIVAwUBQ41np5EBCSatcik9AQJrww/+K0T3XN23e2xuhLQDXKlvEIQCQMCu/lON /5qpH+72n9Tu2ZH7JzBR7u8KkkxxsqKVEVmCw/b52C7B6j+ErjLIQoN2+q4hPoob d6TJG86FssK04CSvZD1G3clWtiocuuE/lPDb/sfaE3SfRSgTJd5nEX84t29VhVwp F4Zu4lT94miaSrXNS+Y5bQ2FP6BHN/WsWgfmdWkJlQ6sxJ6mbX+DT3zCzp6x5XhT daJXJ9jTRKCEBaPhCF+QfcS4mvZhOJTli6EV4mPq0itajHpSrG5clj8MCDVSlxPl iLewD1nOlPN+LqFb4p8ktN4NCMAQEFMHEnf2xM1Hg1Ea01ZbPVKnusSpe5VfqJxK im2eaq3QE9Q5yN0OhzqwMUwLuZRRsRRW4945Bd1Qqqtu/C9Eqm4jsv+pp4gipUHd PHoyP5p2GLP49isxTuWXtSR3tmGxZF1zXIwLk+xEzCJZz4fZ9/b77xxlNKayhVDG ULjCBT1WdhSh5/NZ1hhEwAvuyxD0ZkxeVGz2Eov+uxgtjwbPWeyk3SDmUo1c544H fTBLYxzFlXewa9vifmG7Uay1wDQv84UKPTn8fN5ZR2dhZ6leImkogWgP/JO9JG6c AzJHjnGF59SusfjMNncE27eAeCrBoTuS+Is97ak9jX2/qzSfxI9QF6wWzH5WQKDp nkaqV3zQxFI= =6fVP -----END PGP SIGNATURE----- --------------enigA9EDC4682576466437A0FF45--