Boost logo

Ublas :

From: òÑÂÃÅ× ÷ÌÁÄÉÍÉÒ (true_merc_at_[hidden])
Date: 2006-03-31 08:49:05


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:



#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.