solve linear systems in boost::numerics::ublas

M

Manzanita

Hi.

I'm using boost::numerics::ublas to solve linear symmetric and
hermitian systems (cholesky, qr, etc.). I'm aware that ublas only provide
basic algebra operations (blas1, blas2 and blas3) so i've tried some
other libraries to work with ublas, with no success so far. In order to
do so i downloaded boost::numerics::bindings (which aren't available in
www.boost.org right now but in the list which boost developers have in
yahoo), those bindings enable you to use libraries developed in c or
fortran to do more advanced algebra operations, but i'm stuck:

+ cLAPACK, when i tried to compile cLAPACK (a c library for which
there are bindings in boost), the build procedure in windows is quite
tricky and seems to be out of date. I was unable to build the library and
the prebuild libraries are outdated (1999).

+ Atlas, any of the prebuild libraries in sourceforge suits my
microprocessor and i can't build them since i don't have cygwin (i have a
56k. modem and i can't download such a big package), evenmore, i intend
to use the libraries in msvc and the object format differs. There's an
alternative procedure to build in mscv, but i think the 'nmake' tool in
msvc doesn't behave as the 'make' in the -ix world. ¿am i wrong?.

+ Bayes++, this library is intended to be used to calculate karman
filters, but they provide uLAPACK compliance, when i compile it's ok, but
when i try to link them, the functions which provide LAPACK functionality
are missing (in namespace bayesian_filters::LAPACK::rawLAPACK, dgetrs_,
dgetrf_, etc.)

I've also tried some other libraries like blitz++ and tnt (formerly
lapack++), but i didn't suceed in building the libraries.

So, i'm really stuck, i think i should look for prebuild libraries
at this point, but my micro is relatively odd (amd duron). Please, ¿what
step would you take next to perform cholesky factorization?. I don't have
the expertise nor the time to write the algorithms hand-craft

Any help would be appreciated, thank you very much in advance and
excuse my bad english.
 
O

Oleg Trott

Manzanita said:
Hi.

I'm using boost::numerics::ublas to solve linear symmetric and
hermitian systems (cholesky, qr, etc.). I'm aware that ublas only provide
basic algebra operations (blas1, blas2 and blas3) so i've tried some
other libraries to work with ublas, with no success so far. In order to
do so i downloaded boost::numerics::bindings (which aren't available in
www.boost.org right now but in the list which boost developers have in
yahoo), those bindings enable you to use libraries developed in c or
fortran to do more advanced algebra operations, but i'm stuck:

+ cLAPACK, when i tried to compile cLAPACK (a c library for which
there are bindings in boost), the build procedure in windows is quite
tricky and seems to be out of date. I was unable to build the library and
the prebuild libraries are outdated (1999).

+ Atlas, any of the prebuild libraries in sourceforge suits my
microprocessor and i can't build them since i don't have cygwin (i have a
56k. modem and i can't download such a big package), evenmore, i intend
to use the libraries in msvc and the object format differs. There's an
alternative procedure to build in mscv, but i think the 'nmake' tool in
msvc doesn't behave as the 'make' in the -ix world. ¿am i wrong?.

+ Bayes++, this library is intended to be used to calculate karman
filters, but they provide uLAPACK compliance, when i compile it's ok, but
when i try to link them, the functions which provide LAPACK functionality
are missing (in namespace bayesian_filters::LAPACK::rawLAPACK, dgetrs_,
dgetrf_, etc.)

I've also tried some other libraries like blitz++ and tnt (formerly
lapack++), but i didn't suceed in building the libraries.

So, i'm really stuck, i think i should look for prebuild libraries
at this point, but my micro is relatively odd (amd duron). Please, ¿what
step would you take next to perform cholesky factorization?. I don't have
the expertise nor the time to write the algorithms hand-craft

You should persist in trying to get [C]LAPACK to build, independently of
other libraries (ublas, etc.). [C]LAPACK does depend on [C]BLAS, but a
version of the latter is usually included in the former (see SRC/BLAS
directory). ATLAS is a replacement for [C]BLAS - you may improve
performance by linking with it, but it's not necessary.

If you use the Fortran versions, you will also need G2C.

See README and INSTALL files in LAPACK for info about exactly how to
install.

Cheers,
Oleg
 
T

Tino

Oleg Trott said:
Manzanita said:
Hi.

I'm using boost::numerics::ublas to solve linear symmetric and
hermitian systems (cholesky, qr, etc.). I'm aware that ublas only provide
basic algebra operations (blas1, blas2 and blas3) so i've tried some
other libraries to work with ublas, with no success so far. In order to
do so i downloaded boost::numerics::bindings (which aren't available in
www.boost.org right now but in the list which boost developers have in
yahoo), those bindings enable you to use libraries developed in c or
fortran to do more advanced algebra operations, but i'm stuck:

+ cLAPACK, when i tried to compile cLAPACK (a c library for which
there are bindings in boost), the build procedure in windows is quite
tricky and seems to be out of date. I was unable to build the library and
the prebuild libraries are outdated (1999).

+ Atlas, any of the prebuild libraries in sourceforge suits my
microprocessor and i can't build them since i don't have cygwin (i have a
56k. modem and i can't download such a big package), evenmore, i intend
to use the libraries in msvc and the object format differs. There's an
alternative procedure to build in mscv, but i think the 'nmake' tool in
msvc doesn't behave as the 'make' in the -ix world. ¿am i wrong?.

+ Bayes++, this library is intended to be used to calculate karman
filters, but they provide uLAPACK compliance, when i compile it's ok, but
when i try to link them, the functions which provide LAPACK functionality
are missing (in namespace bayesian_filters::LAPACK::rawLAPACK, dgetrs_,
dgetrf_, etc.)

I've also tried some other libraries like blitz++ and tnt (formerly
lapack++), but i didn't suceed in building the libraries.

So, i'm really stuck, i think i should look for prebuild libraries
at this point, but my micro is relatively odd (amd duron). Please, ¿what
step would you take next to perform cholesky factorization?. I don't have
the expertise nor the time to write the algorithms hand-craft

You should persist in trying to get [C]LAPACK to build, independently of
other libraries (ublas, etc.). [C]LAPACK does depend on [C]BLAS, but a
version of the latter is usually included in the former (see SRC/BLAS
directory). ATLAS is a replacement for [C]BLAS - you may improve
performance by linking with it, but it's not necessary.

If you use the Fortran versions, you will also need G2C.

Or you could just call the Fortran libraries directly from
C/C++...just remember in Fortran, everything is passed by pointer. I
have a class library that interfaces to LAPACK that I can show you as
an example.

Tino
 
O

Oleg Trott

Tino said:
Or you could just call the Fortran libraries directly from
C/C++...just remember in Fortran, everything is passed by pointer. I
have a class library that interfaces to LAPACK that I can show you as
an example.

It probably depends on the compiler actually, but none of the compilers I
use (GCC and Intel) will link to LAPACK without G2C. I think the reason is
that some of the intrinsic Fortran functions (like lg10) do not exist in C,
and so they have to be provided in libraries.

Cheers,
Oleg
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top