From: Markus Mottl <mottl@miss.wu-wien.ac.at>
To: OCAML <caml-list@inria.fr>
Subject: Announcement: LACAML
Date: Thu, 25 Jan 2001 01:11:43 +0100 [thread overview]
Message-ID: <20010125011143.A11727@miss.wu-wien.ac.at> (raw)
Hello,
as recently proposed, there should be some interface to the BLAS and
LAPACK-libraries for efficiently doing linear algebra with bigarrays.
I have just put my first attempt ("lacaml") online: it only implements
a couple of functions that I wanted to try out, but I have tried to
design this interface as cleanly as possible. Installation should be
simple enough, too.
Adding further functionality to this library by following the
implementation of the other functions is not difficult either (thanks
to the bigarrays), but it still requires some work, because the
FORTRAN-function interfaces are usually very fat: they often take more
than 10 arguments. This means writing a lot of error checking code if
one wants to handle all errors in OCaml - the default error handling
of these libraries is probably not advisable, because it aborts program
execution...
Here is a part of the README explaining some features:
---------------------------------------------------------------------------
* The BLAS- and LAPACK-libraries have evolved over about two decades
of time and are therefore extremely mature both in terms of stability
and efficiency.
* The OCaml-interface was designed in a way to combine both the
possibility of gaining optimum efficiency (e.g. by allowing the
creation of work arrays outside of loops) with simplicity (thanks
to labels and default arguments).
* The code is precision-independent (precision of floats). There are
two modules that implement exactly the same interface modulo the
precision type. If you refer to elements in this interface only,
your code becomes precision-independent, too: you can choose at
anytime whether you want to use single-precision or double-precision
simply by "open"ing the required module.
* You can fully exploit the library within multithreaded programs: most
numerical routines are likely to run for a long time, but they will
never block other threads. This also means that you can execute
several routines at the same time on several processors if you use
native threads.
* To make things easy for people used to the "real" implementation
in FORTRAN but also for beginners who need detailed documentation,
both function- and argument names have been kept compatible to the
ones used in the BLAS- and LAPACK-documentation. Only exception: you
need not prefix functions with "s" or "d" to indicate the precision
of floats, because OCaml gives us more powerful means to choose it.
---------------------------------------------------------------------------
I have already registered the project at SourceForge so that other people
can contribute functions they need (I will only implement ones that are
directly relevant to my work, but I will help if there are problems):
http://sourceforge.net/projects/lacaml
Just tell me if you want to join!
Unfortunately, there are currently some technical problems with CVS at
SourceForge, which didn't allow me to check in my sources yet. In the
meanwhile you can get them from here:
http://miss.wu-wien.ac.at/~mottl/ocaml_sources
Best regards,
Markus Mottl
--
Markus Mottl, mottl@miss.wu-wien.ac.at, http://miss.wu-wien.ac.at/~mottl
next reply other threads:[~2001-01-25 8:07 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-01-25 0:11 Markus Mottl [this message]
2001-01-25 7:21 ` Jan Skibinski
2001-01-25 12:58 ` Markus Mottl
2001-01-25 11:20 ` Jan Skibinski
2001-01-25 16:46 ` Markus Mottl
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20010125011143.A11727@miss.wu-wien.ac.at \
--to=mottl@miss.wu-wien.ac.at \
--cc=caml-list@inria.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox