Index: trunk/npstat/nm/performSchultzIteration.hh =================================================================== --- trunk/npstat/nm/performSchultzIteration.hh (revision 0) +++ trunk/npstat/nm/performSchultzIteration.hh (revision 709) @@ -0,0 +1,25 @@ +#ifndef NPSTAT_PERFORMSCHULTZITERATION_HH_ +#define NPSTAT_PERFORMSCHULTZITERATION_HH_ + +/*! +// \file performSchultzIteration.hh +// +// \brief Schultz iteration for improving matrix inverses +// +// Author: I. Volobouev +// +// July 2020 +*/ + +namespace npstat { + // The arrays must be dimensioned dim x dim. + // "inverse" must contain an approximate inverse + // on input. It will contain an improved inverse + // on output, obtained by performing one Schultz iteration. + // Multiple calls to this function can be made in a cycle. + void performSchultzIteration(const long double* mat, + unsigned dim, + long double* inverse); +} + +#endif // NPSTAT_PERFORMSCHULTZITERATION_HH_ Index: trunk/npstat/nm/lapack_interface_ldouble.icc =================================================================== --- trunk/npstat/nm/lapack_interface_ldouble.icc (revision 0) +++ trunk/npstat/nm/lapack_interface_ldouble.icc (revision 709) @@ -0,0 +1,143 @@ +#include "npstat/nm/performSchultzIteration.hh" + +#define NPSTAT_N_SCHULTZ_ITERATIONS_LD 2U + +namespace npstat { + template<> + inline void invert_posdef_sym_matrix(const long double* in, + const unsigned dim, + long double* out) + { + // The following code is not thread safe! + static std::vector bufv; + static std::vector ldbufv; + + assert(in); + assert(out); + + if (bufv.size() < dim*dim) + { + bufv.resize(dim*dim); + ldbufv.resize(dim*dim); + } + double* buf = &bufv[0]; + long double* ldbuf = &ldbufv[0]; + for (unsigned i=0; i + inline void invert_sym_matrix(const long double* in, + const unsigned dim, + long double* out) + { + // The following code is not thread safe! + static std::vector bufv; + static std::vector ldbufv; + static std::vector bufPiv; + + assert(in); + assert(out); + + if (bufv.size() < dim*(dim + 32U)) + bufv.resize(dim*(dim + 32U)); + if (ldbufv.size() < dim*dim) + ldbufv.resize(dim*dim); + double* buf = &bufv[0]; + long double* ldbuf = &ldbufv[0]; + double* WORK = buf + dim*dim; + for (unsigned i=0; i + inline void invert_general_matrix(const long double* in, + const unsigned dim, + long double* out) + { + // The following code is not thread safe! + static std::vector bufv; + static std::vector bufPiv; + + assert(in); + assert(out); + + const unsigned len = dim*dim; + if (bufv.size() < dim*(dim + 32U)) + bufv.resize(dim*(dim + 32U)); + double* buf = &bufv[0]; + double* WORK = buf + dim*dim; + for (unsigned i=0; i&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = npstat/nm ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(include_HEADERS) \ $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libnm_la_LIBADD = am_libnm_la_OBJECTS = ArrayShape.lo ArrayRange.lo SpecialFunctions.lo \ ConvolutionEngine1D.lo EquidistantSequence.lo \ GaussHermiteQuadrature.lo GaussLegendreQuadrature.lo \ MathUtils.lo OrthoPoly1D.lo GridAxis.lo rectangleQuadrature.lo \ LinInterpolatedTable1D.lo findPeak2D.lo bilinearSection.lo \ ConvolutionEngineND.lo FourierImage.lo SvdMethod.lo \ binomialCoefficient.lo UniformAxis.lo ArrayNDScanner.lo \ DualAxis.lo DiscreteBernsteinPoly1D.lo definiteIntegrals.lo \ EigenMethod.lo goldenSectionSearch.lo timestamp.lo \ OrthoPolyMethod.lo ContOrthoPoly1D.lo lapack_interface.lo \ AbsClassicalOrthoPoly1D.lo ClassicalOrthoPolys1D.lo \ matrixIndexPairs.lo truncatedInverseSqrt.lo FejerQuadrature.lo \ StorablePolySeries1D.lo SemiInfGaussianQuadrature.lo \ - HeatEq1DNeumannBoundary.lo + HeatEq1DNeumannBoundary.lo performSchultzIteration.lo libnm_la_OBJECTS = $(am_libnm_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) AM_V_CXX = $(am__v_CXX_@AM_V@) am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) am__v_CXX_0 = @echo " CXX " $@; am__v_CXX_1 = CXXLD = $(CXX) CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) am__v_CXXLD_0 = @echo " CXXLD " $@; am__v_CXXLD_1 = SOURCES = $(libnm_la_SOURCES) DIST_SOURCES = $(libnm_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(includedir)" HEADERS = $(include_HEADERS) am__extra_recursive_targets = python-recursive am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = ${prefix}/include/npstat/nm infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = -I@top_srcdir@/ $(DEPS_CFLAGS) noinst_LTLIBRARIES = libnm.la libnm_la_SOURCES = ArrayShape.cc ArrayRange.cc SpecialFunctions.cc \ ConvolutionEngine1D.cc EquidistantSequence.cc GaussHermiteQuadrature.cc \ GaussLegendreQuadrature.cc MathUtils.cc OrthoPoly1D.cc GridAxis.cc \ rectangleQuadrature.cc LinInterpolatedTable1D.cc findPeak2D.cc \ bilinearSection.cc ConvolutionEngineND.cc FourierImage.cc SvdMethod.cc \ binomialCoefficient.cc UniformAxis.cc ArrayNDScanner.cc DualAxis.cc \ DiscreteBernsteinPoly1D.cc definiteIntegrals.cc EigenMethod.cc \ goldenSectionSearch.cc timestamp.cc OrthoPolyMethod.cc ContOrthoPoly1D.cc \ lapack_interface.cc AbsClassicalOrthoPoly1D.cc ClassicalOrthoPolys1D.cc \ matrixIndexPairs.cc truncatedInverseSqrt.cc FejerQuadrature.cc \ StorablePolySeries1D.cc SemiInfGaussianQuadrature.cc \ - HeatEq1DNeumannBoundary.cc + HeatEq1DNeumannBoundary.cc performSchultzIteration.cc include_HEADERS = AbsArrayProjector.hh \ AbsClassicalOrthoPoly1D.hh \ AbsClassicalOrthoPoly1D.icc \ absDifference.hh \ AbsMultivariateFunctor.hh \ AbsVisitor.hh \ allocators.hh \ areAllElementsUnique.hh \ ArrayND.hh \ ArrayND.icc \ ArrayNDScanner.hh \ ArrayRange.hh \ ArrayShape.hh \ bilinearSection.hh \ binomialCoefficient.hh \ BoxND.hh \ BoxND.icc \ BoxNDScanner.hh \ BoxNDScanner.icc \ CircularMapper1d.hh \ ClassicalOrthoPolys1D.hh \ closeWithinTolerance.hh \ CompareByIndex.hh \ ComplexComparesAbs.hh \ ComplexComparesFalse.hh \ ConstSubscriptMap.hh \ ContOrthoPoly1D.hh \ ContOrthoPoly1D.icc \ ConvolutionEngine1D.hh \ ConvolutionEngine1D.icc \ ConvolutionEngineND.hh \ ConvolutionEngineND.icc \ CoordinateSelector.hh \ definiteIntegrals.hh \ DiscreteBernsteinPoly1D.hh \ discretizedDistance.hh \ discretizedDistance.icc \ DualAxis.hh \ EigenMethod.hh \ EquidistantSequence.hh \ ExpMapper1d.hh \ FejerQuadrature.hh \ FejerQuadrature.icc \ fillArrayCentersPreservingAreas.hh \ findPeak2D.hh \ findRootInLogSpace.hh \ findRootInLogSpace.icc \ findRootNewtonRaphson.hh \ findRootNewtonRaphson.icc \ findRootUsingBisections.hh \ findRootUsingBisections.icc \ FourierImage.hh \ GaussHermiteQuadrature.hh \ GaussHermiteQuadrature.icc \ GaussLegendreQuadrature.hh \ GaussLegendreQuadrature.icc \ GeneralizedComplex.hh \ goldenSectionSearch.hh \ goldenSectionSearch.icc \ GridAxis.hh \ HeatEq1DNeumannBoundary.hh \ interpolate.hh \ interpolate.icc \ Interval.hh \ Interval.icc \ isMonotonous.hh \ KDTree.hh \ KDTree.icc \ lapack.h \ lapack_interface.hh \ lapack_interface.icc \ lapack_interface_double.icc \ + lapack_interface_ldouble.icc \ lapack_interface_float.icc \ LinearMapper1d.hh \ LinInterpolatedTable1D.hh \ LinInterpolatedTable1D.icc \ LinInterpolatedTableND.hh \ LinInterpolatedTableND.icc \ LogMapper1d.hh \ LongerType.hh \ MathUtils.hh \ MathUtils.icc \ Matrix.hh \ matrixIndexPairs.hh \ Matrix.icc \ MinSearchStatus1D.hh \ MultivariateFunctorScanner.hh \ OrthoPoly1D.hh \ OrthoPoly1D.icc \ OrthoPolyMethod.hh \ OrthoPolyND.hh \ OrthoPolyND.icc \ PairCompare.hh \ + performSchultzIteration.hh \ PointDimensionality.hh \ PreciseType.hh \ ProperDblFromCmpl.hh \ PtrBufferHandle.hh \ rectangleQuadrature.hh \ rescanArray.hh \ rescanArray.icc \ SemiInfGaussianQuadrature.hh \ SemiInfGaussianQuadrature.icc \ SimpleFunctors.hh \ SpecialFunctions.hh \ StorablePolySeries1D.hh \ SvdMethod.hh \ timestamp.hh \ Triple.hh \ truncatedInverseSqrt.hh \ UniformAxis.hh EXTRA_DIST = 00README.txt all: all-am .SUFFIXES: .SUFFIXES: .cc .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign npstat/nm/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign npstat/nm/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libnm.la: $(libnm_la_OBJECTS) $(libnm_la_DEPENDENCIES) $(EXTRA_libnm_la_DEPENDENCIES) $(AM_V_CXXLD)$(CXXLINK) $(libnm_la_OBJECTS) $(libnm_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AbsClassicalOrthoPoly1D.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ArrayNDScanner.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ArrayRange.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ArrayShape.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ClassicalOrthoPolys1D.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ContOrthoPoly1D.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConvolutionEngine1D.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConvolutionEngineND.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DiscreteBernsteinPoly1D.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DualAxis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/EigenMethod.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/EquidistantSequence.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FejerQuadrature.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FourierImage.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GaussHermiteQuadrature.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GaussLegendreQuadrature.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GridAxis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HeatEq1DNeumannBoundary.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LinInterpolatedTable1D.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MathUtils.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OrthoPoly1D.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OrthoPolyMethod.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SemiInfGaussianQuadrature.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SpecialFunctions.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StorablePolySeries1D.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SvdMethod.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UniformAxis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bilinearSection.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/binomialCoefficient.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/definiteIntegrals.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/findPeak2D.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/goldenSectionSearch.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lapack_interface.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/matrixIndexPairs.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/performSchultzIteration.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rectangleQuadrature.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timestamp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/truncatedInverseSqrt.Plo@am__quote@ .cc.o: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) python-local: ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(includedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-includeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: python: python-am python-am: python-local uninstall-am: uninstall-includeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am \ install-includeHEADERS install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am python-am python-local \ tags tags-am uninstall uninstall-am uninstall-includeHEADERS .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: Index: trunk/npstat/nm/performSchultzIteration.cc =================================================================== --- trunk/npstat/nm/performSchultzIteration.cc (revision 0) +++ trunk/npstat/nm/performSchultzIteration.cc (revision 709) @@ -0,0 +1,52 @@ +#include +#include + +#include "npstat/nm/performSchultzIteration.hh" + +namespace npstat { + namespace Private { + void squareMatMul(const long double* a, + const long double* b, + const unsigned dim, + long double* c) + { + assert(a); + assert(b); + assert(dim); + assert(c); + assert(c != a && c != b); + + for (unsigned row=0; row ldbufv; + + const unsigned len = dim*dim; + if (ldbufv.size() < 2U*len) + ldbufv.resize(2U*len); + long double* buf1 = &ldbufv[0]; + long double* buf2 = buf1 + len; + Private::squareMatMul(inverse, mat, dim, buf1); + Private::squareMatMul(buf1, inverse, dim, buf2); + for (unsigned i=0; i #include #include #include #include #include "geners/CPP11_auto_ptr.hh" #include "npstat/nm/OrthoPolyMethod.hh" #include "npstat/nm/Matrix.hh" #include "npstat/nm/SimpleFunctors.hh" namespace npstat { class StorablePolySeries1D; class ContOrthoPoly1D { public: // The first element of the pair is the coordinate and the // second measure is the weight (all weights must be non-negative) typedef std::pair MeasurePoint; /** // Main constructor, with obvious arguments. Internally, the // measure will be sorted in the order of increasing weight // and the measure coordinates will be shifted so that their // weighted mean is at 0. */ ContOrthoPoly1D(unsigned maxDegree, const std::vector& measure, OrthoPolyMethod m = OPOLY_STIELTJES); /** Constructor which assumes that all weights are 1.0 */ template ContOrthoPoly1D(unsigned maxDegree, const std::vector& coords, OrthoPolyMethod m = OPOLY_STIELTJES); //@{ /** A simple inspector of object properties */ inline unsigned maxDegree() const {return maxdeg_;} inline unsigned long measureLength() const {return measure_.size();} inline MeasurePoint measure(const unsigned index) const {return measure_.at(index);} inline double coordinate(const unsigned index) const {return measure_.at(index).first;} inline double weight(const unsigned index) const {return measure_.at(index).second;} inline double sumOfWeights() const {return wsum_;} inline double sumOfWeightSquares() const {return wsumsq_;} inline bool areAllWeightsEqual() const {return allWeightsEqual_;} inline double minCoordinate() const {return minX_;} inline double maxCoordinate() const {return maxX_;} inline double meanCoordinate() const {return meanX_;} //@} /** Kish's effective sample size for the measure */ double effectiveSampleSize() const; /** Return the value of one of the normalized polynomials */ double poly(unsigned deg, double x) const; /** Return the values of two of the normalized polynomials */ std::pair polyPair( unsigned deg1, unsigned deg2, double x) const; //@{ /** // Return the values of all orthonormal polynomials up to some // maximum degree. Size of the "polyValues" array should be // at least maxdeg + 1. */ void allPolys(double x, unsigned maxdeg, double *polyValues) const; void allPolys(double x, unsigned maxdeg, long double *polyValues) const; //@} /** // Average values of the polynomials for a sample of points. - // Size of the "polyAverages" array should be at least maxdeg + 1. + // Size of the "averages" array should be at least maxdeg + 1. */ template void sampleAverages(const Numeric* coords, unsigned long lenCoords, double* averages, unsigned maxdeg) const; /** // Average values of the pairwise polynomial products for // a sample of points. The returned matrix will be symmetric // and will have the dimensions (maxdeg + 1) x (maxdeg + 1). */ template Matrix sampleProductAverages(const Numeric* coords, unsigned long lenCoords, unsigned maxdeg) const; /** Return the value of the orthonormal polynomial series */ double series(const double *coeffs, unsigned maxdeg, double x) const; /** // Build the coefficients of the orthogonal polynomial series // for the given function. The length of the array "coeffs" // should be at least "maxdeg" + 1. Note that the coefficients // are returned in the order of increasing degree (same order // is used by the "series" function). */ template void calculateCoeffs(const Functor& fcn, double *coeffs, unsigned maxdeg) const; /** // Build the coefficients of the orthogonal polynomial series // for the given function in such a way that the integral of // the truncated series on the [xmin, xmax] interval is constrained // to "integralValue". The length of the array "coeffs" should be // at least "maxdeg" + 1. Note that the coefficients are returned // in the order of increasing degree (same order is used by the // "series" function). The construction minimizes the ISE weighted // by the empirical density. // // The function returns the chi-square from the corresponding // constrained least squares problem. This is the sum of // (coeffs[i] - c[i])^2, 0 <= i <= maxdeg, where c[i] are // determined by the "calculateCoeffs" method. */ template double constrainedCoeffs(const Functor& fcn, double *coeffs, unsigned maxdeg, double xmin, double xmax, double integralValue = 1.0) const; /** // Build the coefficients of the orthogonal polynomial series // for the discrete weight values (that is, fcn(x_i) = w_i, // using the terminology of the "calculateCoeffs" method). This // can sometimes be useful for weighted measures. Of course, // for unweighted measures this results in just delta_{deg,0}. */ void weightCoeffs(double *coeffs, unsigned maxdeg) const; /** // Integrated squared error between the given function and the // polynomial series. Parameter "integrationRulePoints" specifies // the parameter "npoints" for the GaussLegendreQuadrature class. // If "integrationRulePoints" is 0, the rule will be picked // automatically in such a way that it integrates a polynomial // of degree maxdeg*2 exactly. */ template double integratedSquaredError(const Functor& fcn, const double *coeffs, unsigned maxdeg, double xmin, double xmax, unsigned integrationRulePoints=0U) const; /** // Squared error between the given function and the polynomial // series, weighted according to the measure */ template double weightedSquaredError(const Functor& fcn, const double *coeffs, unsigned maxdeg) const; /** // This method is useful for testing the numerical precision // of the orthonormalization procedure. It returns the scalar // products between various polynomials. */ double empiricalKroneckerDelta(unsigned deg1, unsigned deg2) const; /** // If the Kronecker deltas were calculated from a sample, they // would be random and would have a covariance matrix. This // is an estimate of the terms in that covariance matrix. The // covariance is between delta_{deg1,deg2} and delta_{deg3,deg4}. */ double empiricalKroneckerCovariance(unsigned deg1, unsigned deg2, unsigned deg3, unsigned deg4) const; /** // Examine the recurrence coefficients. The first element of // the returned pair is alpha, and the second element is beta. */ std::pair recurrenceCoeffs(unsigned deg) const; /** // Generate principal minor of order n of the Jacobi matrix. // n must not exceed "maxDegree" */ Matrix jacobiMatrix(unsigned n) const; /** // Roots of the polynomial with the given degree. Naturally, // the degree argument must not exceed "maxDegree". */ void calculateRoots(double *roots, unsigned degree) const; /** // Integral of an orthonormal polynomials to some power without // the weight (so this is not an inner product with the poly of // degree 0). */ double integratePoly(unsigned degree, unsigned power, double xmin, double xmax) const; /** // Integral of the product of three orthonormal polynomials // without the weight (so this is not an inner product) */ double integrateTripleProduct(unsigned deg1, unsigned deg2, unsigned deg3, double xmin, double xmax) const; /** // Integral of the product of two orthonormal polynomials // with some external weight function (e.g., oracle density). // "EW" in the method name stands for "externally weighted". // // "integrationRulePoints" argument will be passed to the // GaussLegendreQuadrature constructor and must be supported // by that class. */ template double integrateEWPolyProduct(const Functor& weight, unsigned deg1, unsigned deg2, double xmin, double xmax, unsigned integrationRulePoints) const; /** // A measure-weighted average of orthonormal poly values // to some power */ double powerAverage(unsigned deg, unsigned power) const; /** // A measure-weighted average of the product of two orthonormal // poly values to some powers */ double jointPowerAverage(unsigned deg1, unsigned power1, unsigned deg2, unsigned power2) const; /** // A measure-weighted average of the product of several // orthonormal poly values */ double jointAverage(const unsigned* degrees, unsigned nDegrees, bool degreesSortedIncreasingOrder = false) const; //@{ /** // A measure-weighted average that will be remembered internally // so that another call to this function with the same arguments // will return the answer quickly */ double cachedJointAverage(unsigned deg1, unsigned deg2, unsigned deg3, unsigned deg4) const; double cachedJointAverage(unsigned deg1, unsigned deg2, unsigned deg3, unsigned deg4, unsigned deg5, unsigned deg6) const; double cachedJointAverage(unsigned deg1, unsigned deg2, unsigned deg3, unsigned deg4, unsigned deg5, unsigned deg6, unsigned deg7, unsigned deg8) const; //@} /** Covariance between v_{ab} and v_{cd} */ double cov4(unsigned a, unsigned b, unsigned c, unsigned d) const; /** Covariance between v_{ab}*v_{cd} and v_{ef} */ double cov6(unsigned a, unsigned b, unsigned c, unsigned d, unsigned e, unsigned f) const; /** Covariance between v_{ab}*v_{cd} and v_{ef}*v_{gh} */ double cov8(unsigned a, unsigned b, unsigned c, unsigned d, unsigned e, unsigned f, unsigned g, unsigned h) const; /** Covariance between two cov4 estimates (i.e., error on the error) */ double covCov4(unsigned a, unsigned b, unsigned c, unsigned d, unsigned e, unsigned f, unsigned g, unsigned h) const; /** // Alternative implementation of "cov8". It is slower than "cov8" // but easier to program and verify. Useful mainly for testing "cov8". */ double slowCov8(unsigned a, unsigned b, unsigned c, unsigned d, unsigned e, unsigned f, unsigned g, unsigned h) const; /** Estimate of eps_{mn} expectation */ double epsExpectation(unsigned m, unsigned n, bool highOrder) const; /** // Estimate of covariance between eps_{ij} and eps_{mn}. // // The result should be identical with "empiricalKroneckerCovariance" // in case "highOrder" argument is "false". However, this method // caches results of various calculations of averages and should // perform better inside cycles over indices. */ double epsCovariance(unsigned i, unsigned j, unsigned m, unsigned n, bool highOrder) const; /** Construct a StorablePolySeries1D object out of this one */ CPP11_auto_ptr makeStorablePolySeries( double xmin, double xmax, const double *coeffs=0, unsigned maxdeg=0) const; private: struct Recurrence { inline Recurrence(const long double a, const long double b) : alpha(a), beta(b) { assert(beta > 0.0L); sqrbeta = sqrtl(beta); } long double alpha; long double beta; long double sqrbeta; }; class PolyFcn; friend class PolyFcn; class PolyFcn : public Functor1 { public: inline PolyFcn(const ContOrthoPoly1D& p, const unsigned d1, const unsigned power) : poly(p), deg1(d1), polypow(power) {} inline long double operator()(const long double& x) const { long double p = 1.0L; if (polypow) { p = poly.normpoly(deg1, x); switch (polypow) { case 1U: break; case 2U: p *= p; break; default: p = powl(p, polypow); break; } } return p; } private: const ContOrthoPoly1D& poly; unsigned deg1; unsigned polypow; }; class TripleProdFcn; friend class TripleProdFcn; class TripleProdFcn : public Functor1 { public: inline TripleProdFcn(const ContOrthoPoly1D& p, const unsigned d1, const unsigned d2, const unsigned d3) : poly(p) { degs[0] = d1; degs[1] = d2; degs[2] = d3; degmax = std::max(d1, std::max(d2, d3)); } inline long double operator()(const long double& x) const {return poly.normpolyprod(degs, 3, degmax, x);} private: const ContOrthoPoly1D& poly; unsigned degs[3]; unsigned degmax; }; template class EWPolyProductFcn; template friend class EWPolyProductFcn; template class EWPolyProductFcn : public Functor1 { public: inline EWPolyProductFcn(const ContOrthoPoly1D& p, const Funct& w, const unsigned d1, const unsigned d2) : poly(p), wf(w) { degs[0] = d1; degs[1] = d2; degmax = std::max(d1, d2); } inline long double operator()(const long double& x) const {return poly.normpolyprod(degs,2,degmax,x-poly.meanX_)*wf(x);} private: const ContOrthoPoly1D& poly; const Funct& wf; unsigned degs[2]; unsigned degmax; }; class MemoKey { public: inline MemoKey(const unsigned d0, const unsigned d1, const unsigned d2, const unsigned d3) : nDegs_(4U) { degs_[0] = d0; degs_[1] = d1; degs_[2] = d2; degs_[3] = d3; std::sort(degs_, degs_+nDegs_); } inline MemoKey(const unsigned d0, const unsigned d1, const unsigned d2, const unsigned d3, const unsigned d4, const unsigned d5) : nDegs_(6U) { degs_[0] = d0; degs_[1] = d1; degs_[2] = d2; degs_[3] = d3; degs_[4] = d4; degs_[5] = d5; std::sort(degs_, degs_+nDegs_); } inline MemoKey(const unsigned d0, const unsigned d1, const unsigned d2, const unsigned d3, const unsigned d4, const unsigned d5, const unsigned d6, const unsigned d7) : nDegs_(8U) { degs_[0] = d0; degs_[1] = d1; degs_[2] = d2; degs_[3] = d3; degs_[4] = d4; degs_[5] = d5; degs_[6] = d6; degs_[7] = d7; std::sort(degs_, degs_+nDegs_); } inline const unsigned* degrees() const {return degs_;} inline unsigned nDegrees() const {return nDegs_;} inline bool operator<(const MemoKey& r) const { if (nDegs_ < r.nDegs_) return true; if (r.nDegs_ < nDegs_) return false; for (unsigned i=0; i monicInnerProducts( unsigned degree) const; long double normpoly(unsigned degree, long double x) const; std::pair twonormpoly( unsigned deg1, unsigned deg2, long double x) const; long double normpolyprod(const unsigned* degrees, unsigned nDeg, unsigned degmax, long double x) const; long double normseries(const double *coeffs, unsigned maxdeg, long double x) const; template void getAllPolys(double x, unsigned maxdeg, Numeric *polyValues) const; double getCachedAverage(const MemoKey& key) const; std::vector measure_; std::vector rCoeffs_; mutable std::map cachedAverages_; long double wsum_; long double wsumsq_; double meanX_; double minX_; double maxX_; unsigned maxdeg_; bool allWeightsEqual_; #ifdef SWIG public: inline StorablePolySeries1D* makeStorablePolySeries_2( double xmin, double xmax, const std::vector& coeffs) const { CPP11_auto_ptr ptr; if (coeffs.empty()) ptr = this->makeStorablePolySeries(xmin, xmax); else ptr = this->makeStorablePolySeries(xmin, xmax, &coeffs[0], coeffs.size() - 1); return ptr.release(); } #endif }; } #include "npstat/nm/ContOrthoPoly1D.icc" #endif // NPSTAT_CONTORTHOPOLY1D_HH_ Index: trunk/npstat/nm/Makefile =================================================================== --- trunk/npstat/nm/Makefile (revision 708) +++ trunk/npstat/nm/Makefile (revision 709) @@ -1,832 +1,835 @@ # Makefile.in generated by automake 1.15.1 from Makefile.am. # npstat/nm/Makefile. Generated from Makefile.in by configure. # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/npstat pkgincludedir = $(includedir)/npstat pkglibdir = $(libdir)/npstat pkglibexecdir = $(libexecdir)/npstat am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = x86_64-pc-linux-gnu host_triplet = x86_64-pc-linux-gnu subdir = npstat/nm ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(include_HEADERS) \ $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libnm_la_LIBADD = am_libnm_la_OBJECTS = ArrayShape.lo ArrayRange.lo SpecialFunctions.lo \ ConvolutionEngine1D.lo EquidistantSequence.lo \ GaussHermiteQuadrature.lo GaussLegendreQuadrature.lo \ MathUtils.lo OrthoPoly1D.lo GridAxis.lo rectangleQuadrature.lo \ LinInterpolatedTable1D.lo findPeak2D.lo bilinearSection.lo \ ConvolutionEngineND.lo FourierImage.lo SvdMethod.lo \ binomialCoefficient.lo UniformAxis.lo ArrayNDScanner.lo \ DualAxis.lo DiscreteBernsteinPoly1D.lo definiteIntegrals.lo \ EigenMethod.lo goldenSectionSearch.lo timestamp.lo \ OrthoPolyMethod.lo ContOrthoPoly1D.lo lapack_interface.lo \ AbsClassicalOrthoPoly1D.lo ClassicalOrthoPolys1D.lo \ matrixIndexPairs.lo truncatedInverseSqrt.lo FejerQuadrature.lo \ StorablePolySeries1D.lo SemiInfGaussianQuadrature.lo \ - HeatEq1DNeumannBoundary.lo + HeatEq1DNeumannBoundary.lo performSchultzIteration.lo libnm_la_OBJECTS = $(am_libnm_la_OBJECTS) AM_V_lt = $(am__v_lt_$(V)) am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) am__v_lt_0 = --silent am__v_lt_1 = AM_V_P = $(am__v_P_$(V)) am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY)) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I. depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) AM_V_CXX = $(am__v_CXX_$(V)) am__v_CXX_ = $(am__v_CXX_$(AM_DEFAULT_VERBOSITY)) am__v_CXX_0 = @echo " CXX " $@; am__v_CXX_1 = CXXLD = $(CXX) CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CXXLD = $(am__v_CXXLD_$(V)) am__v_CXXLD_ = $(am__v_CXXLD_$(AM_DEFAULT_VERBOSITY)) am__v_CXXLD_0 = @echo " CXXLD " $@; am__v_CXXLD_1 = SOURCES = $(libnm_la_SOURCES) DIST_SOURCES = $(libnm_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(includedir)" HEADERS = $(include_HEADERS) am__extra_recursive_targets = python-recursive am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = ${SHELL} /home/igv/Hepforge/npstat/trunk/missing aclocal-1.15 AMTAR = $${TAR-tar} AM_DEFAULT_VERBOSITY = 1 AR = ar AUTOCONF = ${SHELL} /home/igv/Hepforge/npstat/trunk/missing autoconf AUTOHEADER = ${SHELL} /home/igv/Hepforge/npstat/trunk/missing autoheader AUTOMAKE = ${SHELL} /home/igv/Hepforge/npstat/trunk/missing automake-1.15 AWK = gawk CC = gcc CCDEPMODE = depmode=gcc3 CFLAGS = -g -O2 CPP = gcc -E CPPFLAGS = CXX = g++ CXXCPP = g++ -E CXXDEPMODE = depmode=gcc3 CXXFLAGS = -std=c++11 -O3 -Wall -W -Werror CYGPATH_W = echo DEFS = -DPACKAGE_NAME=\"npstat\" -DPACKAGE_TARNAME=\"npstat\" -DPACKAGE_VERSION=\"5.2.0\" -DPACKAGE_STRING=\"npstat\ 5.2.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"npstat\" -DVERSION=\"5.2.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" DEPDIR = .deps DEPS_CFLAGS = -I/usr/local/include DEPS_LIBS = -L/usr/local/lib -lfftw3 -lgeners -lkstest DLLTOOL = false DSYMUTIL = DUMPBIN = ECHO_C = ECHO_N = -n ECHO_T = EGREP = /bin/grep -E EXEEXT = F77 = g77 FFLAGS = -g -O2 FGREP = /bin/grep -F FLIBS = -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. -lgfortran -lm -lquadmath GREP = /bin/grep INSTALL = /usr/bin/install -c INSTALL_DATA = ${INSTALL} -m 644 INSTALL_PROGRAM = ${INSTALL} INSTALL_SCRIPT = ${INSTALL} INSTALL_STRIP_PROGRAM = $(install_sh) -c -s LD = /usr/bin/ld -m elf_x86_64 LDFLAGS = LIBOBJS = LIBS = LIBTOOL = $(SHELL) $(top_builddir)/libtool LIPO = LN_S = ln -s LTLIBOBJS = LT_SYS_LIBRARY_PATH = MAKEINFO = ${SHELL} /home/igv/Hepforge/npstat/trunk/missing makeinfo MANIFEST_TOOL = : MKDIR_P = /bin/mkdir -p NM = /usr/bin/nm -B NMEDIT = OBJDUMP = objdump OBJEXT = o OTOOL = OTOOL64 = PACKAGE = npstat PACKAGE_BUGREPORT = PACKAGE_NAME = npstat PACKAGE_STRING = npstat 5.2.0 PACKAGE_TARNAME = npstat PACKAGE_URL = PACKAGE_VERSION = 5.2.0 PATH_SEPARATOR = : PKG_CONFIG = /usr/bin/pkg-config PKG_CONFIG_LIBDIR = PKG_CONFIG_PATH = /usr/local/lib/pkgconfig RANLIB = ranlib SED = /bin/sed SET_MAKE = SHELL = /bin/bash STRIP = strip VERSION = 5.2.0 abs_builddir = /home/igv/Hepforge/npstat/trunk/npstat/nm abs_srcdir = /home/igv/Hepforge/npstat/trunk/npstat/nm abs_top_builddir = /home/igv/Hepforge/npstat/trunk abs_top_srcdir = /home/igv/Hepforge/npstat/trunk ac_ct_AR = ar ac_ct_CC = gcc ac_ct_CXX = g++ ac_ct_DUMPBIN = ac_ct_F77 = g77 am__include = include am__leading_dot = . am__quote = am__tar = $${TAR-tar} chof - "$$tardir" am__untar = $${TAR-tar} xf - bindir = ${exec_prefix}/bin build = x86_64-pc-linux-gnu build_alias = build_cpu = x86_64 build_os = linux-gnu build_vendor = pc builddir = . datadir = ${datarootdir} datarootdir = ${prefix}/share docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} dvidir = ${docdir} exec_prefix = ${prefix} host = x86_64-pc-linux-gnu host_alias = host_cpu = x86_64 host_os = linux-gnu host_vendor = pc htmldir = ${docdir} includedir = ${prefix}/include/npstat/nm infodir = ${datarootdir}/info install_sh = ${SHELL} /home/igv/Hepforge/npstat/trunk/install-sh libdir = ${exec_prefix}/lib libexecdir = ${exec_prefix}/libexec localedir = ${datarootdir}/locale localstatedir = ${prefix}/var mandir = ${datarootdir}/man mkdir_p = $(MKDIR_P) oldincludedir = /usr/include pdfdir = ${docdir} prefix = /usr/local program_transform_name = s,x,x, psdir = ${docdir} runstatedir = ${localstatedir}/run sbindir = ${exec_prefix}/sbin sharedstatedir = ${prefix}/com srcdir = . sysconfdir = ${prefix}/etc target_alias = top_build_prefix = ../../ top_builddir = ../.. top_srcdir = ../.. AM_CPPFLAGS = -I../../ $(DEPS_CFLAGS) noinst_LTLIBRARIES = libnm.la libnm_la_SOURCES = ArrayShape.cc ArrayRange.cc SpecialFunctions.cc \ ConvolutionEngine1D.cc EquidistantSequence.cc GaussHermiteQuadrature.cc \ GaussLegendreQuadrature.cc MathUtils.cc OrthoPoly1D.cc GridAxis.cc \ rectangleQuadrature.cc LinInterpolatedTable1D.cc findPeak2D.cc \ bilinearSection.cc ConvolutionEngineND.cc FourierImage.cc SvdMethod.cc \ binomialCoefficient.cc UniformAxis.cc ArrayNDScanner.cc DualAxis.cc \ DiscreteBernsteinPoly1D.cc definiteIntegrals.cc EigenMethod.cc \ goldenSectionSearch.cc timestamp.cc OrthoPolyMethod.cc ContOrthoPoly1D.cc \ lapack_interface.cc AbsClassicalOrthoPoly1D.cc ClassicalOrthoPolys1D.cc \ matrixIndexPairs.cc truncatedInverseSqrt.cc FejerQuadrature.cc \ StorablePolySeries1D.cc SemiInfGaussianQuadrature.cc \ - HeatEq1DNeumannBoundary.cc + HeatEq1DNeumannBoundary.cc performSchultzIteration.cc include_HEADERS = AbsArrayProjector.hh \ AbsClassicalOrthoPoly1D.hh \ AbsClassicalOrthoPoly1D.icc \ absDifference.hh \ AbsMultivariateFunctor.hh \ AbsVisitor.hh \ allocators.hh \ areAllElementsUnique.hh \ ArrayND.hh \ ArrayND.icc \ ArrayNDScanner.hh \ ArrayRange.hh \ ArrayShape.hh \ bilinearSection.hh \ binomialCoefficient.hh \ BoxND.hh \ BoxND.icc \ BoxNDScanner.hh \ BoxNDScanner.icc \ CircularMapper1d.hh \ ClassicalOrthoPolys1D.hh \ closeWithinTolerance.hh \ CompareByIndex.hh \ ComplexComparesAbs.hh \ ComplexComparesFalse.hh \ ConstSubscriptMap.hh \ ContOrthoPoly1D.hh \ ContOrthoPoly1D.icc \ ConvolutionEngine1D.hh \ ConvolutionEngine1D.icc \ ConvolutionEngineND.hh \ ConvolutionEngineND.icc \ CoordinateSelector.hh \ definiteIntegrals.hh \ DiscreteBernsteinPoly1D.hh \ discretizedDistance.hh \ discretizedDistance.icc \ DualAxis.hh \ EigenMethod.hh \ EquidistantSequence.hh \ ExpMapper1d.hh \ FejerQuadrature.hh \ FejerQuadrature.icc \ fillArrayCentersPreservingAreas.hh \ findPeak2D.hh \ findRootInLogSpace.hh \ findRootInLogSpace.icc \ findRootNewtonRaphson.hh \ findRootNewtonRaphson.icc \ findRootUsingBisections.hh \ findRootUsingBisections.icc \ FourierImage.hh \ GaussHermiteQuadrature.hh \ GaussHermiteQuadrature.icc \ GaussLegendreQuadrature.hh \ GaussLegendreQuadrature.icc \ GeneralizedComplex.hh \ goldenSectionSearch.hh \ goldenSectionSearch.icc \ GridAxis.hh \ HeatEq1DNeumannBoundary.hh \ interpolate.hh \ interpolate.icc \ Interval.hh \ Interval.icc \ isMonotonous.hh \ KDTree.hh \ KDTree.icc \ lapack.h \ lapack_interface.hh \ lapack_interface.icc \ lapack_interface_double.icc \ + lapack_interface_ldouble.icc \ lapack_interface_float.icc \ LinearMapper1d.hh \ LinInterpolatedTable1D.hh \ LinInterpolatedTable1D.icc \ LinInterpolatedTableND.hh \ LinInterpolatedTableND.icc \ LogMapper1d.hh \ LongerType.hh \ MathUtils.hh \ MathUtils.icc \ Matrix.hh \ matrixIndexPairs.hh \ Matrix.icc \ MinSearchStatus1D.hh \ MultivariateFunctorScanner.hh \ OrthoPoly1D.hh \ OrthoPoly1D.icc \ OrthoPolyMethod.hh \ OrthoPolyND.hh \ OrthoPolyND.icc \ PairCompare.hh \ + performSchultzIteration.hh \ PointDimensionality.hh \ PreciseType.hh \ ProperDblFromCmpl.hh \ PtrBufferHandle.hh \ rectangleQuadrature.hh \ rescanArray.hh \ rescanArray.icc \ SemiInfGaussianQuadrature.hh \ SemiInfGaussianQuadrature.icc \ SimpleFunctors.hh \ SpecialFunctions.hh \ StorablePolySeries1D.hh \ SvdMethod.hh \ timestamp.hh \ Triple.hh \ truncatedInverseSqrt.hh \ UniformAxis.hh EXTRA_DIST = 00README.txt all: all-am .SUFFIXES: .SUFFIXES: .cc .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign npstat/nm/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign npstat/nm/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libnm.la: $(libnm_la_OBJECTS) $(libnm_la_DEPENDENCIES) $(EXTRA_libnm_la_DEPENDENCIES) $(AM_V_CXXLD)$(CXXLINK) $(libnm_la_OBJECTS) $(libnm_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c include ./$(DEPDIR)/AbsClassicalOrthoPoly1D.Plo include ./$(DEPDIR)/ArrayNDScanner.Plo include ./$(DEPDIR)/ArrayRange.Plo include ./$(DEPDIR)/ArrayShape.Plo include ./$(DEPDIR)/ClassicalOrthoPolys1D.Plo include ./$(DEPDIR)/ContOrthoPoly1D.Plo include ./$(DEPDIR)/ConvolutionEngine1D.Plo include ./$(DEPDIR)/ConvolutionEngineND.Plo include ./$(DEPDIR)/DiscreteBernsteinPoly1D.Plo include ./$(DEPDIR)/DualAxis.Plo include ./$(DEPDIR)/EigenMethod.Plo include ./$(DEPDIR)/EquidistantSequence.Plo include ./$(DEPDIR)/FejerQuadrature.Plo include ./$(DEPDIR)/FourierImage.Plo include ./$(DEPDIR)/GaussHermiteQuadrature.Plo include ./$(DEPDIR)/GaussLegendreQuadrature.Plo include ./$(DEPDIR)/GridAxis.Plo include ./$(DEPDIR)/HeatEq1DNeumannBoundary.Plo include ./$(DEPDIR)/LinInterpolatedTable1D.Plo include ./$(DEPDIR)/MathUtils.Plo include ./$(DEPDIR)/OrthoPoly1D.Plo include ./$(DEPDIR)/OrthoPolyMethod.Plo include ./$(DEPDIR)/SemiInfGaussianQuadrature.Plo include ./$(DEPDIR)/SpecialFunctions.Plo include ./$(DEPDIR)/StorablePolySeries1D.Plo include ./$(DEPDIR)/SvdMethod.Plo include ./$(DEPDIR)/UniformAxis.Plo include ./$(DEPDIR)/bilinearSection.Plo include ./$(DEPDIR)/binomialCoefficient.Plo include ./$(DEPDIR)/definiteIntegrals.Plo include ./$(DEPDIR)/findPeak2D.Plo include ./$(DEPDIR)/goldenSectionSearch.Plo include ./$(DEPDIR)/lapack_interface.Plo include ./$(DEPDIR)/matrixIndexPairs.Plo +include ./$(DEPDIR)/performSchultzIteration.Plo include ./$(DEPDIR)/rectangleQuadrature.Plo include ./$(DEPDIR)/timestamp.Plo include ./$(DEPDIR)/truncatedInverseSqrt.Plo .cc.o: $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po # $(AM_V_CXX)source='$<' object='$@' libtool=no \ # DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \ # $(AM_V_CXX_no)$(CXXCOMPILE) -c -o $@ $< .cc.obj: $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po # $(AM_V_CXX)source='$<' object='$@' libtool=no \ # DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \ # $(AM_V_CXX_no)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo # $(AM_V_CXX)source='$<' object='$@' libtool=yes \ # DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \ # $(AM_V_CXX_no)$(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) python-local: ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(includedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-includeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: python: python-am python-am: python-local uninstall-am: uninstall-includeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am \ install-includeHEADERS install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am python-am python-local \ tags tags-am uninstall uninstall-am uninstall-includeHEADERS .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: Index: trunk/npstat/nm/lapack_interface.icc =================================================================== --- trunk/npstat/nm/lapack_interface.icc (revision 708) +++ trunk/npstat/nm/lapack_interface.icc (revision 709) @@ -1,327 +1,328 @@ #include #include #include #include #include "npstat/nm/lapack.h" #include "npstat/nm/allocators.hh" namespace npstat { namespace Private { inline void check_lapack_status(const int INFO, const char* fcn1, const char* fcnlap) { if (INFO) { std::ostringstream os; os << "In npstat::" << fcn1 << ": LAPACK routine " << fcnlap << " failed with status " << INFO; throw std::runtime_error(os.str()); } } } template inline void invert_posdef_sym_matrix(const Numeric* /* in */, unsigned /* dim */, Numeric* /* out */) { throw std::invalid_argument( "In npstat::invert_posdef_sym_matrix: " "matrix inversion is not supported for this template parameter"); } template inline void invert_sym_matrix(const Numeric* /* in */, unsigned /* dim */, Numeric* /* out */) { throw std::invalid_argument( "In npstat::invert_sym_matrix: " "matrix inversion is not supported for this template parameter"); } template inline void invert_general_matrix(const Numeric* /* in */, unsigned /* dim */, Numeric* /* out */) { throw std::invalid_argument( "In npstat::invert_general_matrix: " "matrix inversion is not supported for this template parameter"); } template inline void invert_td_matrix(const Numeric* /* in */, unsigned /* dim */, Numeric* /* out */) { throw std::invalid_argument( "In npstat::invert_td_matrix: " "matrix inversion is not supported for this template parameter"); } template inline void sym_matrix_eigenvalues(const Numeric* /* in */, unsigned /* dim */, Numeric* /* eigenvalues */) { throw std::invalid_argument( "In npstat::sym_matrix_eigenvalues: calculation " "of eigenvalues is not supported for this template parameter"); } template inline void td_sym_matrix_eigenvalues(const Numeric* /* in */, unsigned /* dim */, Numeric* /* eigenvalues */) { throw std::invalid_argument( "In npstat::td_sym_matrix_eigenvalues: calculation " "of eigenvalues is not supported for this template parameter"); } template inline void gen_matrix_eigenvalues( const Numeric* /* in */, unsigned /* dim */, typename GeneralizedComplex::type * /* eigenvalues */) { throw std::invalid_argument( "In npstat::gen_matrix_eigenvalues: calculation " "of eigenvalues is not supported for this template parameter"); } template inline void sym_matrix_eigenvalues_dc(const Numeric* /* in */, unsigned /* dim */, Numeric* /* eigenvalues */) { throw std::invalid_argument( "In npstat::sym_matrix_eigenvalues_dc: calculation " "of eigenvalues is not supported for this template parameter"); } template inline void td_sym_matrix_eigenvalues_dc(const Numeric* /* in */, unsigned /* dim */, Numeric* /* eigenvalues */) { throw std::invalid_argument( "In npstat::td_sym_matrix_eigenvalues_dc: calculation " "of eigenvalues is not supported for this template parameter"); } template inline void sym_matrix_eigenvalues_rrr(const Numeric* /* in */, unsigned /* dim */, Numeric* /* eigenvalues */) { throw std::invalid_argument( "In npstat::sym_matrix_eigenvalues_rrr: calculation " "of eigenvalues is not supported for this template parameter"); } template inline void td_sym_matrix_eigenvalues_rrr(const Numeric* /* in */, unsigned /* dim */, Numeric* /* eigenvalues */) { throw std::invalid_argument( "In npstat::td_sym_matrix_eigenvalues_rrr: calculation " "of eigenvalues is not supported for this template parameter"); } template inline void sym_matrix_eigensystem(const Numeric* /* in */, unsigned /* dim */, Numeric* /* eigenvalues */, Numeric* /* eigenvectors */) { throw std::invalid_argument( "In npstat::sym_matrix_eigensystem: calculation " "of eigenvectors is not supported for this template parameter"); } template inline void td_sym_matrix_eigensystem(const Numeric* /* in */, unsigned /* dim */, Numeric* /* eigenvalues */, Numeric* /* eigenvectors */) { throw std::invalid_argument( "In npstat::td_sym_matrix_eigensystem: calculation " "of eigenvectors is not supported for this template parameter"); } template inline void gen_matrix_eigensystem( const Numeric* /* in */, unsigned /* dim */, typename GeneralizedComplex::type *, Numeric* /* rightEigenvectors */, Numeric* /* leftEigenvectors */) { throw std::invalid_argument( "In npstat::gen_matrix_eigensystem: calculation " "of eigenvectors is not supported for this template parameter"); } template inline void sym_matrix_eigensystem_dc(const Numeric* /* in */, unsigned /* dim */, Numeric* /* eigenvalues */, Numeric* /* eigenvectors */) { throw std::invalid_argument( "In npstat::sym_matrix_eigensystem_dc: calculation " "of eigenvectors is not supported for this template parameter"); } template inline void td_sym_matrix_eigensystem_dc(const Numeric* /* in */, unsigned /* dim */, Numeric* /* eigenvalues */, Numeric* /* eigenvectors */) { throw std::invalid_argument( "In npstat::td_sym_matrix_eigensystem_dc: calculation " "of eigenvectors is not supported for this template parameter"); } template inline void sym_matrix_eigensystem_rrr(const Numeric* /* in */, unsigned /* dim */, Numeric* /* eigenvalues */, Numeric* /* eigenvectors */) { throw std::invalid_argument( "In npstat::sym_matrix_eigensystem_rrr: calculation " "of eigenvectors is not supported for this template parameter"); } template inline void td_sym_matrix_eigensystem_rrr(const Numeric* /* in */, unsigned /* dim */, Numeric* /* eigenvalues */, Numeric* /* eigenvectors */) { throw std::invalid_argument( "In npstat::td_sym_matrix_eigensystem_rrr: calculation " "of eigenvectors is not supported for this template parameter"); } template inline Numeric lu_decomposition_matrix_det(const Numeric* /* in */, unsigned /* dim */) { throw std::invalid_argument( "In npstat::lu_decomposition_matrix_det: calculation " "of determinant is not supported for this template parameter"); } template inline bool solve_linear_system(const Numeric* /* in */, unsigned /* dim */, const Numeric* /* rhs */, Numeric* /* solution */) { throw std::invalid_argument( "In npstat::solve_linear_system: solution of " "linear systems is not supported for this template parameter"); } template inline bool solve_linear_systems(const Numeric* /* in */, unsigned /* nrows */, unsigned /* ncols */, const Numeric* /* rhs */, Numeric* /* solution */) { throw std::invalid_argument( "In npstat::solve_linear_systems: solution of " "linear systems is not supported for this template parameter"); } template inline bool linear_least_squares(const Numeric* /* in */, unsigned /* nrows */, unsigned /* ncols */, const Numeric* /* rhs */, Numeric* /* solution */) { throw std::invalid_argument( "In npstat::linear_least_squares: least squares solution of " "linear systems is not supported for this template parameter"); } template inline bool constrained_least_squares(const Numeric* /* mat */, unsigned /* nrows */, unsigned /* ncols */, const Numeric* /* rhs */, const Numeric* /* constraintMatrix */, unsigned /* constrRows */, unsigned /* constrCols */, const Numeric* /* constrRhs */, Numeric* /* solution */) { throw std::invalid_argument( "In npstat::constrained_least_squares: least squares " "solution of constrained linear systems is not supported " "for this template parameter"); } template inline bool gen_matrix_svd(const Numeric* /* in */, unsigned /* M */, unsigned /* N */, Numeric* /* U */, Numeric* /* singularValues */, Numeric* /* VT */) { throw std::invalid_argument( "In npstat::gen_matrix_svd: " "SVD is not supported for this template parameter"); } template inline bool gen_matrix_svd_dc(const Numeric* /* in */, unsigned /* M */, unsigned /* N */, Numeric* /* U */, Numeric* /* singularValues */, Numeric* /* VT */) { throw std::invalid_argument( "In npstat::gen_matrix_svd_dc: " "SVD is not supported for this template parameter"); } } #include "npstat/nm/lapack_interface_double.icc" +#include "npstat/nm/lapack_interface_ldouble.icc" #include "npstat/nm/lapack_interface_float.icc" /* Generate float interface from double as follows: rm -f lapack_interface_float.icc sed 's/long double/PRESERVE_THIS/g' lapack_interface_double.icc |\ sed 's/double/float/g' |\ sed 's/dgelsd/sgelsd/g' | sed 's/DGELSD/SGELSD/g' |\ sed 's/dgetrs_/sgetrs_/g' | sed 's/DGETRS/SGETRS/g' |\ sed 's/dgeev_/sgeev_/g' | sed 's/DGEEV/SGEEV/g' |\ sed 's/dsyev_/ssyev_/g' | sed 's/DSYEV/SSYEV/g' |\ sed 's/dsyevd_/ssyevd_/g' | sed 's/dsyevr_/ssyevr_/g' |\ sed 's/dstevr_/sstevr_/g' | sed 's/DSTEVR/SSTEVR/g' |\ sed 's/dgetrf_/sgetrf_/g' | sed 's/DGETRF/SGETRF/g' |\ sed 's/dpotrf_/spotrf_/g' | sed 's/DPOTRF/SPOTRF/g' |\ sed 's/dsytrf_/ssytrf_/g' | sed 's/DSYTRF/SSYTRF/g' |\ sed 's/dgetri_/sgetri_/g' | sed 's/DGETRI/SGETRI/g' |\ sed 's/dsytri_/ssytri_/g' | sed 's/DSYTRI/SSYTRI/g' |\ sed 's/dpotri_/spotri_/g' | sed 's/DPOTRI/SPOTRI/g' |\ sed 's/dgesvd_/sgesvd_/g' | sed 's/DGESVD/SGESVD/g' |\ sed 's/dgesdd_/sgesdd_/g' | sed 's/DGESDD/SGESDD/g' |\ sed 's/dgglse_/sgglse_/g' | sed 's/DGGLSE/SGGLSE/g' |\ sed 's/dggglm_/sggglm_/g' | sed 's/DGGGLM/SGGGLM/g' |\ sed 's/RCOND = 1.0e-12/RCOND = 1.0e-6/g' |\ sed 's/PRESERVE_THIS/long double/g' > lapack_interface_float.icc The names of the routines are in the lapack.h header */ Index: trunk/config.log =================================================================== --- trunk/config.log (revision 708) +++ trunk/config.log (revision 709) @@ -1,944 +1,943 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by npstat configure 5.2.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ ./configure --disable-static --with-pic ## --------- ## ## Platform. ## ## --------- ## hostname = dawn uname -m = x86_64 uname -r = 4.15.0-109-generic uname -s = Linux uname -v = #110-Ubuntu SMP Tue Jun 23 02:39:32 UTC 2020 /usr/bin/uname -p = unknown /bin/uname -X = unknown /bin/arch = unknown /usr/bin/arch -k = unknown /usr/convex/getsysinfo = unknown /usr/bin/hostinfo = unknown /bin/machine = unknown /usr/bin/oslevel = unknown /bin/universe = unknown PATH: /home/igv/bin PATH: /home/igv/local/bin -PATH: /home/igv/.local/bin PATH: /usr/local/anaconda3/bin PATH: /usr/local/bin PATH: /usr/local/root/bin PATH: /usr/local/bin PATH: /bin PATH: /usr/bin PATH: /sbin PATH: /usr/sbin PATH: . ## ----------- ## ## Core tests. ## ## ----------- ## configure:2421: checking for a BSD-compatible install configure:2489: result: /usr/bin/install -c configure:2500: checking whether build environment is sane configure:2555: result: yes configure:2706: checking for a thread-safe mkdir -p configure:2745: result: /bin/mkdir -p configure:2752: checking for gawk configure:2768: found /usr/bin/gawk configure:2779: result: gawk configure:2790: checking whether make sets $(MAKE) configure:2812: result: yes configure:2841: checking whether make supports nested variables configure:2858: result: yes configure:3042: checking for pkg-config configure:3060: found /usr/bin/pkg-config configure:3072: result: /usr/bin/pkg-config configure:3097: checking pkg-config is at least version 0.9.0 configure:3100: result: yes configure:3110: checking for DEPS configure:3117: $PKG_CONFIG --exists --print-errors "fftw3 >= 3.1.2 geners >= 1.3.0 kstest >= 2.0.0" configure:3120: $? = 0 configure:3134: $PKG_CONFIG --exists --print-errors "fftw3 >= 3.1.2 geners >= 1.3.0 kstest >= 2.0.0" configure:3137: $? = 0 configure:3195: result: yes configure:3258: checking for g++ configure:3274: found /usr/bin/g++ configure:3285: result: g++ configure:3312: checking for C++ compiler version configure:3321: g++ --version >&5 g++ (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. configure:3332: $? = 0 configure:3321: g++ -v >&5 Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper OFFLOAD_TARGET_NAMES=nvptx-none OFFLOAD_TARGET_DEFAULT=1 Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.5.0-3ubuntu1~18.04' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04) configure:3332: $? = 0 configure:3321: g++ -V >&5 g++: error: unrecognized command line option '-V' g++: fatal error: no input files compilation terminated. configure:3332: $? = 1 configure:3321: g++ -qversion >&5 g++: error: unrecognized command line option '-qversion'; did you mean '--version'? g++: fatal error: no input files compilation terminated. configure:3332: $? = 1 configure:3352: checking whether the C++ compiler works configure:3374: g++ -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5 configure:3378: $? = 0 configure:3426: result: yes configure:3429: checking for C++ compiler default output file name configure:3431: result: a.out configure:3437: checking for suffix of executables configure:3444: g++ -o conftest -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5 configure:3448: $? = 0 configure:3470: result: configure:3492: checking whether we are cross compiling configure:3500: g++ -o conftest -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5 configure:3504: $? = 0 configure:3511: ./conftest configure:3515: $? = 0 configure:3530: result: no configure:3535: checking for suffix of object files configure:3557: g++ -c -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5 configure:3561: $? = 0 configure:3582: result: o configure:3586: checking whether we are using the GNU C++ compiler configure:3605: g++ -c -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5 configure:3605: $? = 0 configure:3614: result: yes configure:3623: checking whether g++ accepts -g configure:3643: g++ -c -g conftest.cpp >&5 configure:3643: $? = 0 configure:3684: result: yes configure:3718: checking for style of include used by make configure:3746: result: GNU configure:3772: checking dependency style of g++ configure:3883: result: gcc3 configure:3952: checking for g77 configure:3968: found /home/igv/bin/g77 configure:3979: result: g77 configure:4005: checking for Fortran 77 compiler version configure:4014: g77 --version >&5 GNU Fortran (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. configure:4025: $? = 0 configure:4014: g77 -v >&5 Using built-in specs. COLLECT_GCC=g77 COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper OFFLOAD_TARGET_NAMES=nvptx-none OFFLOAD_TARGET_DEFAULT=1 Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.5.0-3ubuntu1~18.04' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04) configure:4025: $? = 0 configure:4014: g77 -V >&5 g77: error: unrecognized command line option '-V' g77: fatal error: no input files compilation terminated. configure:4025: $? = 1 configure:4014: g77 -qversion >&5 g77: error: unrecognized command line option '-qversion'; did you mean '--version'? g77: fatal error: no input files compilation terminated. configure:4025: $? = 1 configure:4034: checking whether we are using the GNU Fortran 77 compiler configure:4047: g77 -c conftest.F >&5 configure:4047: $? = 0 configure:4056: result: yes configure:4062: checking whether g77 accepts -g configure:4073: g77 -c -g conftest.f >&5 configure:4073: $? = 0 configure:4081: result: yes configure:4114: checking build system type configure:4128: result: x86_64-pc-linux-gnu configure:4148: checking host system type configure:4161: result: x86_64-pc-linux-gnu configure:4186: checking how to get verbose linking output from g77 configure:4196: g77 -c -g -O2 conftest.f >&5 configure:4196: $? = 0 configure:4214: g77 -o conftest -g -O2 -v conftest.f Using built-in specs. Target: x86_64-linux-gnu Thread model: posix gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04) - /usr/lib/gcc/x86_64-linux-gnu/7/f951 conftest.f -ffixed-form -quiet -dumpbase conftest.f -mtune=generic -march=x86-64 -auxbase conftest -g -O2 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/7/finclude -o /tmp/ccDHsVNM.s + /usr/lib/gcc/x86_64-linux-gnu/7/f951 conftest.f -ffixed-form -quiet -dumpbase conftest.f -mtune=generic -march=x86-64 -auxbase conftest -g -O2 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/7/finclude -o /tmp/ccDJLTrA.s GNU Fortran (Ubuntu 7.5.0-3ubuntu1~18.04) version 7.5.0 (x86_64-linux-gnu) compiled by GNU C version 7.5.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version isl-0.19-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 GNU Fortran2008 (Ubuntu 7.5.0-3ubuntu1~18.04) version 7.5.0 (x86_64-linux-gnu) compiled by GNU C version 7.5.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version isl-0.19-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 - as -v --64 -o /tmp/ccjIF6Zf.o /tmp/ccDHsVNM.s + as -v --64 -o /tmp/ccPRJUtL.o /tmp/ccDJLTrA.s GNU assembler version 2.30 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.30 Reading specs from /usr/lib/gcc/x86_64-linux-gnu/7/libgfortran.spec rename spec lib to liborig - /usr/lib/gcc/x86_64-linux-gnu/7/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper -plugin-opt=-fresolution=/tmp/ccIgk6cJ.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lquadmath -plugin-opt=-pass-through=-lm -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o conftest /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. /tmp/ccjIF6Zf.o -lgfortran -lm -lgcc_s -lgcc -lquadmath -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o + /usr/lib/gcc/x86_64-linux-gnu/7/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper -plugin-opt=-fresolution=/tmp/ccbfIIwW.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lquadmath -plugin-opt=-pass-through=-lm -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o conftest /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. /tmp/ccPRJUtL.o -lgfortran -lm -lgcc_s -lgcc -lquadmath -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o configure:4297: result: -v configure:4299: checking for Fortran 77 libraries of g77 configure:4322: g77 -o conftest -g -O2 -v conftest.f Using built-in specs. Target: x86_64-linux-gnu Thread model: posix gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04) - /usr/lib/gcc/x86_64-linux-gnu/7/f951 conftest.f -ffixed-form -quiet -dumpbase conftest.f -mtune=generic -march=x86-64 -auxbase conftest -g -O2 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/7/finclude -o /tmp/ccO4du7S.s + /usr/lib/gcc/x86_64-linux-gnu/7/f951 conftest.f -ffixed-form -quiet -dumpbase conftest.f -mtune=generic -march=x86-64 -auxbase conftest -g -O2 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/7/finclude -o /tmp/ccCNQJtD.s GNU Fortran (Ubuntu 7.5.0-3ubuntu1~18.04) version 7.5.0 (x86_64-linux-gnu) compiled by GNU C version 7.5.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version isl-0.19-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 GNU Fortran2008 (Ubuntu 7.5.0-3ubuntu1~18.04) version 7.5.0 (x86_64-linux-gnu) compiled by GNU C version 7.5.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version isl-0.19-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 - as -v --64 -o /tmp/cczYgJsm.o /tmp/ccO4du7S.s + as -v --64 -o /tmp/ccqrHcEO.o /tmp/ccCNQJtD.s GNU assembler version 2.30 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.30 Reading specs from /usr/lib/gcc/x86_64-linux-gnu/7/libgfortran.spec rename spec lib to liborig - /usr/lib/gcc/x86_64-linux-gnu/7/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper -plugin-opt=-fresolution=/tmp/cc42cPOP.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lquadmath -plugin-opt=-pass-through=-lm -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o conftest /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. /tmp/cczYgJsm.o -lgfortran -lm -lgcc_s -lgcc -lquadmath -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o + /usr/lib/gcc/x86_64-linux-gnu/7/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper -plugin-opt=-fresolution=/tmp/ccd4ZqPZ.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lquadmath -plugin-opt=-pass-through=-lm -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o conftest /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. /tmp/ccqrHcEO.o -lgfortran -lm -lgcc_s -lgcc -lquadmath -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o configure:4518: result: -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. -lgfortran -lm -lquadmath configure:4580: checking how to print strings configure:4607: result: printf configure:4676: checking for gcc configure:4692: found /usr/bin/gcc configure:4703: result: gcc configure:4932: checking for C compiler version configure:4941: gcc --version >&5 gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. configure:4952: $? = 0 configure:4941: gcc -v >&5 Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper OFFLOAD_TARGET_NAMES=nvptx-none OFFLOAD_TARGET_DEFAULT=1 Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.5.0-3ubuntu1~18.04' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04) configure:4952: $? = 0 configure:4941: gcc -V >&5 gcc: error: unrecognized command line option '-V' gcc: fatal error: no input files compilation terminated. configure:4952: $? = 1 configure:4941: gcc -qversion >&5 gcc: error: unrecognized command line option '-qversion'; did you mean '--version'? gcc: fatal error: no input files compilation terminated. configure:4952: $? = 1 configure:4956: checking whether we are using the GNU C compiler configure:4975: gcc -c conftest.c >&5 configure:4975: $? = 0 configure:4984: result: yes configure:4993: checking whether gcc accepts -g configure:5013: gcc -c -g conftest.c >&5 configure:5013: $? = 0 configure:5054: result: yes configure:5071: checking for gcc option to accept ISO C89 configure:5134: gcc -c -g -O2 conftest.c >&5 configure:5134: $? = 0 configure:5147: result: none needed configure:5172: checking whether gcc understands -c and -o together configure:5194: gcc -c conftest.c -o conftest2.o configure:5197: $? = 0 configure:5194: gcc -c conftest.c -o conftest2.o configure:5197: $? = 0 configure:5209: result: yes configure:5228: checking dependency style of gcc configure:5339: result: gcc3 configure:5354: checking for a sed that does not truncate output configure:5418: result: /bin/sed configure:5436: checking for grep that handles long lines and -e configure:5494: result: /bin/grep configure:5499: checking for egrep configure:5561: result: /bin/grep -E configure:5566: checking for fgrep configure:5628: result: /bin/grep -F configure:5663: checking for ld used by gcc configure:5730: result: /usr/bin/ld configure:5737: checking if the linker (/usr/bin/ld) is GNU ld configure:5752: result: yes configure:5764: checking for BSD- or MS-compatible name lister (nm) configure:5818: result: /usr/bin/nm -B configure:5948: checking the name lister (/usr/bin/nm -B) interface configure:5955: gcc -c -g -O2 conftest.c >&5 configure:5958: /usr/bin/nm -B "conftest.o" configure:5961: output 0000000000000000 B some_variable configure:5968: result: BSD nm configure:5971: checking whether ln -s works configure:5975: result: yes configure:5983: checking the maximum length of command line arguments configure:6114: result: 1572864 configure:6162: checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format configure:6202: result: func_convert_file_noop configure:6209: checking how to convert x86_64-pc-linux-gnu file names to toolchain format configure:6229: result: func_convert_file_noop configure:6236: checking for /usr/bin/ld option to reload object files configure:6243: result: -r configure:6317: checking for objdump configure:6333: found /usr/bin/objdump configure:6344: result: objdump configure:6376: checking how to recognize dependent libraries configure:6576: result: pass_all configure:6661: checking for dlltool configure:6691: result: no configure:6721: checking how to associate runtime and link libraries configure:6748: result: printf %s\n configure:6809: checking for ar configure:6825: found /usr/bin/ar configure:6836: result: ar configure:6873: checking for archiver @FILE support configure:6890: gcc -c -g -O2 conftest.c >&5 configure:6890: $? = 0 configure:6893: ar cru libconftest.a @conftest.lst >&5 ar: `u' modifier ignored since `D' is the default (see `U') configure:6896: $? = 0 configure:6901: ar cru libconftest.a @conftest.lst >&5 ar: `u' modifier ignored since `D' is the default (see `U') ar: conftest.o: No such file or directory configure:6904: $? = 1 configure:6916: result: @ configure:6974: checking for strip configure:6990: found /usr/bin/strip configure:7001: result: strip configure:7073: checking for ranlib configure:7089: found /usr/bin/ranlib configure:7100: result: ranlib configure:7202: checking command to parse /usr/bin/nm -B output from gcc object configure:7355: gcc -c -g -O2 conftest.c >&5 configure:7358: $? = 0 configure:7362: /usr/bin/nm -B conftest.o \| sed -n -e 's/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | sed '/ __gnu_lto/d' \> conftest.nm configure:7365: $? = 0 configure:7431: gcc -o conftest -g -O2 conftest.c conftstm.o >&5 configure:7434: $? = 0 configure:7472: result: ok configure:7519: checking for sysroot configure:7549: result: no configure:7556: checking for a working dd configure:7594: result: /bin/dd configure:7598: checking how to truncate binary pipes configure:7613: result: /bin/dd bs=4096 count=1 configure:7749: gcc -c -g -O2 conftest.c >&5 configure:7752: $? = 0 configure:7942: checking for mt configure:7958: found /bin/mt configure:7969: result: mt configure:7992: checking if mt is a manifest tool configure:7998: mt '-?' configure:8006: result: no configure:8683: checking how to run the C preprocessor configure:8714: gcc -E conftest.c configure:8714: $? = 0 configure:8728: gcc -E conftest.c conftest.c:11:10: fatal error: ac_nonexistent.h: No such file or directory #include ^~~~~~~~~~~~~~~~~~ compilation terminated. configure:8728: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "npstat" | #define PACKAGE_TARNAME "npstat" | #define PACKAGE_VERSION "5.2.0" | #define PACKAGE_STRING "npstat 5.2.0" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define PACKAGE "npstat" | #define VERSION "5.2.0" | /* end confdefs.h. */ | #include configure:8753: result: gcc -E configure:8773: gcc -E conftest.c configure:8773: $? = 0 configure:8787: gcc -E conftest.c conftest.c:11:10: fatal error: ac_nonexistent.h: No such file or directory #include ^~~~~~~~~~~~~~~~~~ compilation terminated. configure:8787: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "npstat" | #define PACKAGE_TARNAME "npstat" | #define PACKAGE_VERSION "5.2.0" | #define PACKAGE_STRING "npstat 5.2.0" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define PACKAGE "npstat" | #define VERSION "5.2.0" | /* end confdefs.h. */ | #include configure:8816: checking for ANSI C header files configure:8836: gcc -c -g -O2 conftest.c >&5 configure:8836: $? = 0 configure:8909: gcc -o conftest -g -O2 conftest.c >&5 configure:8909: $? = 0 configure:8909: ./conftest configure:8909: $? = 0 configure:8920: result: yes configure:8933: checking for sys/types.h configure:8933: gcc -c -g -O2 conftest.c >&5 configure:8933: $? = 0 configure:8933: result: yes configure:8933: checking for sys/stat.h configure:8933: gcc -c -g -O2 conftest.c >&5 configure:8933: $? = 0 configure:8933: result: yes configure:8933: checking for stdlib.h configure:8933: gcc -c -g -O2 conftest.c >&5 configure:8933: $? = 0 configure:8933: result: yes configure:8933: checking for string.h configure:8933: gcc -c -g -O2 conftest.c >&5 configure:8933: $? = 0 configure:8933: result: yes configure:8933: checking for memory.h configure:8933: gcc -c -g -O2 conftest.c >&5 configure:8933: $? = 0 configure:8933: result: yes configure:8933: checking for strings.h configure:8933: gcc -c -g -O2 conftest.c >&5 configure:8933: $? = 0 configure:8933: result: yes configure:8933: checking for inttypes.h configure:8933: gcc -c -g -O2 conftest.c >&5 configure:8933: $? = 0 configure:8933: result: yes configure:8933: checking for stdint.h configure:8933: gcc -c -g -O2 conftest.c >&5 configure:8933: $? = 0 configure:8933: result: yes configure:8933: checking for unistd.h configure:8933: gcc -c -g -O2 conftest.c >&5 configure:8933: $? = 0 configure:8933: result: yes configure:8947: checking for dlfcn.h configure:8947: gcc -c -g -O2 conftest.c >&5 configure:8947: $? = 0 configure:8947: result: yes configure:9214: checking for objdir configure:9229: result: .libs configure:9493: checking if gcc supports -fno-rtti -fno-exceptions configure:9511: gcc -c -g -O2 -fno-rtti -fno-exceptions conftest.c >&5 cc1: warning: command line option '-fno-rtti' is valid for C++/ObjC++ but not for C configure:9515: $? = 0 configure:9528: result: no configure:9886: checking for gcc option to produce PIC configure:9893: result: -fPIC -DPIC configure:9901: checking if gcc PIC flag -fPIC -DPIC works configure:9919: gcc -c -g -O2 -fPIC -DPIC -DPIC conftest.c >&5 configure:9923: $? = 0 configure:9936: result: yes configure:9965: checking if gcc static flag -static works configure:9993: result: yes configure:10008: checking if gcc supports -c -o file.o configure:10029: gcc -c -g -O2 -o out/conftest2.o conftest.c >&5 configure:10033: $? = 0 configure:10055: result: yes configure:10063: checking if gcc supports -c -o file.o configure:10110: result: yes configure:10143: checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries configure:11402: result: yes configure:11439: checking whether -lc should be explicitly linked in configure:11447: gcc -c -g -O2 conftest.c >&5 configure:11450: $? = 0 configure:11465: gcc -shared -fPIC -DPIC conftest.o -v -Wl,-soname -Wl,conftest -o conftest 2\>\&1 \| /bin/grep -lc \>/dev/null 2\>\&1 configure:11468: $? = 0 configure:11482: result: no configure:11642: checking dynamic linker characteristics configure:12223: gcc -o conftest -g -O2 -Wl,-rpath -Wl,/foo conftest.c >&5 configure:12223: $? = 0 configure:12460: result: GNU/Linux ld.so configure:12582: checking how to hardcode library paths into programs configure:12607: result: immediate configure:13155: checking whether stripping libraries is possible configure:13160: result: yes configure:13195: checking if libtool supports shared libraries configure:13197: result: yes configure:13200: checking whether to build shared libraries configure:13225: result: yes configure:13228: checking whether to build static libraries configure:13232: result: no configure:13255: checking how to run the C++ preprocessor configure:13282: g++ -E conftest.cpp configure:13282: $? = 0 configure:13296: g++ -E conftest.cpp conftest.cpp:23:10: fatal error: ac_nonexistent.h: No such file or directory #include ^~~~~~~~~~~~~~~~~~ compilation terminated. configure:13296: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "npstat" | #define PACKAGE_TARNAME "npstat" | #define PACKAGE_VERSION "5.2.0" | #define PACKAGE_STRING "npstat 5.2.0" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define PACKAGE "npstat" | #define VERSION "5.2.0" | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | /* end confdefs.h. */ | #include configure:13321: result: g++ -E configure:13341: g++ -E conftest.cpp configure:13341: $? = 0 configure:13355: g++ -E conftest.cpp conftest.cpp:23:10: fatal error: ac_nonexistent.h: No such file or directory #include ^~~~~~~~~~~~~~~~~~ compilation terminated. configure:13355: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "npstat" | #define PACKAGE_TARNAME "npstat" | #define PACKAGE_VERSION "5.2.0" | #define PACKAGE_STRING "npstat 5.2.0" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define PACKAGE "npstat" | #define VERSION "5.2.0" | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | /* end confdefs.h. */ | #include configure:13517: checking for ld used by g++ configure:13584: result: /usr/bin/ld -m elf_x86_64 configure:13591: checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld configure:13606: result: yes configure:13661: checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries configure:14734: result: yes configure:14770: g++ -c -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5 configure:14773: $? = 0 configure:15254: checking for g++ option to produce PIC configure:15261: result: -fPIC -DPIC configure:15269: checking if g++ PIC flag -fPIC -DPIC works configure:15287: g++ -c -std=c++11 -O3 -Wall -W -Werror -fPIC -DPIC -DPIC conftest.cpp >&5 configure:15291: $? = 0 configure:15304: result: yes configure:15327: checking if g++ static flag -static works configure:15355: result: yes configure:15367: checking if g++ supports -c -o file.o configure:15388: g++ -c -std=c++11 -O3 -Wall -W -Werror -o out/conftest2.o conftest.cpp >&5 configure:15392: $? = 0 configure:15414: result: yes configure:15419: checking if g++ supports -c -o file.o configure:15466: result: yes configure:15496: checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries configure:15536: result: yes configure:15677: checking dynamic linker characteristics configure:16422: result: GNU/Linux ld.so configure:16487: checking how to hardcode library paths into programs configure:16512: result: immediate configure:16653: checking if libtool supports shared libraries configure:16655: result: yes configure:16658: checking whether to build shared libraries configure:16682: result: yes configure:16685: checking whether to build static libraries configure:16689: result: no configure:17041: checking for g77 option to produce PIC configure:17048: result: -fPIC configure:17056: checking if g77 PIC flag -fPIC works configure:17074: g77 -c -g -O2 -fPIC conftest.f >&5 configure:17078: $? = 0 configure:17091: result: yes configure:17114: checking if g77 static flag -static works configure:17142: result: yes configure:17154: checking if g77 supports -c -o file.o configure:17175: g77 -c -g -O2 -o out/conftest2.o conftest.f >&5 configure:17179: $? = 0 configure:17201: result: yes configure:17206: checking if g77 supports -c -o file.o configure:17253: result: yes configure:17283: checking whether the g77 linker (/usr/bin/ld -m elf_x86_64) supports shared libraries configure:18492: result: yes configure:18633: checking dynamic linker characteristics configure:19372: result: GNU/Linux ld.so configure:19437: checking how to hardcode library paths into programs configure:19462: result: immediate configure:19662: checking that generated files are newer than configure configure:19668: result: done configure:19695: creating ./config.status ## ---------------------- ## ## Running config.status. ## ## ---------------------- ## This file was extended by npstat config.status 5.2.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = CONFIG_HEADERS = CONFIG_LINKS = CONFIG_COMMANDS = $ ./config.status on dawn config.status:1143: creating Makefile config.status:1143: creating npstat/nm/Makefile config.status:1143: creating npstat/rng/Makefile config.status:1143: creating npstat/stat/Makefile config.status:1143: creating npstat/wrap/Makefile config.status:1143: creating npstat/interfaces/Makefile config.status:1143: creating npstat/emsunfold/Makefile config.status:1143: creating npstat/Makefile config.status:1143: creating examples/C++/Makefile config.status:1143: creating npstat/swig/Makefile config.status:1143: creating npstat.pc config.status:1315: executing depfiles commands config.status:1315: executing libtool commands ## ---------------- ## ## Cache variables. ## ## ---------------- ## ac_cv_build=x86_64-pc-linux-gnu ac_cv_c_compiler_gnu=yes ac_cv_cxx_compiler_gnu=yes ac_cv_env_CCC_set= ac_cv_env_CCC_value= ac_cv_env_CC_set= ac_cv_env_CC_value= ac_cv_env_CFLAGS_set= ac_cv_env_CFLAGS_value= ac_cv_env_CPPFLAGS_set= ac_cv_env_CPPFLAGS_value= ac_cv_env_CPP_set= ac_cv_env_CPP_value= ac_cv_env_CXXCPP_set= ac_cv_env_CXXCPP_value= ac_cv_env_CXXFLAGS_set=set ac_cv_env_CXXFLAGS_value='-std=c++11 -O3 -Wall -W -Werror' ac_cv_env_CXX_set= ac_cv_env_CXX_value= ac_cv_env_DEPS_CFLAGS_set= ac_cv_env_DEPS_CFLAGS_value= ac_cv_env_DEPS_LIBS_set= ac_cv_env_DEPS_LIBS_value= ac_cv_env_F77_set= ac_cv_env_F77_value= ac_cv_env_FFLAGS_set= ac_cv_env_FFLAGS_value= ac_cv_env_LDFLAGS_set= ac_cv_env_LDFLAGS_value= ac_cv_env_LIBS_set= ac_cv_env_LIBS_value= ac_cv_env_LT_SYS_LIBRARY_PATH_set= ac_cv_env_LT_SYS_LIBRARY_PATH_value= ac_cv_env_PKG_CONFIG_LIBDIR_set= ac_cv_env_PKG_CONFIG_LIBDIR_value= ac_cv_env_PKG_CONFIG_PATH_set=set ac_cv_env_PKG_CONFIG_PATH_value=/usr/local/lib/pkgconfig ac_cv_env_PKG_CONFIG_set= ac_cv_env_PKG_CONFIG_value= ac_cv_env_build_alias_set= ac_cv_env_build_alias_value= ac_cv_env_host_alias_set= ac_cv_env_host_alias_value= ac_cv_env_target_alias_set= ac_cv_env_target_alias_value= ac_cv_f77_compiler_gnu=yes ac_cv_f77_libs=' -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. -lgfortran -lm -lquadmath' ac_cv_header_dlfcn_h=yes ac_cv_header_inttypes_h=yes ac_cv_header_memory_h=yes ac_cv_header_stdc=yes ac_cv_header_stdint_h=yes ac_cv_header_stdlib_h=yes ac_cv_header_string_h=yes ac_cv_header_strings_h=yes ac_cv_header_sys_stat_h=yes ac_cv_header_sys_types_h=yes ac_cv_header_unistd_h=yes ac_cv_host=x86_64-pc-linux-gnu ac_cv_objext=o ac_cv_path_EGREP='/bin/grep -E' ac_cv_path_FGREP='/bin/grep -F' ac_cv_path_GREP=/bin/grep ac_cv_path_SED=/bin/sed ac_cv_path_ac_pt_PKG_CONFIG=/usr/bin/pkg-config ac_cv_path_install='/usr/bin/install -c' ac_cv_path_lt_DD=/bin/dd ac_cv_path_mkdir=/bin/mkdir ac_cv_prog_AWK=gawk ac_cv_prog_CPP='gcc -E' ac_cv_prog_CXXCPP='g++ -E' ac_cv_prog_ac_ct_AR=ar ac_cv_prog_ac_ct_CC=gcc ac_cv_prog_ac_ct_CXX=g++ ac_cv_prog_ac_ct_F77=g77 ac_cv_prog_ac_ct_MANIFEST_TOOL=mt ac_cv_prog_ac_ct_OBJDUMP=objdump ac_cv_prog_ac_ct_RANLIB=ranlib ac_cv_prog_ac_ct_STRIP=strip ac_cv_prog_cc_c89= ac_cv_prog_cc_g=yes ac_cv_prog_cxx_g=yes ac_cv_prog_f77_g=yes ac_cv_prog_f77_v=-v ac_cv_prog_make_make_set=yes am_cv_CC_dependencies_compiler_type=gcc3 am_cv_CXX_dependencies_compiler_type=gcc3 am_cv_make_support_nested_variables=yes am_cv_prog_cc_c_o=yes lt_cv_ar_at_file=@ lt_cv_archive_cmds_need_lc=no lt_cv_deplibs_check_method=pass_all lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_ld_reload_flag=-r lt_cv_nm_interface='BSD nm' lt_cv_objdir=.libs lt_cv_path_LD=/usr/bin/ld lt_cv_path_LDCXX='/usr/bin/ld -m elf_x86_64' lt_cv_path_NM='/usr/bin/nm -B' lt_cv_path_mainfest_tool=no lt_cv_prog_compiler_c_o=yes lt_cv_prog_compiler_c_o_CXX=yes lt_cv_prog_compiler_c_o_F77=yes lt_cv_prog_compiler_pic='-fPIC -DPIC' lt_cv_prog_compiler_pic_CXX='-fPIC -DPIC' lt_cv_prog_compiler_pic_F77=-fPIC lt_cv_prog_compiler_pic_works=yes lt_cv_prog_compiler_pic_works_CXX=yes lt_cv_prog_compiler_pic_works_F77=yes lt_cv_prog_compiler_rtti_exceptions=no lt_cv_prog_compiler_static_works=yes lt_cv_prog_compiler_static_works_CXX=yes lt_cv_prog_compiler_static_works_F77=yes lt_cv_prog_gnu_ld=yes lt_cv_prog_gnu_ldcxx=yes lt_cv_sharedlib_from_linklib_cmd='printf %s\n' lt_cv_shlibpath_overrides_runpath=yes lt_cv_sys_global_symbol_pipe='sed -n -e '\''s/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p'\'' | sed '\''/ __gnu_lto/d'\''' lt_cv_sys_global_symbol_to_c_name_address='sed -n -e '\''s/^: \(.*\) .*$/ {"\1", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/ {"\1", (void *) \&\1},/p'\''' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='sed -n -e '\''s/^: \(.*\) .*$/ {"\1", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(lib.*\)$/ {"\1", (void *) \&\1},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/ {"lib\1", (void *) \&\1},/p'\''' lt_cv_sys_global_symbol_to_cdecl='sed -n -e '\''s/^T .* \(.*\)$/extern int \1();/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/extern char \1;/p'\''' lt_cv_sys_global_symbol_to_import= lt_cv_sys_max_cmd_len=1572864 lt_cv_to_host_file_cmd=func_convert_file_noop lt_cv_to_tool_file_cmd=func_convert_file_noop lt_cv_truncate_bin='/bin/dd bs=4096 count=1' pkg_cv_DEPS_CFLAGS=-I/usr/local/include pkg_cv_DEPS_LIBS='-L/usr/local/lib -lfftw3 -lgeners -lkstest' ## ----------------- ## ## Output variables. ## ## ----------------- ## ACLOCAL='${SHELL} /home/igv/Hepforge/npstat/trunk/missing aclocal-1.15' AMDEPBACKSLASH='\' AMDEP_FALSE='#' AMDEP_TRUE='' AMTAR='$${TAR-tar}' AM_BACKSLASH='\' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' AM_DEFAULT_VERBOSITY='1' AM_V='$(V)' AR='ar' AUTOCONF='${SHELL} /home/igv/Hepforge/npstat/trunk/missing autoconf' AUTOHEADER='${SHELL} /home/igv/Hepforge/npstat/trunk/missing autoheader' AUTOMAKE='${SHELL} /home/igv/Hepforge/npstat/trunk/missing automake-1.15' AWK='gawk' CC='gcc' CCDEPMODE='depmode=gcc3' CFLAGS='-g -O2' CPP='gcc -E' CPPFLAGS='' CXX='g++' CXXCPP='g++ -E' CXXDEPMODE='depmode=gcc3' CXXFLAGS='-std=c++11 -O3 -Wall -W -Werror' CYGPATH_W='echo' DEFS='-DPACKAGE_NAME=\"npstat\" -DPACKAGE_TARNAME=\"npstat\" -DPACKAGE_VERSION=\"5.2.0\" -DPACKAGE_STRING=\"npstat\ 5.2.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"npstat\" -DVERSION=\"5.2.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\"' DEPDIR='.deps' DEPS_CFLAGS='-I/usr/local/include' DEPS_LIBS='-L/usr/local/lib -lfftw3 -lgeners -lkstest' DLLTOOL='false' DSYMUTIL='' DUMPBIN='' ECHO_C='' ECHO_N='-n' ECHO_T='' EGREP='/bin/grep -E' EXEEXT='' F77='g77' FFLAGS='-g -O2' FGREP='/bin/grep -F' FLIBS=' -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. -lgfortran -lm -lquadmath' GREP='/bin/grep' INSTALL_DATA='${INSTALL} -m 644' INSTALL_PROGRAM='${INSTALL}' INSTALL_SCRIPT='${INSTALL}' INSTALL_STRIP_PROGRAM='$(install_sh) -c -s' LD='/usr/bin/ld -m elf_x86_64' LDFLAGS='' LIBOBJS='' LIBS='' LIBTOOL='$(SHELL) $(top_builddir)/libtool' LIPO='' LN_S='ln -s' LTLIBOBJS='' LT_SYS_LIBRARY_PATH='' MAKEINFO='${SHELL} /home/igv/Hepforge/npstat/trunk/missing makeinfo' MANIFEST_TOOL=':' MKDIR_P='/bin/mkdir -p' NM='/usr/bin/nm -B' NMEDIT='' OBJDUMP='objdump' OBJEXT='o' OTOOL64='' OTOOL='' PACKAGE='npstat' PACKAGE_BUGREPORT='' PACKAGE_NAME='npstat' PACKAGE_STRING='npstat 5.2.0' PACKAGE_TARNAME='npstat' PACKAGE_URL='' PACKAGE_VERSION='5.2.0' PATH_SEPARATOR=':' PKG_CONFIG='/usr/bin/pkg-config' PKG_CONFIG_LIBDIR='' PKG_CONFIG_PATH='/usr/local/lib/pkgconfig' RANLIB='ranlib' SED='/bin/sed' SET_MAKE='' SHELL='/bin/bash' STRIP='strip' VERSION='5.2.0' ac_ct_AR='ar' ac_ct_CC='gcc' ac_ct_CXX='g++' ac_ct_DUMPBIN='' ac_ct_F77='g77' am__EXEEXT_FALSE='' am__EXEEXT_TRUE='#' am__fastdepCC_FALSE='#' am__fastdepCC_TRUE='' am__fastdepCXX_FALSE='#' am__fastdepCXX_TRUE='' am__include='include' am__isrc='' am__leading_dot='.' am__nodep='_no' am__quote='' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' bindir='${exec_prefix}/bin' build='x86_64-pc-linux-gnu' build_alias='' build_cpu='x86_64' build_os='linux-gnu' build_vendor='pc' datadir='${datarootdir}' datarootdir='${prefix}/share' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' dvidir='${docdir}' exec_prefix='${prefix}' host='x86_64-pc-linux-gnu' host_alias='' host_cpu='x86_64' host_os='linux-gnu' host_vendor='pc' htmldir='${docdir}' includedir='${prefix}/include' infodir='${datarootdir}/info' install_sh='${SHELL} /home/igv/Hepforge/npstat/trunk/install-sh' libdir='${exec_prefix}/lib' libexecdir='${exec_prefix}/libexec' localedir='${datarootdir}/locale' localstatedir='${prefix}/var' mandir='${datarootdir}/man' mkdir_p='$(MKDIR_P)' oldincludedir='/usr/include' pdfdir='${docdir}' prefix='/usr/local' program_transform_name='s,x,x,' psdir='${docdir}' runstatedir='${localstatedir}/run' sbindir='${exec_prefix}/sbin' sharedstatedir='${prefix}/com' sysconfdir='${prefix}/etc' target_alias='' ## ----------- ## ## confdefs.h. ## ## ----------- ## /* confdefs.h */ #define PACKAGE_NAME "npstat" #define PACKAGE_TARNAME "npstat" #define PACKAGE_VERSION "5.2.0" #define PACKAGE_STRING "npstat 5.2.0" #define PACKAGE_BUGREPORT "" #define PACKAGE_URL "" #define PACKAGE "npstat" #define VERSION "5.2.0" #define STDC_HEADERS 1 #define HAVE_SYS_TYPES_H 1 #define HAVE_SYS_STAT_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRING_H 1 #define HAVE_MEMORY_H 1 #define HAVE_STRINGS_H 1 #define HAVE_INTTYPES_H 1 #define HAVE_STDINT_H 1 #define HAVE_UNISTD_H 1 #define HAVE_DLFCN_H 1 #define LT_OBJDIR ".libs/" configure: exit 0 Index: trunk/tests/test_Matrix.cc =================================================================== --- trunk/tests/test_Matrix.cc (revision 708) +++ trunk/tests/test_Matrix.cc (revision 709) @@ -1,1493 +1,1516 @@ #include #include #include "UnitTest++.h" #include "test_utils.hh" #include "npstat/nm/Matrix.hh" #include "npstat/nm/SimpleFunctors.hh" using namespace npstat; using namespace std; namespace { struct InverterD { inline double operator()(const double& d) const {return 1.0/d;} }; void fillRandomInts(Matrix& m, const int maxint) { const unsigned nRows = m.nRows(); const unsigned nCols = m.nColumns(); for (unsigned row=0; row& m, const double location=0.0, const double scale=1.0) { const unsigned nRows = m.nRows(); const unsigned nCols = m.nColumns(); for (unsigned row=0; row& m, const int maxint) { const unsigned nRows = m.nRows(); std::vector diag(nRows); for (unsigned i=0; i m1; Matrix m2; Matrix m3; Matrix m4(5, 5); Matrix m6(10, 10, 0); CHECK(m6.isDiagonal()); Matrix m7(10, 10, 1); CHECK(m7.isDiagonal()); Matrix > m8(10, 10, 0); Matrix > m9(10, 10, 1); Matrix > m10 = m9; CHECK_EQUAL(m9, m10); Matrix > m11(m9); CHECK_EQUAL(m9, m11); Matrix m12; CHECK(!m12.isDiagonal()); double data[] = {1, 2, 3}; m12.diagFill(data, sizeof(data)/sizeof(data[0])); CHECK(m12.isDiagonal()); } TEST(Matrix_equality) { Matrix m1(2,2,1); Matrix m2(2,2,0); CHECK_EQUAL(m1, m1); CHECK_EQUAL(false, m1 == m2); CHECK(m1 != m2); m2[0][0] = 1; m2[1][1] = 1; CHECK_EQUAL(m1, m2); } TEST(Matrix_Matrix_multiplication) { int a1[2][3] = {{1, 4, 2}, {2, 8, 13}}; int a2[3][4] = {{2, 5, -3, 8}, {8, 3, 16, 7}, {7, 4, 2, -3}}; int a3[2][4] = {{48, 25, 65, 30}, {159, 86, 148, 33}}; int a5[3][4] = {{6, 15, -9, 24}, {56, 21, 112, 49}, {77, 44, 22, -33}}; int a6[3][4] = {{6, 35, -33, 104}, {24, 21, 176, 91}, {21, 28, 22, -39}}; Matrix m1(2, 3, &a1[0][0]); Matrix m2(3, 4, &a2[0][0]); Matrix m3(2, 4, &a3[0][0]); Matrix m5(3, 4, &a5[0][0]); Matrix m6(3, 4, &a6[0][0]); CHECK(!m3.isDiagonal()); CHECK_EQUAL(-39, m6.minValue()); CHECK_EQUAL(176, m6.maxValue()); CHECK_EQUAL(176, m6.maxAbsValue()); CHECK(std::make_pair(2U,3U) == m6.argmin()); CHECK(std::make_pair(1U,2U) == m6.argmax()); CHECK(std::make_pair(1U,2U) == m6.argmaxAbs()); CHECK_EQUAL(m1*m1.T(), m1.timesT()); CHECK_EQUAL(m2*m2.T(), m2.timesT()); CHECK_EQUAL(m3*m3.T(), m3.timesT()); CHECK_EQUAL(m5*m5.T(), m5.timesT()); CHECK_EQUAL(m1.T()*m1, m1.TtimesThis()); CHECK_EQUAL(m2.T()*m2, m2.TtimesThis()); CHECK_EQUAL(m3.T()*m3, m3.TtimesThis()); CHECK_EQUAL(m5.T()*m5, m5.TtimesThis()); Matrix diag33(3, 3); Matrix diag44(4, 4); int idiag[4] = {3, 7, 11, 13}; diag33.diagFill(idiag, 3); diag44.diagFill(idiag, 4); CHECK(diag33.isDiagonal()); CHECK_EQUAL(diag33*diag33.T(), diag33.timesT()); CHECK_EQUAL(diag44*diag44.T(), diag44.timesT()); CHECK_EQUAL(diag33.T()*diag33, diag33.TtimesThis()); CHECK_EQUAL(diag44.T()*diag44, diag44.TtimesThis()); const Matrix& m6t = m6.T(); const Matrix& trtest = m5*m6t; CHECK_EQUAL(trtest.tr(), m5.productTr(m6t)); CHECK_EQUAL(trtest.tr(), m6t.productTr(m5)); CHECK_EQUAL(m3, m1*m2); CHECK_EQUAL(m5, diag33*m2); CHECK_EQUAL(m6, m2*diag44); Matrix temp; m1.times(m2, &temp); CHECK_EQUAL(m3, temp); diag33.times(m2, &temp); CHECK_EQUAL(m5, temp); m2.times(diag44, &temp); CHECK_EQUAL(m6, temp); int a4[3][3] = {{1, 4, 2}, {2, 8, 13}, {27, 33, 45}}; Matrix m4(3, 3, &a4[0][0]); CHECK(!m4.isDiagonal()); Matrix unit(3, 3, 1); CHECK_EQUAL(m4, m4*unit); CHECK_EQUAL(m4, unit*m4); } TEST(Matrix_Ttimes_1) { const unsigned nCycles = 1000; for (unsigned ic=0; ic m1(n, n); fillRandomDiag(m1, 100); Matrix m2(n, k); fillRandomInts(m2, 100); CHECK_EQUAL(m2.T()*m1, m2.Ttimes(m1)); CHECK_EQUAL(m1.T()*m2, m1.Ttimes(m2)); } } TEST(Matrix_Ttimes_2) { const unsigned nCycles = 1000; for (unsigned ic=0; ic m1(n, m); fillRandomInts(m1, 100); Matrix m2(n, k); fillRandomInts(m2, 100); CHECK_EQUAL(m1.T()*m2, m1.Ttimes(m2)); } } TEST(Matrix_timesT_1) { const unsigned nCycles = 1000; for (unsigned ic=0; ic m1(n, n); fillRandomDiag(m1, 100); Matrix m2(k, n); fillRandomInts(m2, 100); CHECK_EQUAL(m1*m2.T(), m1.timesT(m2)); CHECK_EQUAL(m2*m1.T(), m2.timesT(m1)); } } TEST(Matrix_timesT_2) { const unsigned nCycles = 1000; for (unsigned ic=0; ic m1(m, n); fillRandomInts(m1, 100); Matrix m2(k, n); fillRandomInts(m2, 100); CHECK_EQUAL(m1*m2.T(), m1.timesT(m2)); } } TEST(Matrix_directSum) { const int a1[2][3] = {{1, 4, 2}, {2, 8, 13}}; const Matrix m1(2, 3, &a1[0][0]); const int a2[4][1] = {{7}, {25}, {36}, {49}}; const Matrix m2(4, 1, &a2[0][0]); const int a3[6][4] = {{1, 4, 2, 0}, {2, 8, 13, 0}, {0, 0, 0, 7}, {0, 0, 0, 25}, {0, 0, 0, 36}, {0, 0, 0, 49}}; const Matrix m3(6, 4, &a3[0][0]); CHECK_EQUAL(m3, m1.directSum(m2)); const int a4[6][4] = {{ 7, 0, 0, 0}, {25, 0, 0, 0}, {36, 0, 0, 0}, {49, 0, 0, 0}, { 0, 1, 4, 2}, { 0, 2, 8, 13}}; const Matrix m4(6, 4, &a4[0][0]); CHECK_EQUAL(m4, m2.directSum(m1)); } TEST(Matrix_Vector_multiplication) { int a1[2][3] = {{1, 4, 2}, {2, 8, 13}}; unsigned a2[3] = {6, 3, 15}; int a3[2] = {48, 231}; Matrix m1(2, 3, &a1[0][0]); Matrix m2(3, 1, &a2[0]); Matrix m3(2, 1, &a3[0]); CHECK(m3 == m1*m2); CHECK_EQUAL(m3, m1.timesVector(a2, 3)); for (unsigned i=0; i<2; ++i) CHECK_EQUAL(m3[i][0], m1.timesVector(i, a2, 3)); int buf[2]; m1.timesVector(a2, 3, buf, 2); for (unsigned i=0; i<2; ++i) CHECK_EQUAL(m3[i][0], buf[i]); } TEST(Matrix_row_multiplication) { int a1[2][3] = {{1, 4, 2}, {2, 8, 13}}; unsigned a2[2] = {7, 11}; int a3[3] = {29, 116, 157}; Matrix m1(2, 3, &a1[0][0]); Matrix m2(1, 2, &a2[0]); Matrix m3(1, 3, &a3[0]); CHECK(m3 == m2*m1); CHECK_EQUAL(m3, m1.rowMultiply(a2, 2)); for (unsigned i=0; i<3; ++i) CHECK_EQUAL(m3[0][i], m1.rowMultiply(i, a2, 2)); int buf[3]; m1.rowMultiply(a2, 2, buf, 3); for (unsigned i=0; i<3; ++i) CHECK_EQUAL(m3[0][i], buf[i]); } TEST(Matrix_unary_ops) { int a1[2][3] = {{1, 2, 3}, {4, 5, 6}}; Matrix m1(2, 3, &a1[0][0]); CHECK_EQUAL(-m1, m1*(-1)); CHECK_EQUAL(+m1, m1); } TEST(Matrix_Const_ops) { int a1[2][3] = {{1, 2, 3}, {4, 5, 6}}; int a3[2][3] = {{5, 10, 15}, {20, 25, 30}}; Matrix m1(2, 3, &a1[0][0]); Matrix m3(2, 3, &a3[0][0]); Matrix m2 = m1*5; Matrix m4 = m1; m1 *= 5; CHECK_EQUAL(m1, m2); CHECK_EQUAL(m1, m3); m1 /= 5; CHECK_EQUAL(m1, m4); } TEST(Vector_Matrix_multiplication) { int a1[2][3] = {{1, 4, 2}, {2, 8, 13}}; int a2[2] = {3, 4}; int a3[3] = {11, 44, 58}; Matrix m1(2, 3, &a1[0][0]); Matrix m2(1, 2, &a2[0]); Matrix m3(1, 3, &a3[0]); CHECK_EQUAL(m3, m2*m1); } TEST(Matrix_transpose) { int a1[2][3] = {{1, 2, 3}, {4, 5, 6}}; int a2[3][2] = {{1, 4}, {2, 5}, {3, 6}}; int a3[3][3] = {{1, 2, 3}, {4, 5, 6}, {9, 8, 7}}; int a4[3][3] = {{1, 4, 9}, {2, 5, 8}, {3, 6, 7}}; Matrix m1(2, 3, &a1[0][0]); Matrix m2(3, 2, &a2[0][0]); Matrix m3(3, 3, &a3[0][0]); Matrix m4(3, 3, &a4[0][0]); CHECK_EQUAL(m2, m1.T()); CHECK_EQUAL(m4, m3.T()); m4.Tthis(); CHECK_EQUAL(m4, m3); } TEST(Matrix_transpose_2) { int a1[2][3] = {{1, 2, 3}, {4, 5, 6}}; int a2[3][2] = {{1, 4}, {2, 5}, {3, 6}}; int a3[3][3] = {{1, 2, 3}, {4, 5, 6}, {9, 8, 7}}; int a4[3][3] = {{1, 4, 9}, {2, 5, 8}, {3, 6, 7}}; Matrix m1(2, 3, &a1[0][0]); Matrix m2(3, 2, &a2[0][0]); Matrix m3(3, 3, &a3[0][0]); Matrix m4(3, 3, &a4[0][0]); CHECK_EQUAL(m2, m1.T()); CHECK_EQUAL(m4, m3.T()); m4.Tthis(); CHECK_EQUAL(m4, m3); } TEST(Matrix_Tthis) { const unsigned nCycles = 100; for (unsigned ic=0; ic m2(n, k); fillRandomInts(m2, 100); const Matrix mt = m2.T(); m2.Tthis(); CHECK_EQUAL(m2, mt); } } TEST(Matrix_pow) { Matrix m(3, 3); for (unsigned ntry=0; ntry<10; ++ntry) { for (unsigned i=0; i<3; ++i) for (unsigned j=0; j<3; ++j) m[i][j] = static_cast(test_rng()*100 - 50); CHECK_EQUAL(m.pow(0), Matrix(3, 3, 1)); CHECK_EQUAL(m.pow(1), m); CHECK_EQUAL(m.pow(2), m*m); CHECK_EQUAL(m.pow(3), m*m*m); CHECK_EQUAL(m.pow(4), m*m*m*m); } } TEST(Matrix_subtraction) { int a1[2][3] = {{1, 4, 2}, {2, 8, 13}}; int a2[2][3] = {{7, 5, 4}, {8, 3, -5}}; int a3[2][3] = {{-6, -1, -2,}, {-6, 5, 18}}; Matrix m1(2, 3, &a1[0][0]); Matrix m2(2, 3, &a2[0][0]); Matrix m3(2, 3, &a3[0][0]); CHECK_EQUAL(m3, m1 - m2); m1 -= m2; CHECK_EQUAL(m3, m1); } TEST(Matrix_addition) { int a1[2][3] = {{1, 4, 2}, {2, 8, 13}}; int a2[2][3] = {{7, 5, 4}, {8, 3, -5}}; int a3[2][3] = {{-6, -1, -2,}, {-6, 5, 18}}; Matrix m1(2, 3, &a1[0][0]); Matrix m2(2, 3, &a2[0][0]); Matrix m3(2, 3, &a3[0][0]); CHECK_EQUAL(m1, m3 + m2); CHECK_EQUAL(m1, m2 + m3); m3 += m2; CHECK_EQUAL(m1, m3); } TEST(Matrix_setRow) { double a1[3][3] = {{1, 4, 2}, {2, 8, 13}, {27, 33, 45}}; double a2[3][3] = {{1, 4, 2}, {2, 8, 13}, {-1, 6, 5}}; int arr[] = {-1, 6, 5}; Matrix m1(3, 3, &a1[0][0]); m1.setRow(2, &arr[0], 3); Matrix m2(3, 3, &a2[0][0]); CHECK_EQUAL(m1, m2); } TEST(Matrix_setColumn) { double a1[3][3] = {{1, 4, 2}, {2, 8, 13}, {27, 33, 45}}; double a2[3][3] = {{1, -1, 2}, {2, 6, 13}, {27, 5, 45}}; int arr[] = {-1, 6, 5}; Matrix m1(3, 3, &a1[0][0]); m1.setColumn(1, &arr[0], 3); Matrix m2(3, 3, &a2[0][0]); CHECK_EQUAL(m1, m2); } TEST(Matrix_symmetrize) { double a1[3][3] = {{1, 4, 2}, {2, 8, 13}, {27, 33, 45}}; double a2[3][3] = {{1, 3, 14.5}, {3, 8, 23}, {14.5, 23, 45}}; Matrix m1(3, 3, &a1[0][0]); Matrix m2(3, 3, &a2[0][0]); CHECK(!m1.isSymmetric()); CHECK(!m1.isAntiSymmetric()); CHECK(m1.symmetrize().isSymmetric()); CHECK(m1.antiSymmetrize().isAntiSymmetric()); CHECK_EQUAL(m1.symmetrize(), m2); CHECK_EQUAL((m1 + m1.T())/2.0, m1.symmetrize()); CHECK_EQUAL((m1 - m1.T())/2.0, m1.antiSymmetrize()); CHECK_EQUAL(m1, m1.symmetrize()+m1.antiSymmetrize()); } TEST(Matrix_bilinear_1) { double a1[3][3] = {{1, 4, 2}, {2, 8, 13}, {27, 33, 45}}; Matrix m1(3, 3, &a1[0][0]); double vec1[3] = {7, 11, 17}; double vec2[3] = {23, 29, 31}; CHECK_EQUAL(26537.0, m1.bilinear(vec1, 3)); CHECK_EQUAL(116535.0, m1.bilinear(vec2, 3)); } TEST(Matrix_bilinear_2) { const unsigned nCycles = 1000; for (unsigned ic=0; ic m1(n, n); fillRandomInts(m1, 100); Matrix m2(n, k); fillRandomInts(m2, 100); Matrix m3(k, k); fillRandomInts(m1, 100); CHECK_EQUAL(m2.T()*m1*m2, m1.bilinear(m2)); CHECK_EQUAL(m2*m3*m2.T(), m3.bilinearT(m2)); } } TEST(Matrix_bilinear_3) { const unsigned nCycles = 1000; for (unsigned ic=0; ic m1(n, n); fillRandomDiag(m1, 100); Matrix m2(n, k); fillRandomInts(m2, 100); Matrix m3(k, k); fillRandomDiag(m3, 100); CHECK_EQUAL(m2.T()*m1*m2, m1.bilinear(m2)); CHECK_EQUAL(m2*m3*m2.T(), m3.bilinearT(m2)); } } TEST(Matrix_bilinear_4) { const unsigned nCycles = 1000; for (unsigned ic=0; ic m1(n, n); fillRandomInts(m1, 100); Matrix m2(n, n); fillRandomDiag(m2, 100); CHECK_EQUAL(m2.T()*m1*m2, m1.bilinear(m2)); CHECK_EQUAL(m2*m1*m2.T(), m1.bilinearT(m2)); } } TEST(Matrix_bilinear_5) { const unsigned nCycles = 100; for (unsigned ic=0; ic m1(n, n); fillRandomDiag(m1, 100); Matrix m2(n, n); fillRandomDiag(m2, 100); CHECK_EQUAL(m2.T()*m1*m2, m1.bilinear(m2)); CHECK_EQUAL(m2*m1*m2.T(), m1.bilinearT(m2)); } } TEST(Matrix_trace_det) { double a1[3][3] = {{1, 4, 2}, {2, 8, 13}, {27, 33, 45}}; Matrix m1(3, 3, &a1[0][0]); CHECK_EQUAL(54.0, m1.sp()); CHECK_EQUAL(54.0, m1.tr()); CHECK_EQUAL(675.0, m1.det()); } TEST(Matrix_inverse_double) { + const double eps = 1.0e-10; + double a1[3][3] = {{4, 2.4, 9.0}, {2.4, 9, 10.5}, {9.0, 10.5, 25}}; double a2[3][3] = {{2.89772727273, 0.871212121212, -1.40909090909}, {0.871212121212, 0.479797979798, -0.515151515152}, {-1.40909090909, -0.515151515152, 0.763636363636}}; Matrix m1(3, 3, &a1[0][0]); Matrix m2(3, 3, &a2[0][0]); Matrix unit(3, 3, 1); - CHECK_CLOSE(0.0, (m1*m2 - unit).maxAbsValue(), 1.0e-10); - CHECK_CLOSE(0.0, (m1.symPDInv() - m2).maxAbsValue(), 1.0e-10); - CHECK_CLOSE(0.0, (m1.symPDEigenInv(1.e-12) - m2).maxAbsValue(), 1.0e-10); - CHECK_CLOSE(0.0, (m1.symInv() - m2).maxAbsValue(), 1.0e-10); - CHECK_CLOSE(0.0, (m1.inv() - m2).maxAbsValue(), 1.0e-10); - CHECK_CLOSE(0.0, (m1.symFcn(InverterD()) - m2).maxAbsValue(), 1.0e-10); + CHECK_CLOSE(0.0, (m1*m2 - unit).maxAbsValue(), eps); + CHECK_CLOSE(0.0, (m1.symPDInv() - m2).maxAbsValue(), eps); + CHECK_CLOSE(0.0, (m1.symPDEigenInv(1.e-12) - m2).maxAbsValue(), eps); + CHECK_CLOSE(0.0, (m1.symInv() - m2).maxAbsValue(), eps); + CHECK_CLOSE(0.0, (m1.inv() - m2).maxAbsValue(), eps); + CHECK_CLOSE(0.0, (m1.symFcn(InverterD()) - m2).maxAbsValue(), eps); + } + + TEST(Matrix_inverse_long_double) + { + const long double eps = 5.0e-16; + + long double a1[3][3] = {{4, 2.4, 9.0}, + {2.4, 9, 10.5}, + {9.0, 10.5, 25}}; + long double a2[3][3] = {{2.8977272727272727273L, 0.87121212121212121212L, -1.4090909090909090909L}, + {0.87121212121212121212L, 0.47979797979797979798L, -0.51515151515151515152L}, + -1.4090909090909090909L, -0.51515151515151515152L, 0.76363636363636363636L}; + Matrix m1(3, 3, &a1[0][0]); + Matrix m2(3, 3, &a2[0][0]); + Matrix unit(3, 3, 1); + CHECK_CLOSE(0.0, (m1*m2 - unit).maxAbsValue(), eps); + CHECK_CLOSE(0.0, (m1.symPDInv() - m2).maxAbsValue(), eps); + CHECK_CLOSE(0.0, (m1.symInv() - m2).maxAbsValue(), eps); + CHECK_CLOSE(0.0, (m1.inv() - m2).maxAbsValue(), eps); } TEST(Matrix_inverse_float) { + const float eps = 2.0e-6; + float a1[3][3] = {{4, 2.4, 9.0}, {2.4, 9, 10.5}, {9.0, 10.5, 25}}; float a2[3][3] = {{2.89772727273, 0.871212121212, -1.40909090909}, {0.871212121212, 0.479797979798, -0.515151515152}, {-1.40909090909, -0.515151515152, 0.763636363636}}; Matrix m1(3, 3, &a1[0][0]); Matrix m2(3, 3, &a2[0][0]); Matrix unit(3, 3, 1); - CHECK_CLOSE(0.0, (m1*m2 - unit).maxAbsValue(), 2.0e-6); - CHECK_CLOSE(0.0, (m1.symPDInv() - m2).maxAbsValue(), 2.0e-6); - CHECK_CLOSE(0.0, (m1.symPDEigenInv(1.e-7) - m2).maxAbsValue(), 2.0e-5); - CHECK_CLOSE(0.0, (m1.symInv() - m2).maxAbsValue(), 4.0e-6); - CHECK_CLOSE(0.0, (m1.inv() - m2).maxAbsValue(), 4.0e-6); + CHECK_CLOSE(0.0, (m1*m2 - unit).maxAbsValue(), eps); + CHECK_CLOSE(0.0, (m1.symPDInv() - m2).maxAbsValue(), eps); + CHECK_CLOSE(0.0, (m1.symPDEigenInv(1.e-7) - m2).maxAbsValue(), 10*eps); + CHECK_CLOSE(0.0, (m1.symInv() - m2).maxAbsValue(), 2*eps); + CHECK_CLOSE(0.0, (m1.inv() - m2).maxAbsValue(), 2*eps); } TEST(Matrix_triDiagInv_double) { const double eps = 1.0e-10; for (unsigned ncols=3; ncols<6; ++ncols) { const unsigned ncolsm1 = ncols - 1; const Matrix unit(ncols, ncols, 1); Matrix m(ncols, ncols, 0); for (unsigned i=0; i& inv = m.triDiagInv(); const Matrix& prod1 = inv*m; CHECK_CLOSE(0.0, (prod1 - unit).maxAbsValue(), eps); const Matrix& prod2 = m*inv; CHECK_CLOSE(0.0, (prod2 - unit).maxAbsValue(), eps); } } TEST(Matrix_triDiagInv_float) { const float eps = 1.0e-5; for (unsigned ncols=3; ncols<6; ++ncols) { const unsigned ncolsm1 = ncols - 1; const Matrix unit(ncols, ncols, 1); Matrix m(ncols, ncols, 0); for (unsigned i=0; i& inv = m.triDiagInv(); const Matrix& prod1 = inv*m; CHECK_CLOSE(0.f, (prod1 - unit).maxAbsValue(), eps); const Matrix& prod2 = m*inv; CHECK_CLOSE(0.f, (prod2 - unit).maxAbsValue(), eps); } } TEST(Matrix_leftInv) { const double eps = 1.0e-9; for (unsigned ncols=2; ncols<6; ++ncols) { const Matrix unit(ncols, ncols, 1); for (unsigned nrows=ncols; nrows<6; ++nrows) { Matrix m(nrows, ncols); fillRandomDoubles(m); const Matrix& inv = m.leftInv(); const Matrix& prod = inv*m; CHECK_CLOSE(0.0, (prod - unit).maxAbsValue(), eps); } } } TEST(Matrix_rightInv) { const double eps = 1.0e-9; for (unsigned nrows=2; nrows<6; ++nrows) { const Matrix unit(nrows, nrows, 1); for (unsigned ncols=nrows; ncols<6; ++ncols) { Matrix m(nrows, ncols); fillRandomDoubles(m); const Matrix& inv = m.rightInv(); const Matrix& prod = m*inv; CHECK_CLOSE(0.0, (prod - unit).maxAbsValue(), eps); } } } TEST(Matrix_covarToCorr) { double a1[2][2] = {{9.0, 10.5}, {10.5, 25.0}}; double a2[2][2] = {{1.0, 0.7}, {0.7, 1.0}}; Matrix m1(2, 2, &a1[0][0]); Matrix m2(2, 2, &a2[0][0]); Matrix m3(m1.covarToCorr()); CHECK_CLOSE(0.0, (m3 - m2).maxAbsValue(), 1.0e-15); double covs[2] = {9.0, 25.0}; Matrix m4(m3.corrToCovar(covs, 2)); CHECK_CLOSE(0.0, (m4 - m1).maxAbsValue(), 1.0e-15); } TEST(Matrix_coarseSum) { int a1[2][4] = {{1, 4, 2, 5}, {2, -10, 13, 11}}; int a2[2][2] = {{5, 7}, {-8, 24}}; int a3[1][4] = {{3, -6, 15, 16}}; int a4[2][1] = {{12}, {16}}; int a5[1][2] = {{-3, 31}}; Matrix m1(2, 4, &a1[0][0]); Matrix m2(2, 2, &a2[0][0]); Matrix m3(1, 4, &a3[0][0]); Matrix m4(2, 1, &a4[0][0]); Matrix m5(1, 2, &a5[0][0]); Matrix temp; m1.coarseSum(1, 1, &temp); CHECK(m1 == temp); m1.coarseSum(1, 2, &temp); CHECK(m2 == temp); m1.coarseSum(2, 1, &temp); CHECK_EQUAL(m3, temp); m1.coarseSum(1, 4, &temp); CHECK(m4 == temp); m1.coarseSum(2, 2, &temp); CHECK(m5 == temp); } TEST(Matrix_sqrt) { double a1[3][3] = {{4, 2.4, 9.0}, {2.4, 9, 10.5}, {9.0, 10.5, 25}}; Matrix m1(3, 3, &a1[0][0]); Matrix msqrt(m1.symFcn(FcnFunctor1(sqrt))); CHECK_CLOSE(0.0, (msqrt*msqrt - m1).maxAbsValue(), 1.0e-12); } TEST(Matrix_gen_eigensystem_double) { const unsigned ncycles = 5; const double eps = 1.0e-12; for (unsigned ndim = 2; ndim < 10; ++ndim) { vector > evalues(ndim); for (unsigned icycle = 0; icycle < ncycles; ++icycle) { Matrix m(ndim, ndim); for (unsigned row=0; row left(ndim, ndim); Matrix right(ndim, ndim); m.genEigen(&evalues[0], evalues.size(), &right, &left); bool firstComplex = true; for (unsigned i=0; i& prod = m.timesVector(right.data() + i*ndim, ndim); for (unsigned row=0; row& lprod = m.rowMultiply(left.data() + i*ndim, ndim); for (unsigned col=0; col > m2(m); vector > evec(ndim); for (unsigned j=0; j(*(right.data() + i*ndim + j), *(right.data() + (i+1)*ndim + j)); else evec[j] = complex(*(right.data() + (i-1)*ndim + j), -*(right.data() + i*ndim + j)); const Matrix >& prod = m2.timesVector(&evec[0], ndim); for (unsigned row=0; row(*(left.data() + i*ndim + j), -*(left.data() + (i+1)*ndim + j)); else evec[j] = complex(*(left.data() + (i-1)*ndim + j), *(left.data() + i*ndim + j)); const Matrix >& lprod = m2.rowMultiply(&evec[0], ndim); for (unsigned col=0; col > evalues(ndim); for (unsigned icycle = 0; icycle < ncycles; ++icycle) { Matrix m(ndim, ndim); for (unsigned row=0; row left(ndim, ndim); Matrix right(ndim, ndim); m.genEigen(&evalues[0], evalues.size(), &right, &left); bool firstComplex = true; for (unsigned i=0; i& prod = m.timesVector(right.data() + i*ndim, ndim); for (unsigned row=0; row& lprod = m.rowMultiply(left.data() + i*ndim, ndim); for (unsigned col=0; col > m2(m); vector > evec(ndim); for (unsigned j=0; j(*(right.data() + i*ndim + j), *(right.data() + (i+1)*ndim + j)); else evec[j] = complex(*(right.data() + (i-1)*ndim + j), -*(right.data() + i*ndim + j)); const Matrix >& prod = m2.timesVector(&evec[0], ndim); for (unsigned row=0; row(*(left.data() + i*ndim + j), -*(left.data() + (i+1)*ndim + j)); else evec[j] = complex(*(left.data() + (i-1)*ndim + j), *(left.data() + i*ndim + j)); const Matrix >& lprod = m2.rowMultiply(&evec[0], ndim); for (unsigned col=0; col m1(4, 4, &a1[0][0]); Matrix m2(4, 4); double eigenvalues[4]; m1.tdSymEigen(eigenvalues, 4, &m2); for (unsigned i=0; i<4; ++i) CHECK_CLOSE(evalues[i], eigenvalues[i], 1.0e-14); for (unsigned i=0; i<4; ++i) { double sum = 0.0; for (unsigned j=0; j<4; ++j) sum += a2[i][j]*a2[i][j]; sum = sqrt(sum); for (unsigned j=0; j<4; ++j) a2[i][j] /= sum; } for (unsigned i=0; i<4; ++i) { double ratio = 1.0; if (m2[i][0]*a2[i][0] < 0.0) ratio = -1.0; for (unsigned j=0; j<4; ++j) CHECK_CLOSE(ratio*a2[i][j], m2[i][j], 1.0e-13); } } TEST(Matrix_sym_eigensystem_double) { double a1[3][3] = {{4, 2.4, 9.0}, {2.4, 9, 10.5}, {9.0, 10.5, 25}}; double evalues[3] = {0.25663680988831909567, 4.6647571372875151856, 33.078606052824165719}; double a2[3][3] = {{-1.9833553555164647014, 1.5988627419919654596, 0.34836285960951042746}, {-0.6564919038536665325, -3.307143575299064186, 0.47079431584176874967}, { 1.0, 1.0, 1.0}}; Matrix m1(3, 3, &a1[0][0]); Matrix m2(3, 3); double eigenvalues[3]; m1.symEigen(eigenvalues, 3, NULL, EIGEN_RRR); for (unsigned i=0; i<3; ++i) CHECK_CLOSE(evalues[i], eigenvalues[i], 1.0e-14); m1.symEigen(eigenvalues, 3, NULL, EIGEN_D_AND_C); for (unsigned i=0; i<3; ++i) CHECK_CLOSE(evalues[i], eigenvalues[i], 1.0e-14); m1.symEigen(eigenvalues, 3, NULL); for (unsigned i=0; i<3; ++i) CHECK_CLOSE(evalues[i], eigenvalues[i], 1.0e-14); for (unsigned i=0; i<3; ++i) { double sum = 0.0; for (unsigned j=0; j<3; ++j) sum += a2[j][i]*a2[j][i]; sum = sqrt(sum); for (unsigned j=0; j<3; ++j) a2[j][i] /= sum; } m1.symEigen(eigenvalues, 3, &m2, EIGEN_RRR); for (unsigned i=0; i<3; ++i) CHECK_CLOSE(evalues[i], eigenvalues[i], 1.0e-13); for (unsigned i=0; i<3; ++i) { double ratio = 1.0; if (m2[i][0]*a2[0][i] < 0.0) ratio = -1.0; for (unsigned j=0; j<3; ++j) CHECK_CLOSE(ratio*a2[j][i], m2[i][j], 1.0e-13); } m1.symEigen(eigenvalues, 3, &m2, EIGEN_D_AND_C); for (unsigned i=0; i<3; ++i) CHECK_CLOSE(evalues[i], eigenvalues[i], 1.0e-14); for (unsigned i=0; i<3; ++i) { double ratio = 1.0; if (m2[i][0]*a2[0][i] < 0.0) ratio = -1.0; for (unsigned j=0; j<3; ++j) CHECK_CLOSE(ratio*a2[j][i], m2[i][j], 1.0e-14); } m1.symEigen(eigenvalues, 3, &m2); for (unsigned i=0; i<3; ++i) CHECK_CLOSE(evalues[i], eigenvalues[i], 1.0e-14); for (unsigned i=0; i<3; ++i) { double ratio = 1.0; if (m2[i][0]*a2[0][i] < 0.0) ratio = -1.0; for (unsigned j=0; j<3; ++j) CHECK_CLOSE(ratio*a2[j][i], m2[i][j], 1.0e-14); } Matrix m3(3, 3); m3.diagFill(eigenvalues, 3); CHECK((m2.T()*m3*m2 - m1).maxAbsValue() < 1.0e-13); Matrix m3U(3, 3, 1); CHECK((m2.T()*m2 - m3U).maxAbsValue() < 1.0e-13); CHECK((m2*m2.T() - m3U).maxAbsValue() < 1.0e-13); std::ostringstream os; m1.classId().write(os); m1.write(os); std::istringstream is(os.str()); gs::ClassId id(is, 1); Matrix readback; Matrix::restore(id, is, &readback); CHECK(readback == m1); } TEST(Matrix_nonzeros) { double ad[3][3] = {{4.0, 0.0, 9.0}, {-5.0, 9, 10.5}, {11.0, 3.5, 0.0}}; Matrix md(3, 3, &ad[0][0]); CHECK_EQUAL(7U, md.nonZeros()); } TEST(Matrix_least_squares_double) { double ad[3][2] = {{1., 7.}, {-2., 5.}, {3., 11.}}; Matrix md(3, 2, &ad[0][0]); double b[3] = {1., 2., 3.}; double sol[2]; CHECK(md.linearLeastSquares(b, 3, sol, 2)); CHECK_CLOSE(-11.0/61, sol[0], 1.0e-14); CHECK_CLOSE(52.0/183, sol[1], 1.0e-14); } TEST(Matrix_least_squares_float) { float ad[3][2] = {{1., 7.}, {-2., 5.}, {3., 11.}}; Matrix md(3, 2, &ad[0][0]); float b[3] = {1., 2., 3.}; float sol[2]; CHECK(md.linearLeastSquares(b, 3, sol, 2)); CHECK_CLOSE(-11.0/61, sol[0], 1.0e-6); CHECK_CLOSE(52.0/183, sol[1], 1.0e-6); } TEST(Matrix_weighted_least_squares_double) { const double eps = 1.0e-12; double ad[3][2] = {{1., 7.}, {-2., 5.}, {3., 11.}}; Matrix md(3, 2, &ad[0][0]); double b[3] = {1., 2., 3.}; double sol[2]; double chisq = 0.0; Matrix cov; Matrix vinv(3, 3, 0); vinv[0][0] = 1; vinv[1][1] = 1.0/4.0; vinv[2][2] = 1.0/25.0; double ecov[2][2] = {{2003/3598.0, -97/1799.0}, {-97/1799.0, 118/5397.0}}; Matrix expectedCov(2, 2, &ecov[0][0]); CHECK(md.weightedLeastSquares(b, 3, vinv, sol, 2, &chisq, &cov)); CHECK_CLOSE(-689/1799.0, sol[0], eps); CHECK_CLOSE(1172/5397.0, sol[1], eps); CHECK_CLOSE(800/5397.0, chisq, eps); CHECK((cov - expectedCov).maxAbsValue() < eps); } TEST(Matrix_underdeterminedLinearSystem_double_1) { double ad[3][3] = {{1., 1./5, 1./7}, {1./5, 2., 1./11}, {1./7, 1./11, 3.}}; Matrix V(3, 3, &ad[0][0]); Matrix constr(1, 3); constr[0][0] = 13; constr[0][1] = 17; constr[0][2] = -19; double cval[1] = {1.0 + 1.0/23.0}; double sol[3]; double chisq; Matrix A; const double eps = 1.0e-14; CHECK(constr.underdeterminedLinearSystem(cval, 1, V, sol, 3, &chisq, &A)); CHECK_CLOSE(31614.0/3960623, sol[0], eps); CHECK_CLOSE(80556.0/3960623, sol[1], eps); CHECK_CLOSE(-123810.0/3960623, sol[2], eps); CHECK_CLOSE(55440.0/91094329, chisq, eps); const Matrix& expectedA = V*constr.T()*(constr*V*constr.T()).symPDInv(); CHECK((A - expectedA).maxAbsValue() < eps); } TEST(Matrix_underdeterminedLinearSystem_double_2) { double ad[3][3] = {{1., 1./5, 1./7}, {1./5, 2., 1./11}, {1./7, 1./11, 3.}}; Matrix V(3, 3, &ad[0][0]); Matrix constr(2, 3); constr[0][0] = 13; constr[0][1] = 17; constr[0][2] = -19; constr[1][0] = 1; constr[1][1] = 1; constr[1][2] = 1; double cval[2] = {1.0 + 1.0/23.0, 1.5}; double sol[3]; double chisq; const double eps = 1.0e-14; CHECK(constr.underdeterminedLinearSystem(cval, 2, V, sol, 3, &chisq)); CHECK_CLOSE(1083077325.0/3483415504, sol[0], eps); CHECK_CLOSE(947968553.0/1741707752, sol[1], eps); CHECK_CLOSE(2246108825.0/3483415504, sol[2], eps); CHECK_CLOSE(105821683275.0/320474226368, chisq, eps); } TEST(Matrix_constrained_least_squares_double) { double ad[4][2] = {{1., 7.}, {-2., 5.}, {3., 11.}, {-1., 1.}}; Matrix md(4, 2, &ad[0][0]); double b[4] = {1., 2., 3., 4.}; double sol[2]; Matrix constr(1, 2); constr[0][0] = 1; constr[0][1] = 1; double d[1] = {-422.0/2099}; double chisq; // The following call will invoke the Lapack algorithm CHECK(md.constrainedLeastSquares(b, 4, constr, d, 1, sol, 2, &chisq)); CHECK_CLOSE(-1174.0/2099, sol[0], 1.0e-14); CHECK_CLOSE(752.0/2099, sol[1], 1.0e-14); CHECK_CLOSE(24710.0/2099, chisq, 1.0e-13); // The following call will invoke the "textbook" algorithm double sol0[2]; Matrix cov0, cov, proj, A; CHECK(md.constrainedLeastSquares(b, 4, constr, d, 1, sol, 2, &chisq, &cov, sol0, &cov0, &proj, &A)); CHECK_CLOSE(-1174.0/2099, sol[0], 1.0e-14); CHECK_CLOSE(752.0/2099, sol[1], 1.0e-14); CHECK_CLOSE(24710.0/2099, chisq, 1.0e-13); const Matrix& expSol = proj*Matrix(2, 1, sol0) + A*Matrix(1, 1, d); CHECK_CLOSE(expSol[0][0], sol[0], 1.0e-14); CHECK_CLOSE(expSol[1][0], sol[1], 1.0e-14); const Matrix& expCov = proj * cov0 * proj.T(); CHECK((cov - expCov).maxAbsValue() < 1.0e-13); } TEST(Matrix_linear_system_double) { static const double eps = 1.0e-14; double a1[2][2] = {{2, 3}, {6, 9}}; Matrix m1(2, 2, &a1[0][0]); double rhs1[2] = {1, 2}; double solution[3]; CHECK_EQUAL(false, m1.solveLinearSystem(rhs1, 2, solution)); double a2[3][3] = {{4.0, 7.0, 9.0}, {-5.0, 9, 10.5}, {11.0, 3.5, 25}}; Matrix m2(3, 3, &a2[0][0]); for (unsigned i=0; i<3; ++i) for (unsigned j=0; j<3; ++j) CHECK_EQUAL(m2[i][j], a2[i][j]); double x[3] = {1.0, 2.0, 3.0}; const Matrix& rhs2 = m2.timesVector(x, 3); CHECK_EQUAL(true, m2.solveLinearSystem(rhs2.data(), 3, solution)); for (unsigned j=0; j<3; ++j) CHECK_CLOSE(x[j], solution[j], eps); double y[3] = {7.0, 1.0, 3.0}; const Matrix& rhs3 = m2.timesVector(y, 3); CHECK_EQUAL(true, m2.solveLinearSystem(rhs3.data(), 3, solution)); for (unsigned j=0; j<3; ++j) CHECK_CLOSE(y[j], solution[j], eps); Matrix rhs4(3, 2); for (unsigned row=0; row<3; ++row) rhs4[row][0] = rhs2.data()[row]; for (unsigned row=0; row<3; ++row) rhs4[row][1] = rhs3.data()[row]; Matrix sol; m2.solveLinearSystems(rhs4, &sol); for (unsigned row=0; row<3; ++row) CHECK_CLOSE(x[row], sol[row][0], eps); for (unsigned row=0; row<3; ++row) CHECK_CLOSE(y[row], sol[row][1], eps); } TEST(Matrix_linear_system_float) { float a1[2][2] = {{2, 3}, {6, 9}}; Matrix m1(2, 2, &a1[0][0]); float rhs1[2] = {1, 2}; float solution[3]; CHECK_EQUAL(false, m1.solveLinearSystem(rhs1, 2, solution)); float a2[3][3] = {{4.0, 7.0, 9.0}, {-5.0, 9, 10.5}, {11.0, 3.5, 25}}; float x[3] = {1.0, 2.0, 3.0}; Matrix m2(3, 3, &a2[0][0]); Matrix rhs2(m2.timesVector(x, 3)); CHECK_EQUAL(true, m2.solveLinearSystem(rhs2.data(), 3, solution)); for (unsigned j=0; j<3; ++j) CHECK_CLOSE(x[j], solution[j], 1.0e-6); } TEST(Matrix_svd_double) { const double eps = 1.0e-12; double a1[3][4] = {{2., 5., -3., 8.}, {8., 3., 16., 7.}, {7., 4., 2., -11.}}; Matrix m1(3, 4, &a1[0][0]); double svalues[3]; Matrix U, V; m1.svd(svalues, 3, &U, &V, SVD_SIMPLE); const Matrix& UT = U.T(); const Matrix& m1svd = UT*diag(svalues, 3, 4)*V; const Matrix& delta = m1svd - m1; CHECK(delta.maxAbsValue() < eps); Matrix u3(3, 3, 1); Matrix u4(4, 4, 1); CHECK((UT*U - u3).maxAbsValue() < eps); CHECK((U*UT - u3).maxAbsValue() < eps); CHECK((V.T()*V - u4).maxAbsValue() < eps); CHECK((V*V.T() - u4).maxAbsValue() < eps); // Check singular vectors const Matrix& mt = m1.T(); for (unsigned i=0; i<3; ++i) { const Matrix& mv = m1.timesVector(V[i], V.nColumns()); Matrix u(3, 1, U[i]); CHECK((u*svalues[i] - mv).maxAbsValue() < eps); const Matrix& mtu = mt.timesVector(U[i], U.nColumns()); Matrix v(4, 1, V[i]); CHECK((v*svalues[i] - mtu).maxAbsValue() < eps); } CHECK(m1.timesVector(V[3], V.nColumns()).maxAbsValue() < eps); } TEST(Matrix_svd_double_2) { const double eps = 1.0e-12; double a1[3][4] = {{2., 5., -3., 8.}, {8., 3., 16., 7.}, {7., 4., 2., -11.}}; Matrix m1(3, 4, &a1[0][0]); double svalues[3]; Matrix U, V; m1.svd(svalues, 3, &U, &V, SVD_D_AND_C); const Matrix& UT = U.T(); const Matrix& m1svd = UT*diag(svalues, 3, 4)*V; const Matrix& delta = m1svd - m1; CHECK(delta.maxAbsValue() < 1.0e-12); Matrix u3(3, 3, 1); Matrix u4(4, 4, 1); CHECK((UT*U - u3).maxAbsValue() < eps); CHECK((U*UT - u3).maxAbsValue() < eps); CHECK((V.T()*V - u4).maxAbsValue() < eps); CHECK((V*V.T() - u4).maxAbsValue() < eps); // Check singular vectors const Matrix& mt = m1.T(); for (unsigned i=0; i<3; ++i) { const Matrix& mv = m1.timesVector(V[i], V.nColumns()); Matrix u(3, 1, U[i]); CHECK((u*svalues[i] - mv).maxAbsValue() < eps); const Matrix& mtu = mt.timesVector(U[i], U.nColumns()); Matrix v(4, 1, V[i]); CHECK((v*svalues[i] - mtu).maxAbsValue() < eps); } CHECK(m1.timesVector(V[3], V.nColumns()).maxAbsValue() < eps); } TEST(Matrix_svd_float) { float a1[3][4] = {{2., 5., -3., 8.}, {8., 3., 16., 7.}, {7., 4., 2., -3.}}; Matrix m1(3, 4, &a1[0][0]); float svalues[3]; Matrix U, V; m1.svd(svalues, 3, &U, &V, SVD_SIMPLE); const Matrix& m1svd = U.T()*diag(svalues, 3, 4)*V; const Matrix& delta = m1svd - m1; CHECK(delta.maxAbsValue() < 1.0e-5); } TEST(Matrix_svd_float_2) { float a1[3][4] = {{2., 5., -3., 8.}, {8., 3., 16., 7.}, {7., 4., 2., -3.}}; Matrix m1(3, 4, &a1[0][0]); float svalues[3]; Matrix U, V; m1.svd(svalues, 3, &U, &V, SVD_D_AND_C); const Matrix& m1svd = U.T()*diag(svalues, 3, 4)*V; const Matrix& delta = m1svd - m1; CHECK(delta.maxAbsValue() < 1.0e-5); } TEST(Matrix_eigensystem_float) { float a1[3][3] = {{4, 2.4, 9.0}, {2.4, 9, 10.5}, {9.0, 10.5, 25}}; float evalues[3] = {0.25663680988831909567, 4.6647571372875151856, 33.078606052824165719}; float a2[3][3] = {{-1.9833553555164647014, 1.5988627419919654596, 0.34836285960951042746}, {-0.6564919038536665325, -3.307143575299064186, 0.47079431584176874967}, { 1.0, 1.0, 1.0}}; Matrix m1(3, 3, &a1[0][0]); Matrix m2(3, 3); float eigenvalues[3]; m1.symEigen(eigenvalues, 3, NULL, EIGEN_RRR); for (unsigned i=0; i<3; ++i) CHECK_CLOSE(evalues[i], eigenvalues[i], 1.0e-5); m1.symEigen(eigenvalues, 3, NULL, EIGEN_D_AND_C); for (unsigned i=0; i<3; ++i) CHECK_CLOSE(evalues[i], eigenvalues[i], 1.0e-5); m1.symEigen(eigenvalues, 3, NULL); for (unsigned i=0; i<3; ++i) CHECK_CLOSE(evalues[i], eigenvalues[i], 1.0e-5); for (unsigned i=0; i<3; ++i) { float sum = 0.0; for (unsigned j=0; j<3; ++j) sum += a2[j][i]*a2[j][i]; sum = sqrt(sum); for (unsigned j=0; j<3; ++j) a2[j][i] /= sum; } m1.symEigen(eigenvalues, 3, &m2, EIGEN_RRR); for (unsigned i=0; i<3; ++i) CHECK_CLOSE(evalues[i], eigenvalues[i], 1.0e-4); for (unsigned i=0; i<3; ++i) { float ratio = 1.0; if (m2[i][0]*a2[0][i] < 0.0) ratio = -1.0; for (unsigned j=0; j<3; ++j) CHECK_CLOSE(ratio*a2[j][i], m2[i][j], 1.0e-4); } m1.symEigen(eigenvalues, 3, &m2, EIGEN_D_AND_C); for (unsigned i=0; i<3; ++i) CHECK_CLOSE(evalues[i], eigenvalues[i], 1.0e-5); for (unsigned i=0; i<3; ++i) { float ratio = 1.0; if (m2[i][0]*a2[0][i] < 0.0) ratio = -1.0; for (unsigned j=0; j<3; ++j) CHECK_CLOSE(ratio*a2[j][i], m2[i][j], 1.0e-5); } m1.symEigen(eigenvalues, 3, &m2); for (unsigned i=0; i<3; ++i) CHECK_CLOSE(evalues[i], eigenvalues[i], 1.0e-5); for (unsigned i=0; i<3; ++i) { float ratio = 1.0; if (m2[i][0]*a2[0][i] < 0.0) ratio = -1.0; for (unsigned j=0; j<3; ++j) CHECK_CLOSE(ratio*a2[j][i], m2[i][j], 1.0e-5); } } TEST(Matrix_symPSDefEffectiveRank) { for (unsigned dim=1; dim<20; ++dim) { const double ddim = dim; const Matrix m(dim, dim, 1); const double effR = m.symPSDefEffectiveRank(); CHECK_CLOSE(ddim, effR, 1.0e-12); } } TEST(Matrix_removeRowAndColumn) { const unsigned nrows = 4; const unsigned ncols = 3; Matrix m(nrows, ncols); for (unsigned row=0; row& rm = m.removeRowAndColumn( removedRow, removedCol); if (removedRow < nrows) CHECK_EQUAL(nrows-1, rm.nRows()); else CHECK_EQUAL(nrows, rm.nRows()); if (removedCol < ncols) CHECK_EQUAL(ncols-1, rm.nColumns()); else CHECK_EQUAL(ncols, rm.nColumns()); for (unsigned row=0; row removedRow) --torow; if (col > removedCol) --tocol; CHECK_EQUAL(m[row][col], rm.at(torow, tocol)); } } } } Index: trunk/autom4te.cache/requests =================================================================== --- trunk/autom4te.cache/requests (revision 708) +++ trunk/autom4te.cache/requests (revision 709) @@ -1,739 +1,739 @@ # This file was generated by Autom4te Sun Aug 20 23:09:08 UTC 2017. # It contains the lists of macros which have been traced. # It can be safely removed. @request = ( bless( [ '0', 1, [ '/usr/share/autoconf' ], [ '/usr/share/autoconf/autoconf/autoconf.m4f', '-', '/usr/share/aclocal-1.15/internal/ac-config-macro-dirs.m4', '/usr/share/aclocal/pkg.m4', '/usr/share/aclocal-1.15/amversion.m4', '/usr/share/aclocal-1.15/auxdir.m4', '/usr/share/aclocal-1.15/cond.m4', '/usr/share/aclocal-1.15/depend.m4', '/usr/share/aclocal-1.15/depout.m4', '/usr/share/aclocal-1.15/init.m4', '/usr/share/aclocal-1.15/install-sh.m4', '/usr/share/aclocal-1.15/lead-dot.m4', '/usr/share/aclocal-1.15/make.m4', '/usr/share/aclocal-1.15/missing.m4', '/usr/share/aclocal-1.15/options.m4', '/usr/share/aclocal-1.15/prog-cc-c-o.m4', '/usr/share/aclocal-1.15/runlog.m4', '/usr/share/aclocal-1.15/sanity.m4', '/usr/share/aclocal-1.15/silent.m4', '/usr/share/aclocal-1.15/strip.m4', '/usr/share/aclocal-1.15/substnot.m4', '/usr/share/aclocal-1.15/tar.m4', 'm4/libtool.m4', 'm4/ltoptions.m4', 'm4/ltsugar.m4', 'm4/ltversion.m4', 'm4/lt~obsolete.m4', 'configure.ac' ], { - 'LT_OUTPUT' => 1, - 'AC_PROG_LD_GNU' => 1, - 'AM_MISSING_PROG' => 1, - 'AC_PROG_LD_RELOAD_FLAG' => 1, - '_AC_AM_CONFIG_HEADER_HOOK' => 1, - 'AC_CHECK_LIBM' => 1, - 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, - 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, - 'AC_LTDL_ENABLE_INSTALL' => 1, + 'AC_DEPLIBS_CHECK_METHOD' => 1, + '_LT_COMPILER_OPTION' => 1, 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, + 'LT_INIT' => 1, + 'AC_LIBTOOL_PICMODE' => 1, + 'LT_LIB_M' => 1, + '_AM_DEPENDENCIES' => 1, + 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, + 'LT_SYS_DLOPEN_SELF' => 1, + 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, + 'm4_pattern_forbid' => 1, + 'LT_AC_PROG_RC' => 1, 'AC_LIBTOOL_DLOPEN_SELF' => 1, - 'AC_PROG_LIBTOOL' => 1, - '_LT_AC_LANG_C_CONFIG' => 1, - 'AM_SUBST_NOTMAKE' => 1, - 'AM_AUTOMAKE_VERSION' => 1, - 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, - 'AM_MAKE_INCLUDE' => 1, - 'AC_PROG_EGREP' => 1, - '_LT_AC_TAGVAR' => 1, - '_LT_AC_LANG_GCJ_CONFIG' => 1, + 'AM_MISSING_HAS_RUN' => 1, 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, - 'AC_DEFUN_ONCE' => 1, - '_LT_AC_FILE_LTDLL_C' => 1, - 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, - '_LT_LINKER_BOILERPLATE' => 1, + '_LT_PROG_F77' => 1, + 'AM_SILENT_RULES' => 1, + 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, + '_LT_AC_LOCK' => 1, + 'AC_LIBTOOL_WIN32_DLL' => 1, + '_LT_AC_LANG_GCJ' => 1, + 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, + '_LT_PROG_CXX' => 1, + 'AC_PATH_MAGIC' => 1, + 'AC_ENABLE_FAST_INSTALL' => 1, + 'AM_DISABLE_STATIC' => 1, + 'LT_PATH_LD' => 1, + 'AC_PROG_NM' => 1, '_LT_AC_LANG_F77' => 1, - '_LT_DLL_DEF_P' => 1, - '_LT_PROG_FC' => 1, - 'AC_PATH_TOOL_PREFIX' => 1, - 'PKG_PROG_PKG_CONFIG' => 1, - 'AM_PROG_LIBTOOL' => 1, - 'LT_PATH_NM' => 1, - '_LT_AC_LANG_CXX_CONFIG' => 1, - '_AM_DEPENDENCIES' => 1, - 'LT_LANG' => 1, - 'AM_ENABLE_STATIC' => 1, - 'AC_LIBTOOL_CONFIG' => 1, - '_AM_AUTOCONF_VERSION' => 1, - 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, - 'LT_PROG_RC' => 1, - 'm4_include' => 1, + '_AC_PROG_LIBTOOL' => 1, + '_LT_PREPARE_SED_QUOTE_VARS' => 1, + 'PKG_CHECK_MODULES' => 1, + 'LT_SUPPORTED_TAG' => 1, + 'PKG_CHECK_VAR' => 1, + 'AC_PROG_LIBTOOL' => 1, 'AC_LIBTOOL_SETUP' => 1, + 'AC_LIBTOOL_DLOPEN' => 1, + 'AC_LIBTOOL_CONFIG' => 1, + '_AM_PROG_CC_C_O' => 1, + 'AC_PROG_EGREP' => 1, + '_LT_AC_TRY_DLOPEN_SELF' => 1, + '_LT_WITH_SYSROOT' => 1, + 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, '_LT_PROG_LTMAIN' => 1, + 'AC_DEFUN' => 1, + '_LT_AC_SYS_LIBPATH_AIX' => 1, + '_LT_REQUIRED_DARWIN_CHECKS' => 1, + '_AC_AM_CONFIG_HEADER_HOOK' => 1, + 'AC_LIBTOOL_LINKER_OPTION' => 1, + '_LT_COMPILER_BOILERPLATE' => 1, + 'AC_PROG_LD_RELOAD_FLAG' => 1, + 'AC_LTDL_OBJDIR' => 1, + '_AM_PROG_TAR' => 1, + 'PKG_CHECK_EXISTS' => 1, + 'AM_AUTOMAKE_VERSION' => 1, 'AM_PROG_LD' => 1, - 'AM_RUN_LOG' => 1, - 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, - 'AM_PROG_CC_C_O' => 1, - '_LT_AC_LANG_F77_CONFIG' => 1, - 'AC_ENABLE_FAST_INSTALL' => 1, - 'AC_LIBTOOL_OBJDIR' => 1, - '_LT_CC_BASENAME' => 1, + 'AC_LIBTOOL_GCJ' => 1, + 'AC_LTDL_ENABLE_INSTALL' => 1, + 'LTVERSION_VERSION' => 1, + '_LT_AC_LANG_C_CONFIG' => 1, + '_AM_IF_OPTION' => 1, + '_LT_AC_TAGVAR' => 1, + 'AC_LIBTOOL_CXX' => 1, + 'LT_AC_PROG_SED' => 1, 'LT_AC_PROG_GCJ' => 1, - '_LT_AC_LOCK' => 1, - 'PKG_CHECK_EXISTS' => 1, - '_LT_PREPARE_SED_QUOTE_VARS' => 1, - 'AM_DISABLE_STATIC' => 1, - '_LT_AC_TAGCONFIG' => 1, - 'AM_CONDITIONAL' => 1, - 'LT_INIT' => 1, - '_AM_SUBST_NOTMAKE' => 1, + 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, + 'AM_SUBST_NOTMAKE' => 1, + 'LT_LANG' => 1, '_m4_warn' => 1, - '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, - '_LT_AC_LANG_CXX' => 1, - 'AC_ENABLE_SHARED' => 1, - 'LT_CMD_MAX_LEN' => 1, + 'include' => 1, + 'AC_LIBTOOL_PROG_CC_C_O' => 1, + 'PKG_CHECK_MODULES_STATIC' => 1, + '_LT_AC_CHECK_DLFCN' => 1, 'AM_SET_DEPDIR' => 1, - '_LT_AC_TRY_DLOPEN_SELF' => 1, + 'm4_pattern_allow' => 1, + 'AU_DEFUN' => 1, + 'AC_CONFIG_MACRO_DIR' => 1, + 'LT_CMD_MAX_LEN' => 1, + 'AM_PROG_INSTALL_STRIP' => 1, + '_LT_AC_LANG_RC_CONFIG' => 1, + '_LT_AC_LANG_CXX_CONFIG' => 1, + '_LT_CC_BASENAME' => 1, + '_LT_AC_LANG_GCJ_CONFIG' => 1, + '_LT_AC_TAGCONFIG' => 1, + 'PKG_PROG_PKG_CONFIG' => 1, + '_LT_AC_PROG_ECHO_BACKSLASH' => 1, + 'AC_LIBTOOL_FC' => 1, 'AC_DISABLE_FAST_INSTALL' => 1, - 'AC_LIBTOOL_COMPILER_OPTION' => 1, + '_LT_AC_LANG_F77_CONFIG' => 1, + 'AC_LIBTOOL_LANG_C_CONFIG' => 1, + 'AC_PROG_LD_GNU' => 1, + 'LTSUGAR_VERSION' => 1, + '_LT_AC_LANG_CXX' => 1, + '_LT_DLL_DEF_P' => 1, + 'AM_PROG_INSTALL_SH' => 1, + 'AC_CHECK_LIBM' => 1, + '_AM_AUTOCONF_VERSION' => 1, + 'LTOPTIONS_VERSION' => 1, + '_AM_CONFIG_MACRO_DIRS' => 1, '_LT_PATH_TOOL_PREFIX' => 1, - 'AC_DEFUN' => 1, - '_LT_PROG_CXX' => 1, - 'AC_ENABLE_STATIC' => 1, '_AM_MANGLE_OPTION' => 1, - 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, + '_LT_AC_FILE_LTDLL_C' => 1, '_PKG_SHORT_ERRORS_SUPPORTED' => 1, + '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + 'AC_DEFUN_ONCE' => 1, + 'LT_PROG_GCJ' => 1, + 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, + 'LT_PROG_RC' => 1, + 'AC_ENABLE_SHARED' => 1, + 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, + 'AC_LIBTOOL_RC' => 1, + 'LT_AC_PROG_EGREP' => 1, + 'AC_ENABLE_STATIC' => 1, + 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, + 'AM_PROG_LIBTOOL' => 1, + 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, + 'PKG_NOARCH_INSTALLDIR' => 1, + 'AM_RUN_LOG' => 1, + 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, + '_LT_PROG_FC' => 1, 'AM_DISABLE_SHARED' => 1, - 'AM_ENABLE_SHARED' => 1, - '_LT_LINKER_OPTION' => 1, - '_LT_AC_SHELL_INIT' => 1, - 'AC_CONFIG_MACRO_DIR_TRACE' => 1, - 'AC_LIBTOOL_WIN32_DLL' => 1, + 'AC_LIBTOOL_F77' => 1, + 'AM_SANITY_CHECK' => 1, + 'AC_PATH_TOOL_PREFIX' => 1, + '_AM_SET_OPTION' => 1, + 'AM_CONDITIONAL' => 1, + 'LTOBSOLETE_VERSION' => 1, '_AM_SET_OPTIONS' => 1, - '_LT_WITH_SYSROOT' => 1, - 'AC_PATH_MAGIC' => 1, - 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, - 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, 'PKG_INSTALLDIR' => 1, - 'AC_LIBTOOL_DLOPEN' => 1, - 'PKG_CHECK_MODULES_STATIC' => 1, - '_LT_AC_LANG_GCJ' => 1, - 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, - 'AM_SANITY_CHECK' => 1, - 'AC_PROG_NM' => 1, - '_AM_IF_OPTION' => 1, - '_AM_CONFIG_MACRO_DIRS' => 1, - '_LT_AC_PROG_CXXCPP' => 1, - 'AM_PROG_INSTALL_STRIP' => 1, - 'AC_DISABLE_SHARED' => 1, - 'AC_PROG_LD' => 1, - 'AC_LTDL_OBJDIR' => 1, - 'AC_LIBTOOL_F77' => 1, - 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, + 'AC_LTDL_PREOPEN' => 1, + '_LT_AC_SHELL_INIT' => 1, + 'AM_AUX_DIR_EXPAND' => 1, + 'AM_MISSING_PROG' => 1, + 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, '_LT_AC_SYS_COMPILER' => 1, - 'LTVERSION_VERSION' => 1, - '_LT_AC_CHECK_DLFCN' => 1, - '_LT_COMPILER_BOILERPLATE' => 1, + 'AC_LIBTOOL_COMPILER_OPTION' => 1, + 'LT_OUTPUT' => 1, + '_LT_PROG_ECHO_BACKSLASH' => 1, + 'AM_ENABLE_SHARED' => 1, + 'm4_include' => 1, 'LT_PROG_GO' => 1, - 'AC_LIBTOOL_GCJ' => 1, + 'AC_LIBTOOL_OBJDIR' => 1, 'AC_DISABLE_STATIC' => 1, - 'AM_INIT_AUTOMAKE' => 1, - 'AC_LIBTOOL_PICMODE' => 1, - 'AM_PROG_INSTALL_SH' => 1, - 'LT_LIB_M' => 1, - 'm4_pattern_forbid' => 1, - '_LT_COMPILER_OPTION' => 1, - 'LT_AC_PROG_RC' => 1, - 'AC_LIBTOOL_FC' => 1, - '_AM_PROG_TAR' => 1, - 'LT_PROG_GCJ' => 1, - 'PKG_NOARCH_INSTALLDIR' => 1, - '_AC_PROG_LIBTOOL' => 1, - 'LT_SUPPORTED_TAG' => 1, - 'AM_AUX_DIR_EXPAND' => 1, - 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, - '_LT_PROG_ECHO_BACKSLASH' => 1, - 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, - '_LT_PROG_F77' => 1, - 'AM_MISSING_HAS_RUN' => 1, - '_AM_PROG_CC_C_O' => 1, - 'AC_LIBTOOL_LANG_C_CONFIG' => 1, - '_LT_AC_LANG_RC_CONFIG' => 1, - 'AC_DEPLIBS_CHECK_METHOD' => 1, - 'm4_pattern_allow' => 1, - 'LTOPTIONS_VERSION' => 1, + 'AC_DISABLE_SHARED' => 1, + 'AM_MAKE_INCLUDE' => 1, + 'AM_ENABLE_STATIC' => 1, 'AM_PROG_NM' => 1, - '_LT_AC_SYS_LIBPATH_AIX' => 1, - 'LTOBSOLETE_VERSION' => 1, - 'AC_CONFIG_MACRO_DIR' => 1, - 'PKG_CHECK_MODULES' => 1, - 'AC_LIBTOOL_LINKER_OPTION' => 1, - '_LT_REQUIRED_DARWIN_CHECKS' => 1, - 'include' => 1, - 'AM_DEP_TRACK' => 1, - 'AC_LIBTOOL_RC' => 1, - 'AC_LIBTOOL_CXX' => 1, - 'PKG_CHECK_VAR' => 1, - 'LT_AC_PROG_SED' => 1, - 'LT_SYS_DLOPEN_SELF' => 1, - '_LT_AC_PROG_ECHO_BACKSLASH' => 1, - 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, - 'AC_LIBTOOL_PROG_CC_C_O' => 1, - 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, - 'LTSUGAR_VERSION' => 1, + '_LT_LINKER_OPTION' => 1, 'AM_SET_LEADING_DOT' => 1, - 'LT_PATH_LD' => 1, - '_AM_SET_OPTION' => 1, - 'AU_DEFUN' => 1, - 'AC_LTDL_PREOPEN' => 1, - 'AM_SILENT_RULES' => 1, - 'LT_AC_PROG_EGREP' => 1 + 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, + 'AM_PROG_CC_C_O' => 1, + '_AM_SUBST_NOTMAKE' => 1, + '_LT_AC_PROG_CXXCPP' => 1, + 'LT_PATH_NM' => 1, + 'AC_PROG_LD' => 1, + 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + 'AC_CONFIG_MACRO_DIR_TRACE' => 1, + 'AM_INIT_AUTOMAKE' => 1, + '_LT_LINKER_BOILERPLATE' => 1, + 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, + 'AM_DEP_TRACK' => 1 } ], 'Autom4te::Request' ), bless( [ '1', 1, [ '/usr/share/autoconf' ], [ '/usr/share/autoconf/autoconf/autoconf.m4f', 'aclocal.m4', 'configure.ac' ], { - 'AM_PROG_LIBTOOL' => 1, + 'm4_include' => 1, + 'AC_INIT' => 1, + 'AH_OUTPUT' => 1, + 'AC_FC_PP_DEFINE' => 1, + 'AM_PATH_GUILE' => 1, + 'AM_PROG_FC_C_O' => 1, + 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, + 'AM_AUTOMAKE_VERSION' => 1, + 'm4_sinclude' => 1, + 'AC_FC_FREEFORM' => 1, + 'AC_CONFIG_FILES' => 1, + 'AC_FC_SRCEXT' => 1, + 'm4_pattern_forbid' => 1, 'AM_PROG_MKDIR_P' => 1, + 'AC_CONFIG_LINKS' => 1, + 'AC_LIBSOURCE' => 1, + 'LT_CONFIG_LTDL_DIR' => 1, 'AM_GNU_GETTEXT' => 1, + 'AM_PROG_CXX_C_O' => 1, + '_LT_AC_TAGCONFIG' => 1, + 'AM_XGETTEXT_OPTION' => 1, + 'AC_CONFIG_AUX_DIR' => 1, + 'AM_CONDITIONAL' => 1, + 'LT_INIT' => 1, + 'AC_PROG_LIBTOOL' => 1, + 'AM_ENABLE_MULTILIB' => 1, + 'AC_FC_PP_SRCEXT' => 1, + 'AC_CANONICAL_BUILD' => 1, + 'LT_SUPPORTED_TAG' => 1, + 'AM_PROG_AR' => 1, + '_AM_MAKEFILE_INCLUDE' => 1, + 'm4_pattern_allow' => 1, + 'include' => 1, + 'AC_CANONICAL_SYSTEM' => 1, 'AM_INIT_AUTOMAKE' => 1, + 'AC_DEFINE_TRACE_LITERAL' => 1, + 'AM_PROG_LIBTOOL' => 1, 'AC_CONFIG_SUBDIRS' => 1, + 'AM_NLS' => 1, + '_m4_warn' => 1, + 'AM_EXTRA_RECURSIVE_TARGETS' => 1, + 'AM_MAKEFILE_INCLUDE' => 1, 'AC_CONFIG_HEADERS' => 1, - '_AM_MAKEFILE_INCLUDE' => 1, - '_AM_COND_ELSE' => 1, - 'AM_PROG_CXX_C_O' => 1, - 'AM_MAINTAINER_MODE' => 1, '_AM_SUBST_NOTMAKE' => 1, - 'AC_DEFINE_TRACE_LITERAL' => 1, - '_m4_warn' => 1, - 'm4_include' => 1, - 'AM_XGETTEXT_OPTION' => 1, - 'AM_SILENT_RULES' => 1, + 'AC_SUBST' => 1, + 'AC_CONFIG_LIBOBJ_DIR' => 1, + 'sinclude' => 1, + '_AM_COND_ENDIF' => 1, + 'AM_PROG_CC_C_O' => 1, 'AM_POT_TOOLS' => 1, + 'AM_PROG_MOC' => 1, + '_AM_COND_ELSE' => 1, 'AC_REQUIRE_AUX_FILE' => 1, - 'AC_CONFIG_AUX_DIR' => 1, - 'AM_PROG_AR' => 1, - 'AC_INIT' => 1, - 'AM_MAKEFILE_INCLUDE' => 1, - 'AM_ENABLE_MULTILIB' => 1, 'AC_SUBST_TRACE' => 1, - 'AC_CANONICAL_SYSTEM' => 1, - 'AC_FC_PP_SRCEXT' => 1, - 'm4_pattern_forbid' => 1, - 'AM_PROG_MOC' => 1, + 'AM_PROG_F77_C_O' => 1, '_AM_COND_IF' => 1, - 'AM_NLS' => 1, - 'AM_PATH_GUILE' => 1, - 'AM_PROG_CC_C_O' => 1, - 'AC_FC_FREEFORM' => 1, 'AC_CANONICAL_HOST' => 1, - 'AH_OUTPUT' => 1, - 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, - 'LT_CONFIG_LTDL_DIR' => 1, - 'AC_CONFIG_LINKS' => 1, - 'm4_sinclude' => 1, - 'AC_CONFIG_FILES' => 1, - 'AC_FC_PP_DEFINE' => 1, - 'AC_CONFIG_LIBOBJ_DIR' => 1, - 'AM_PROG_F77_C_O' => 1, - 'AC_CANONICAL_TARGET' => 1, - 'AM_EXTRA_RECURSIVE_TARGETS' => 1, - 'LT_SUPPORTED_TAG' => 1, - 'LT_INIT' => 1, - 'include' => 1, - 'AM_CONDITIONAL' => 1, - '_LT_AC_TAGCONFIG' => 1, - '_AM_COND_ENDIF' => 1, - 'AC_LIBSOURCE' => 1, - 'AM_PROG_FC_C_O' => 1, - 'AC_FC_SRCEXT' => 1, - 'sinclude' => 1, - 'AC_SUBST' => 1, - 'AM_AUTOMAKE_VERSION' => 1, - 'AC_CANONICAL_BUILD' => 1, - 'm4_pattern_allow' => 1, - 'AC_PROG_LIBTOOL' => 1 + 'AM_SILENT_RULES' => 1, + 'AM_MAINTAINER_MODE' => 1, + 'AC_CANONICAL_TARGET' => 1 } ], 'Autom4te::Request' ), bless( [ '2', 1, [ '/usr/share/autoconf' ], [ '/usr/share/autoconf/autoconf/autoconf.m4f', '-', '/usr/share/aclocal-1.15/internal/ac-config-macro-dirs.m4', '/usr/share/aclocal/ltargz.m4', '/usr/share/aclocal/ltdl.m4', '/usr/share/aclocal/pkg.m4', '/usr/share/aclocal-1.15/amversion.m4', '/usr/share/aclocal-1.15/auxdir.m4', '/usr/share/aclocal-1.15/cond.m4', '/usr/share/aclocal-1.15/depend.m4', '/usr/share/aclocal-1.15/depout.m4', '/usr/share/aclocal-1.15/init.m4', '/usr/share/aclocal-1.15/install-sh.m4', '/usr/share/aclocal-1.15/lead-dot.m4', '/usr/share/aclocal-1.15/make.m4', '/usr/share/aclocal-1.15/missing.m4', '/usr/share/aclocal-1.15/options.m4', '/usr/share/aclocal-1.15/prog-cc-c-o.m4', '/usr/share/aclocal-1.15/runlog.m4', '/usr/share/aclocal-1.15/sanity.m4', '/usr/share/aclocal-1.15/silent.m4', '/usr/share/aclocal-1.15/strip.m4', '/usr/share/aclocal-1.15/substnot.m4', '/usr/share/aclocal-1.15/tar.m4', 'm4/libtool.m4', 'm4/ltoptions.m4', 'm4/ltsugar.m4', 'm4/ltversion.m4', 'm4/lt~obsolete.m4', 'configure.ac' ], { - 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, - 'AC_LIBTOOL_PROG_CC_C_O' => 1, - '_LTDL_SETUP' => 1, - 'LT_FUNC_DLSYM_USCORE' => 1, - 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, - 'LTSUGAR_VERSION' => 1, - '_LT_AC_PROG_ECHO_BACKSLASH' => 1, - 'LT_SYS_DLOPEN_SELF' => 1, - 'PKG_CHECK_VAR' => 1, - 'LT_AC_PROG_SED' => 1, - 'AM_DEP_TRACK' => 1, - 'AC_LIBTOOL_CXX' => 1, - 'AC_LIBTOOL_RC' => 1, - 'AM_SILENT_RULES' => 1, - 'LT_AC_PROG_EGREP' => 1, - '_AM_SET_OPTION' => 1, - 'AU_DEFUN' => 1, - 'AC_LTDL_PREOPEN' => 1, - 'LT_PATH_LD' => 1, - 'AM_SET_LEADING_DOT' => 1, - '_AM_PROG_CC_C_O' => 1, 'LTDL_CONVENIENCE' => 1, - '_LT_AC_LANG_RC_CONFIG' => 1, - 'AC_LIBTOOL_LANG_C_CONFIG' => 1, - 'LT_CONFIG_LTDL_DIR' => 1, - '_LT_PROG_F77' => 1, - 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, - 'AM_MISSING_HAS_RUN' => 1, - '_LT_PROG_ECHO_BACKSLASH' => 1, - 'LT_SUPPORTED_TAG' => 1, - 'AM_AUX_DIR_EXPAND' => 1, - 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, - 'include' => 1, - 'LT_SYS_SYMBOL_USCORE' => 1, - 'AC_LIB_LTDL' => 1, - 'LT_SYS_DLSEARCH_PATH' => 1, - '_LT_REQUIRED_DARWIN_CHECKS' => 1, - 'PKG_CHECK_MODULES' => 1, - 'AC_CONFIG_MACRO_DIR' => 1, + 'LTDL_INIT' => 1, + 'AM_PROG_LD' => 1, + 'AC_LTDL_OBJDIR' => 1, + 'AM_AUTOMAKE_VERSION' => 1, + '_AM_PROG_TAR' => 1, + 'PKG_CHECK_EXISTS' => 1, + '_LT_COMPILER_BOILERPLATE' => 1, + 'AC_PROG_LD_RELOAD_FLAG' => 1, 'AC_LIBTOOL_LINKER_OPTION' => 1, - 'm4_pattern_allow' => 1, - 'AC_DEPLIBS_CHECK_METHOD' => 1, - 'AM_PROG_NM' => 1, - 'LTOPTIONS_VERSION' => 1, '_LT_AC_SYS_LIBPATH_AIX' => 1, - 'LTOBSOLETE_VERSION' => 1, - '_LT_LIBOBJ' => 1, + '_LT_REQUIRED_DARWIN_CHECKS' => 1, + '_AC_AM_CONFIG_HEADER_HOOK' => 1, + 'AC_DEFUN' => 1, + 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, + '_LT_WITH_SYSROOT' => 1, + '_LT_PROG_LTMAIN' => 1, 'AC_LTDL_SHLIBPATH' => 1, - 'AM_INIT_AUTOMAKE' => 1, - 'AC_DISABLE_STATIC' => 1, + '_AM_PROG_CC_C_O' => 1, + 'AC_PROG_EGREP' => 1, + '_LT_AC_TRY_DLOPEN_SELF' => 1, + 'AC_LIBTOOL_DLOPEN' => 1, + 'AC_LIBTOOL_SETUP' => 1, + 'AC_LTDL_SYMBOL_USCORE' => 1, + 'AC_LIBTOOL_CONFIG' => 1, + 'AC_CONFIG_MACRO_DIR' => 1, + 'LT_CMD_MAX_LEN' => 1, + 'AM_SET_DEPDIR' => 1, + 'm4_pattern_allow' => 1, + 'AU_DEFUN' => 1, + 'PKG_CHECK_MODULES_STATIC' => 1, + 'AC_LIBTOOL_PROG_CC_C_O' => 1, + 'LT_SYS_DLSEARCH_PATH' => 1, + '_LT_AC_CHECK_DLFCN' => 1, + 'include' => 1, + '_m4_warn' => 1, + 'LT_LANG' => 1, + 'LT_SYS_MODULE_EXT' => 1, + 'AM_SUBST_NOTMAKE' => 1, + 'LTDL_INSTALLABLE' => 1, + 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, + 'LT_AC_PROG_SED' => 1, + 'LT_AC_PROG_GCJ' => 1, + '_LT_AC_TAGVAR' => 1, + 'AC_LIBTOOL_CXX' => 1, + '_LT_AC_LANG_C_CONFIG' => 1, + '_AM_IF_OPTION' => 1, + 'LTVERSION_VERSION' => 1, 'AC_LIBTOOL_GCJ' => 1, - 'LT_PROG_GO' => 1, 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1, - '_LT_COMPILER_BOILERPLATE' => 1, - '_AM_PROG_TAR' => 1, - 'AC_LTDL_DLLIB' => 1, - 'LT_PROG_GCJ' => 1, - 'PKG_NOARCH_INSTALLDIR' => 1, - 'LT_WITH_LTDL' => 1, - '_AC_PROG_LIBTOOL' => 1, - 'AC_LIBTOOL_FC' => 1, - 'LT_AC_PROG_RC' => 1, - '_LT_COMPILER_OPTION' => 1, - 'AC_LIBTOOL_PICMODE' => 1, + 'AC_LTDL_ENABLE_INSTALL' => 1, + 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, + 'AM_MISSING_HAS_RUN' => 1, + 'AC_WITH_LTDL' => 1, + 'AC_LIBTOOL_DLOPEN_SELF' => 1, 'm4_pattern_forbid' => 1, - 'AM_PROG_INSTALL_SH' => 1, + 'LT_AC_PROG_RC' => 1, + 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, + 'LT_SYS_DLOPEN_SELF' => 1, + '_AM_DEPENDENCIES' => 1, + 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, + 'LT_SYS_MODULE_PATH' => 1, 'LT_LIB_M' => 1, - '_LT_AC_LANG_GCJ' => 1, - '_AM_IF_OPTION' => 1, - 'AM_SANITY_CHECK' => 1, + 'AC_LTDL_DLSYM_USCORE' => 1, + 'AC_LIBTOOL_PICMODE' => 1, + 'LT_INIT' => 1, + '_LT_COMPILER_OPTION' => 1, + 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, + 'AC_DEPLIBS_CHECK_METHOD' => 1, + 'LT_SYS_SYMBOL_USCORE' => 1, + 'PKG_CHECK_VAR' => 1, + 'AC_PROG_LIBTOOL' => 1, + 'LT_SUPPORTED_TAG' => 1, + '_LT_PREPARE_SED_QUOTE_VARS' => 1, + 'PKG_CHECK_MODULES' => 1, + '_AC_PROG_LIBTOOL' => 1, + 'LT_PATH_LD' => 1, 'AC_PROG_NM' => 1, - 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, - '_AM_CONFIG_MACRO_DIRS' => 1, - '_LT_AC_PROG_CXXCPP' => 1, - 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, - 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, - 'PKG_INSTALLDIR' => 1, - 'AC_LIBTOOL_DLOPEN' => 1, - 'PKG_CHECK_MODULES_STATIC' => 1, - '_LT_WITH_SYSROOT' => 1, + '_LT_AC_LANG_F77' => 1, + 'AM_DISABLE_STATIC' => 1, 'AC_PATH_MAGIC' => 1, - 'LT_SYS_MODULE_EXT' => 1, - 'LTVERSION_VERSION' => 1, - '_LT_AC_CHECK_DLFCN' => 1, - 'AC_PROG_LD' => 1, - 'AC_LTDL_OBJDIR' => 1, - 'AC_LIBTOOL_F77' => 1, - 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, + 'AC_ENABLE_FAST_INSTALL' => 1, + '_LT_PROG_CXX' => 1, + 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, + '_LT_AC_LANG_GCJ' => 1, + 'AC_LIBLTDL_CONVENIENCE' => 1, + 'AC_LIBTOOL_WIN32_DLL' => 1, + '_LT_AC_LOCK' => 1, + 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, + 'AC_LTDL_SYSSEARCHPATH' => 1, + '_LT_PROG_F77' => 1, + 'AM_SILENT_RULES' => 1, + 'AM_ENABLE_SHARED' => 1, + 'm4_include' => 1, + '_LT_PROG_ECHO_BACKSLASH' => 1, + 'AC_LIBTOOL_COMPILER_OPTION' => 1, + 'LT_OUTPUT' => 1, + 'LT_FUNC_DLSYM_USCORE' => 1, '_LT_AC_SYS_COMPILER' => 1, - 'AM_PROG_INSTALL_STRIP' => 1, - 'AC_DISABLE_SHARED' => 1, - '_LT_AC_TRY_DLOPEN_SELF' => 1, - 'LT_CMD_MAX_LEN' => 1, - 'LT_SYS_MODULE_PATH' => 1, - 'AM_SET_DEPDIR' => 1, - '_LT_AC_LANG_CXX' => 1, - 'AC_ENABLE_SHARED' => 1, - '_AM_SUBST_NOTMAKE' => 1, - 'AC_WITH_LTDL' => 1, - '_m4_warn' => 1, - '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, - '_LT_LINKER_OPTION' => 1, + 'AM_MISSING_PROG' => 1, + 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, + 'AM_AUX_DIR_EXPAND' => 1, + 'AC_LTDL_PREOPEN' => 1, + 'PKG_INSTALLDIR' => 1, '_LT_AC_SHELL_INIT' => 1, - 'AC_CONFIG_MACRO_DIR_TRACE' => 1, - 'AC_LIBTOOL_WIN32_DLL' => 1, + 'LT_CONFIG_LTDL_DIR' => 1, '_AM_SET_OPTIONS' => 1, - '_AM_MANGLE_OPTION' => 1, - 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, - '_PKG_SHORT_ERRORS_SUPPORTED' => 1, + 'LTOBSOLETE_VERSION' => 1, + 'LT_LIB_DLLOAD' => 1, + '_AM_SET_OPTION' => 1, + 'AM_CONDITIONAL' => 1, + 'LT_FUNC_ARGZ' => 1, + 'AC_PATH_TOOL_PREFIX' => 1, + 'AC_LIBTOOL_F77' => 1, + 'AM_SANITY_CHECK' => 1, + '_LT_PROG_FC' => 1, 'AM_DISABLE_SHARED' => 1, - 'AM_ENABLE_SHARED' => 1, - '_LT_PROG_CXX' => 1, - 'AC_ENABLE_STATIC' => 1, - 'AC_DISABLE_FAST_INSTALL' => 1, - 'AC_LIBTOOL_COMPILER_OPTION' => 1, - '_LT_PATH_TOOL_PREFIX' => 1, - 'AC_DEFUN' => 1, - 'AC_LTDL_SYSSEARCHPATH' => 1, - '_LT_AC_LANG_F77_CONFIG' => 1, + '_LT_LIBOBJ' => 1, + 'AC_LTDL_DLLIB' => 1, + 'AM_DEP_TRACK' => 1, + '_LT_LINKER_BOILERPLATE' => 1, + 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, + 'AM_INIT_AUTOMAKE' => 1, + 'AC_CONFIG_MACRO_DIR_TRACE' => 1, + 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + 'LT_PATH_NM' => 1, + 'AC_PROG_LD' => 1, + '_AM_SUBST_NOTMAKE' => 1, + '_LTDL_SETUP' => 1, + '_LT_AC_PROG_CXXCPP' => 1, 'AM_PROG_CC_C_O' => 1, + 'LT_SYS_DLOPEN_DEPLIBS' => 1, + 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, + 'AM_PROG_NM' => 1, + '_LT_LINKER_OPTION' => 1, + 'AM_SET_LEADING_DOT' => 1, + 'AM_MAKE_INCLUDE' => 1, + 'AM_ENABLE_STATIC' => 1, 'AC_LIBTOOL_OBJDIR' => 1, - 'AC_ENABLE_FAST_INSTALL' => 1, + 'AC_DISABLE_SHARED' => 1, + 'AC_DISABLE_STATIC' => 1, + 'LT_PROG_GO' => 1, + '_PKG_SHORT_ERRORS_SUPPORTED' => 1, + '_AM_MANGLE_OPTION' => 1, + '_LT_PATH_TOOL_PREFIX' => 1, 'AC_LTDL_SHLIBEXT' => 1, - 'AM_PROG_LD' => 1, - 'AM_RUN_LOG' => 1, - 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, - '_LT_PROG_LTMAIN' => 1, - 'AC_LIBLTDL_CONVENIENCE' => 1, - 'AC_LIBTOOL_SETUP' => 1, - 'AM_CONDITIONAL' => 1, + '_LT_AC_FILE_LTDLL_C' => 1, + '_AM_CONFIG_MACRO_DIRS' => 1, + 'LTOPTIONS_VERSION' => 1, + '_AM_AUTOCONF_VERSION' => 1, + 'AC_CHECK_LIBM' => 1, + '_LT_DLL_DEF_P' => 1, + '_LT_AC_LANG_CXX' => 1, + 'AM_PROG_INSTALL_SH' => 1, + 'AC_LIBTOOL_LANG_C_CONFIG' => 1, + 'LTSUGAR_VERSION' => 1, + 'AC_PROG_LD_GNU' => 1, + '_LT_AC_LANG_F77_CONFIG' => 1, + 'AC_DISABLE_FAST_INSTALL' => 1, + 'PKG_PROG_PKG_CONFIG' => 1, + '_LT_AC_PROG_ECHO_BACKSLASH' => 1, + 'AC_LIBTOOL_FC' => 1, + 'LT_WITH_LTDL' => 1, '_LT_AC_TAGCONFIG' => 1, - 'AC_LTDL_SYMBOL_USCORE' => 1, - 'LT_INIT' => 1, - 'LT_FUNC_ARGZ' => 1, - 'AM_DISABLE_STATIC' => 1, - 'LT_AC_PROG_GCJ' => 1, - '_LT_AC_LOCK' => 1, - '_LT_PREPARE_SED_QUOTE_VARS' => 1, - 'PKG_CHECK_EXISTS' => 1, '_LT_CC_BASENAME' => 1, 'AC_LIBLTDL_INSTALLABLE' => 1, - 'LTDL_INIT' => 1, - 'PKG_PROG_PKG_CONFIG' => 1, - 'AM_PROG_LIBTOOL' => 1, - '_AM_DEPENDENCIES' => 1, - 'LT_PATH_NM' => 1, + '_LT_AC_LANG_GCJ_CONFIG' => 1, '_LT_AC_LANG_CXX_CONFIG' => 1, - 'LT_SYS_DLOPEN_DEPLIBS' => 1, - '_LT_PROG_FC' => 1, - '_LT_DLL_DEF_P' => 1, - 'AC_PATH_TOOL_PREFIX' => 1, - '_LT_LINKER_BOILERPLATE' => 1, - '_LT_AC_LANG_F77' => 1, - 'm4_include' => 1, + '_LT_AC_LANG_RC_CONFIG' => 1, + 'AM_PROG_INSTALL_STRIP' => 1, + 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, + 'AM_RUN_LOG' => 1, + 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, + 'PKG_NOARCH_INSTALLDIR' => 1, + 'AM_PROG_LIBTOOL' => 1, + 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, + 'AC_ENABLE_STATIC' => 1, + 'LT_AC_PROG_EGREP' => 1, + 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, + 'AC_LIBTOOL_RC' => 1, 'LT_PROG_RC' => 1, - 'AM_ENABLE_STATIC' => 1, - 'AC_LIBTOOL_CONFIG' => 1, - '_AM_AUTOCONF_VERSION' => 1, + 'AC_ENABLE_SHARED' => 1, 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, - 'LT_LANG' => 1, - 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, - 'AC_LIBTOOL_DLOPEN_SELF' => 1, - 'AC_PROG_LD_RELOAD_FLAG' => 1, - 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, - '_AC_AM_CONFIG_HEADER_HOOK' => 1, - 'AC_CHECK_LIBM' => 1, - 'AC_LTDL_ENABLE_INSTALL' => 1, - 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, - 'LT_OUTPUT' => 1, - 'AC_PROG_LD_GNU' => 1, - 'AM_MISSING_PROG' => 1, + 'AC_LIB_LTDL' => 1, 'AC_DEFUN_ONCE' => 1, - '_LT_AC_FILE_LTDLL_C' => 1, - 'LTDL_INSTALLABLE' => 1, - 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, - 'AC_PROG_EGREP' => 1, - 'AM_MAKE_INCLUDE' => 1, - '_LT_AC_TAGVAR' => 1, - '_LT_AC_LANG_GCJ_CONFIG' => 1, - 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, - 'AM_AUTOMAKE_VERSION' => 1, - 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, - 'AC_LTDL_DLSYM_USCORE' => 1, - 'AC_PROG_LIBTOOL' => 1, - 'LT_LIB_DLLOAD' => 1, - '_LT_AC_LANG_C_CONFIG' => 1, - 'AM_SUBST_NOTMAKE' => 1 + '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + 'LT_PROG_GCJ' => 1 } ], 'Autom4te::Request' ), bless( [ '3', 1, [ '/usr/share/autoconf' ], [ '/usr/share/autoconf/autoconf/autoconf.m4f', '-', '/usr/share/aclocal-1.15/internal/ac-config-macro-dirs.m4', '/usr/share/aclocal/ltargz.m4', '/usr/share/aclocal/ltdl.m4', '/usr/share/aclocal/pkg.m4', '/usr/share/aclocal-1.15/amversion.m4', '/usr/share/aclocal-1.15/auxdir.m4', '/usr/share/aclocal-1.15/cond.m4', '/usr/share/aclocal-1.15/depend.m4', '/usr/share/aclocal-1.15/depout.m4', '/usr/share/aclocal-1.15/extra-recurs.m4', '/usr/share/aclocal-1.15/init.m4', '/usr/share/aclocal-1.15/install-sh.m4', '/usr/share/aclocal-1.15/lead-dot.m4', '/usr/share/aclocal-1.15/make.m4', '/usr/share/aclocal-1.15/missing.m4', '/usr/share/aclocal-1.15/options.m4', '/usr/share/aclocal-1.15/prog-cc-c-o.m4', '/usr/share/aclocal-1.15/runlog.m4', '/usr/share/aclocal-1.15/sanity.m4', '/usr/share/aclocal-1.15/silent.m4', '/usr/share/aclocal-1.15/strip.m4', '/usr/share/aclocal-1.15/substnot.m4', '/usr/share/aclocal-1.15/tar.m4', 'm4/libtool.m4', 'm4/ltoptions.m4', 'm4/ltsugar.m4', 'm4/ltversion.m4', 'm4/lt~obsolete.m4', 'configure.ac' ], { - 'AC_LIBTOOL_PICMODE' => 1, - 'LT_LIB_M' => 1, - 'AM_PROG_INSTALL_SH' => 1, - 'm4_pattern_forbid' => 1, - 'LT_AC_PROG_RC' => 1, - '_LT_COMPILER_OPTION' => 1, - 'AC_LIBTOOL_FC' => 1, - 'AC_LTDL_DLLIB' => 1, - '_AM_PROG_TAR' => 1, - '_AC_PROG_LIBTOOL' => 1, - 'LT_WITH_LTDL' => 1, - 'PKG_NOARCH_INSTALLDIR' => 1, + 'AC_ENABLE_SHARED' => 1, + 'LT_PROG_RC' => 1, 'LT_PROG_GCJ' => 1, - 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1, - '_LT_COMPILER_BOILERPLATE' => 1, - 'LT_PROG_GO' => 1, - 'AC_LIBTOOL_GCJ' => 1, - 'AC_DISABLE_STATIC' => 1, - 'AC_LTDL_SHLIBPATH' => 1, - 'AM_INIT_AUTOMAKE' => 1, - '_LT_LIBOBJ' => 1, - 'AC_DISABLE_SHARED' => 1, - 'AM_PROG_INSTALL_STRIP' => 1, - 'AC_LTDL_OBJDIR' => 1, - 'AC_PROG_LD' => 1, - '_LT_AC_SYS_COMPILER' => 1, - 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, - 'AC_LIBTOOL_F77' => 1, - '_LT_AC_CHECK_DLFCN' => 1, - 'LTVERSION_VERSION' => 1, - 'LT_SYS_MODULE_EXT' => 1, - '_LT_WITH_SYSROOT' => 1, - 'AC_PATH_MAGIC' => 1, - 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, - 'PKG_INSTALLDIR' => 1, - 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, - 'PKG_CHECK_MODULES_STATIC' => 1, - 'AC_LIBTOOL_DLOPEN' => 1, - 'AM_SANITY_CHECK' => 1, - 'AC_PROG_NM' => 1, - 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, - '_AM_IF_OPTION' => 1, - '_LT_AC_LANG_GCJ' => 1, - '_LT_AC_PROG_CXXCPP' => 1, - '_AM_CONFIG_MACRO_DIRS' => 1, - 'LT_PATH_LD' => 1, - 'AM_SET_LEADING_DOT' => 1, - '_AM_SET_OPTION' => 1, - 'AU_DEFUN' => 1, - 'AC_LTDL_PREOPEN' => 1, + 'AC_DEFUN_ONCE' => 1, + '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + 'AC_LIB_LTDL' => 1, + 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, 'LT_AC_PROG_EGREP' => 1, - 'AM_SILENT_RULES' => 1, - 'AM_DEP_TRACK' => 1, - 'AC_LIBTOOL_CXX' => 1, 'AC_LIBTOOL_RC' => 1, - 'PKG_CHECK_VAR' => 1, - 'LT_AC_PROG_SED' => 1, - 'LT_SYS_DLOPEN_SELF' => 1, - '_LT_AC_PROG_ECHO_BACKSLASH' => 1, - '_LTDL_SETUP' => 1, - 'AC_LIBTOOL_PROG_CC_C_O' => 1, 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, - 'LTSUGAR_VERSION' => 1, - 'LT_FUNC_DLSYM_USCORE' => 1, - 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, - 'AM_PROG_NM' => 1, - 'LTOPTIONS_VERSION' => 1, - 'AC_DEPLIBS_CHECK_METHOD' => 1, - 'm4_pattern_allow' => 1, - 'LTOBSOLETE_VERSION' => 1, - '_LT_AC_SYS_LIBPATH_AIX' => 1, - 'AC_LIBTOOL_LINKER_OPTION' => 1, - 'AC_CONFIG_MACRO_DIR' => 1, - 'PKG_CHECK_MODULES' => 1, - '_LT_REQUIRED_DARWIN_CHECKS' => 1, - 'AC_LIB_LTDL' => 1, - 'LT_SYS_SYMBOL_USCORE' => 1, - 'include' => 1, - 'LT_SYS_DLSEARCH_PATH' => 1, - 'LT_SUPPORTED_TAG' => 1, - 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, - 'AM_AUX_DIR_EXPAND' => 1, - '_LT_PROG_ECHO_BACKSLASH' => 1, - 'LT_CONFIG_LTDL_DIR' => 1, - 'AM_MISSING_HAS_RUN' => 1, 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, - '_LT_PROG_F77' => 1, - 'LTDL_CONVENIENCE' => 1, - '_AM_PROG_CC_C_O' => 1, + 'AM_PROG_LIBTOOL' => 1, + 'AC_ENABLE_STATIC' => 1, + 'AM_RUN_LOG' => 1, + 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, + 'PKG_NOARCH_INSTALLDIR' => 1, + 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, + '_LT_AC_LANG_CXX_CONFIG' => 1, + '_LT_AC_LANG_GCJ_CONFIG' => 1, + 'AC_LIBLTDL_INSTALLABLE' => 1, + '_LT_CC_BASENAME' => 1, + 'AM_PROG_INSTALL_STRIP' => 1, '_LT_AC_LANG_RC_CONFIG' => 1, + 'AC_DISABLE_FAST_INSTALL' => 1, 'AC_LIBTOOL_LANG_C_CONFIG' => 1, - 'LT_LANG' => 1, - 'AC_LIBTOOL_CONFIG' => 1, + '_LT_AC_LANG_F77_CONFIG' => 1, + 'LTSUGAR_VERSION' => 1, + 'AC_PROG_LD_GNU' => 1, + '_LT_AC_TAGCONFIG' => 1, + 'LT_WITH_LTDL' => 1, + '_LT_AC_PROG_ECHO_BACKSLASH' => 1, + 'AC_LIBTOOL_FC' => 1, + 'PKG_PROG_PKG_CONFIG' => 1, + '_AM_CONFIG_MACRO_DIRS' => 1, + 'AM_PROG_INSTALL_SH' => 1, + '_LT_AC_LANG_CXX' => 1, + '_LT_DLL_DEF_P' => 1, '_AM_AUTOCONF_VERSION' => 1, + 'AC_CHECK_LIBM' => 1, + 'LTOPTIONS_VERSION' => 1, + '_PKG_SHORT_ERRORS_SUPPORTED' => 1, + '_LT_AC_FILE_LTDLL_C' => 1, + '_LT_PATH_TOOL_PREFIX' => 1, + '_AM_MANGLE_OPTION' => 1, + 'AC_LTDL_SHLIBEXT' => 1, 'AM_ENABLE_STATIC' => 1, - 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, - 'LT_PROG_RC' => 1, - 'm4_include' => 1, - '_LT_AC_LANG_F77' => 1, - '_LT_LINKER_BOILERPLATE' => 1, - '_LT_DLL_DEF_P' => 1, - '_LT_PROG_FC' => 1, - 'AC_PATH_TOOL_PREFIX' => 1, + 'AM_MAKE_INCLUDE' => 1, + '_LT_LINKER_OPTION' => 1, + 'AM_SET_LEADING_DOT' => 1, + 'AM_PROG_NM' => 1, + 'LT_PROG_GO' => 1, + 'AC_DISABLE_STATIC' => 1, + 'AC_DISABLE_SHARED' => 1, + 'AC_LIBTOOL_OBJDIR' => 1, + 'AM_PROG_CC_C_O' => 1, + '_LT_AC_PROG_CXXCPP' => 1, + '_AM_SUBST_NOTMAKE' => 1, + '_LTDL_SETUP' => 1, + 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, 'LT_SYS_DLOPEN_DEPLIBS' => 1, - 'LTDL_INIT' => 1, - 'PKG_PROG_PKG_CONFIG' => 1, - 'AC_LIBLTDL_INSTALLABLE' => 1, - '_LT_AC_LANG_CXX_CONFIG' => 1, + 'AC_CONFIG_MACRO_DIR_TRACE' => 1, + 'AM_INIT_AUTOMAKE' => 1, + 'AC_PROG_LD' => 1, 'LT_PATH_NM' => 1, - '_AM_DEPENDENCIES' => 1, - 'AM_PROG_LIBTOOL' => 1, + 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + 'AM_EXTRA_RECURSIVE_TARGETS' => 1, + 'AM_DEP_TRACK' => 1, + 'AC_LTDL_DLLIB' => 1, + 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, + '_LT_LINKER_BOILERPLATE' => 1, + 'AC_PATH_TOOL_PREFIX' => 1, + 'AM_CONDITIONAL' => 1, + 'LT_FUNC_ARGZ' => 1, + '_AM_SET_OPTION' => 1, + '_LT_LIBOBJ' => 1, + 'AM_DISABLE_SHARED' => 1, + '_LT_PROG_FC' => 1, + 'AC_LIBTOOL_F77' => 1, + 'AM_SANITY_CHECK' => 1, + 'LT_CONFIG_LTDL_DIR' => 1, 'LT_LIB_DLLOAD' => 1, - 'AC_LTDL_DLSYM_USCORE' => 1, - 'AC_PROG_LIBTOOL' => 1, - 'AM_SUBST_NOTMAKE' => 1, - '_LT_AC_LANG_C_CONFIG' => 1, - 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, - 'AM_AUTOMAKE_VERSION' => 1, - 'AM_MAKE_INCLUDE' => 1, - 'AC_PROG_EGREP' => 1, - 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, - '_LT_AC_LANG_GCJ_CONFIG' => 1, - '_LT_AC_TAGVAR' => 1, - 'AC_DEFUN_ONCE' => 1, - 'LTDL_INSTALLABLE' => 1, - '_LT_AC_FILE_LTDLL_C' => 1, - 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, + 'LTOBSOLETE_VERSION' => 1, + '_AM_SET_OPTIONS' => 1, + 'AM_AUX_DIR_EXPAND' => 1, 'AM_MISSING_PROG' => 1, - 'AC_PROG_LD_GNU' => 1, - 'LT_OUTPUT' => 1, - 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, - 'AC_CHECK_LIBM' => 1, - '_AC_AM_CONFIG_HEADER_HOOK' => 1, - 'AC_PROG_LD_RELOAD_FLAG' => 1, - 'AC_LTDL_ENABLE_INSTALL' => 1, 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, - 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, - 'AC_LIBTOOL_DLOPEN_SELF' => 1, + '_LT_AC_SHELL_INIT' => 1, + 'PKG_INSTALLDIR' => 1, + 'AC_LTDL_PREOPEN' => 1, + '_LT_PROG_ECHO_BACKSLASH' => 1, + 'AM_ENABLE_SHARED' => 1, + 'm4_include' => 1, + '_LT_AC_SYS_COMPILER' => 1, + 'LT_FUNC_DLSYM_USCORE' => 1, + 'LT_OUTPUT' => 1, 'AC_LIBTOOL_COMPILER_OPTION' => 1, - 'AC_DISABLE_FAST_INSTALL' => 1, - '_LT_PATH_TOOL_PREFIX' => 1, - 'AC_DEFUN' => 1, + 'AC_LIBTOOL_WIN32_DLL' => 1, + '_LT_AC_LOCK' => 1, + 'AC_LIBLTDL_CONVENIENCE' => 1, + 'AM_SILENT_RULES' => 1, + '_LT_PROG_F77' => 1, + 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, + 'AC_LTDL_SYSSEARCHPATH' => 1, '_LT_PROG_CXX' => 1, - 'AC_ENABLE_STATIC' => 1, + '_LT_AC_LANG_GCJ' => 1, 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, - '_PKG_SHORT_ERRORS_SUPPORTED' => 1, - '_AM_MANGLE_OPTION' => 1, - 'AM_ENABLE_SHARED' => 1, - 'AM_DISABLE_SHARED' => 1, - '_LT_AC_SHELL_INIT' => 1, - '_LT_LINKER_OPTION' => 1, - '_AM_SET_OPTIONS' => 1, - 'AC_LIBTOOL_WIN32_DLL' => 1, - 'AC_CONFIG_MACRO_DIR_TRACE' => 1, - '_m4_warn' => 1, + '_LT_AC_LANG_F77' => 1, + 'AC_PROG_NM' => 1, + 'LT_PATH_LD' => 1, + '_AC_PROG_LIBTOOL' => 1, + 'AC_ENABLE_FAST_INSTALL' => 1, + 'AC_PATH_MAGIC' => 1, + 'AM_DISABLE_STATIC' => 1, + 'LT_SUPPORTED_TAG' => 1, + 'AC_PROG_LIBTOOL' => 1, + 'PKG_CHECK_VAR' => 1, + '_LT_PREPARE_SED_QUOTE_VARS' => 1, + 'PKG_CHECK_MODULES' => 1, + 'LT_SYS_SYMBOL_USCORE' => 1, + 'AC_DEPLIBS_CHECK_METHOD' => 1, + '_LT_COMPILER_OPTION' => 1, + 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, + 'LT_INIT' => 1, + 'AC_LIBTOOL_PICMODE' => 1, + 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, + '_AM_DEPENDENCIES' => 1, + 'LT_SYS_DLOPEN_SELF' => 1, + 'AC_LTDL_DLSYM_USCORE' => 1, + 'LT_LIB_M' => 1, + 'LT_SYS_MODULE_PATH' => 1, + 'LT_AC_PROG_RC' => 1, + 'm4_pattern_forbid' => 1, + 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, + 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, + 'AC_LIBTOOL_DLOPEN_SELF' => 1, 'AC_WITH_LTDL' => 1, - '_AM_SUBST_NOTMAKE' => 1, - '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, - 'AC_ENABLE_SHARED' => 1, - '_LT_AC_LANG_CXX' => 1, + 'AM_MISSING_HAS_RUN' => 1, + 'LTVERSION_VERSION' => 1, + '_AM_IF_OPTION' => 1, + '_LT_AC_LANG_C_CONFIG' => 1, + 'AC_LTDL_ENABLE_INSTALL' => 1, + 'AC_LIBTOOL_GCJ' => 1, + 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1, + 'LTDL_INSTALLABLE' => 1, + 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, + 'AM_SUBST_NOTMAKE' => 1, + 'AC_LIBTOOL_CXX' => 1, + '_LT_AC_TAGVAR' => 1, + 'LT_AC_PROG_GCJ' => 1, + 'LT_AC_PROG_SED' => 1, + '_m4_warn' => 1, + 'LT_SYS_MODULE_EXT' => 1, + 'LT_LANG' => 1, + 'm4_pattern_allow' => 1, + 'AU_DEFUN' => 1, 'AM_SET_DEPDIR' => 1, - 'LT_SYS_MODULE_PATH' => 1, + 'AC_CONFIG_MACRO_DIR' => 1, 'LT_CMD_MAX_LEN' => 1, + 'include' => 1, + 'LT_SYS_DLSEARCH_PATH' => 1, + '_LT_AC_CHECK_DLFCN' => 1, + 'AC_LIBTOOL_PROG_CC_C_O' => 1, + 'PKG_CHECK_MODULES_STATIC' => 1, '_LT_AC_TRY_DLOPEN_SELF' => 1, - '_LT_CC_BASENAME' => 1, - 'LT_AC_PROG_GCJ' => 1, - '_LT_PREPARE_SED_QUOTE_VARS' => 1, - 'PKG_CHECK_EXISTS' => 1, - '_LT_AC_LOCK' => 1, - 'LT_FUNC_ARGZ' => 1, - 'AM_DISABLE_STATIC' => 1, - '_LT_AC_TAGCONFIG' => 1, - 'AM_CONDITIONAL' => 1, + '_AM_PROG_CC_C_O' => 1, + 'AC_LTDL_SHLIBPATH' => 1, + 'AC_PROG_EGREP' => 1, + 'AC_LIBTOOL_CONFIG' => 1, 'AC_LTDL_SYMBOL_USCORE' => 1, - 'LT_INIT' => 1, - 'AC_LIBLTDL_CONVENIENCE' => 1, - 'AM_EXTRA_RECURSIVE_TARGETS' => 1, 'AC_LIBTOOL_SETUP' => 1, + 'AC_LIBTOOL_DLOPEN' => 1, + 'AC_DEFUN' => 1, + 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, + '_LT_WITH_SYSROOT' => 1, '_LT_PROG_LTMAIN' => 1, + 'AC_LIBTOOL_LINKER_OPTION' => 1, + 'AC_PROG_LD_RELOAD_FLAG' => 1, + '_LT_COMPILER_BOILERPLATE' => 1, + '_AC_AM_CONFIG_HEADER_HOOK' => 1, + '_LT_REQUIRED_DARWIN_CHECKS' => 1, + '_LT_AC_SYS_LIBPATH_AIX' => 1, 'AM_PROG_LD' => 1, - 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, - 'AM_RUN_LOG' => 1, - 'AC_ENABLE_FAST_INSTALL' => 1, - 'AC_LTDL_SHLIBEXT' => 1, - 'AC_LIBTOOL_OBJDIR' => 1, - '_LT_AC_LANG_F77_CONFIG' => 1, - 'AC_LTDL_SYSSEARCHPATH' => 1, - 'AM_PROG_CC_C_O' => 1 + 'LTDL_INIT' => 1, + 'LTDL_CONVENIENCE' => 1, + 'AC_LTDL_OBJDIR' => 1, + 'AM_AUTOMAKE_VERSION' => 1, + 'PKG_CHECK_EXISTS' => 1, + '_AM_PROG_TAR' => 1 } ], 'Autom4te::Request' ) );