From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id WAA16335 for caml-red; Fri, 26 Jan 2001 22:12:44 +0100 (MET) Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id RAA05274 for ; Thu, 25 Jan 2001 17:47:04 +0100 (MET) Received: from miss.wu-wien.ac.at (miss.wu-wien.ac.at [137.208.107.17]) by nez-perce.inria.fr (8.11.1/8.10.0) with ESMTP id f0PGl4H22578 for ; Thu, 25 Jan 2001 17:47:04 +0100 (MET) Received: (from mottl@localhost) by miss.wu-wien.ac.at (8.9.0/8.9.0) id RAA21555; Thu, 25 Jan 2001 17:46:59 +0100 (MET) Date: Thu, 25 Jan 2001 17:46:59 +0100 From: Markus Mottl To: Jan Skibinski Cc: OCAML Subject: Re: Announcement: LACAML Message-ID: <20010125174659.A18722@miss.wu-wien.ac.at> References: <20010125135807.A18259@miss.wu-wien.ac.at> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: ; from jans@numeric-quest.com on Thu, Jan 25, 2001 at 06:20:54 -0500 Sender: weis@pauillac.inria.fr On Thu, 25 Jan 2001, Jan Skibinski wrote: > I do not follow ocaml closely enough to appreciate supposed > elegancy and efficiency of default arguments. If by this you > mean that you can shorten the list of arguments when user wants > to use defaults, but he still needs to supply all of them > otherwise then this sounds as half a solution to me. I don't understand what you mean by "still needs to supply all of them". E.g. if you want to solve a linear regression problem with the "gels"-function, the minimum you may want to write is: gels data_matrix result_matrix If you want to specify more, you could do the following: gels data_matrix ~m:42 ~trans:true result_matrix This would only make use of the first 42 rows and interpret "data_matrix" as a transposed matrix. > To respond to your other objections I point you to a short > introduction: > http://www.eiffel.com/doc/eiffelworld/5.1/new_release.html Maybe the misunderstanding is that my interface is intended as a high-level one, since it supports default arguments. This is not the case: it should be as close as reasonable to the FORTRAN interface (but should not impose too much complexity). If you want to make use of more abstraction (e.g. to have interfaces for various "solvers", whatever), it might be a good idea to add further modules (functors) and specify high-level interfaces. I think that most people would agree that modules and algebraic datatypes are a more natural way to encode operations on (linear) algebras than objects. Christophe Raffalli's work on the FORMEL-library goes into such a direction. > Please do not take it lightly: LANPACK is a complex piece of > software and there is no reason why your library would follow > suit all those complexities and other quirks. No doubt about this: LAPACK is a huge beast. I only needed a couple of functions, but I thought that implementing their interface as well as possible would make it easier for other people (with more experience in numerical algorithms) to add or change code. Regards, Markus Mottl -- Markus Mottl, mottl@miss.wu-wien.ac.at, http://miss.wu-wien.ac.at/~mottl