Boost logo

Boost :

Subject: Re: [boost] question about TMP
From: DE (satan66613_at_[hidden])
Date: 2009-09-04 11:19:46


for those who is still interested

i thought about types that a library user can actually use and finally
came to this decision

one can use something like
    //don't look at syntax, check out the concept
    matrix<double> m; //general rectangular dense matrix
    matrix<double, sparse> sp; //rectangular sparse matrix
    
    square<double> sq; //square matrix, although one might
    square<double, symmetric> sym; //use the following types which
    square<double, upper_triang> ut; //model corresponding concepts
    square<double, lower_triang> lt; //i.e. symmetric, upper- & lower
                                      //triangular matrices
    square<double, symmetric | sparse> sparse_sym; //also this
    square<double, lower_triang | sparse> sparse_lt;//might be useful
    
    band<double> b; //guess...
    band<double, symmetric> bs; //why not?
    //etc...

all these types provide strict explicit interfaces
e.g.
- 'square' provides 'resize(size_t)' member but not
'resize(size_t, size_t)'
- 'band' provides useful 'bandwidth()' member and
'diagonal(int)' member which returns diagonal (might be useful for
implementing a band solver)

-- 
Pavel

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk