Boost logo

Ublas :

Subject: Re: [ublas] Thread on boost devel list
From: Rutger ter Borg (rutger_at_[hidden])
Date: 2009-08-17 17:24:18

Jesse Perla wrote:

> - No one wants a new matrix/vector library. Even if it is "better",
> there is a fear that it will stay half-finished and unsupported like
> 99% of
> those out there. This has been mentioned on this list, but it seems to
> be
> ignored. Couldn't everyone force their energy on evolving ublas?

Apparently writing a linear algebra library has a high pet-project level.

> - I, for one, second the focus on the bindings as a solution to a lot
> of troubles. Matlab may be great at the arithmetic matrix/vector
> operations, but it builds horrible habits for more advanced linear
> algebra (i.e. I never
> see people never use sparse or structured matrices in matlab. And I
> have never seen people use anything but inverses for solving systems)

I agree, maybe the bindings may be one of the few viable options to get us
what we want within our lifetime :-). Integrated into some DSL would be very
nice, too. Maybe that's just a waste of effort, perhaps we should wrap up
the bindings, and be done with it.

> - But it is not all about the bindings... This list and ublas have
> sometimes underestimated the importance of emulating Fortran/Matlab
> syntax. People get very comfortable with Matlab and see Fortran as a
> much clearer evolution to a "real language" that is designed around
> matrices and
> scientific computing. Since Matlab is the de-facto standard DSL for
> linear algebra, shouldn't it be the goal of the C++ EDSL?

I do like the points mentioned for doing matrix assignments, addressing by
vectors of indices, subrange selection, etc.. Perhaps this is an orthogonal
concept that could be worked out further.

> - When I was trying to teach people ublas, everyone was incredibly hung
> up on the lack of overloading an operator* and nested multiplications.
> And if I had to guess, this discussion on the boost::developer list
> might not have happened if operator* was overloaded....

.. and it would be nice if operator* could be made a call to e.g. gemv (I
still want to check out the performance of CUDA).

My time for being able to work on the bindings have been a bit low the past
couple of months, I hope to be able to pick up where we left soon.