Boost logo

Ublas :

Subject: Re: [ublas] Patch/proposal for overloading operator * in ublas
From: K.M.A.Chai_at_[hidden]
Date: 2009-08-18 12:17:23


    Perhaps this is a nice time to introduce a matlab-like extension to
ublas that I've been working on:

This package provides "syntactic sugar" for doing matrix programming in
C++. Among others, it is built on top of
- ublas in boost
- numeric-bindings in boost
- multi_array in boost
- matio
- lbfgs
- toms865.
MATLAB is used as a reference when creating this package. Some
features of this package are
- A matrix may be represented in terms of its QR or Cholesky
factorisations. This is to speed up subsequent processing.
- Loosen the semantics of * in ublas to allow matrix multiplication
- For a given matrix operation that has a BLAS2 or BLAS3 equivalent,
it is possible to easily choose between using native ublas
implementation, or using the bindings. For example,
    Y = usebindings<lower>( X * trans(alias(X)) + b);
may be computed either using the C++ implementation in ublas, or a
blas3 bindings. Selection is via the macro UMATLAB_NO_USEBINDINGS.
- Matrix adaptors that behaves like the pass-by-reference version of
reshape in MATLAB.
- Loading and saving of matlab files through matio, with cell-support
via multi-array.
   I would, however, like to say that I've currently stopped working on 
this. Anyone is welcomed to use and extend this, though.
   FYI, I'm using this for learning Gaussian processes models.
Kian Ming (Adam)
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.