add separate flags for lapack

release/4.3a0
Kai Ni 2010-06-30 17:23:58 +00:00
parent 70adcb26c9
commit 1547597ba4
6 changed files with 29 additions and 7 deletions

View File

@ -54,6 +54,18 @@ AC_ARG_ENABLE([blas],
AM_CONDITIONAL([USE_BLAS_MACOS], [test x$blas = xtrue && test x$ISMAC = xtrue])
AM_CONDITIONAL([USE_BLAS_LINUX], [test x$blas = xtrue && test x$ISMAC = xfalse])
# enable LAPACK
AC_ARG_ENABLE([lapack],
[ --enable-lapack Enable external LAPACK library],
[case "${enableval}" in
yes) lapack=true ;;
no) lapack=false ;;
*) AC_MSG_ERROR([bad value ${enableval} for --enable-lapack]) ;;
esac],[lapack=false])
AM_CONDITIONAL([USE_LAPACK_MACOS], [test x$lapack = xtrue && test x$ISMAC = xtrue])
AM_CONDITIONAL([USE_VECLIB_MACOS], [(test x$lapack = xtrue || test x$blas = xtrue) && test x$ISMAC = xtrue])
#enabgle SparseQR for linear solving
AC_ARG_ENABLE([spqr],
[ --enable-spqr Enable SparseQR library support],

View File

@ -322,13 +322,20 @@ libgtsam_la_LDFLAGS += -lcblas -latlas # $(BLAS_LIBS) $(LIBS) $(FLIBS)
endif
if USE_BLAS_MACOS
AM_CXXFLAGS += -DGT_USE_CBLAS -DYA_BLAS -DYA_LAPACK -DYA_BLASMULT -I/System/Library/Frameworks/vecLib.framework/Headers
AM_CXXFLAGS += -DGT_USE_CBLAS
endif
if USE_LAPACK_MACOS
AM_CXXFLAGS += -DGT_USE_LAPACK
endif
if USE_VECLIB_MACOS
AM_CXXFLAGS += -DYA_BLAS -DYA_LAPACK -DYA_BLASMULT -I/System/Library/Frameworks/vecLib.framework/Headers
libgtsam_la_CPPFLAGS += -DGT_USE_CBLAS -DYA_BLAS -DYA_LAPACK -DYA_BLASMULT -I/System/Library/Frameworks/vecLib.framework/Headers
AM_LDFLAGS += -lcblas -latlas
libgtsam_la_LDFLAGS += -framework vecLib -lcblas -latlas
endif
TESTS = $(check_PROGRAMS)
CXXLINK = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
$(CXXLD) -g $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \

View File

@ -13,12 +13,15 @@
#ifdef GT_USE_CBLAS
#ifdef YA_BLAS
#include <vecLib/cblas.h>
#include <vecLib/clapack.h>
#else
#include <cblas.h>
#endif
#endif
#ifdef GT_USE_LAPACK
#include <vecLib/clapack.h>
#endif
#include <boost/numeric/ublas/matrix_proxy.hpp>
#include <boost/foreach.hpp>
#include <boost/numeric/ublas/lu.hpp>
@ -654,7 +657,7 @@ void householder(Matrix &A, size_t k) {
/* ************************************************************************* */
/** in-place householder */
/* ************************************************************************* */
#ifdef GT_USE_CBLAS
#ifdef GT_USE_LAPACK
void householder(Matrix &A) {
int m = A.size1();
int n = A.size2();

View File

@ -255,7 +255,7 @@ void householder(Matrix& A, size_t k);
* @param k number of columns to zero out below diagonal
* @return nothing: in place !!!
*/
#ifdef GT_USE_CBLAS
#ifdef GT_USE_LAPACK
void householder(Matrix &A);
#endif

View File

@ -118,7 +118,7 @@ SharedDiagonal Gaussian::QR(Matrix& Ab) const {
if (verbose) gtsam::print(Ab, "Ab after whitening");
// Perform in-place Householder
#ifdef GT_USE_CBLAS
#ifdef GT_USE_LAPACK
householder(Ab);
#else
householder(Ab, maxRank);

View File

@ -641,7 +641,7 @@ TEST( matrix, houseHolder )
/* ************************************************************************* */
// unit tests for housholder transformation
/* ************************************************************************* */
#ifdef GT_USE_CBLAS
#ifdef GT_USE_LAPACK
TEST( matrix, houseHolder2 )
{
double data[] = { -5, 0, 5, 0, 0, 0, -1,