If you decide to publish your code into the public domain, it can then just be included into uBlas with absolutely no further requirements. It would be just polite (not necessary), the developer who puts it into uBlas to mention, or acknowledge your work. Unless of course this is you, in which case you can do whatever you like.

If this is the case, I think there should be a short discussion of the interface uBlas may adopt to communicate with such algorithms. I am not sure if the Function objects would be appropriate. Maybe simple function calls to algorithms would be more generic (and if somebody wants to wrap it into a functor it would be elementary). Anyway the maintainers will decide how they feel this should be done.


Date: Sat, 8 May 2010 20:09:17 +0200
Subject: Re: [ublas] announcement: ublasJama (ublas port of Jama, including SVD and eigenvalue decomposition)

Hi all,

Thank you for your interest in ublasJama.

Well, I was considering it to be public domain, since my work is incremental over public-domain software. Frankly, it just doesn't deserve a license of its own :-)

I guess Jama was public-domain for the same reason (there was a - good? - time, in the 70s and 80s, when a lot of FORTRAN code was just released as public domain, and products such as Matlab probably wouldn't exist without these).

I should probably make it more clear on the ublasJama page.

It should make no problem for a potential inclusion in boost, what do you think about this?

I did the same for cminpack which is distributed with the original MINPACK copyright notice.

I love those old super-robust FORTRAN codes. I'm just hoping I didn't introduce a few bugs here and there ;-)


Le 1 mai 2010 à 10:00, David Bellot a écrit :

In term of license, if we consider it's an original work (i.e. not just a single translation of jama in c++) then I would prefer to have the boost license on it so that not to bother with the complexity of licensing.

If Frederic agree on it, I would like him to add this license to his work so that we can consider integration into ublas.
I think we will have to better integrate things now, but it will be a pleasure to have such a collection of algorithms in ublas.


On Fri, Apr 30, 2010 at 17:19, Tom Vercauteren <> wrote:
Hi Frédéric,

This is indeed quite interesting. I was just wondering about the
license of your code.

As far as I understand it, the original JAMA is "public domain" hence
even more permissaive than boost license:

Is it also the case for ublasJama? I was not able to see any license
information on your webpage nor in the source code:

It would be nice to add, for example, a LICENSE.txt file with the
relevant information to your source package. The best for me would of
course be to find an OSI approved license
such as the MIT, Boost or BSD one.


On Fri, Apr 30, 2010 at 16:58, Nasos Iliopoulos <> wrote:
> Very nice!
> I find those algorithms could make it into uBlas like "extensions", yourself
> and maintainers permitting of course. It could save a lot of people the time
> to reinvent them or the need to bind to external libraries. What do all
> think?
> I use my custom algorithms in some cases, and I was looking into
> reimplementing JAMA, but never had the time. Nice work Fredric.
> Best
> Nasos
>> From:
>> Date: Fri, 30 Apr 2010 15:48:22 +0200
>> To:
>> Subject: [ublas] announcement: ublasJama (ublas port of Jama, including
>> SVD and eigenvalue decomposition)
>> Hi,
>> I translated Jama to ublas, mainly because I needed SVD. It's not optimal
>> nor generic, but at least it's here. Note that the bug in the Jama SVD was
>> fixed too.
>> cat flames > /dev/null
>> Fred
>> Download it from
>> * What is ublasJama?
>> ublasJama is translation of the public domain Jama (Java Matrix Package)
>> to C++ using boost.ublas for the linear algebra. Jama itself is a Java
>> implementation of algorithms for dense matrices found in LINPACK and
>> Author of the ublas translation: Frederic Devernay .
>> Documentation: see the Jama documentation.
>> Original Authors: see the Jama list of authors.
>> No optimization of the original code was done, but the functionality is
>> here:
>> • Cholesky Decomposition of symmetric, positive definite matrices
>> • LU Decomposition (Gaussian elimination) of rectangular matrices
>> • QR Decomposition of rectangular matrices
>> • Eigenvalue Decomposition of both symmetric and nonsymmetric square
>> matrices
>> • Singular Value Decomposition of rectangular matrices
>> There are two test programs:
>> • TestMatrix, in subdirectory test - the original Jama tests, where only
>> the relevant tests were kept.
>> • MagicSquareExample, in subdirectory examples
>> _______________________________________________
>> ublas mailing list
>> Sent to:
> ________________________________
> The New Busy think 9 to 5 is a cute idea. Combine multiple calendars with
> Hotmail. Get busy.
> _______________________________________________
> ublas mailing list
> Sent to:
ublas mailing list
Sent to:

David Bellot, PhD

ublas mailing list
Sent to:

Hotmail is redefining busy with tools for the New Busy. Get more from your inbox. See how.