Hello,

I have some troubles using uBLAS with LAPACK bindings.

These troubles are initiated by assert() macros in file /boost/numeric/bindings/lapack/gesv.hpp if function boost::numeric::bindings::lapack::gesv(...) is used.

So, I get compiler message:

D:\boost_1_33_1\boost\numeric\bindings\lapack\gesv.hpp(110): error C3861: 'assert': identifier not found, even with argument-dependent lookup

I'm using MS Visual Studio .NET 2003 with compiler options:

/O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /EHsc /GS /Fo"Release/" /Fd"Release/vc70.pdb" /W3 /nologo /c /Wp64 /Zi /Gd /TP /MD

and linker options:

/OUT:"Release/boost_test.exe" /INCREMENTAL:NO /NOLOGO /DEBUG /PDB:"Release/boost_test.pdb" /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /MACHINE:X86šš kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib clapack.libš blas.lib libF77.lib libI77.lib tmglib.lib

LAPACK version: CLAPACK v 3.0 for Win32.

Boost bindings version with release date 2006.01.21.

boost/numeric/bindings/lapack/gesv.hpp file version 1.4

The sample of code initiates this error is:

 

#define BOOST_NUMERIC_BINDINGS_USE_CLAPACK

#include <boost/numeric/bindings/lapack/gesv.hpp>

#include <boost/numeric/bindings/traits/ublas_matrix.hpp>

#include <boost/numeric/bindings/traits/std_vector.hpp>

 

namespace ublasš = boost::numeric::ublas;

namespace lapack = boost::numeric::bindings::lapack;

 

int main() {

š

š std::size_t n = 3;

š ublas::matrix<double, ublas::column_major> a (n, n);

š ublas::matrix<double, ublas::column_major> b (n, n);

 

š // Initialize a

š // Initialize b

 

š lapack::gesv (a, b);

š return 0;

}

 

I solve this problem to include the string:

#include <assert.h>

in file boost\numeric\bindings\lapack\gesv.hpp

 

So, could anybody explain to me my mistakes or give me link to the corresponding place in documentation?š

 

Best regards,

ššššš Ryabtsev V.