Hi,

I was very motivated last week to do some developments in GLAS since my

colleague Yvette is working on algorithms for structured matrices

(semi-separable, e.g.).

Currently, the following is available in GLAS:

- vector algorithms:

vector + vector

vector - vector

scalar * vector

vector / scalar

dot( vector, vector )

norm_2( vector )

- assignments:

vector = vector expression

vector += vector expression

vector -= vector expression

scalar = norm_2( vector expression )

scalar = dot( vector expression, vector expression )

- matrix algorithms:

matrix * vector

trans( matrix )

column( matrix )

column_range( matrix )

- containers:

dense_vector<T>

dense_matrix<T, Orientation>

- the toolbox la contains implementations for operators; +, -, *, +=, -=

Implementation is for the glas backend only at this stage. The

implementation of the BLAS backend will be the next step for performing

timing comparisons. All is for dense vectors currently.

The organisation of the include files can be improved, as well as the

doc html pages. These are not complete yet. The vector algorithms are

currently subdivided into two classes.

1) At assignment, one loop evaluates the whole expression

e.g. w = x + y + z is evaluated in one loop

2) At assignment, the expression is evaluated term by term, e.g.

w = x + y + z is split up as

w = x ; w += y ; w += z ;

norm_2 can only be computed for vector expressions that can be evaluated

in a single loop, otherwise you need a temporary vector to store

intermediate results, which glas does not create automatically. A

similar restriction holds for dot().

The coming weeks, I will do some tidying up, documentation and

reorganisation of the include files.

I am trying to keep the page

http://www.cs.kuleuven.be/~karlm/glas/up to date as well.

Have a nice day,

Karl

_______________________________________________

glas mailing list

[hidden email]
http://lists.boost.org/mailman/listinfo.cgi/glas