English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

Browse thread
Is Caml a suitable tool for complicated mathematical methods.
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2000-12-22 (17:18)
From: Brian Rogoff <bpr@b...>
Subject: Re: Is Caml a suitable tool for complicated mathematical methods.
On Thu, 21 Dec 2000, Semenova Natalya Nickolaevna wrote:
> Hi,
> We are going to rewrite a large bundle of Fortran-3 (!!!) sources to some
> "better" language. Sources are the solution of the system of differential
> equations in partial derivatives by normal finite differencing methods. 

A walk down memory lane for me. What kind of PDEs are you going to be

> Two candidats are voted: Pascal and Ocaml. Is Caml convenient tool for such
> tasks?

Well, you ask here, so I guess I'll give the expected answer: of course
Ocaml is the right tool for this! 

More seriously, which Pascal are you considering? One of the few annoyances 
I'd have with Ocaml is the lack of overloading of arithmetic ops, and
since Pascal doesn't allow it either (true for all Pascal's I know of,
including Oberon descendant Component Pascal) you're worse of there than
in Ocaml, where you may at least rebind the operators to whatever you
like best. If you must use a Pascal-like language you should use Ada
instead; GNAT is a magnificent piece of work. 

Assuming you make the right choice and go with Ocaml, take a look at the
new Bigarray library. I don't think the basic Array stuff is what you want 
for PDE solvers. You come to Ocaml at a good time, since the Bigarray
module was recently added and some floating point optimizations were also 
put in recently. Work on Gtk bindings is progressing so you'll be able to 
do nice graphics too. 

Welcome aboard!

-- Brian