*** empty log message ***

This commit is contained in:
jiri 2009-11-13 15:14:37 +00:00
parent b2323bc7cd
commit 5c1505ba19
3 changed files with 89 additions and 19 deletions

View File

@ -1,3 +1,16 @@
13.11.2009 RELEASE 0.5
13.11.2009 libtool employed to create also shared library version
12.11.2009 library enclosed in the namespace LA
12.11.2009 #defines for numerical parameters changed to const doubles
12.11.2009 added SparseSMat class for efficient exponentiation of sparse complex symmetric matrices
12.11.2009 removed unnecessary casts in complex vec,mat,smat routines
12.11.2009 fixed bug in complex NRSMat operator +=,-=
10.11.2009 removing 'using namespace std' from the main include, leaving this to the user's discretion
10.11.2009 NRVec::otimes introduced
04.11.2009 improved efficiency of complex matrix exp
04.11.2009 fixed return type for complex sparsemat::norm
19.10.2009 added modified GS orthomormalization with optional metric
15.10.2009 added support for long long
07.10.2009 RELEASE 0.4
06.10.2009 autoconf/automake for user convenience
13.09.2009 RELEASE 0.3

View File

@ -1,19 +1,19 @@
lib_LIBRARIES = libla.a
include_HEADERS = auxstorage.h davidson.h laerror.h mat.h qsort.h vec.h bisection.h diis.h la.h noncblas.h smat.h bitvector.h fourindex.h la_traits.h nonclass.h sparsemat.h conjgrad.h gmres.h matexp.h permutation.h sparsemat_traits.h
libla_a_SOURCES = vec.cc mat.cc smat.cc sparsemat.cc laerror.cc noncblas.cc bitvector.cc strassen.cc nonclass.cc
lib_LTLIBRARIES = libla.la
include_HEADERS = auxstorage.h davidson.h laerror.h mat.h qsort.h vec.h bisection.h diis.h la.h noncblas.h smat.h bitvector.h fourindex.h la_traits.h nonclass.h sparsemat.h sparsesmat.h conjgrad.h gmres.h matexp.h permutation.h
libla_la_SOURCES = vec.cc mat.cc smat.cc sparsemat.cc sparsesmat.cc laerror.cc noncblas.cc bitvector.cc strassen.cc nonclass.cc
check_PROGRAMS = t test
t_SOURCES = t.cc t2.cc
test_SOURCES = test.cc
LDADD = libla.a
LDADD = .libs/libla.a
ACLOCAL_AMFLAGS = -I m4
EXTRA_DIST = LICENSE
#
CXXFLAGS += -fno-omit-frame-pointer -O3 -g -fPIC -finline-limit=1000
CXXFLAGS += -DNO_STRASSEN -DFORTRAN_
#todo: achieve portability of the fortran calls via autoconf?
#remove this for production code efficiency
CXXFLAGS += -DDEBUG
CXXFLAGS = -g
CXXFLAGS += $(OPTIMIZEOPT) $(DEBUGOPT) $(MATPTROPT)
CXXFLAGS += -DNO_STRASSEN -DFORTRAN_
CXXFLAGS += $(CBLASOPT) $(CLAPACKOPT)
LDFLAGS += $(CBLASLIB)

View File

@ -2,22 +2,38 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.63])
AC_INIT([libla], [0.4], [jiri@pittnerovi.com])
AC_INIT([libla], [0.5], [jiri@pittnerovi.com])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_MACRO_DIR([m4])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
LT_INIT
# Checks for programs.
AC_PROG_CXX
AC_PROG_LIBTOOL
AC_PROG_CC
AC_PROG_RANLIB
#AC_PROG_RANLIB obsoleted by libtool
AC_LANG(C++)
# Checks for libraries.
AC_CHECK_LIB([blas], [dgemm_])
AC_CHECK_LIB([atlas], [ATL_zgemv])
AC_CHECK_LIB([lapack], [dgeev_])
#optional
# Checks for mandatory libraries.
AC_CHECK_LIB([blas], [dgemm_],, [
echo ERROR: BLAS not found! You have to install the BLAS library.
exit
])
AC_CHECK_LIB([atlas], [ATL_zgemv],, [
echo "ATLAS not found, I hope you are using some other (more) efficient BLAS!"
])
AC_CHECK_LIB([lapack], [dgeev_],, [
echo ERROR: LAPACK not found! You have to install the LAPACK library
exit
])
#check for optional libraries
AC_CHECK_LIB([cblas], [cblas_ddot], [CBLASLIB=-lcblas], [CBLASOPT=-DNONCBLAS])
AC_SUBST([CBLASLIB])
AC_SUBST([CBLASOPT])
@ -25,14 +41,46 @@ AC_SUBST([CBLASOPT])
AC_CHECK_LIB([lapack], [clapack_dgesv], , [CLAPACKOPT=-DNONCLAPACK])
AC_SUBST([CLAPACKOPT])
#the check for traceback needs bfd to be linked into
AC_CHECK_LIB([bfd], [bfd_fprintf_vma])
AC_CHECK_LIB([traceback], [sigtraceback], [TRACEBACKLIB="-ltraceback -lbfd" TRACEBACKOPT=-DUSE_TRACEBACK])
AC_CHECK_LIB([traceback], [sigtraceback], [TRACEBACKLIB="-ltraceback -lbfd" TRACEBACKOPT="-DUSE_TRACEBACK -fno-omit-frame-pointer"])
AC_SUBST([TRACEBACKOPT])
AC_SUBST([TRACEBACKLIB])
#process options
OPTIMIZEOPT="-O3 -finline-limit=1000"
AC_ARG_ENABLE([optimize],[ --enable-optimize to compile with optimization [[default= -O3 -finline-limit=1000]]],
[case "${enableval}" in
yes) ;;
no) OPTIMIZEOPT="" ;;
*) OPTIMIZEOPT=${enableval}
esac],
,)
AC_SUBST([OPTIMIZEOPT])
DEBUGOPT="-DDEBUG"
AC_ARG_ENABLE([debug],[ --disable-debug not to perform some range-checking [[default=yes]]],
[case "${enableval}" in
yes) ;;
no) DEBUGOPT="" ;;
*) AC_MSG_ERROR([bad value ${enableval} for --enable-debug]) ;;
esac],
,)
AC_SUBST([DEBUGOPT])
MATPTROPT=""
AC_ARG_ENABLE([matptr],[ --enable-matptr switch to double** matrix representation [[default=no]]],
[case "${enableval}" in
yes) MATPTROPT="-DMATPTR" ;;
no) ;;
*) AC_MSG_ERROR([bad value ${enableval} for --enable-matptr]) ;;
esac],
,)
AC_SUBST([MATPTROPT])
# Checks for header files.
AC_CHECK_HEADERS([fcntl.h stdlib.h string.h sys/vfs.h unistd.h])
@ -48,3 +96,12 @@ AC_CHECK_FUNCS([getpagesize memset sqrt])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
echo
echo "**********************************************************************************"
echo "The LA library has now been configured. You may run make; make check; make install"
echo "Please make sure that the generated Makefile employs a proper version of optimized"
echo "BLAS/LAPACK library. If not, re-run configure with CXXFLAGS and LDFLAGS options "
echo "set to '-I path' and '-L path' for your preferred BLAS/LAPACK library version "
echo "For usage examples see file t.cc. Do not forget using copyonwrite() before "
echo "changing individual matrix/vector elements via l.h.s. operator[] or operator() "
echo "**********************************************************************************"