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 27520BB81 for ; Tue, 29 Nov 2005 19:46:20 +0100 (CET) Received: from smtp.irisa.fr (smtp.irisa.fr [131.254.254.26]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id jATIkJKt027060 for ; Tue, 29 Nov 2005 19:46:20 +0100 Received: from localhost (localhost.localdomain [127.0.0.1]) by localhost.irisa.fr (Postfix) with ESMTP id BA96FFAA3 for ; Tue, 29 Nov 2005 19:46:19 +0100 (CET) Received: from smtp.irisa.fr ([131.254.254.26]) by localhost (meli.irisa.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 08867-07 for ; Tue, 29 Nov 2005 19:46:17 +0100 (CET) Received: from [131.254.11.146] (bellamela.irisa.fr [131.254.11.146]) by smtp.irisa.fr (Postfix) with ESMTP id 92A04FA9A for ; Tue, 29 Nov 2005 19:46:17 +0100 (CET) Message-ID: <438CA20C.2080200@irisa.fr> Date: Tue, 29 Nov 2005 19:46:36 +0100 From: Thomas Gazagnaire User-Agent: Mozilla Thunderbird 1.0.2 (Macintosh/20050317) X-Accept-Language: fr, en MIME-Version: 1.0 To: caml-list@yquem.inria.fr Subject: Integral solutions of rational linear equations References: <87slwny8xs.fsf@mid.deneb.enyo.de> In-Reply-To: <87slwny8xs.fsf@mid.deneb.enyo.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at irisa.fr X-Miltered: at concorde with ID 438CA1FB.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; irisa:01 ocaml:01 integers:01 algebra:01 ocaml:01 integer:01 integer:01 exists:01 equation:02 native:02 linear:02 module:03 algorithms:03 numerical:03 library:03 X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.0.3 Hello, in my one of my Ocaml programs, I need to find all integers solutions of 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 for 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... 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 ? Thomas