Index: trunk/tests/test_shiftedLegendreIntegral.cc =================================================================== --- trunk/tests/test_shiftedLegendreIntegral.cc (revision 0) +++ trunk/tests/test_shiftedLegendreIntegral.cc (revision 920) @@ -0,0 +1,64 @@ +#include "UnitTest++.h" +#include "test_utils.hh" + +#include "npstat/nm/shiftedLegendreIntegral.hh" +#include "npstat/nm/ClassicalOrthoPolys1D.hh" + +using namespace npstat; + +namespace { + TEST(shiftedLegendreIntegral_3) + { + const double eps = 1.0e-15; + const unsigned degmax = 10U; + ShiftedLegendreOrthoPoly1D poly; + unsigned degs[3]; + + for (unsigned i=0; i<=degmax; ++i) + { + degs[0] = i; + for (unsigned j=0; j<=degmax; ++j) + { + degs[1] = j; + for (unsigned k=0; k<=degmax; ++k) + { + degs[2] = k; + const double expect = poly.jointIntegral(degs, 3U); + const double value = shiftedLegendreIntegral(i, j, k); + CHECK_CLOSE(expect, value, eps); + } + } + } + } + + TEST(shiftedLegendreIntegral_4) + { + const double eps = 1.0e-15; + const unsigned degmax = 10U; + ShiftedLegendreOrthoPoly1D poly; + unsigned degs[4]; + + for (unsigned itry=0; itry<2; ++itry) + { + for (unsigned i=0; i<=degmax; ++i) + { + degs[0] = i; + for (unsigned j=0; j<=degmax; ++j) + { + degs[1] = j; + for (unsigned k=0; k<=degmax; ++k) + { + degs[2] = k; + for (unsigned l=0; l<=degmax; ++l) + { + degs[3] = l; + const double expect = poly.jointIntegral(degs, 4U); + const double value = shiftedLegendreIntegral(i, j, k, l, true); + CHECK_CLOSE(expect, value, eps); + } + } + } + } + } + } +} Index: trunk/tests/Makefile =================================================================== --- trunk/tests/Makefile (revision 919) +++ trunk/tests/Makefile (revision 920) @@ -1,131 +1,132 @@ # Set the following two variables correctly UTESTPP_DIR = /home/igv/Code/UnitTest++ FFTW_LIBDIR = /usr/local/lib OFILES_COMMON = test_utils.o print_submatrix.o OTESTS_FAST = test_ArrayND.o test_OrthoPoly1D.o test_OrthoPolyND.o \ test_Functors.o test_interpolation.o test_LocalPolyFilterND.o \ test_Distributions1D.o test_InterpolatedDistribution1D.o \ test_EmpiricalCopula.o test_BoxNDScanner.o \ test_QuadraticOrthoPolyND.o test_LocalLogisticRegression.o \ test_randomPermutation.o test_gegenbauerSeriesSum.o \ test_GaussHermiteQuadrature.o test_SpecialFunctions.o \ test_GaussLegendreQuadrature.o test_WeightedStatAccumulator.o \ test_RandomSequenceRepeater.o test_logLikelihoodPeak.o \ test_legendreSeriesSum.o test_solveCubic.o test_HistoND.o \ test_SampleAccumulator.o test_GridInterpolatedDistribution.o \ test_GridAxis.o test_Matrix.o test_StatUtils.o \ test_amiseOptimalBandwidth.o test_OrderedPointND.o \ test_CompositeDistributionND.o test_CompositeBuilder.o \ test_ArchiveIO.o test_Ntuples.o test_LocalQuantileRegression.o \ test_rectangleQuadrature.o test_RegularSampler1D.o \ test_Instantiations.o test_chebyshevSeriesSum.o \ test_dawsonIntegral.o test_NMCombinationSequencer.o \ test_CrossCovarianceAccumulator.o test_StatAccumulatorPair.o \ test_findPeak2D.o test_StatAccumulatorArr.o test_SeriesCGF1D.o \ test_goldenSectionSearch.o test_empiricalQuantile.o \ test_StatAccumulator.o test_binomialCoefficient.o \ test_CircularMapper1d.o test_LinInterpolatedTableND.o \ test_StorableMultivariateFunctor.o test_NeymanPearsonWindow1D.o \ test_hermiteSeriesSum.o test_hermiteSeriesSumPhys.o \ test_DiscreteDistributions1D.o test_LocalPolyFilter1D.o \ test_definiteIntegrals.o test_ExpMapper1d.o test_MathUtils.o \ test_MemoizingSymbetaFilterProvider.o test_ResponseMatrix.o \ test_gaussianResponseMatrix.o test_RectangleQuadrature1D.o \ WeightedTestAccumulator.o TestAccumulator.o test_histoUtils.o \ test_LocalMultiFilter1D.o test_InterpolatedCompositeBuilder.o \ test_DensityAveScanND.o test_Distro1DBuilder.o \ test_findRootNewtonRaphson.o test_cumulantUncertainties.o \ test_ClassicalOrthoPolys1D.o test_ContOrthoPoly1D.o \ test_findRootUsingBisections.o test_orthoPoly1DVProducts.o \ test_truncatedInverseSqrt.o test_FejerQuadrature.o \ test_matrixIndexPairs.o test_KDE1DKernel.o test_Interval.o \ test_likelihoodStatisticCumulants.o test_Uncertainties.o \ test_DistributionsND.o EdgeworthSeries1DOld.o test_OSDE1D.o \ test_SequentialPolyFilterND.o test_HeatEq1DNeumannBoundary.o \ test_ScalableClassicalOrthoPoly1D.o LogLogQuadratic1D.o \ test_maxAbsValue.o test_LOrPE1DVariableDegreeCVRunner.o \ test_KDTree.o test_vectorAsText.o test_ChebyshevIntegral.o \ test_randomOrthogonalMatrix.o test_unitMatrixDeviations.o \ - test_TruncatedLog.o test_randomTukeyDepth.o test_Poly1D.o + test_TruncatedLog.o test_randomTukeyDepth.o test_Poly1D.o \ + test_shiftedLegendreIntegral.o OTESTS_COMPREHENSIVE = test_ArrayND_cmh.o test_DiscreteBernstein.o \ test_rescanArray_cmh.o test_LegendreCDTruncation.o \ test_LOrPE1DSymbetaKernel.o test_lorpeMise1D.o \ test_solveForLOrPEWeights.o test_LOrPE1DCV.o # OPTIMIZE = -std=c++11 -g -ggdb -O0 OPTIMIZE = -std=c++11 -O3 INCLUDES = -I. -I.. -I$(UTESTPP_DIR)/src -I$(FFTW_LIBDIR)/../include CPPFLAGS = $(OPTIMIZE) $(INCLUDES) -Wall -W -Werror -Wno-unused-parameter LIBS = -L../npstat/.libs -lnpstat -L$(UTESTPP_DIR) -lUnitTest++ \ -L$(FFTW_LIBDIR) -lfftw3 -llapack -lblas \ -L/usr/local/lib -lrk -lgeners -lbz2 -lz -lkstest -lm %.o : %.cc g++ -c $(CPPFLAGS) -fPIC -MD $< -o $@ @sed -i 's,\($*\.o\)[:]*\(.*\),$@: $$\(wildcard\2\)\n\1:\2,g' $*.d # Change the "all" target below to suit your development needs. # Useful targets which can be included are: # # fast fast_run # comprehensive comprehensive_run # regression regression_run # # The tests inside the "fast" target are a subset of tests from the # "comprehensive" target all: fast fast_run # all: fast regression fast_run regression_run # all: comprehensive comprehensive_run regression regression_run fast: test_main.o $(OTESTS_FAST) $(OFILES_COMMON) rm -f $@ g++ $(OPTIMIZE) -fPIC -o $@ $^ $(LIBS) fast_run: fast ./fast comprehensive: test_main.o $(OTESTS_FAST) \ $(OTESTS_COMPREHENSIVE) $(OFILES_COMMON) rm -f $@ g++ $(OPTIMIZE) -fPIC -o $@ $^ $(LIBS) comprehensive_run: comprehensive ./comprehensive regression: regression_run: regression @ echo Running regression tests. PROGRAMS = kdtree_speed.cc quantileBinFromCdf.cc incompleteGamma.cc \ convertToSpherical.cc printPermutations.cc showIOTraits.cc \ hugeNtuple.cc hugeNtupleRead.cc histoStdev.cc effectiveDim.cc \ buildInterpolatedCheck.cc legendreRoots.cc jacobiPolyStats.cc \ jacobiVProducts.cc jacobiEpsTest.cc gauss2DRandom.cc besselK.cc \ runNeymanOSDE1D.cc runPLogliOSDE1D.cc PROGRAMS += cpp11Random.cc PROGRAMS += failingTest.cc BINARIES = $(PROGRAMS:.cc=) binaries: $(BINARIES) $(BINARIES): % : %.o $(OFILES_COMMON); g++ $(OPTIMIZE) -fPIC -o $@ $^ $(LIBS) clean: rm -f fast comprehensive $(BINARIES) \ *.out core.* *.o *.d *~ *.gsbd *.gsbmf -include test_main.d -include $(OFILES_COMMON:.o=.d) -include $(OTESTS_FAST:.o=.d) -include $(OTESTS_COMPREHENSIVE:.o=.d) -include $(PROGRAMS:.cc=.d) Index: trunk/autom4te.cache/requests =================================================================== --- trunk/autom4te.cache/requests (revision 919) +++ trunk/autom4te.cache/requests (revision 920) @@ -1,473 +1,473 @@ # This file was generated by Autom4te 2.71. # 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/m4sugar/m4sugar.m4', '/usr/share/autoconf/m4sugar/m4sh.m4', '/usr/share/autoconf/autoconf/autoconf.m4', 'aclocal.m4', '/dev/null' ], { - 'AC_FC_FREEFORM' => 1, - 'AC_CONFIG_LIBOBJ_DIR' => 1, - 'AM_MAKEFILE_INCLUDE' => 1, - 'AC_FC_PP_DEFINE' => 1, - 'AH_OUTPUT' => 1, - '_LT_AC_TAGCONFIG' => 1, - 'AC_PROG_LIBTOOL' => 1, - 'AM_XGETTEXT_OPTION' => 1, - 'AC_CONFIG_LINKS' => 1, - 'AM_CONDITIONAL' => 1, - 'AM_PROG_MKDIR_P' => 1, - 'AM_PROG_MOC' => 1, - 'AC_SUBST' => 1, - '_AM_MAKEFILE_INCLUDE' => 1, - 'AM_PROG_LIBTOOL' => 1, - 'AC_CONFIG_HEADERS' => 1, - 'AC_CONFIG_MACRO_DIR_TRACE' => 1, - 'AC_SUBST_TRACE' => 1, 'AC_CONFIG_SUBDIRS' => 1, - 'm4_define' => 1, - '_AM_COND_IF' => 1, - 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, - '_m4_warn' => 1, + '_AM_COND_ENDIF' => 1, + 'm4_include' => 1, 'LT_SUPPORTED_TAG' => 1, - 'AM_PROG_FC_C_O' => 1, - 'AM_PATH_GUILE' => 1, + 'AM_PROG_AR' => 1, + 'AH_OUTPUT' => 1, + 'AM_PROG_CXX_C_O' => 1, + 'AC_FC_PP_DEFINE' => 1, 'm4_pattern_forbid' => 1, - 'AC_CANONICAL_HOST' => 1, - 'AC_FC_SRCEXT' => 1, 'AM_PROG_CC_C_O' => 1, - 'AC_CONFIG_FILES' => 1, + 'AM_MAINTAINER_MODE' => 1, + 'AM_PROG_MOC' => 1, + '_AM_COND_IF' => 1, + 'AC_CANONICAL_TARGET' => 1, + 'AC_FC_PP_SRCEXT' => 1, + 'AM_CONDITIONAL' => 1, 'LT_INIT' => 1, - 'AM_ENABLE_MULTILIB' => 1, + 'AC_FC_SRCEXT' => 1, + 'AM_PROG_LIBTOOL' => 1, + 'AC_CONFIG_FILES' => 1, '_AM_COND_ELSE' => 1, - 'AC_FC_PP_SRCEXT' => 1, - 'm4_pattern_allow' => 1, - 'AC_CANONICAL_TARGET' => 1, - 'm4_sinclude' => 1, - 'AM_MAINTAINER_MODE' => 1, - 'sinclude' => 1, - '_AM_COND_ENDIF' => 1, - 'AU_DEFINE' => 1, - 'AM_PROG_CXX_C_O' => 1, - 'AM_GNU_GETTEXT' => 1, - 'AM_SILENT_RULES' => 1, - 'GTK_DOC_CHECK' => 1, - 'AM_NLS' => 1, + 'AM_ENABLE_MULTILIB' => 1, 'AM_PROG_F77_C_O' => 1, - 'AC_CANONICAL_BUILD' => 1, - 'LT_CONFIG_LTDL_DIR' => 1, - 'include' => 1, - '_AM_SUBST_NOTMAKE' => 1, - 'AC_INIT' => 1, + 'AM_AUTOMAKE_VERSION' => 1, 'AC_REQUIRE_AUX_FILE' => 1, + 'AC_PROG_LIBTOOL' => 1, + 'AC_CONFIG_MACRO_DIR_TRACE' => 1, 'AC_CANONICAL_SYSTEM' => 1, + 'define' => 1, + '_m4_warn' => 1, + 'AM_MAKEFILE_INCLUDE' => 1, + 'AM_GNU_GETTEXT' => 1, + 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, + 'AM_PROG_MKDIR_P' => 1, + 'm4_pattern_allow' => 1, + 'AC_LIBSOURCE' => 1, + 'AM_PATH_GUILE' => 1, + '_LT_AC_TAGCONFIG' => 1, + 'AC_INIT' => 1, + 'AC_CONFIG_LIBOBJ_DIR' => 1, + 'IT_PROG_INTLTOOL' => 1, + 'AC_FC_FREEFORM' => 1, + 'LT_CONFIG_LTDL_DIR' => 1, + 'AM_SILENT_RULES' => 1, + 'AM_PROG_FC_C_O' => 1, + 'AM_NLS' => 1, 'AC_CONFIG_AUX_DIR' => 1, - 'AM_PROG_AR' => 1, + 'AC_SUBST_TRACE' => 1, + 'GTK_DOC_CHECK' => 1, + 'sinclude' => 1, + 'AC_CANONICAL_BUILD' => 1, + 'AM_XGETTEXT_OPTION' => 1, + 'm4_sinclude' => 1, + 'AU_DEFINE' => 1, 'AM_INIT_AUTOMAKE' => 1, - 'define' => 1, - 'm4_include' => 1, - 'AM_POT_TOOLS' => 1, - 'AC_DEFINE_TRACE_LITERAL' => 1, + 'AC_CONFIG_LINKS' => 1, + 'AC_CANONICAL_HOST' => 1, + 'include' => 1, 'AM_EXTRA_RECURSIVE_TARGETS' => 1, - 'AC_LIBSOURCE' => 1, - 'AM_AUTOMAKE_VERSION' => 1, - 'IT_PROG_INTLTOOL' => 1 + '_AM_MAKEFILE_INCLUDE' => 1, + 'AC_SUBST' => 1, + 'm4_define' => 1, + 'AM_POT_TOOLS' => 1, + '_AM_SUBST_NOTMAKE' => 1, + 'AC_CONFIG_HEADERS' => 1, + 'AC_DEFINE_TRACE_LITERAL' => 1 } ], 'Autom4te::Request' ), bless( [ '1', 1, [ '/usr/share/autoconf' ], [ '/usr/share/autoconf/autoconf/autoconf.m4f', '/usr/share/aclocal-1.16/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.16/amversion.m4', '/usr/share/aclocal-1.16/auxdir.m4', '/usr/share/aclocal-1.16/cond.m4', '/usr/share/aclocal-1.16/depend.m4', '/usr/share/aclocal-1.16/depout.m4', '/usr/share/aclocal-1.16/extra-recurs.m4', '/usr/share/aclocal-1.16/init.m4', '/usr/share/aclocal-1.16/install-sh.m4', '/usr/share/aclocal-1.16/lead-dot.m4', '/usr/share/aclocal-1.16/make.m4', '/usr/share/aclocal-1.16/missing.m4', '/usr/share/aclocal-1.16/options.m4', '/usr/share/aclocal-1.16/prog-cc-c-o.m4', '/usr/share/aclocal-1.16/runlog.m4', '/usr/share/aclocal-1.16/sanity.m4', '/usr/share/aclocal-1.16/silent.m4', '/usr/share/aclocal-1.16/strip.m4', '/usr/share/aclocal-1.16/substnot.m4', '/usr/share/aclocal-1.16/tar.m4', 'm4/libtool.m4', 'm4/ltoptions.m4', 'm4/ltsugar.m4', 'm4/ltversion.m4', 'm4/lt~obsolete.m4', 'configure.ac' ], { - 'AC_DEFUN_ONCE' => 1, - 'AM_PROG_LIBTOOL' => 1, - 'AC_CONFIG_MACRO_DIR_TRACE' => 1, - '_LT_AC_PROG_CXXCPP' => 1, - 'LT_SYS_DLOPEN_DEPLIBS' => 1, - 'LT_AC_PROG_RC' => 1, - 'LT_LANG' => 1, - 'AC_WITH_LTDL' => 1, - '_AM_PROG_CC_C_O' => 1, - 'LTDL_CONVENIENCE' => 1, - 'AM_MISSING_HAS_RUN' => 1, - '_LTDL_SETUP' => 1, - 'LT_AC_PROG_SED' => 1, + 'AM_INIT_AUTOMAKE' => 1, + 'LTOBSOLETE_VERSION' => 1, + '_AM_SET_OPTIONS' => 1, + 'AM_SET_LEADING_DOT' => 1, + '_LT_PROG_FC' => 1, 'AC_DEFUN' => 1, - '_LT_AC_TAGCONFIG' => 1, - '_AM_AUTOCONF_VERSION' => 1, - 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, - 'AC_PROG_LD_RELOAD_FLAG' => 1, - '_LT_AC_PROG_ECHO_BACKSLASH' => 1, - 'AM_SUBST_NOTMAKE' => 1, - 'AC_LIBLTDL_INSTALLABLE' => 1, - 'AM_CONDITIONAL' => 1, - '_LT_WITH_SYSROOT' => 1, - 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, + 'AC_PATH_MAGIC' => 1, + 'AC_LTDL_DLLIB' => 1, + 'AC_PROG_EGREP' => 1, 'AC_DISABLE_STATIC' => 1, - 'LT_AC_PROG_EGREP' => 1, - 'AM_PROG_INSTALL_STRIP' => 1, - 'AC_LIBTOOL_WIN32_DLL' => 1, - 'AC_ENABLE_STATIC' => 1, - '_LT_LINKER_OPTION' => 1, - 'AM_RUN_LOG' => 1, - 'AM_PROG_LD' => 1, - 'm4_include' => 1, - 'AM_EXTRA_RECURSIVE_TARGETS' => 1, - 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, + 'LT_CMD_MAX_LEN' => 1, + 'm4_pattern_allow' => 1, + '_m4_warn' => 1, + 'AM_AUX_DIR_EXPAND' => 1, + '_AC_PROG_LIBTOOL' => 1, '_AM_CONFIG_MACRO_DIRS' => 1, - 'AC_DISABLE_SHARED' => 1, + '_LT_LINKER_OPTION' => 1, + 'AM_SILENT_RULES' => 1, + 'AC_LIBTOOL_GCJ' => 1, + 'AC_LIB_LTDL' => 1, + 'AC_LIBLTDL_INSTALLABLE' => 1, + 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, + 'AC_LIBTOOL_WIN32_DLL' => 1, + 'LT_AC_PROG_SED' => 1, + '_LT_WITH_SYSROOT' => 1, + '_LT_AC_SYS_LIBPATH_AIX' => 1, 'AC_LIBTOOL_DLOPEN_SELF' => 1, - '_LT_AC_LANG_RC_CONFIG' => 1, - '_LT_AC_LANG_F77' => 1, - '_LT_PROG_CXX' => 1, - 'AM_PROG_CC_C_O' => 1, - 'AC_LTDL_SHLIBEXT' => 1, - 'm4_pattern_allow' => 1, - 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, - 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, - 'LT_AC_PROG_GCJ' => 1, 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, - 'AC_LIBTOOL_F77' => 1, - 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, - 'LT_LIB_M' => 1, - 'AC_LIBTOOL_FC' => 1, - 'AC_LIB_LTDL' => 1, - 'LT_PATH_NM' => 1, - '_AM_DEPENDENCIES' => 1, - '_LT_AC_LANG_GCJ_CONFIG' => 1, - 'AC_LIBTOOL_RC' => 1, - 'AC_LTDL_DLSYM_USCORE' => 1, - 'LTVERSION_VERSION' => 1, - '_LT_COMPILER_BOILERPLATE' => 1, - 'AU_DEFUN' => 1, - 'AC_LTDL_DLLIB' => 1, - 'LT_SUPPORTED_TAG' => 1, - 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, - 'AM_PROG_INSTALL_SH' => 1, - 'AC_LTDL_PREOPEN' => 1, - 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, - 'LT_PROG_GO' => 1, - 'AC_LIBTOOL_SETUP' => 1, - 'AC_LIBTOOL_CXX' => 1, - 'AC_PROG_EGREP' => 1, - 'LT_FUNC_DLSYM_USCORE' => 1, + '_LT_AC_TAGVAR' => 1, + 'AC_WITH_LTDL' => 1, 'AC_ENABLE_SHARED' => 1, - '_LT_PROG_LTMAIN' => 1, - 'PKG_CHECK_MODULES_STATIC' => 1, - '_LT_LIBOBJ' => 1, - '_LT_AC_LOCK' => 1, + 'AM_AUTOMAKE_VERSION' => 1, + 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, + '_PKG_SHORT_ERRORS_SUPPORTED' => 1, + 'AM_PROG_LIBTOOL' => 1, + 'AC_ENABLE_STATIC' => 1, + 'PKG_PROG_PKG_CONFIG' => 1, + '_LT_REQUIRED_DARWIN_CHECKS' => 1, + 'AM_DEP_TRACK' => 1, '_AC_AM_CONFIG_HEADER_HOOK' => 1, - 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, - '_AM_SET_OPTION' => 1, - 'AC_LTDL_SYMBOL_USCORE' => 1, - '_LT_AC_FILE_LTDLL_C' => 1, - '_LT_PROG_F77' => 1, - 'AC_LTDL_SHLIBPATH' => 1, - 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, - 'AC_LIBTOOL_DLOPEN' => 1, + 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, + '_LT_AC_PROG_ECHO_BACKSLASH' => 1, + 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, + 'LT_FUNC_DLSYM_USCORE' => 1, + 'AM_SUBST_NOTMAKE' => 1, + 'LT_SUPPORTED_TAG' => 1, + '_LT_PROG_ECHO_BACKSLASH' => 1, + 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1, + '_LT_AC_LANG_F77_CONFIG' => 1, + '_AM_PROG_CC_C_O' => 1, '_LT_AC_LANG_CXX_CONFIG' => 1, - 'LT_CMD_MAX_LEN' => 1, - 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, - 'LT_INIT' => 1, - 'AC_LIBTOOL_GCJ' => 1, - 'LT_SYS_DLOPEN_SELF' => 1, - '_LT_CC_BASENAME' => 1, + 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, + 'LT_FUNC_ARGZ' => 1, 'LTDL_INSTALLABLE' => 1, - 'AC_PROG_NM' => 1, - 'LT_PROG_RC' => 1, - 'LT_LIB_DLLOAD' => 1, - 'PKG_PROG_PKG_CONFIG' => 1, + 'PKG_CHECK_MODULES' => 1, + '_LT_AC_LANG_GCJ_CONFIG' => 1, 'LTSUGAR_VERSION' => 1, - 'AC_LIBTOOL_LANG_C_CONFIG' => 1, - '_LT_PREPARE_SED_QUOTE_VARS' => 1, - 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, - 'AC_DISABLE_FAST_INSTALL' => 1, - 'LTDL_INIT' => 1, - 'AC_LIBTOOL_PICMODE' => 1, - '_AM_IF_OPTION' => 1, - 'AC_LIBLTDL_CONVENIENCE' => 1, - 'AM_ENABLE_SHARED' => 1, - 'AC_LTDL_ENABLE_INSTALL' => 1, - '_AC_PROG_LIBTOOL' => 1, - 'AC_DEPLIBS_CHECK_METHOD' => 1, - '_LT_DLL_DEF_P' => 1, + 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, 'AC_CHECK_LIBM' => 1, - 'LT_WITH_LTDL' => 1, - '_AM_MANGLE_OPTION' => 1, - '_LT_AC_LANG_C_CONFIG' => 1, - 'PKG_INSTALLDIR' => 1, - '_LT_AC_LANG_F77_CONFIG' => 1, - 'PKG_CHECK_EXISTS' => 1, - 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, - 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1, - '_LT_AC_TRY_DLOPEN_SELF' => 1, - '_LT_COMPILER_OPTION' => 1, - '_LT_PATH_TOOL_PREFIX' => 1, - '_AM_SUBST_NOTMAKE' => 1, 'AC_LTDL_SYSSEARCHPATH' => 1, - 'AM_MISSING_PROG' => 1, - 'AM_SET_DEPDIR' => 1, - 'AM_INIT_AUTOMAKE' => 1, - '_PKG_SHORT_ERRORS_SUPPORTED' => 1, - 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, - 'LT_SYS_DLSEARCH_PATH' => 1, - 'AM_PROG_NM' => 1, - 'AM_MAKE_INCLUDE' => 1, - '_LT_PROG_ECHO_BACKSLASH' => 1, - 'AC_LTDL_OBJDIR' => 1, + 'LT_PROG_RC' => 1, + '_AM_IF_OPTION' => 1, + 'AM_EXTRA_RECURSIVE_TARGETS' => 1, + 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, + 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, + 'AC_LIBTOOL_FC' => 1, + 'AC_CONFIG_MACRO_DIR_TRACE' => 1, + 'AC_LTDL_DLSYM_USCORE' => 1, 'LT_PROG_GCJ' => 1, - 'AM_AUTOMAKE_VERSION' => 1, - '_LT_AC_CHECK_DLFCN' => 1, - '_AM_SET_OPTIONS' => 1, - 'LTOPTIONS_VERSION' => 1, - 'AC_PATH_MAGIC' => 1, - 'AC_LIBTOOL_COMPILER_OPTION' => 1, 'AC_PATH_TOOL_PREFIX' => 1, - 'AC_LIBTOOL_CONFIG' => 1, - 'AM_SILENT_RULES' => 1, - 'LT_CONFIG_LTDL_DIR' => 1, - '_LT_AC_SYS_COMPILER' => 1, + '_LT_COMPILER_BOILERPLATE' => 1, + 'AC_LIBTOOL_CXX' => 1, + 'AM_CONDITIONAL' => 1, + 'LT_LIB_DLLOAD' => 1, + 'AM_MISSING_HAS_RUN' => 1, 'LT_SYS_SYMBOL_USCORE' => 1, - 'AC_LIBTOOL_PROG_CC_C_O' => 1, + 'AC_LTDL_SHLIBPATH' => 1, + '_LT_COMPILER_OPTION' => 1, + 'LTDL_CONVENIENCE' => 1, + 'AC_LTDL_OBJDIR' => 1, + '_AM_PROG_TAR' => 1, + 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, + 'AC_DEFUN_ONCE' => 1, + 'AC_LIBTOOL_COMPILER_OPTION' => 1, + 'AC_LIBTOOL_DLOPEN' => 1, + 'AM_PROG_LD' => 1, + 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, + 'LT_AC_PROG_GCJ' => 1, 'LT_PATH_LD' => 1, - 'LT_OUTPUT' => 1, - 'AM_DEP_TRACK' => 1, - '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, - 'AM_DISABLE_STATIC' => 1, - '_m4_warn' => 1, + 'AC_PROG_NM' => 1, + 'AC_LIBTOOL_LINKER_OPTION' => 1, + 'AM_PROG_INSTALL_SH' => 1, + 'AC_DISABLE_SHARED' => 1, + '_LT_AC_LOCK' => 1, + 'AM_PROG_CC_C_O' => 1, 'm4_pattern_forbid' => 1, - '_LT_REQUIRED_DARWIN_CHECKS' => 1, - '_LT_LINKER_BOILERPLATE' => 1, + '_LTDL_SETUP' => 1, + '_LT_PREPARE_SED_QUOTE_VARS' => 1, 'PKG_CHECK_VAR' => 1, - '_LT_AC_TAGVAR' => 1, + 'm4_include' => 1, + 'include' => 1, + 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, + '_LT_AC_LANG_F77' => 1, + 'AC_LTDL_PREOPEN' => 1, + '_LT_CC_BASENAME' => 1, + '_LT_AC_PROG_CXXCPP' => 1, + '_AM_DEPENDENCIES' => 1, + '_AM_SUBST_NOTMAKE' => 1, + 'LT_AC_PROG_RC' => 1, + 'AC_LTDL_SYMBOL_USCORE' => 1, + '_LT_PROG_F77' => 1, + 'LT_AC_PROG_EGREP' => 1, + 'AC_LIBTOOL_SETUP' => 1, + 'PKG_INSTALLDIR' => 1, + 'LT_SYS_DLOPEN_DEPLIBS' => 1, + 'AM_DISABLE_STATIC' => 1, + 'AC_LTDL_SHLIBEXT' => 1, + 'LT_CONFIG_LTDL_DIR' => 1, + 'AM_MISSING_PROG' => 1, + '_LT_AC_SYS_COMPILER' => 1, + 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, + '_LT_PATH_TOOL_PREFIX' => 1, + 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, + '_LT_PROG_CXX' => 1, + '_AM_MANGLE_OPTION' => 1, + 'AM_ENABLE_STATIC' => 1, 'PKG_NOARCH_INSTALLDIR' => 1, 'AC_PROG_LIBTOOL' => 1, - 'AC_LIBTOOL_OBJDIR' => 1, - 'LTOBSOLETE_VERSION' => 1, - 'LT_SYS_MODULE_PATH' => 1, - '_LT_AC_SYS_LIBPATH_AIX' => 1, - '_LT_PROG_FC' => 1, - 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, - '_LT_AC_LANG_CXX' => 1, - 'include' => 1, + 'AM_ENABLE_SHARED' => 1, + 'AM_RUN_LOG' => 1, + '_LT_AC_FILE_LTDLL_C' => 1, + 'AC_LTDL_ENABLE_INSTALL' => 1, + 'AM_SET_DEPDIR' => 1, + '_LT_AC_LANG_C_CONFIG' => 1, + 'AC_LIBTOOL_F77' => 1, + '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + '_LT_AC_TRY_DLOPEN_SELF' => 1, 'AC_ENABLE_FAST_INSTALL' => 1, + 'AC_LIBTOOL_PICMODE' => 1, + '_LT_DLL_DEF_P' => 1, + 'LTOPTIONS_VERSION' => 1, + 'LT_SYS_MODULE_EXT' => 1, + 'LT_SYS_MODULE_PATH' => 1, + '_LT_AC_SHELL_INIT' => 1, + 'AC_DEPLIBS_CHECK_METHOD' => 1, + 'AC_DISABLE_FAST_INSTALL' => 1, + 'LT_LANG' => 1, 'AM_SANITY_CHECK' => 1, - 'LT_FUNC_ARGZ' => 1, - 'AC_PROG_LD_GNU' => 1, - '_AM_PROG_TAR' => 1, + 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, + 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, + 'LT_WITH_LTDL' => 1, + '_LT_LINKER_BOILERPLATE' => 1, + '_LT_LIBOBJ' => 1, 'AC_CONFIG_MACRO_DIR' => 1, + 'AC_LIBTOOL_CONFIG' => 1, + 'AC_LIBTOOL_PROG_CC_C_O' => 1, + 'AC_LIBTOOL_OBJDIR' => 1, + '_AM_SET_OPTION' => 1, + '_LT_AC_TAGCONFIG' => 1, + 'LT_INIT' => 1, + 'AC_PROG_LD_GNU' => 1, + '_LT_PROG_LTMAIN' => 1, + 'AC_LIBTOOL_RC' => 1, + 'AC_PROG_LD' => 1, + 'LT_LIB_M' => 1, + 'LTDL_INIT' => 1, + 'LT_PATH_NM' => 1, + 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, + 'LT_SYS_DLOPEN_SELF' => 1, + 'AC_LIBLTDL_CONVENIENCE' => 1, + 'AM_MAKE_INCLUDE' => 1, + 'PKG_CHECK_EXISTS' => 1, + '_LT_AC_CHECK_DLFCN' => 1, + 'LT_PROG_GO' => 1, + 'AC_LIBTOOL_LANG_C_CONFIG' => 1, 'AM_DISABLE_SHARED' => 1, - '_LT_AC_SHELL_INIT' => 1, + 'AM_PROG_INSTALL_STRIP' => 1, + 'AC_PROG_LD_RELOAD_FLAG' => 1, + 'AM_PROG_NM' => 1, + 'LT_OUTPUT' => 1, + '_LT_AC_LANG_RC_CONFIG' => 1, '_LT_AC_LANG_GCJ' => 1, - 'PKG_CHECK_MODULES' => 1, - 'AM_AUX_DIR_EXPAND' => 1, - 'AM_SET_LEADING_DOT' => 1, - 'LT_SYS_MODULE_EXT' => 1, - 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, - 'AC_LIBTOOL_LINKER_OPTION' => 1, - 'AC_PROG_LD' => 1, - 'AM_ENABLE_STATIC' => 1 + 'AU_DEFUN' => 1, + '_AM_AUTOCONF_VERSION' => 1, + 'LTVERSION_VERSION' => 1, + 'LT_SYS_DLSEARCH_PATH' => 1, + 'PKG_CHECK_MODULES_STATIC' => 1, + '_LT_AC_LANG_CXX' => 1 } ], 'Autom4te::Request' ), bless( [ '2', 1, [ '/usr/share/autoconf' ], [ '/usr/share/autoconf/autoconf/autoconf.m4f', 'aclocal.m4', 'configure.ac' ], { - '_LT_AC_TAGCONFIG' => 1, + 'AM_PROG_AR' => 1, 'AH_OUTPUT' => 1, - 'AC_PROG_LIBTOOL' => 1, - 'AM_MAKEFILE_INCLUDE' => 1, - 'AC_FC_FREEFORM' => 1, - 'AC_CONFIG_LIBOBJ_DIR' => 1, - 'AC_FC_PP_DEFINE' => 1, - 'AM_XGETTEXT_OPTION' => 1, - 'AC_CONFIG_LINKS' => 1, - 'AM_PROG_MKDIR_P' => 1, - 'AM_CONDITIONAL' => 1, - 'AM_PROG_MOC' => 1, - 'AC_SUBST' => 1, - '_AM_MAKEFILE_INCLUDE' => 1, - 'AC_CONFIG_MACRO_DIR_TRACE' => 1, - 'AC_CONFIG_HEADERS' => 1, - 'AM_PROG_LIBTOOL' => 1, - 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, - '_AM_COND_IF' => 1, - 'AC_SUBST_TRACE' => 1, - 'AC_CONFIG_SUBDIRS' => 1, - 'm4_pattern_forbid' => 1, - 'AM_PROG_FC_C_O' => 1, + 'AM_PROG_CXX_C_O' => 1, + 'm4_include' => 1, 'LT_SUPPORTED_TAG' => 1, - '_m4_warn' => 1, - 'AM_PATH_GUILE' => 1, - 'AC_CONFIG_FILES' => 1, 'AM_PROG_CC_C_O' => 1, - 'AC_CANONICAL_HOST' => 1, - 'AC_FC_SRCEXT' => 1, - 'AC_CANONICAL_TARGET' => 1, - 'm4_sinclude' => 1, - 'LT_INIT' => 1, + 'AC_FC_PP_DEFINE' => 1, + 'm4_pattern_forbid' => 1, + 'AC_CONFIG_SUBDIRS' => 1, + '_AM_COND_ENDIF' => 1, 'AM_ENABLE_MULTILIB' => 1, '_AM_COND_ELSE' => 1, - 'm4_pattern_allow' => 1, - 'AC_FC_PP_SRCEXT' => 1, - 'AM_MAINTAINER_MODE' => 1, - 'sinclude' => 1, - '_AM_COND_ENDIF' => 1, + 'AC_CONFIG_FILES' => 1, 'AM_PROG_F77_C_O' => 1, - 'AM_NLS' => 1, - 'LT_CONFIG_LTDL_DIR' => 1, - 'AC_CANONICAL_BUILD' => 1, - 'AM_SILENT_RULES' => 1, - 'AM_GNU_GETTEXT' => 1, - 'AM_PROG_CXX_C_O' => 1, - 'GTK_DOC_CHECK' => 1, - '_AM_SUBST_NOTMAKE' => 1, + 'AM_PROG_LIBTOOL' => 1, + 'AC_PROG_LIBTOOL' => 1, + 'AM_AUTOMAKE_VERSION' => 1, 'AC_REQUIRE_AUX_FILE' => 1, - 'AC_CANONICAL_SYSTEM' => 1, + 'AM_PROG_MOC' => 1, + '_AM_COND_IF' => 1, + 'AM_MAINTAINER_MODE' => 1, + 'AC_FC_PP_SRCEXT' => 1, + 'AM_CONDITIONAL' => 1, + 'AC_CANONICAL_TARGET' => 1, + 'LT_INIT' => 1, + 'AC_FC_SRCEXT' => 1, + 'IT_PROG_INTLTOOL' => 1, + 'AC_FC_FREEFORM' => 1, + 'AM_SILENT_RULES' => 1, + 'LT_CONFIG_LTDL_DIR' => 1, + '_LT_AC_TAGCONFIG' => 1, 'AC_INIT' => 1, - 'include' => 1, + 'AC_CONFIG_LIBOBJ_DIR' => 1, + 'AM_NLS' => 1, + 'AC_SUBST_TRACE' => 1, 'AC_CONFIG_AUX_DIR' => 1, - 'AM_PROG_AR' => 1, - 'm4_include' => 1, + 'AM_PROG_FC_C_O' => 1, + 'AC_CONFIG_MACRO_DIR_TRACE' => 1, + 'AC_CANONICAL_SYSTEM' => 1, + '_m4_warn' => 1, + 'AM_MAKEFILE_INCLUDE' => 1, + 'AM_GNU_GETTEXT' => 1, + 'AC_LIBSOURCE' => 1, + 'AM_PATH_GUILE' => 1, + 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, + 'AM_PROG_MKDIR_P' => 1, + 'm4_pattern_allow' => 1, + 'AC_SUBST' => 1, + 'AM_EXTRA_RECURSIVE_TARGETS' => 1, + '_AM_MAKEFILE_INCLUDE' => 1, 'AM_POT_TOOLS' => 1, - 'AM_INIT_AUTOMAKE' => 1, - 'AM_AUTOMAKE_VERSION' => 1, - 'IT_PROG_INTLTOOL' => 1, + 'AC_CONFIG_HEADERS' => 1, + '_AM_SUBST_NOTMAKE' => 1, 'AC_DEFINE_TRACE_LITERAL' => 1, - 'AM_EXTRA_RECURSIVE_TARGETS' => 1, - 'AC_LIBSOURCE' => 1 + 'm4_sinclude' => 1, + 'AM_XGETTEXT_OPTION' => 1, + 'GTK_DOC_CHECK' => 1, + 'AC_CANONICAL_BUILD' => 1, + 'sinclude' => 1, + 'include' => 1, + 'AC_CANONICAL_HOST' => 1, + 'AC_CONFIG_LINKS' => 1, + 'AM_INIT_AUTOMAKE' => 1 } ], 'Autom4te::Request' ), bless( [ '3', 1, [ '/usr/share/autoconf' ], [ '/usr/share/autoconf/autoconf/autoconf.m4f', 'aclocal.m4', '/usr/share/autoconf/autoconf/trailer.m4', 'configure.ac' ], { - 'AM_MAINTAINER_MODE' => 1, - 'sinclude' => 1, - '_AM_COND_ENDIF' => 1, + 'm4_include' => 1, + 'LT_SUPPORTED_TAG' => 1, + 'AM_PROG_AR' => 1, + 'AH_OUTPUT' => 1, 'AM_PROG_CXX_C_O' => 1, - 'AM_GNU_GETTEXT' => 1, - 'AM_SILENT_RULES' => 1, - 'GTK_DOC_CHECK' => 1, - 'AM_NLS' => 1, - 'AM_PROG_F77_C_O' => 1, - 'AC_CANONICAL_BUILD' => 1, - 'LT_CONFIG_LTDL_DIR' => 1, - 'AC_CANONICAL_HOST' => 1, - 'AC_FC_SRCEXT' => 1, + 'AC_FC_PP_DEFINE' => 1, + 'm4_pattern_forbid' => 1, 'AM_PROG_CC_C_O' => 1, - 'AC_CONFIG_FILES' => 1, - '_AM_COND_ELSE' => 1, + 'AC_CONFIG_SUBDIRS' => 1, + '_AM_COND_ENDIF' => 1, + 'AM_PROG_LIBTOOL' => 1, 'AM_ENABLE_MULTILIB' => 1, - 'LT_INIT' => 1, - 'AC_FC_PP_SRCEXT' => 1, - 'm4_pattern_allow' => 1, - 'AC_CANONICAL_TARGET' => 1, - 'm4_sinclude' => 1, - 'AM_INIT_AUTOMAKE' => 1, - 'm4_include' => 1, - 'AM_POT_TOOLS' => 1, - 'AC_DEFINE_TRACE_LITERAL' => 1, - 'AM_EXTRA_RECURSIVE_TARGETS' => 1, - 'AC_LIBSOURCE' => 1, + '_AM_COND_ELSE' => 1, + 'AC_CONFIG_FILES' => 1, + 'AM_PROG_F77_C_O' => 1, 'AM_AUTOMAKE_VERSION' => 1, - 'IT_PROG_INTLTOOL' => 1, - 'include' => 1, - 'AC_INIT' => 1, 'AC_REQUIRE_AUX_FILE' => 1, - 'AC_CANONICAL_SYSTEM' => 1, - '_AM_SUBST_NOTMAKE' => 1, - 'AC_CONFIG_AUX_DIR' => 1, - 'AM_PROG_AR' => 1, - 'AM_CONDITIONAL' => 1, - 'AM_PROG_MKDIR_P' => 1, + 'AC_PROG_LIBTOOL' => 1, + 'AM_MAINTAINER_MODE' => 1, 'AM_PROG_MOC' => 1, - 'AC_FC_FREEFORM' => 1, - 'AC_CONFIG_LIBOBJ_DIR' => 1, - 'AM_MAKEFILE_INCLUDE' => 1, - 'AC_FC_PP_DEFINE' => 1, - 'AH_OUTPUT' => 1, + '_AM_COND_IF' => 1, + 'AC_FC_PP_SRCEXT' => 1, + 'AM_CONDITIONAL' => 1, + 'AC_CANONICAL_TARGET' => 1, + 'LT_INIT' => 1, + 'AC_FC_SRCEXT' => 1, '_LT_AC_TAGCONFIG' => 1, - 'AC_PROG_LIBTOOL' => 1, - 'AM_XGETTEXT_OPTION' => 1, - 'AC_CONFIG_LINKS' => 1, + 'AC_INIT' => 1, + 'AC_CONFIG_LIBOBJ_DIR' => 1, + 'IT_PROG_INTLTOOL' => 1, + 'AC_FC_FREEFORM' => 1, + 'AM_SILENT_RULES' => 1, + 'LT_CONFIG_LTDL_DIR' => 1, + 'AM_PROG_FC_C_O' => 1, + 'AM_NLS' => 1, + 'AC_CONFIG_AUX_DIR' => 1, 'AC_SUBST_TRACE' => 1, - 'AC_CONFIG_SUBDIRS' => 1, - 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, - '_AM_COND_IF' => 1, + 'AC_CONFIG_MACRO_DIR_TRACE' => 1, + 'AC_CANONICAL_SYSTEM' => 1, '_m4_warn' => 1, - 'LT_SUPPORTED_TAG' => 1, - 'AM_PROG_FC_C_O' => 1, + 'AM_GNU_GETTEXT' => 1, + 'AM_MAKEFILE_INCLUDE' => 1, + 'AM_PROG_MKDIR_P' => 1, + 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, + 'm4_pattern_allow' => 1, + 'AC_LIBSOURCE' => 1, 'AM_PATH_GUILE' => 1, - 'm4_pattern_forbid' => 1, - 'AC_SUBST' => 1, + 'AM_EXTRA_RECURSIVE_TARGETS' => 1, '_AM_MAKEFILE_INCLUDE' => 1, - 'AM_PROG_LIBTOOL' => 1, + 'AC_SUBST' => 1, + 'AM_POT_TOOLS' => 1, + 'AC_DEFINE_TRACE_LITERAL' => 1, + '_AM_SUBST_NOTMAKE' => 1, 'AC_CONFIG_HEADERS' => 1, - 'AC_CONFIG_MACRO_DIR_TRACE' => 1 + 'GTK_DOC_CHECK' => 1, + 'sinclude' => 1, + 'AC_CANONICAL_BUILD' => 1, + 'm4_sinclude' => 1, + 'AM_XGETTEXT_OPTION' => 1, + 'AM_INIT_AUTOMAKE' => 1, + 'AC_CONFIG_LINKS' => 1, + 'include' => 1, + 'AC_CANONICAL_HOST' => 1 } ], 'Autom4te::Request' ) ); Index: trunk/npstat/nm/Makefile.am =================================================================== --- trunk/npstat/nm/Makefile.am (revision 919) +++ trunk/npstat/nm/Makefile.am (revision 920) @@ -1,188 +1,197 @@ 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 ScanExtremum1D.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 Gauss1DQuadrature.cc \ HeatEq1DNeumannBoundary.cc performSchultzIteration.cc RecurrenceCoeffs.cc \ GaussLegendreQuadratureQ.cc GaussLegendreQuadrature2D.cc Poly1D.cc \ ScalableClassicalOrthoPoly1D.cc RectangleQuadrature1D.cc findPeak2D.cc \ - sineTransformMatrix.cc scalesFromHessian.cc LegendreCDTruncation.cc + sineTransformMatrix.cc scalesFromHessian.cc LegendreCDTruncation.cc \ + shiftedLegendreIntegral.cc includedir = ${prefix}/include/npstat/nm include_HEADERS = AbsArrayProjector.hh \ AbsClassicalOrthoPoly1D.hh \ AbsClassicalOrthoPoly1D.icc \ absDifference.hh \ AbsIntervalQuadrature1D.hh \ AbsMultivariateFunctor.hh \ AbsVisitor.hh \ allocators.hh \ areAllElementsUnique.hh \ ArrayND.hh \ ArrayND.icc \ ArrayNDScanner.hh \ ArrayRange.hh \ ArrayShape.hh \ bilinearSection.hh \ BindKernel.hh \ binomialCoefficient.hh \ BoundaryInclusion.hh \ BoxND.hh \ BoxND.icc \ BoxNDScanner.hh \ BoxNDScanner.icc \ cdKernelSensitivityMatrix.hh \ cdKernelSensitivityMatrix.icc \ ChebyshevIntegral.hh \ CircularMapper1d.hh \ ClassicalOrthoPoly1DFromWeight.hh \ ClassicalOrthoPoly1DFromWeight.icc \ ClassicalOrthoPolys1D.hh \ closeWithinTolerance.hh \ CompareByIndex.hh \ ComplexComparesAbs.hh \ ComplexComparesFalse.hh \ ConstSubscriptMap.hh \ ContOrthoPoly1D.hh \ ContOrthoPoly1D.icc \ + ContOrthoPoly1DQ.hh \ + ContOrthoPoly1DQ.icc \ ConvolutionDensity1D.hh \ ConvolutionDensity1D.icc \ ConvolutionEngine1D.hh \ ConvolutionEngine1D.icc \ ConvolutionEngineND.hh \ ConvolutionEngineND.icc \ coordAndWeight.hh \ CoordinateSelector.hh \ definiteIntegrals.hh \ DiscreteBernsteinPoly1D.hh \ discretizedDistance.hh \ discretizedDistance.icc \ DualAxis.hh \ EigenMethod.hh \ EquidistantSequence.hh \ ExpMapper1d.hh \ fcnOrConst.hh \ FejerQuadrature.hh \ FejerQuadrature.icc \ fillArrayCentersPreservingAreas.hh \ findPeak2D.hh \ findRootInLogSpace.hh \ findRootInLogSpace.icc \ findRootNewtonRaphson.hh \ findRootNewtonRaphson.icc \ findRootUsingBisections.hh \ findRootUsingBisections.icc \ float128IO.hh \ FourierImage.hh \ Gauss1DQuadrature.hh \ GaussHermiteQuadrature.hh \ GaussHermiteQuadrature.icc \ GaussianDip.hh \ GaussLegendreQuadrature.hh \ GaussLegendreQuadrature.icc \ GaussLegendreQuadrature2D.hh \ GaussLegendreQuadrature2D.icc \ GaussLegendreQuadratureQ.hh \ GaussLegendreQuadratureQ.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 \ kernelSensitivityMatrix.hh \ kernelSensitivityMatrix.icc \ lapack.h \ lapack_double.h \ lapack_interface.hh \ lapack_interface.icc \ lapack_interface_double.icc \ lapack_interface_ldouble.icc \ lapack_interface_float.icc \ LegendreCDTruncation.hh \ LinearMapper1d.hh \ LinInterpolatedTable1D.hh \ LinInterpolatedTable1D.icc \ LinInterpolatedTableND.hh \ LinInterpolatedTableND.icc \ LogMapper1d.hh \ LongerType.hh \ MathUtils.hh \ MathUtils.icc \ Matrix.hh \ matrixIndexPairs.hh \ Matrix.icc \ maxAbsValue.hh \ MinSearchStatus1D.hh \ modifiedGramSchmidt.hh \ modifiedGramSchmidt.icc \ multivariateCosine.hh \ MultivariateFunctorScanner.hh \ opsRootsFromJacobiMatrix.hh \ OrthoPoly1D.hh \ OrthoPoly1D.icc \ OrthoPolyMethod.hh \ OrthoPolyND.hh \ OrthoPolyND.icc \ PairCompare.hh \ + PairCompareQ.hh \ performSchultzIteration.hh \ PointDimensionality.hh \ Poly1D.hh \ polyPrivateUtils.hh \ polyPrivateUtils.icc \ PreciseType.hh \ ProperDblFromCmpl.hh \ PtrBufferHandle.hh \ + quad_float.hh \ RectangleQuadrature1D.hh \ RectangleQuadrature1D.icc \ Recurrence.hh \ + RecurrenceQ.hh \ RecurrenceCoeffs.hh \ RecurrenceCoeffs.icc \ + RecurrenceCoeffsQ.hh \ + RecurrenceCoeffsQ.icc \ RecurrenceCoeffsTrGauss.hh \ RecurrenceCoeffsTrGauss.icc \ rectangleQuadrature.hh \ rescanArray.hh \ rescanArray.icc \ ScanExtremum1D.hh \ ScalableClassicalOrthoPoly1D.hh \ ScalableClassicalOrthoPoly1D.icc \ scalesFromHessian.hh \ SemiInfGaussianQuadrature.hh \ SemiInfGaussianQuadrature.icc \ + shiftedLegendreIntegral.hh \ SimpleFunctors.hh \ SimpleScalarProduct.hh \ sineTransformMatrix.hh \ SpecialFunctions.hh \ std_quadmath.hh \ StorablePolySeries1D.hh \ StorablePolySeries1D.icc \ sumOfSquares.hh \ SvdMethod.hh \ timestamp.hh \ Triple.hh \ truncatedInverseSqrt.hh \ TruncatedLog.hh \ TruncatedLog.icc \ UniformAxis.hh \ unitMatrixDeviations.hh \ unitMatrixDeviations.icc \ vectorAsText.hh EXTRA_DIST = 00README.txt Index: trunk/npstat/nm/Makefile =================================================================== --- trunk/npstat/nm/Makefile (revision 919) +++ trunk/npstat/nm/Makefile (revision 920) @@ -1,1050 +1,1064 @@ # Makefile.in generated by automake 1.16.5 from Makefile.am. # npstat/nm/Makefile. Generated from Makefile.in by configure. # Copyright (C) 1994-2021 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 ScanExtremum1D.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 \ Gauss1DQuadrature.lo HeatEq1DNeumannBoundary.lo \ performSchultzIteration.lo RecurrenceCoeffs.lo \ GaussLegendreQuadratureQ.lo GaussLegendreQuadrature2D.lo \ Poly1D.lo ScalableClassicalOrthoPoly1D.lo \ RectangleQuadrature1D.lo findPeak2D.lo sineTransformMatrix.lo \ - scalesFromHessian.lo LegendreCDTruncation.lo + scalesFromHessian.lo LegendreCDTruncation.lo \ + shiftedLegendreIntegral.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__maybe_remake_depfiles = depfiles am__depfiles_remade = ./$(DEPDIR)/AbsClassicalOrthoPoly1D.Plo \ ./$(DEPDIR)/ArrayNDScanner.Plo ./$(DEPDIR)/ArrayRange.Plo \ ./$(DEPDIR)/ArrayShape.Plo \ ./$(DEPDIR)/ClassicalOrthoPolys1D.Plo \ ./$(DEPDIR)/ContOrthoPoly1D.Plo \ ./$(DEPDIR)/ConvolutionEngine1D.Plo \ ./$(DEPDIR)/ConvolutionEngineND.Plo \ ./$(DEPDIR)/DiscreteBernsteinPoly1D.Plo \ ./$(DEPDIR)/DualAxis.Plo ./$(DEPDIR)/EigenMethod.Plo \ ./$(DEPDIR)/EquidistantSequence.Plo \ ./$(DEPDIR)/FejerQuadrature.Plo ./$(DEPDIR)/FourierImage.Plo \ ./$(DEPDIR)/Gauss1DQuadrature.Plo \ ./$(DEPDIR)/GaussHermiteQuadrature.Plo \ ./$(DEPDIR)/GaussLegendreQuadrature.Plo \ ./$(DEPDIR)/GaussLegendreQuadrature2D.Plo \ ./$(DEPDIR)/GaussLegendreQuadratureQ.Plo \ ./$(DEPDIR)/GridAxis.Plo \ ./$(DEPDIR)/HeatEq1DNeumannBoundary.Plo \ ./$(DEPDIR)/LegendreCDTruncation.Plo \ ./$(DEPDIR)/LinInterpolatedTable1D.Plo \ ./$(DEPDIR)/MathUtils.Plo ./$(DEPDIR)/OrthoPoly1D.Plo \ ./$(DEPDIR)/OrthoPolyMethod.Plo ./$(DEPDIR)/Poly1D.Plo \ ./$(DEPDIR)/RectangleQuadrature1D.Plo \ ./$(DEPDIR)/RecurrenceCoeffs.Plo \ ./$(DEPDIR)/ScalableClassicalOrthoPoly1D.Plo \ ./$(DEPDIR)/ScanExtremum1D.Plo \ ./$(DEPDIR)/SemiInfGaussianQuadrature.Plo \ ./$(DEPDIR)/SpecialFunctions.Plo \ ./$(DEPDIR)/StorablePolySeries1D.Plo ./$(DEPDIR)/SvdMethod.Plo \ ./$(DEPDIR)/UniformAxis.Plo ./$(DEPDIR)/bilinearSection.Plo \ ./$(DEPDIR)/binomialCoefficient.Plo \ ./$(DEPDIR)/definiteIntegrals.Plo ./$(DEPDIR)/findPeak2D.Plo \ ./$(DEPDIR)/goldenSectionSearch.Plo \ ./$(DEPDIR)/lapack_interface.Plo \ ./$(DEPDIR)/matrixIndexPairs.Plo \ ./$(DEPDIR)/performSchultzIteration.Plo \ ./$(DEPDIR)/rectangleQuadrature.Plo \ ./$(DEPDIR)/scalesFromHessian.Plo \ + ./$(DEPDIR)/shiftedLegendreIntegral.Plo \ ./$(DEPDIR)/sineTransformMatrix.Plo ./$(DEPDIR)/timestamp.Plo \ ./$(DEPDIR)/truncatedInverseSqrt.Plo 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)` 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.16 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.16 AWK = mawk CC = gcc CCDEPMODE = depmode=gcc3 CFLAGS = -g -O2 CPPFLAGS = CSCOPE = cscope CTAGS = ctags 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.10.0\" -DPACKAGE_STRING=\"npstat\ 5.10.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"npstat\" -DVERSION=\"5.10.0\" -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=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 ETAGS = etags EXEEXT = F77 = g77 FFLAGS = -g -O2 FGREP = /bin/grep -F FLIBS = -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../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/11/../../.. -lgfortran -lm -lquadmath GREP = /bin/grep INSTALL = /bin/install -c INSTALL_DATA = ${INSTALL} -m 644 INSTALL_PROGRAM = ${INSTALL} INSTALL_SCRIPT = ${INSTALL} INSTALL_STRIP_PROGRAM = $(install_sh) -c -s LD = /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 = /bin/nm -B NMEDIT = OBJDUMP = objdump OBJEXT = o OTOOL = OTOOL64 = PACKAGE = npstat PACKAGE_BUGREPORT = PACKAGE_NAME = npstat PACKAGE_STRING = npstat 5.10.0 PACKAGE_TARNAME = npstat PACKAGE_URL = PACKAGE_VERSION = 5.10.0 PATH_SEPARATOR = : PKG_CONFIG = /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.10.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 ScanExtremum1D.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 Gauss1DQuadrature.cc \ HeatEq1DNeumannBoundary.cc performSchultzIteration.cc RecurrenceCoeffs.cc \ GaussLegendreQuadratureQ.cc GaussLegendreQuadrature2D.cc Poly1D.cc \ ScalableClassicalOrthoPoly1D.cc RectangleQuadrature1D.cc findPeak2D.cc \ - sineTransformMatrix.cc scalesFromHessian.cc LegendreCDTruncation.cc + sineTransformMatrix.cc scalesFromHessian.cc LegendreCDTruncation.cc \ + shiftedLegendreIntegral.cc include_HEADERS = AbsArrayProjector.hh \ AbsClassicalOrthoPoly1D.hh \ AbsClassicalOrthoPoly1D.icc \ absDifference.hh \ AbsIntervalQuadrature1D.hh \ AbsMultivariateFunctor.hh \ AbsVisitor.hh \ allocators.hh \ areAllElementsUnique.hh \ ArrayND.hh \ ArrayND.icc \ ArrayNDScanner.hh \ ArrayRange.hh \ ArrayShape.hh \ bilinearSection.hh \ BindKernel.hh \ binomialCoefficient.hh \ BoundaryInclusion.hh \ BoxND.hh \ BoxND.icc \ BoxNDScanner.hh \ BoxNDScanner.icc \ cdKernelSensitivityMatrix.hh \ cdKernelSensitivityMatrix.icc \ ChebyshevIntegral.hh \ CircularMapper1d.hh \ ClassicalOrthoPoly1DFromWeight.hh \ ClassicalOrthoPoly1DFromWeight.icc \ ClassicalOrthoPolys1D.hh \ closeWithinTolerance.hh \ CompareByIndex.hh \ ComplexComparesAbs.hh \ ComplexComparesFalse.hh \ ConstSubscriptMap.hh \ ContOrthoPoly1D.hh \ ContOrthoPoly1D.icc \ + ContOrthoPoly1DQ.hh \ + ContOrthoPoly1DQ.icc \ ConvolutionDensity1D.hh \ ConvolutionDensity1D.icc \ ConvolutionEngine1D.hh \ ConvolutionEngine1D.icc \ ConvolutionEngineND.hh \ ConvolutionEngineND.icc \ coordAndWeight.hh \ CoordinateSelector.hh \ definiteIntegrals.hh \ DiscreteBernsteinPoly1D.hh \ discretizedDistance.hh \ discretizedDistance.icc \ DualAxis.hh \ EigenMethod.hh \ EquidistantSequence.hh \ ExpMapper1d.hh \ fcnOrConst.hh \ FejerQuadrature.hh \ FejerQuadrature.icc \ fillArrayCentersPreservingAreas.hh \ findPeak2D.hh \ findRootInLogSpace.hh \ findRootInLogSpace.icc \ findRootNewtonRaphson.hh \ findRootNewtonRaphson.icc \ findRootUsingBisections.hh \ findRootUsingBisections.icc \ float128IO.hh \ FourierImage.hh \ Gauss1DQuadrature.hh \ GaussHermiteQuadrature.hh \ GaussHermiteQuadrature.icc \ GaussianDip.hh \ GaussLegendreQuadrature.hh \ GaussLegendreQuadrature.icc \ GaussLegendreQuadrature2D.hh \ GaussLegendreQuadrature2D.icc \ GaussLegendreQuadratureQ.hh \ GaussLegendreQuadratureQ.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 \ kernelSensitivityMatrix.hh \ kernelSensitivityMatrix.icc \ lapack.h \ lapack_double.h \ lapack_interface.hh \ lapack_interface.icc \ lapack_interface_double.icc \ lapack_interface_ldouble.icc \ lapack_interface_float.icc \ LegendreCDTruncation.hh \ LinearMapper1d.hh \ LinInterpolatedTable1D.hh \ LinInterpolatedTable1D.icc \ LinInterpolatedTableND.hh \ LinInterpolatedTableND.icc \ LogMapper1d.hh \ LongerType.hh \ MathUtils.hh \ MathUtils.icc \ Matrix.hh \ matrixIndexPairs.hh \ Matrix.icc \ maxAbsValue.hh \ MinSearchStatus1D.hh \ modifiedGramSchmidt.hh \ modifiedGramSchmidt.icc \ multivariateCosine.hh \ MultivariateFunctorScanner.hh \ opsRootsFromJacobiMatrix.hh \ OrthoPoly1D.hh \ OrthoPoly1D.icc \ OrthoPolyMethod.hh \ OrthoPolyND.hh \ OrthoPolyND.icc \ PairCompare.hh \ + PairCompareQ.hh \ performSchultzIteration.hh \ PointDimensionality.hh \ Poly1D.hh \ polyPrivateUtils.hh \ polyPrivateUtils.icc \ PreciseType.hh \ ProperDblFromCmpl.hh \ PtrBufferHandle.hh \ + quad_float.hh \ RectangleQuadrature1D.hh \ RectangleQuadrature1D.icc \ Recurrence.hh \ + RecurrenceQ.hh \ RecurrenceCoeffs.hh \ RecurrenceCoeffs.icc \ + RecurrenceCoeffsQ.hh \ + RecurrenceCoeffsQ.icc \ RecurrenceCoeffsTrGauss.hh \ RecurrenceCoeffsTrGauss.icc \ rectangleQuadrature.hh \ rescanArray.hh \ rescanArray.icc \ ScanExtremum1D.hh \ ScalableClassicalOrthoPoly1D.hh \ ScalableClassicalOrthoPoly1D.icc \ scalesFromHessian.hh \ SemiInfGaussianQuadrature.hh \ SemiInfGaussianQuadrature.icc \ + shiftedLegendreIntegral.hh \ SimpleFunctors.hh \ SimpleScalarProduct.hh \ sineTransformMatrix.hh \ SpecialFunctions.hh \ std_quadmath.hh \ StorablePolySeries1D.hh \ StorablePolySeries1D.icc \ sumOfSquares.hh \ SvdMethod.hh \ timestamp.hh \ Triple.hh \ truncatedInverseSqrt.hh \ TruncatedLog.hh \ TruncatedLog.icc \ UniformAxis.hh \ unitMatrixDeviations.hh \ unitMatrixDeviations.icc \ vectorAsText.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__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ 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 # am--include-marker include ./$(DEPDIR)/ArrayNDScanner.Plo # am--include-marker include ./$(DEPDIR)/ArrayRange.Plo # am--include-marker include ./$(DEPDIR)/ArrayShape.Plo # am--include-marker include ./$(DEPDIR)/ClassicalOrthoPolys1D.Plo # am--include-marker include ./$(DEPDIR)/ContOrthoPoly1D.Plo # am--include-marker include ./$(DEPDIR)/ConvolutionEngine1D.Plo # am--include-marker include ./$(DEPDIR)/ConvolutionEngineND.Plo # am--include-marker include ./$(DEPDIR)/DiscreteBernsteinPoly1D.Plo # am--include-marker include ./$(DEPDIR)/DualAxis.Plo # am--include-marker include ./$(DEPDIR)/EigenMethod.Plo # am--include-marker include ./$(DEPDIR)/EquidistantSequence.Plo # am--include-marker include ./$(DEPDIR)/FejerQuadrature.Plo # am--include-marker include ./$(DEPDIR)/FourierImage.Plo # am--include-marker include ./$(DEPDIR)/Gauss1DQuadrature.Plo # am--include-marker include ./$(DEPDIR)/GaussHermiteQuadrature.Plo # am--include-marker include ./$(DEPDIR)/GaussLegendreQuadrature.Plo # am--include-marker include ./$(DEPDIR)/GaussLegendreQuadrature2D.Plo # am--include-marker include ./$(DEPDIR)/GaussLegendreQuadratureQ.Plo # am--include-marker include ./$(DEPDIR)/GridAxis.Plo # am--include-marker include ./$(DEPDIR)/HeatEq1DNeumannBoundary.Plo # am--include-marker include ./$(DEPDIR)/LegendreCDTruncation.Plo # am--include-marker include ./$(DEPDIR)/LinInterpolatedTable1D.Plo # am--include-marker include ./$(DEPDIR)/MathUtils.Plo # am--include-marker include ./$(DEPDIR)/OrthoPoly1D.Plo # am--include-marker include ./$(DEPDIR)/OrthoPolyMethod.Plo # am--include-marker include ./$(DEPDIR)/Poly1D.Plo # am--include-marker include ./$(DEPDIR)/RectangleQuadrature1D.Plo # am--include-marker include ./$(DEPDIR)/RecurrenceCoeffs.Plo # am--include-marker include ./$(DEPDIR)/ScalableClassicalOrthoPoly1D.Plo # am--include-marker include ./$(DEPDIR)/ScanExtremum1D.Plo # am--include-marker include ./$(DEPDIR)/SemiInfGaussianQuadrature.Plo # am--include-marker include ./$(DEPDIR)/SpecialFunctions.Plo # am--include-marker include ./$(DEPDIR)/StorablePolySeries1D.Plo # am--include-marker include ./$(DEPDIR)/SvdMethod.Plo # am--include-marker include ./$(DEPDIR)/UniformAxis.Plo # am--include-marker include ./$(DEPDIR)/bilinearSection.Plo # am--include-marker include ./$(DEPDIR)/binomialCoefficient.Plo # am--include-marker include ./$(DEPDIR)/definiteIntegrals.Plo # am--include-marker include ./$(DEPDIR)/findPeak2D.Plo # am--include-marker include ./$(DEPDIR)/goldenSectionSearch.Plo # am--include-marker include ./$(DEPDIR)/lapack_interface.Plo # am--include-marker include ./$(DEPDIR)/matrixIndexPairs.Plo # am--include-marker include ./$(DEPDIR)/performSchultzIteration.Plo # am--include-marker include ./$(DEPDIR)/rectangleQuadrature.Plo # am--include-marker include ./$(DEPDIR)/scalesFromHessian.Plo # am--include-marker +include ./$(DEPDIR)/shiftedLegendreIntegral.Plo # am--include-marker include ./$(DEPDIR)/sineTransformMatrix.Plo # am--include-marker include ./$(DEPDIR)/timestamp.Plo # am--include-marker include ./$(DEPDIR)/truncatedInverseSqrt.Plo # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @echo '# dummy' >$@-t && $(am__mv) $@-t $@ am--depfiles: $(am__depfiles_remade) .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: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(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 -f ./$(DEPDIR)/AbsClassicalOrthoPoly1D.Plo -rm -f ./$(DEPDIR)/ArrayNDScanner.Plo -rm -f ./$(DEPDIR)/ArrayRange.Plo -rm -f ./$(DEPDIR)/ArrayShape.Plo -rm -f ./$(DEPDIR)/ClassicalOrthoPolys1D.Plo -rm -f ./$(DEPDIR)/ContOrthoPoly1D.Plo -rm -f ./$(DEPDIR)/ConvolutionEngine1D.Plo -rm -f ./$(DEPDIR)/ConvolutionEngineND.Plo -rm -f ./$(DEPDIR)/DiscreteBernsteinPoly1D.Plo -rm -f ./$(DEPDIR)/DualAxis.Plo -rm -f ./$(DEPDIR)/EigenMethod.Plo -rm -f ./$(DEPDIR)/EquidistantSequence.Plo -rm -f ./$(DEPDIR)/FejerQuadrature.Plo -rm -f ./$(DEPDIR)/FourierImage.Plo -rm -f ./$(DEPDIR)/Gauss1DQuadrature.Plo -rm -f ./$(DEPDIR)/GaussHermiteQuadrature.Plo -rm -f ./$(DEPDIR)/GaussLegendreQuadrature.Plo -rm -f ./$(DEPDIR)/GaussLegendreQuadrature2D.Plo -rm -f ./$(DEPDIR)/GaussLegendreQuadratureQ.Plo -rm -f ./$(DEPDIR)/GridAxis.Plo -rm -f ./$(DEPDIR)/HeatEq1DNeumannBoundary.Plo -rm -f ./$(DEPDIR)/LegendreCDTruncation.Plo -rm -f ./$(DEPDIR)/LinInterpolatedTable1D.Plo -rm -f ./$(DEPDIR)/MathUtils.Plo -rm -f ./$(DEPDIR)/OrthoPoly1D.Plo -rm -f ./$(DEPDIR)/OrthoPolyMethod.Plo -rm -f ./$(DEPDIR)/Poly1D.Plo -rm -f ./$(DEPDIR)/RectangleQuadrature1D.Plo -rm -f ./$(DEPDIR)/RecurrenceCoeffs.Plo -rm -f ./$(DEPDIR)/ScalableClassicalOrthoPoly1D.Plo -rm -f ./$(DEPDIR)/ScanExtremum1D.Plo -rm -f ./$(DEPDIR)/SemiInfGaussianQuadrature.Plo -rm -f ./$(DEPDIR)/SpecialFunctions.Plo -rm -f ./$(DEPDIR)/StorablePolySeries1D.Plo -rm -f ./$(DEPDIR)/SvdMethod.Plo -rm -f ./$(DEPDIR)/UniformAxis.Plo -rm -f ./$(DEPDIR)/bilinearSection.Plo -rm -f ./$(DEPDIR)/binomialCoefficient.Plo -rm -f ./$(DEPDIR)/definiteIntegrals.Plo -rm -f ./$(DEPDIR)/findPeak2D.Plo -rm -f ./$(DEPDIR)/goldenSectionSearch.Plo -rm -f ./$(DEPDIR)/lapack_interface.Plo -rm -f ./$(DEPDIR)/matrixIndexPairs.Plo -rm -f ./$(DEPDIR)/performSchultzIteration.Plo -rm -f ./$(DEPDIR)/rectangleQuadrature.Plo -rm -f ./$(DEPDIR)/scalesFromHessian.Plo + -rm -f ./$(DEPDIR)/shiftedLegendreIntegral.Plo -rm -f ./$(DEPDIR)/sineTransformMatrix.Plo -rm -f ./$(DEPDIR)/timestamp.Plo -rm -f ./$(DEPDIR)/truncatedInverseSqrt.Plo -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 -f ./$(DEPDIR)/AbsClassicalOrthoPoly1D.Plo -rm -f ./$(DEPDIR)/ArrayNDScanner.Plo -rm -f ./$(DEPDIR)/ArrayRange.Plo -rm -f ./$(DEPDIR)/ArrayShape.Plo -rm -f ./$(DEPDIR)/ClassicalOrthoPolys1D.Plo -rm -f ./$(DEPDIR)/ContOrthoPoly1D.Plo -rm -f ./$(DEPDIR)/ConvolutionEngine1D.Plo -rm -f ./$(DEPDIR)/ConvolutionEngineND.Plo -rm -f ./$(DEPDIR)/DiscreteBernsteinPoly1D.Plo -rm -f ./$(DEPDIR)/DualAxis.Plo -rm -f ./$(DEPDIR)/EigenMethod.Plo -rm -f ./$(DEPDIR)/EquidistantSequence.Plo -rm -f ./$(DEPDIR)/FejerQuadrature.Plo -rm -f ./$(DEPDIR)/FourierImage.Plo -rm -f ./$(DEPDIR)/Gauss1DQuadrature.Plo -rm -f ./$(DEPDIR)/GaussHermiteQuadrature.Plo -rm -f ./$(DEPDIR)/GaussLegendreQuadrature.Plo -rm -f ./$(DEPDIR)/GaussLegendreQuadrature2D.Plo -rm -f ./$(DEPDIR)/GaussLegendreQuadratureQ.Plo -rm -f ./$(DEPDIR)/GridAxis.Plo -rm -f ./$(DEPDIR)/HeatEq1DNeumannBoundary.Plo -rm -f ./$(DEPDIR)/LegendreCDTruncation.Plo -rm -f ./$(DEPDIR)/LinInterpolatedTable1D.Plo -rm -f ./$(DEPDIR)/MathUtils.Plo -rm -f ./$(DEPDIR)/OrthoPoly1D.Plo -rm -f ./$(DEPDIR)/OrthoPolyMethod.Plo -rm -f ./$(DEPDIR)/Poly1D.Plo -rm -f ./$(DEPDIR)/RectangleQuadrature1D.Plo -rm -f ./$(DEPDIR)/RecurrenceCoeffs.Plo -rm -f ./$(DEPDIR)/ScalableClassicalOrthoPoly1D.Plo -rm -f ./$(DEPDIR)/ScanExtremum1D.Plo -rm -f ./$(DEPDIR)/SemiInfGaussianQuadrature.Plo -rm -f ./$(DEPDIR)/SpecialFunctions.Plo -rm -f ./$(DEPDIR)/StorablePolySeries1D.Plo -rm -f ./$(DEPDIR)/SvdMethod.Plo -rm -f ./$(DEPDIR)/UniformAxis.Plo -rm -f ./$(DEPDIR)/bilinearSection.Plo -rm -f ./$(DEPDIR)/binomialCoefficient.Plo -rm -f ./$(DEPDIR)/definiteIntegrals.Plo -rm -f ./$(DEPDIR)/findPeak2D.Plo -rm -f ./$(DEPDIR)/goldenSectionSearch.Plo -rm -f ./$(DEPDIR)/lapack_interface.Plo -rm -f ./$(DEPDIR)/matrixIndexPairs.Plo -rm -f ./$(DEPDIR)/performSchultzIteration.Plo -rm -f ./$(DEPDIR)/rectangleQuadrature.Plo -rm -f ./$(DEPDIR)/scalesFromHessian.Plo + -rm -f ./$(DEPDIR)/shiftedLegendreIntegral.Plo -rm -f ./$(DEPDIR)/sineTransformMatrix.Plo -rm -f ./$(DEPDIR)/timestamp.Plo -rm -f ./$(DEPDIR)/truncatedInverseSqrt.Plo -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 am--depfiles 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/Makefile.in =================================================================== --- trunk/npstat/nm/Makefile.in (revision 919) +++ trunk/npstat/nm/Makefile.in (revision 920) @@ -1,1050 +1,1064 @@ # Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 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. @SET_MAKE@ VPATH = @srcdir@ 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)/@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 ScanExtremum1D.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 \ Gauss1DQuadrature.lo HeatEq1DNeumannBoundary.lo \ performSchultzIteration.lo RecurrenceCoeffs.lo \ GaussLegendreQuadratureQ.lo GaussLegendreQuadrature2D.lo \ Poly1D.lo ScalableClassicalOrthoPoly1D.lo \ RectangleQuadrature1D.lo findPeak2D.lo sineTransformMatrix.lo \ - scalesFromHessian.lo LegendreCDTruncation.lo + scalesFromHessian.lo LegendreCDTruncation.lo \ + shiftedLegendreIntegral.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__maybe_remake_depfiles = depfiles am__depfiles_remade = ./$(DEPDIR)/AbsClassicalOrthoPoly1D.Plo \ ./$(DEPDIR)/ArrayNDScanner.Plo ./$(DEPDIR)/ArrayRange.Plo \ ./$(DEPDIR)/ArrayShape.Plo \ ./$(DEPDIR)/ClassicalOrthoPolys1D.Plo \ ./$(DEPDIR)/ContOrthoPoly1D.Plo \ ./$(DEPDIR)/ConvolutionEngine1D.Plo \ ./$(DEPDIR)/ConvolutionEngineND.Plo \ ./$(DEPDIR)/DiscreteBernsteinPoly1D.Plo \ ./$(DEPDIR)/DualAxis.Plo ./$(DEPDIR)/EigenMethod.Plo \ ./$(DEPDIR)/EquidistantSequence.Plo \ ./$(DEPDIR)/FejerQuadrature.Plo ./$(DEPDIR)/FourierImage.Plo \ ./$(DEPDIR)/Gauss1DQuadrature.Plo \ ./$(DEPDIR)/GaussHermiteQuadrature.Plo \ ./$(DEPDIR)/GaussLegendreQuadrature.Plo \ ./$(DEPDIR)/GaussLegendreQuadrature2D.Plo \ ./$(DEPDIR)/GaussLegendreQuadratureQ.Plo \ ./$(DEPDIR)/GridAxis.Plo \ ./$(DEPDIR)/HeatEq1DNeumannBoundary.Plo \ ./$(DEPDIR)/LegendreCDTruncation.Plo \ ./$(DEPDIR)/LinInterpolatedTable1D.Plo \ ./$(DEPDIR)/MathUtils.Plo ./$(DEPDIR)/OrthoPoly1D.Plo \ ./$(DEPDIR)/OrthoPolyMethod.Plo ./$(DEPDIR)/Poly1D.Plo \ ./$(DEPDIR)/RectangleQuadrature1D.Plo \ ./$(DEPDIR)/RecurrenceCoeffs.Plo \ ./$(DEPDIR)/ScalableClassicalOrthoPoly1D.Plo \ ./$(DEPDIR)/ScanExtremum1D.Plo \ ./$(DEPDIR)/SemiInfGaussianQuadrature.Plo \ ./$(DEPDIR)/SpecialFunctions.Plo \ ./$(DEPDIR)/StorablePolySeries1D.Plo ./$(DEPDIR)/SvdMethod.Plo \ ./$(DEPDIR)/UniformAxis.Plo ./$(DEPDIR)/bilinearSection.Plo \ ./$(DEPDIR)/binomialCoefficient.Plo \ ./$(DEPDIR)/definiteIntegrals.Plo ./$(DEPDIR)/findPeak2D.Plo \ ./$(DEPDIR)/goldenSectionSearch.Plo \ ./$(DEPDIR)/lapack_interface.Plo \ ./$(DEPDIR)/matrixIndexPairs.Plo \ ./$(DEPDIR)/performSchultzIteration.Plo \ ./$(DEPDIR)/rectangleQuadrature.Plo \ ./$(DEPDIR)/scalesFromHessian.Plo \ + ./$(DEPDIR)/shiftedLegendreIntegral.Plo \ ./$(DEPDIR)/sineTransformMatrix.Plo ./$(DEPDIR)/timestamp.Plo \ ./$(DEPDIR)/truncatedInverseSqrt.Plo 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)` 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@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ 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@ ETAGS = @ETAGS@ 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 ScanExtremum1D.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 Gauss1DQuadrature.cc \ HeatEq1DNeumannBoundary.cc performSchultzIteration.cc RecurrenceCoeffs.cc \ GaussLegendreQuadratureQ.cc GaussLegendreQuadrature2D.cc Poly1D.cc \ ScalableClassicalOrthoPoly1D.cc RectangleQuadrature1D.cc findPeak2D.cc \ - sineTransformMatrix.cc scalesFromHessian.cc LegendreCDTruncation.cc + sineTransformMatrix.cc scalesFromHessian.cc LegendreCDTruncation.cc \ + shiftedLegendreIntegral.cc include_HEADERS = AbsArrayProjector.hh \ AbsClassicalOrthoPoly1D.hh \ AbsClassicalOrthoPoly1D.icc \ absDifference.hh \ AbsIntervalQuadrature1D.hh \ AbsMultivariateFunctor.hh \ AbsVisitor.hh \ allocators.hh \ areAllElementsUnique.hh \ ArrayND.hh \ ArrayND.icc \ ArrayNDScanner.hh \ ArrayRange.hh \ ArrayShape.hh \ bilinearSection.hh \ BindKernel.hh \ binomialCoefficient.hh \ BoundaryInclusion.hh \ BoxND.hh \ BoxND.icc \ BoxNDScanner.hh \ BoxNDScanner.icc \ cdKernelSensitivityMatrix.hh \ cdKernelSensitivityMatrix.icc \ ChebyshevIntegral.hh \ CircularMapper1d.hh \ ClassicalOrthoPoly1DFromWeight.hh \ ClassicalOrthoPoly1DFromWeight.icc \ ClassicalOrthoPolys1D.hh \ closeWithinTolerance.hh \ CompareByIndex.hh \ ComplexComparesAbs.hh \ ComplexComparesFalse.hh \ ConstSubscriptMap.hh \ ContOrthoPoly1D.hh \ ContOrthoPoly1D.icc \ + ContOrthoPoly1DQ.hh \ + ContOrthoPoly1DQ.icc \ ConvolutionDensity1D.hh \ ConvolutionDensity1D.icc \ ConvolutionEngine1D.hh \ ConvolutionEngine1D.icc \ ConvolutionEngineND.hh \ ConvolutionEngineND.icc \ coordAndWeight.hh \ CoordinateSelector.hh \ definiteIntegrals.hh \ DiscreteBernsteinPoly1D.hh \ discretizedDistance.hh \ discretizedDistance.icc \ DualAxis.hh \ EigenMethod.hh \ EquidistantSequence.hh \ ExpMapper1d.hh \ fcnOrConst.hh \ FejerQuadrature.hh \ FejerQuadrature.icc \ fillArrayCentersPreservingAreas.hh \ findPeak2D.hh \ findRootInLogSpace.hh \ findRootInLogSpace.icc \ findRootNewtonRaphson.hh \ findRootNewtonRaphson.icc \ findRootUsingBisections.hh \ findRootUsingBisections.icc \ float128IO.hh \ FourierImage.hh \ Gauss1DQuadrature.hh \ GaussHermiteQuadrature.hh \ GaussHermiteQuadrature.icc \ GaussianDip.hh \ GaussLegendreQuadrature.hh \ GaussLegendreQuadrature.icc \ GaussLegendreQuadrature2D.hh \ GaussLegendreQuadrature2D.icc \ GaussLegendreQuadratureQ.hh \ GaussLegendreQuadratureQ.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 \ kernelSensitivityMatrix.hh \ kernelSensitivityMatrix.icc \ lapack.h \ lapack_double.h \ lapack_interface.hh \ lapack_interface.icc \ lapack_interface_double.icc \ lapack_interface_ldouble.icc \ lapack_interface_float.icc \ LegendreCDTruncation.hh \ LinearMapper1d.hh \ LinInterpolatedTable1D.hh \ LinInterpolatedTable1D.icc \ LinInterpolatedTableND.hh \ LinInterpolatedTableND.icc \ LogMapper1d.hh \ LongerType.hh \ MathUtils.hh \ MathUtils.icc \ Matrix.hh \ matrixIndexPairs.hh \ Matrix.icc \ maxAbsValue.hh \ MinSearchStatus1D.hh \ modifiedGramSchmidt.hh \ modifiedGramSchmidt.icc \ multivariateCosine.hh \ MultivariateFunctorScanner.hh \ opsRootsFromJacobiMatrix.hh \ OrthoPoly1D.hh \ OrthoPoly1D.icc \ OrthoPolyMethod.hh \ OrthoPolyND.hh \ OrthoPolyND.icc \ PairCompare.hh \ + PairCompareQ.hh \ performSchultzIteration.hh \ PointDimensionality.hh \ Poly1D.hh \ polyPrivateUtils.hh \ polyPrivateUtils.icc \ PreciseType.hh \ ProperDblFromCmpl.hh \ PtrBufferHandle.hh \ + quad_float.hh \ RectangleQuadrature1D.hh \ RectangleQuadrature1D.icc \ Recurrence.hh \ + RecurrenceQ.hh \ RecurrenceCoeffs.hh \ RecurrenceCoeffs.icc \ + RecurrenceCoeffsQ.hh \ + RecurrenceCoeffsQ.icc \ RecurrenceCoeffsTrGauss.hh \ RecurrenceCoeffsTrGauss.icc \ rectangleQuadrature.hh \ rescanArray.hh \ rescanArray.icc \ ScanExtremum1D.hh \ ScalableClassicalOrthoPoly1D.hh \ ScalableClassicalOrthoPoly1D.icc \ scalesFromHessian.hh \ SemiInfGaussianQuadrature.hh \ SemiInfGaussianQuadrature.icc \ + shiftedLegendreIntegral.hh \ SimpleFunctors.hh \ SimpleScalarProduct.hh \ sineTransformMatrix.hh \ SpecialFunctions.hh \ std_quadmath.hh \ StorablePolySeries1D.hh \ StorablePolySeries1D.icc \ sumOfSquares.hh \ SvdMethod.hh \ timestamp.hh \ Triple.hh \ truncatedInverseSqrt.hh \ TruncatedLog.hh \ TruncatedLog.icc \ UniformAxis.hh \ unitMatrixDeviations.hh \ unitMatrixDeviations.icc \ vectorAsText.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__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ 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@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ArrayNDScanner.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ArrayRange.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ArrayShape.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ClassicalOrthoPolys1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ContOrthoPoly1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConvolutionEngine1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConvolutionEngineND.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DiscreteBernsteinPoly1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DualAxis.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/EigenMethod.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/EquidistantSequence.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FejerQuadrature.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FourierImage.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Gauss1DQuadrature.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GaussHermiteQuadrature.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GaussLegendreQuadrature.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GaussLegendreQuadrature2D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GaussLegendreQuadratureQ.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GridAxis.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HeatEq1DNeumannBoundary.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LegendreCDTruncation.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LinInterpolatedTable1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MathUtils.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OrthoPoly1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OrthoPolyMethod.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Poly1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/RectangleQuadrature1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/RecurrenceCoeffs.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ScalableClassicalOrthoPoly1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ScanExtremum1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SemiInfGaussianQuadrature.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SpecialFunctions.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StorablePolySeries1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SvdMethod.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UniformAxis.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bilinearSection.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/binomialCoefficient.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/definiteIntegrals.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/findPeak2D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/goldenSectionSearch.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lapack_interface.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/matrixIndexPairs.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/performSchultzIteration.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rectangleQuadrature.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scalesFromHessian.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shiftedLegendreIntegral.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sineTransformMatrix.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timestamp.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/truncatedInverseSqrt.Plo@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @echo '# dummy' >$@-t && $(am__mv) $@-t $@ am--depfiles: $(am__depfiles_remade) .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: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(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 -f ./$(DEPDIR)/AbsClassicalOrthoPoly1D.Plo -rm -f ./$(DEPDIR)/ArrayNDScanner.Plo -rm -f ./$(DEPDIR)/ArrayRange.Plo -rm -f ./$(DEPDIR)/ArrayShape.Plo -rm -f ./$(DEPDIR)/ClassicalOrthoPolys1D.Plo -rm -f ./$(DEPDIR)/ContOrthoPoly1D.Plo -rm -f ./$(DEPDIR)/ConvolutionEngine1D.Plo -rm -f ./$(DEPDIR)/ConvolutionEngineND.Plo -rm -f ./$(DEPDIR)/DiscreteBernsteinPoly1D.Plo -rm -f ./$(DEPDIR)/DualAxis.Plo -rm -f ./$(DEPDIR)/EigenMethod.Plo -rm -f ./$(DEPDIR)/EquidistantSequence.Plo -rm -f ./$(DEPDIR)/FejerQuadrature.Plo -rm -f ./$(DEPDIR)/FourierImage.Plo -rm -f ./$(DEPDIR)/Gauss1DQuadrature.Plo -rm -f ./$(DEPDIR)/GaussHermiteQuadrature.Plo -rm -f ./$(DEPDIR)/GaussLegendreQuadrature.Plo -rm -f ./$(DEPDIR)/GaussLegendreQuadrature2D.Plo -rm -f ./$(DEPDIR)/GaussLegendreQuadratureQ.Plo -rm -f ./$(DEPDIR)/GridAxis.Plo -rm -f ./$(DEPDIR)/HeatEq1DNeumannBoundary.Plo -rm -f ./$(DEPDIR)/LegendreCDTruncation.Plo -rm -f ./$(DEPDIR)/LinInterpolatedTable1D.Plo -rm -f ./$(DEPDIR)/MathUtils.Plo -rm -f ./$(DEPDIR)/OrthoPoly1D.Plo -rm -f ./$(DEPDIR)/OrthoPolyMethod.Plo -rm -f ./$(DEPDIR)/Poly1D.Plo -rm -f ./$(DEPDIR)/RectangleQuadrature1D.Plo -rm -f ./$(DEPDIR)/RecurrenceCoeffs.Plo -rm -f ./$(DEPDIR)/ScalableClassicalOrthoPoly1D.Plo -rm -f ./$(DEPDIR)/ScanExtremum1D.Plo -rm -f ./$(DEPDIR)/SemiInfGaussianQuadrature.Plo -rm -f ./$(DEPDIR)/SpecialFunctions.Plo -rm -f ./$(DEPDIR)/StorablePolySeries1D.Plo -rm -f ./$(DEPDIR)/SvdMethod.Plo -rm -f ./$(DEPDIR)/UniformAxis.Plo -rm -f ./$(DEPDIR)/bilinearSection.Plo -rm -f ./$(DEPDIR)/binomialCoefficient.Plo -rm -f ./$(DEPDIR)/definiteIntegrals.Plo -rm -f ./$(DEPDIR)/findPeak2D.Plo -rm -f ./$(DEPDIR)/goldenSectionSearch.Plo -rm -f ./$(DEPDIR)/lapack_interface.Plo -rm -f ./$(DEPDIR)/matrixIndexPairs.Plo -rm -f ./$(DEPDIR)/performSchultzIteration.Plo -rm -f ./$(DEPDIR)/rectangleQuadrature.Plo -rm -f ./$(DEPDIR)/scalesFromHessian.Plo + -rm -f ./$(DEPDIR)/shiftedLegendreIntegral.Plo -rm -f ./$(DEPDIR)/sineTransformMatrix.Plo -rm -f ./$(DEPDIR)/timestamp.Plo -rm -f ./$(DEPDIR)/truncatedInverseSqrt.Plo -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 -f ./$(DEPDIR)/AbsClassicalOrthoPoly1D.Plo -rm -f ./$(DEPDIR)/ArrayNDScanner.Plo -rm -f ./$(DEPDIR)/ArrayRange.Plo -rm -f ./$(DEPDIR)/ArrayShape.Plo -rm -f ./$(DEPDIR)/ClassicalOrthoPolys1D.Plo -rm -f ./$(DEPDIR)/ContOrthoPoly1D.Plo -rm -f ./$(DEPDIR)/ConvolutionEngine1D.Plo -rm -f ./$(DEPDIR)/ConvolutionEngineND.Plo -rm -f ./$(DEPDIR)/DiscreteBernsteinPoly1D.Plo -rm -f ./$(DEPDIR)/DualAxis.Plo -rm -f ./$(DEPDIR)/EigenMethod.Plo -rm -f ./$(DEPDIR)/EquidistantSequence.Plo -rm -f ./$(DEPDIR)/FejerQuadrature.Plo -rm -f ./$(DEPDIR)/FourierImage.Plo -rm -f ./$(DEPDIR)/Gauss1DQuadrature.Plo -rm -f ./$(DEPDIR)/GaussHermiteQuadrature.Plo -rm -f ./$(DEPDIR)/GaussLegendreQuadrature.Plo -rm -f ./$(DEPDIR)/GaussLegendreQuadrature2D.Plo -rm -f ./$(DEPDIR)/GaussLegendreQuadratureQ.Plo -rm -f ./$(DEPDIR)/GridAxis.Plo -rm -f ./$(DEPDIR)/HeatEq1DNeumannBoundary.Plo -rm -f ./$(DEPDIR)/LegendreCDTruncation.Plo -rm -f ./$(DEPDIR)/LinInterpolatedTable1D.Plo -rm -f ./$(DEPDIR)/MathUtils.Plo -rm -f ./$(DEPDIR)/OrthoPoly1D.Plo -rm -f ./$(DEPDIR)/OrthoPolyMethod.Plo -rm -f ./$(DEPDIR)/Poly1D.Plo -rm -f ./$(DEPDIR)/RectangleQuadrature1D.Plo -rm -f ./$(DEPDIR)/RecurrenceCoeffs.Plo -rm -f ./$(DEPDIR)/ScalableClassicalOrthoPoly1D.Plo -rm -f ./$(DEPDIR)/ScanExtremum1D.Plo -rm -f ./$(DEPDIR)/SemiInfGaussianQuadrature.Plo -rm -f ./$(DEPDIR)/SpecialFunctions.Plo -rm -f ./$(DEPDIR)/StorablePolySeries1D.Plo -rm -f ./$(DEPDIR)/SvdMethod.Plo -rm -f ./$(DEPDIR)/UniformAxis.Plo -rm -f ./$(DEPDIR)/bilinearSection.Plo -rm -f ./$(DEPDIR)/binomialCoefficient.Plo -rm -f ./$(DEPDIR)/definiteIntegrals.Plo -rm -f ./$(DEPDIR)/findPeak2D.Plo -rm -f ./$(DEPDIR)/goldenSectionSearch.Plo -rm -f ./$(DEPDIR)/lapack_interface.Plo -rm -f ./$(DEPDIR)/matrixIndexPairs.Plo -rm -f ./$(DEPDIR)/performSchultzIteration.Plo -rm -f ./$(DEPDIR)/rectangleQuadrature.Plo -rm -f ./$(DEPDIR)/scalesFromHessian.Plo + -rm -f ./$(DEPDIR)/shiftedLegendreIntegral.Plo -rm -f ./$(DEPDIR)/sineTransformMatrix.Plo -rm -f ./$(DEPDIR)/timestamp.Plo -rm -f ./$(DEPDIR)/truncatedInverseSqrt.Plo -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 am--depfiles 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/ContOrthoPoly1DQ.icc =================================================================== --- trunk/npstat/nm/ContOrthoPoly1DQ.icc (revision 0) +++ trunk/npstat/nm/ContOrthoPoly1DQ.icc (revision 920) @@ -0,0 +1,466 @@ +#include +#include +#include + +#include "npstat/nm/PairCompare.hh" +#include "npstat/nm/PairCompareQ.hh" +#include "npstat/nm/RecurrenceCoeffsQ.hh" + +namespace npstat { + template + void ContOrthoPoly1DQ::copyMeasure(const std::vector >& inMeasure) + { + if (inMeasure.empty()) throw std::invalid_argument( + "In npstat::ContOrthoPoly1DQ::copyMeasure: empty argument measure"); + + const unsigned long mSize = inMeasure.size(); + measure_.clear(); + measure_.reserve(mSize); + for (unsigned long i=0; i& p(inMeasure[i]); + measure_.push_back(MeasurePoint(p.first, p.second)); + } + + // From time to time, we expect all weights to be equal. + // Check if this is indeed the case. If not, sort the + // weights in the increasing order, hopefully reducing + // the round-off error of subsequent calculations. + const Numeric2 w0 = inMeasure[0].second; + for (unsigned long i = 1; i < mSize && allWeightsEqual_; ++i) + allWeightsEqual_ = (w0 == inMeasure[i].second); + if (allWeightsEqual_) + std::sort(measure_.begin(), measure_.end(), LessByAbsFirstQ()); + else + std::sort(measure_.begin(), measure_.end(), LessBySecond()); + const quad_float qzero = quad_float(); + if (measure_[0].second < qzero) throw std::invalid_argument( + "In npstat::ContOrthoPoly1DQ::copyMeasure: negative measure entry found"); + + // Make sure that we don't have too many points with 0 weights + unsigned long nZeroWeights = 0; + if (allWeightsEqual_) + { + if (w0 == Numeric2()) + nZeroWeights = mSize; + } + else + { + for (unsigned long i = 0; i < mSize; ++i) + { + if (measure_[i].second == qzero) + ++nZeroWeights; + else + break; + } + } + if (mSize <= maxdeg_ + nZeroWeights) throw std::invalid_argument( + "In npstat::ContOrthoPoly1DQ::copyMeasure: insufficient number " + "of measure points with non-zero weights"); + } + + template + void ContOrthoPoly1DQ::copyInputCoords(const std::vector& inCoords) + { + if (inCoords.empty()) throw std::invalid_argument( + "In npstat::ContOrthoPoly1DQ::copyInputCoords: empty argument vector"); + + const unsigned long sz = inCoords.size(); + if (sz <= maxdeg_) throw std::invalid_argument( + "In npstat::ContOrthoPoly1DQ::copyInputCoords: insufficient number of points"); + + // Fill the measure, converting the input type as needed + measure_.clear(); + measure_.reserve(sz); + const quad_float one = static_cast(1.0); + for (unsigned long i = 0; i < sz; ++i) + measure_.push_back(MeasurePoint(inCoords[i], one)); + + std::sort(measure_.begin(), measure_.end(), LessByAbsFirstQ()); + } + + inline void ContOrthoPoly1DQ::calcMeanXandWeightSums(const bool shiftTheMeasure) + { + // Calculate wsum_, wsumsq_, meanX_, and shiftX_ + const quad_float precise_zero = quad_float(); + const unsigned long mSize = measure_.size(); + quad_float xsum = precise_zero; + if (allWeightsEqual_) + { + const quad_float lw0 = measure_[0].second; + wsum_ = mSize*lw0; + wsumsq_ = mSize*lw0*lw0; + for (unsigned long i = 0; i < mSize; ++i) + { + const quad_float x = measure_[i].first; + xsum += x; + if (x < minX_) + minX_ = x; + if (x > maxX_) + maxX_ = x; + } + meanX_ = xsum/mSize; + } + else + { + for (unsigned long i = 0; i < mSize; ++i) + { + const quad_float x = measure_[i].first; + const quad_float w = measure_[i].second; + wsum_ += w; + wsumsq_ += w*w; + xsum += w*x; + if (w != precise_zero) + { + if (x < minX_) + minX_ = x; + if (x > maxX_) + maxX_ = x; + } + } + assert(wsum_ > precise_zero); + meanX_ = xsum/wsum_; + } + + if (shiftTheMeasure) + { + // Shift the measure + quad_float shift = meanX_; + for (unsigned long i = 0; i < mSize; ++i) + measure_[i].first -= shift; + + if (allWeightsEqual_) + std::sort(measure_.begin(), measure_.end(), LessByAbsFirstQ()); + + // Try to improve the mean + xsum = precise_zero; + quad_float dx; + if (allWeightsEqual_) + { + for (unsigned long i = 0; i < mSize; ++i) + xsum += measure_[i].first; + dx = xsum/mSize; + } + else + { + for (unsigned long i = 0; i < mSize; ++i) + { + const quad_float w = measure_[i].second; + xsum += w*measure_[i].first; + } + dx = xsum/wsum_; + } + + // Shift the measure and the mean + meanX_ += dx; + shift = dx; + for (unsigned long i = 0; i < mSize; ++i) + measure_[i].first -= shift; + + shiftX_ = meanX_; + } + else + shiftX_ = precise_zero; + } + + template + quad_float ContOrthoPoly1DQ::sigma(const OrthoPoly& ops, int k, int l, + Matrix& sigMatrix, + Matrix& flagMatrix) const + { + const int nRows = sigMatrix.nRows(); + const int nCols = sigMatrix.nColumns(); + + assert(k >= -1); + assert(k < nRows); + assert(l >= 0); + assert(l < nCols); + + if (k < 0) + return 0.0Q; + else if (flagMatrix[k][l]) + return sigMatrix[k][l]; + else + { + assert(k > 0); + const int* flagskm1 = flagMatrix[k-1]; + assert(flagskm1[l]); + assert(l+1 < nCols); + assert(flagskm1[l+1]); + assert(l-1 >= 0); + assert(flagskm1[l-1]); + quad_float sigkm2l = 0.0Q; + if (k > 1) + { + assert(flagMatrix[k-2][l]); + sigkm2l = sigMatrix[k-2][l]; + } + const quad_float* smatkm1 = sigMatrix[k-1]; + const Private::RecurrenceQ& rckm1(rCoeffs_.at(k - 1)); + const std::pair& ab = ops.monicRecurrenceCoeffs(l); + const quad_float sigkl = smatkm1[l+1] - (rckm1.alpha - ab.first)*smatkm1[l] - + rckm1.beta*sigkm2l + ab.second*smatkm1[l-1]; + sigMatrix[k][l] = sigkl; + flagMatrix[k][l] = 1; + return sigkl; + } + } + + template + void ContOrthoPoly1DQ::calculateMonicAverages( + const OrthoPoly& ops, quad_float* averages, const unsigned maxdeg) + { + std::vector membuf(2U*(maxdeg + 1U), 0.0Q); + quad_float* poly = &membuf[0]; + quad_float* sums = poly + (maxdeg + 1U); + const unsigned long numPoints = measure_.size(); + for (unsigned long i=0; i + void ContOrthoPoly1DQ::calcRecurrenceModifiedChebyshev(const OrthoPoly& ops) + { + const unsigned maxl = 2U*maxdeg_ + 1U; + if (ops.maxDegree() < maxl) throw std::invalid_argument( + "In npstat::ContOrthoPoly1DQ::calcRecurrenceModifiedChebyshev: " + "insufficient maximum degree of the input OPS"); + + Matrix sigMatrix(maxdeg_+1U, maxl+1U); + Matrix flagMatrix(maxdeg_+1U, maxl+1U, 0); + + quad_float* m = sigMatrix[0]; + calculateMonicAverages(ops, m, maxl); + int* flags = flagMatrix[0]; + for (unsigned i=0; i<=maxl; ++i) + flags[i] = 1; + + const quad_float a0 = ops.monicRecurrenceCoeffs(0).first; + rCoeffs_.push_back(Private::RecurrenceQ(a0 + m[1], 1.0Q)); + + const int imdeg = maxdeg_; + for (int k=1; k<=imdeg; ++k) + { + const int lmax = maxl-k; + for (int l=k; l<=lmax; ++l) + sigma(ops, k, l, sigMatrix, flagMatrix); + assert(flagMatrix[k][k]); + const quad_float sigkk = sigMatrix[k][k]; + assert(flagMatrix[k-1][k-1]); + const quad_float sigkm1km1 = sigMatrix[k-1][k-1]; + assert(flagMatrix[k][k+1]); + const quad_float sigkkp1 = sigMatrix[k][k+1]; + assert(flagMatrix[k-1][k]); + const quad_float sigkm1k = sigMatrix[k-1][k]; + const quad_float ak = ops.monicRecurrenceCoeffs(k).first; + const quad_float alpha = ak + sigkkp1/sigkk - sigkm1k/sigkm1km1; + const quad_float beta = sigkk/sigkm1km1; + rCoeffs_.push_back(Private::RecurrenceQ(alpha, beta)); + } + } + + template + ContOrthoPoly1DQ::ContOrthoPoly1DQ(const unsigned maxDegree, + const std::vector >& inMeasure, + const OrthoPolyMethod m, + const bool shiftMeasure) + : wsum_(), + wsumsq_(), + minX_(FLT128_MAX), + maxX_(-FLT128_MAX), + maxdeg_(maxDegree), + allWeightsEqual_(true) + { + copyMeasure(inMeasure); + calcMeanXandWeightSums(shiftMeasure); + Private::calcRecurrenceCoeffsQ(measure_, maxdeg_, wsum_, m, &rCoeffs_); + } + + template + ContOrthoPoly1DQ::ContOrthoPoly1DQ(const unsigned maxDegree, + const std::vector& inCoords, + const OrthoPolyMethod m, + const bool shiftMeasure) + : wsum_(), + wsumsq_(), + minX_(FLT128_MAX), + maxX_(-FLT128_MAX), + maxdeg_(maxDegree), + allWeightsEqual_(true) + { + copyInputCoords(inCoords); + calcMeanXandWeightSums(shiftMeasure); + Private::calcRecurrenceCoeffsQ(measure_, maxdeg_, wsum_, m, &rCoeffs_); + } + + template + ContOrthoPoly1DQ::ContOrthoPoly1DQ(const unsigned maxDegree, + const std::vector >& inMeasure, + const OrthoPoly& ops, + const bool shiftMeasure) + : wsum_(), + wsumsq_(), + minX_(FLT128_MAX), + maxX_(-FLT128_MAX), + maxdeg_(maxDegree), + allWeightsEqual_(true) + { + copyMeasure(inMeasure); + calcMeanXandWeightSums(shiftMeasure); + calcRecurrenceModifiedChebyshev(ops); + } + + template + ContOrthoPoly1DQ::ContOrthoPoly1DQ(const unsigned maxDegree, + const std::vector& inCoords, + const OrthoPoly& ops, + const bool shiftMeasure) + : wsum_(), + wsumsq_(), + minX_(FLT128_MAX), + maxX_(-FLT128_MAX), + maxdeg_(maxDegree), + allWeightsEqual_(true) + { + copyInputCoords(inCoords); + calcMeanXandWeightSums(shiftMeasure); + calcRecurrenceModifiedChebyshev(ops); + } + + inline quad_float ContOrthoPoly1DQ::effectiveSampleSize() const + { + if (allWeightsEqual_) + return measure_.size(); + else + return wsum_*wsum_/wsumsq_; + } + + inline quad_float ContOrthoPoly1DQ::poly(const unsigned deg, const quad_float x) const + { + if (deg > maxdeg_) throw std::invalid_argument( + "In npstat::ContOrthoPoly1DQ::poly: degree argument is out of range"); + return normpoly(deg, x - shiftX_); + } + + inline std::pair ContOrthoPoly1DQ::polyPair( + const unsigned deg1, const unsigned deg2, const quad_float x) const + { + if (deg1 > maxdeg_ || deg2 > maxdeg_) throw std::invalid_argument( + "In npstat::ContOrthoPoly1DQ::polyPair: degree argument is out of range"); + return twonormpoly(deg1, deg2, x - shiftX_); + } + + inline quad_float ContOrthoPoly1DQ::empiricalKroneckerDelta( + const unsigned ideg1, const unsigned ideg2) const + { + if (ideg1 > maxdeg_ || ideg2 > maxdeg_) throw std::invalid_argument( + "In npstat::ContOrthoPoly1DQ::empiricalKroneckerDelta: " + "degree argument is out of range"); + quad_float sum = quad_float(); + const unsigned long mSize = measure_.size(); + for (unsigned long i = 0; i < mSize; ++i) + { + const std::pair& p = + twonormpoly(ideg1, ideg2, measure_[i].first); + sum += measure_[i].second*p.first*p.second; + } + return sum/wsum_; + } + + inline Matrix + ContOrthoPoly1DQ::empiricalKroneckerMatrix(const unsigned maxdeg) const + { + if (maxdeg > maxdeg_) throw std::invalid_argument( + "In npstat::ContOrthoPoly1DQ::empiricalKroneckerMatrix: " + "requested matrix size is out of range"); + Matrix kd(maxdeg+1U, maxdeg+1U, 0); + std::vector polyv(maxdeg+1U); + quad_float* polyBuf = &polyv[0]; + const unsigned long mSize = measure_.size(); + for (unsigned long ipt = 0; ipt < mSize; ++ipt) + { + const quad_float weight = measure_[ipt].second; + getAllPolys(measure_[ipt].first, maxdeg, polyBuf); + for (unsigned i=0; i<=maxdeg; ++i) + { + const quad_float polyI = polyBuf[i]; + quad_float* row = kd[i]; + for (unsigned j=i; j<=maxdeg; ++j) + row[j] += weight*polyI*polyBuf[j]; + } + } + for (unsigned i=0; i ContOrthoPoly1DQ::twonormpoly( + const unsigned deg1, const unsigned deg2, const quad_float x) const + { + const quad_float precise_zero = quad_float(); + quad_float p1 = precise_zero, p2 = precise_zero, polyk = 1.0, polykm1 = precise_zero; + const unsigned degmax = std::max(deg1, deg2); + for (unsigned k=0; k(p1, p2); + } + + template + void ContOrthoPoly1DQ::getAllPolys(const quad_float x, const unsigned maxdeg, + Numeric* polyValues) const + { + if (maxdeg > maxdeg_) throw std::invalid_argument( + "In npstat::ContOrthoPoly1DQ::getAllPolys: " + "maximum polynomial degree is out of range"); + assert(polyValues); + + quad_float polyk = 1.0, polykm1 = quad_float(); + polyValues[0] = static_cast(polyk); + for (unsigned k=0; k(p); + polykm1 = polyk; + polyk = p; + } + } +} Index: trunk/npstat/nm/PairCompare.hh =================================================================== --- trunk/npstat/nm/PairCompare.hh (revision 919) +++ trunk/npstat/nm/PairCompare.hh (revision 920) @@ -1,76 +1,98 @@ #ifndef NPSTAT_PAIRCOMPARE_HH_ #define NPSTAT_PAIRCOMPARE_HH_ /*! // \file PairCompare.hh // // \brief Various comparison functors for std::pair and npstat::Triple // // Author: I. Volobouev // // December 2011 */ +#include + namespace npstat { /** "less" functor to compare the first element only */ template struct LessByFirst { inline bool operator()(const T& x, const T& y) const {return x.first < y.first;} inline bool operator()(const T* x, const T* y) const {return x->first < y->first;} }; /** "greater" functor to compare the first element only */ template struct GreaterByFirst { inline bool operator()(const T& x, const T& y) const {return y.first < x.first;} inline bool operator()(const T* x, const T* y) const {return y->first < x->first;} }; + /** "less" functor to compare the magnitude of the first element only */ + template + struct LessByAbsFirst + { + inline bool operator()(const T& x, const T& y) const + {return std::abs(x.first) < std::abs(y.first);} + inline bool operator()(const T* x, const T* y) const + {return std::abs(x->first) < std::abs(y->first);} + }; + + /** "greater" functor to compare the magnitude of the first element only */ + template + struct GreaterByAbsFirst + { + inline bool operator()(const T& x, const T& y) const + {return std::abs(y.first) < std::abs(x.first);} + inline bool operator()(const T* x, const T* y) const + {return std::abs(y->first) < std::abs(x->first);} + }; + /** "less" functor to compare the second element only */ template struct LessBySecond { inline bool operator()(const T& x, const T& y) const {return x.second < y.second;} inline bool operator()(const T* x, const T* y) const {return x->second < y->second;} }; /** "greater" functor to compare the second element only */ template struct GreaterBySecond { inline bool operator()(const T& x, const T& y) const {return y.second < x.second;} inline bool operator()(const T* x, const T* y) const {return y->second < x->second;} }; /** "less" functor to compare the third element only */ template struct LessByThird { inline bool operator()(const T& x, const T& y) const {return x.third < y.third;} inline bool operator()(const T* x, const T* y) const {return x->third < y->third;} }; /** "greater" functor to compare the third element only */ template struct GreaterByThird { inline bool operator()(const T& x, const T& y) const {return y.third < x.third;} inline bool operator()(const T* x, const T* y) const {return y->third < x->third;} }; } #endif // NPSTAT_PAIRCOMPARE_HH_ Index: trunk/npstat/nm/RecurrenceCoeffsQ.hh =================================================================== --- trunk/npstat/nm/RecurrenceCoeffsQ.hh (revision 0) +++ trunk/npstat/nm/RecurrenceCoeffsQ.hh (revision 920) @@ -0,0 +1,55 @@ +#ifndef NPSTAT_RECURRENCECOEFFSQ_HH_ +#define NPSTAT_RECURRENCECOEFFSQ_HH_ + +//====================================================================== +// RecurrenceCoeffsQ.hh +// +// This is an internal header which is subject to change without +// notice. Application code should never use classes or functions +// declared/defined in this header directly. +// +// Author: I. Volobouev +// +// July 2023 +//====================================================================== + +#include +#include + +#include "npstat/nm/RecurrenceQ.hh" +#include "npstat/nm/OrthoPolyMethod.hh" + +namespace npstat { + namespace Private { + // The following function should be the only one + // directly used by the rest of the package + template + void calcRecurrenceCoeffsQ(const std::vector& measure, + unsigned maxdeg, quad_float norm, + OrthoPolyMethod m, + std::vector* rcoeffs); + + template + void calcRecurrenceStieltjesQ(const std::vector& measure, + unsigned maxdeg, quad_float norm, + std::vector* rcoeffs); + + template + void calcRecurrenceLanczosQ(const std::vector& measure, + unsigned maxdeg, quad_float norm, + std::vector* rcoeffs); + + template + std::pair monicInnerProductsQ( + const std::vector& rcoeffs, + const std::vector& measure, + unsigned degree, quad_float norm); + + quad_float monicpolyQ(const std::vector& rcoeffs, + unsigned degree, quad_float x); + } +} + +#include "npstat/nm/RecurrenceCoeffsQ.icc" + +#endif // NPSTAT_RECURRENCECOEFFSQ_HH_ Index: trunk/npstat/nm/shiftedLegendreIntegral.cc =================================================================== --- trunk/npstat/nm/shiftedLegendreIntegral.cc (revision 0) +++ trunk/npstat/nm/shiftedLegendreIntegral.cc (revision 920) @@ -0,0 +1,158 @@ +#include +#include +#include +#include +#include +#include +#include + +#include "npstat/rng/permutation.hh" +#include "npstat/nm/allocators.hh" +#include "npstat/nm/shiftedLegendreIntegral.hh" + +namespace { + class Ushort4key + { + public: + // This assumes that "degs" array is sorted + inline Ushort4key(const unsigned short degs[4]) + { + degrees_[0] = degs[0]; + degrees_[1] = degs[1]; + degrees_[2] = degs[2]; + degrees_[3] = degs[3]; + } + + inline bool operator<(const Ushort4key& r) const + { + for (unsigned i=0; i<4; ++i) + { + if (degrees_[i] < r.degrees_[i]) + return true; + if (degrees_[i] > r.degrees_[i]) + return false; + } + return false; + } + + private: + unsigned short degrees_[4]; + }; +} + +static long double threeJSquared(const unsigned i, + const unsigned j, + const unsigned k) +{ + const unsigned twos = i + j + k; + if (twos % 2U) {return 0.0L;} + if (2U*i > twos || 2U*j > twos || 2U*k > twos) {return 0.0L;} + const unsigned s = twos/2U; + const long double tmp1 = npstat::ldfactorial(s)/ + npstat::ldfactorial(s - i)/ + npstat::ldfactorial(s - j)/ + npstat::ldfactorial(s - k); + const long double tmp2 = npstat::ldfactorial(twos - 2U*i)* + npstat::ldfactorial(twos - 2U*j)* + npstat::ldfactorial(twos - 2U*k)/ + npstat::ldfactorial(twos + 1U); + return tmp2*tmp1*tmp1; +} + +static void legendreProductCoeffs(const unsigned i, const unsigned j, + long double* c, const unsigned toDeg) +{ + assert(c); + const unsigned minDeg = i > j ? i - j : j - i; + npstat::clearBuffer(c, std::min(minDeg, toDeg + 1U)); + + const unsigned long tmp1 = static_cast(2U*i + 1U)*(2U*j + 1U); + for (unsigned m=minDeg; m<=toDeg; ++m) + { + const long double threeJSq = threeJSquared(i, j, m); + if (threeJSq) + c[m] = threeJSq*sqrtl(tmp1*(2U*m + 1U)); + else + c[m] = 0.0L; + } +} + +namespace npstat { + long double shiftedLegendreIntegral(const unsigned i, + const unsigned j, + const unsigned k) + { + if (!i) {return j == k ? 1.0L : 0.0L;} + if (!j) {return i == k ? 1.0L : 0.0L;} + if (!k) {return i == j ? 1.0L : 0.0L;} + const long double threeJSq = threeJSquared(i, j, k); + if (threeJSq) + { + const unsigned long tmp3 = static_cast(2U*i + 1U)* + (2U*j + 1U)*(2U*k + 1U); + return threeJSq*sqrtl(tmp3); + } + else + return 0.0L; + } + + long double shiftedLegendreIntegral(const unsigned i, const unsigned j, + const unsigned k, const unsigned l, + const bool memoize) + { + typedef std::map ResultMap; + static ResultMap memoized; + + static const unsigned maxshort = std::numeric_limits::max(); + if (i > maxshort || j > maxshort || k > maxshort || l > maxshort) + throw std::invalid_argument( + "In npstat::shiftedLegendreIntegral: polynomial degree is way too large"); + + // The maximum argument of ldfactorial is 1754. + // We need to have a buffer which is comparable. + static const unsigned maxdeg = 4000U; + + const unsigned deg = i + j + k + l; + if (deg % 2U) {return 0.0L;} + if (2U*i > deg || 2U*j > deg || 2U*k > deg || 2U*l > deg) {return 0.0L;} + if (!i) {return shiftedLegendreIntegral(j, k, l);} + if (!j) {return shiftedLegendreIntegral(i, k, l);} + if (!k) {return shiftedLegendreIntegral(i, j, l);} + if (!l) {return shiftedLegendreIntegral(i, j, k);} + + // Among all possible pairs that can be made out of the + // set {i, j, k, l}, choose the pair with the smallest + // degree sum + unsigned short degrees[4]; + degrees[0] = i; + degrees[1] = j; + degrees[2] = k; + degrees[3] = l; + std::sort(degrees, degrees + 4); + const unsigned sumdeg = static_cast(degrees[0]) + degrees[1]; + + if (2U*sumdeg > maxdeg) throw std::invalid_argument( + "In npstat::shiftedLegendreIntegral: polynomial degree is too large"); + + if (memoize) + { + ResultMap::const_iterator it = memoized.find(Ushort4key(degrees)); + if (it != memoized.end()) + return it->second; + } + + long double buffer[maxdeg + 2U]; + long double* c1 = buffer; + long double* c2 = c1 + (sumdeg + 1U); + legendreProductCoeffs(degrees[0], degrees[1], c1, sumdeg); + legendreProductCoeffs(degrees[2], degrees[3], c2, sumdeg); + long double sum = 0.0L; + for (unsigned q=0; q<=sumdeg; ++q) + sum += c1[q]*c2[q]; + + if (memoize) + memoized.insert(std::make_pair(Ushort4key(degrees), sum)); + + return sum; + } +} Index: trunk/npstat/nm/RecurrenceQ.hh =================================================================== --- trunk/npstat/nm/RecurrenceQ.hh (revision 0) +++ trunk/npstat/nm/RecurrenceQ.hh (revision 920) @@ -0,0 +1,38 @@ +#ifndef NPSTAT_RECURRENCEQ_HH_ +#define NPSTAT_RECURRENCEQ_HH_ + +//====================================================================== +// RecurrenceQ.hh +// +// This is an internal header which is subject to change without +// notice. Application code should never use classes or functions +// declared/defined in this header directly. +// +// Author: I. Volobouev +// +// July 2023 +//====================================================================== + +#include + +#include "npstat/nm/quad_float.hh" + +namespace npstat { + namespace Private { + struct RecurrenceQ + { + inline RecurrenceQ(const quad_float a, const quad_float b) + : alpha(a), beta(b) + { + assert(beta > 0.0Q); + sqrbeta = sqrtq(beta); + } + + quad_float alpha; + quad_float beta; + quad_float sqrbeta; + }; + } +} + +#endif // NPSTAT_RECURRENCEQ_HH_ Index: trunk/npstat/nm/PairCompareQ.hh =================================================================== --- trunk/npstat/nm/PairCompareQ.hh (revision 0) +++ trunk/npstat/nm/PairCompareQ.hh (revision 920) @@ -0,0 +1,27 @@ +#ifndef NPSTAT_PAIRCOMPAREQ_HH_ +#define NPSTAT_PAIRCOMPAREQ_HH_ + +#include "npstat/nm/quad_float.hh" + +namespace npstat { + template + struct LessByAbsFirstQ + { + inline bool operator()(const T& x, const T& y) const + {return fabsq(x.first) < fabsq(y.first);} + inline bool operator()(const T* x, const T* y) const + {return fabsq(x->first) < fabsq(y->first);} + }; + + /** "greater" functor to compare the magnitude of the first element only */ + template + struct GreaterByAbsFirstQ + { + inline bool operator()(const T& x, const T& y) const + {return fabsq(y.first) < fabsq(x.first);} + inline bool operator()(const T* x, const T* y) const + {return fabsq(y->first) < fabsq(x->first);} + }; +} + +#endif // NPSTAT_PAIRCOMPAREQ_HH_ Index: trunk/npstat/nm/quad_float.hh =================================================================== --- trunk/npstat/nm/quad_float.hh (revision 0) +++ trunk/npstat/nm/quad_float.hh (revision 920) @@ -0,0 +1,7 @@ +#ifndef NPSTAT_QUAD_FLOAT_HH_ +#define NPSTAT_QUAD_FLOAT_HH_ + +#include +typedef __float128 quad_float; + +#endif // NPSTAT_QUAD_FLOAT_HH_ Index: trunk/npstat/nm/ContOrthoPoly1DQ.hh =================================================================== --- trunk/npstat/nm/ContOrthoPoly1DQ.hh (revision 0) +++ trunk/npstat/nm/ContOrthoPoly1DQ.hh (revision 920) @@ -0,0 +1,156 @@ +#ifndef NPSTAT_CONTORTHOPOLY1DQ_HH_ +#define NPSTAT_CONTORTHOPOLY1DQ_HH_ + +#include +#include + +#include "npstat/nm/OrthoPolyMethod.hh" +#include "npstat/nm/RecurrenceQ.hh" +#include "npstat/nm/Matrix.hh" + +namespace npstat { + class ContOrthoPoly1DQ + { + public: + typedef std::pair MeasurePoint; + + /** + // Main constructor, with obvious arguments. The first element + // of the measure pair is the coordinate and the second element + // is the weight (all weights must be non-negative). Internally, + // the measure will be sorted in the order of increasing weight + // and the measure coordinates will normally be shifted so that + // their weighted mean is at 0. + */ + template + ContOrthoPoly1DQ(unsigned maxDegree, + const std::vector >& measure, + OrthoPolyMethod m = OPOLY_STIELTJES, + bool shiftMeasureCoords = true); + + /** Constructor which assumes that all weights are 1.0 */ + template + ContOrthoPoly1DQ(unsigned maxDegree, + const std::vector& coords, + OrthoPolyMethod m = OPOLY_STIELTJES, + bool shiftMeasureCoords = true); + + /** Constructor that uses the modified Chebyshev algorithm */ + template + ContOrthoPoly1DQ(unsigned maxDegree, + const std::vector >& measure, + const OrthoPoly& ops, bool shiftMeasureCoords = false); + + /** + // Constructor that uses the modified Chebyshev algorithm + // and assumes that all weights are 1.0 + */ + template + ContOrthoPoly1DQ(unsigned maxDegree, + const std::vector& coords, + const OrthoPoly& ops, bool shiftMeasureCoords = false); + + /** + // Function added for interface compatibility with + // AbsClassicalOrthoPoly1D + */ + inline ContOrthoPoly1DQ* clone() const {return new ContOrthoPoly1DQ(*this);} + + //@{ + /** A simple inspector of object properties */ + inline unsigned maxDegree() const {return maxdeg_;} + inline bool areAllWeightsEqual() const {return allWeightsEqual_;} + inline quad_float measureShift() const {return shiftX_;} + inline quad_float meanCoordinate() const {return meanX_;} + inline quad_float location() const {return meanX_;} + inline quad_float scale() const {return 1.0;} + //@} + + /** Kish's effective sample size for the measure */ + quad_float effectiveSampleSize() const; + + /** Return the value of one of the normalized polynomials */ + quad_float poly(unsigned deg, quad_float x) const; + + /** Return the values of two of the normalized polynomials */ + std::pair polyPair( + unsigned deg1, unsigned deg2, quad_float 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. + */ + template + inline void allPolys(const quad_float x, const unsigned maxdeg, + Numeric* polyValues) const + {getAllPolys(x - shiftX_, maxdeg, polyValues);} + + /** + // Function added for interface compatibility with + // AbsClassicalOrthoPoly1D + */ + inline void allpoly(const long double x, long double* values, + const unsigned maxdeg) const + {getAllPolys(x - shiftX_, maxdeg, values);} + + /** + // This method is useful for testing the numerical precision + // of the orthonormalization procedure. It returns the scalar + // products between various polynomials. + */ + quad_float empiricalKroneckerDelta(unsigned deg1, unsigned deg2) const; + + /** + // A faster way to generate Kronecker deltas if the whole matrix + // of them is needed. The argument must not exceed the return + // value of the "maxDegree" function. The resulting matrix will + // be dimensioned (maxdeg + 1) x (maxdeg + 1). + */ + Matrix empiricalKroneckerMatrix(unsigned maxdeg) const; + + private: + template + void copyMeasure(const std::vector >& inMeasure); + + template + void copyInputCoords(const std::vector& inCoords); + + void calcMeanXandWeightSums(bool shiftTheMeasure); + + template + quad_float sigma(const OrthoPoly& ops, int k, int l, + Matrix& sigMatrix, + Matrix& flagMatrix) const; + + template + void calculateMonicAverages(const OrthoPoly& ops, quad_float* averages, + unsigned maxdeg); + + template + void calcRecurrenceModifiedChebyshev(const OrthoPoly& ops); + + quad_float normpoly(unsigned degree, quad_float x) const; + + std::pair twonormpoly( + unsigned deg1, unsigned deg2, quad_float x) const; + + template + void getAllPolys(quad_float x, unsigned maxdeg, Numeric *polyValues) const; + + std::vector measure_; + std::vector rCoeffs_; + quad_float wsum_; + quad_float wsumsq_; + quad_float meanX_; + quad_float shiftX_; + quad_float minX_; + quad_float maxX_; + unsigned maxdeg_; + bool allWeightsEqual_; + }; +} + +#include "npstat/nm/ContOrthoPoly1DQ.icc" + +#endif // NPSTAT_CONTORTHOPOLY1DQ_HH_ Index: trunk/npstat/nm/ContOrthoPoly1D.icc =================================================================== --- trunk/npstat/nm/ContOrthoPoly1D.icc (revision 919) +++ trunk/npstat/nm/ContOrthoPoly1D.icc (revision 920) @@ -1,547 +1,547 @@ #include #include #include #include #include #include "npstat/nm/PairCompare.hh" #include "npstat/nm/polyPrivateUtils.hh" namespace npstat { template void ContOrthoPoly1D::copyMeasure(const std::vector >& inMeasure) { if (inMeasure.empty()) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::copyMeasure: empty argument measure"); const unsigned long mSize = inMeasure.size(); measure_.clear(); measure_.reserve(mSize); for (unsigned long i=0; i& p(inMeasure[i]); measure_.push_back(MeasurePoint(p.first, p.second)); } // From time to time, we expect all weights to be equal. // Check if this is indeed the case. If not, sort the // weights in the increasing order, hopefully reducing // the round-off error of subsequent calculations. const double w0 = measure_[0].second; for (unsigned long i = 1; i < mSize && allWeightsEqual_; ++i) allWeightsEqual_ = (w0 == measure_[i].second); if (!allWeightsEqual_) std::sort(measure_.begin(), measure_.end(), LessBySecond()); if (measure_[0].second < 0.0) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::copyMeasure: negative measure entry found"); // Make sure that we don't have too many points with 0 weights unsigned long nZeroWeights = 0; if (allWeightsEqual_) { if (w0 == 0.0) nZeroWeights = mSize; } else { for (unsigned long i = 0; i < mSize; ++i) { if (measure_[i].second == 0.0) ++nZeroWeights; else break; } } if (mSize <= maxdeg_ + nZeroWeights) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::copyMeasure: insufficient number " "of measure points with non-zero weights"); } template void ContOrthoPoly1D::copyInputCoords(const std::vector& inCoords) { if (inCoords.empty()) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::copyInputCoords: empty argument vector"); const unsigned long sz = inCoords.size(); if (sz <= maxdeg_) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::copyInputCoords: insufficient number of points"); // Fill the measure, converting the input type as needed measure_.clear(); measure_.reserve(sz); for (unsigned long i = 0; i < sz; ++i) measure_.push_back(MeasurePoint(inCoords[i], 1.0)); } template long double ContOrthoPoly1D::sigma(const OrthoPoly& ops, int k, int l, Matrix& sigMatrix, Matrix& flagMatrix) const { const int nRows = sigMatrix.nRows(); const int nCols = sigMatrix.nColumns(); assert(k >= -1); assert(k < nRows); assert(l >= 0); assert(l < nCols); if (k < 0) return 0.0L; else if (flagMatrix[k][l]) return sigMatrix[k][l]; else { assert(k > 0); const int* flagskm1 = flagMatrix[k-1]; assert(flagskm1[l]); assert(l+1 < nCols); assert(flagskm1[l+1]); assert(l-1 >= 0); assert(flagskm1[l-1]); long double sigkm2l = 0.0L; if (k > 1) { assert(flagMatrix[k-2][l]); sigkm2l = sigMatrix[k-2][l]; } const long double* smatkm1 = sigMatrix[k-1]; const Recurrence& rckm1(rCoeffs_.at(k - 1)); const std::pair& ab = ops.monicRecurrenceCoeffs(l); const long double sigkl = smatkm1[l+1] - (rckm1.alpha - ab.first)*smatkm1[l] - rckm1.beta*sigkm2l + ab.second*smatkm1[l-1]; sigMatrix[k][l] = sigkl; flagMatrix[k][l] = 1; return sigkl; } } template void ContOrthoPoly1D::calculateMonicAverages( const OrthoPoly& ops, long double* averages, const unsigned maxdeg) { std::vector membuf(2U*(maxdeg + 1U), 0.0L); long double* poly = &membuf[0]; long double* sums = poly + (maxdeg + 1U); const unsigned long numPoints = measure_.size(); for (unsigned long i=0; i void ContOrthoPoly1D::calcRecurrenceModifiedChebyshev(const OrthoPoly& ops) { const unsigned maxl = 2U*maxdeg_ + 1U; if (ops.maxDegree() < maxl) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::calcRecurrenceModifiedChebyshev: " "insufficient maximum degree of the input OPS"); Matrix sigMatrix(maxdeg_+1U, maxl+1U); Matrix flagMatrix(maxdeg_+1U, maxl+1U, 0); long double* m = sigMatrix[0]; calculateMonicAverages(ops, m, maxl); int* flags = flagMatrix[0]; for (unsigned i=0; i<=maxl; ++i) flags[i] = 1; const long double a0 = ops.monicRecurrenceCoeffs(0).first; rCoeffs_.push_back(Recurrence(a0 + m[1], 1.0L)); const int imdeg = maxdeg_; for (int k=1; k<=imdeg; ++k) { const int lmax = maxl-k; for (int l=k; l<=lmax; ++l) sigma(ops, k, l, sigMatrix, flagMatrix); assert(flagMatrix[k][k]); const long double sigkk = sigMatrix[k][k]; assert(flagMatrix[k-1][k-1]); const long double sigkm1km1 = sigMatrix[k-1][k-1]; assert(flagMatrix[k][k+1]); const long double sigkkp1 = sigMatrix[k][k+1]; assert(flagMatrix[k-1][k]); const long double sigkm1k = sigMatrix[k-1][k]; const long double ak = ops.monicRecurrenceCoeffs(k).first; const long double alpha = ak + sigkkp1/sigkk - sigkm1k/sigkm1km1; const long double beta = sigkk/sigkm1km1; rCoeffs_.push_back(Recurrence(alpha, beta)); } } template ContOrthoPoly1D::ContOrthoPoly1D(const unsigned maxDegree, const std::vector >& inMeasure, const OrthoPolyMethod m, const bool shiftMeasure) : wsum_(precise_zero), wsumsq_(precise_zero), minX_(DBL_MAX), maxX_(-DBL_MAX), maxdeg_(maxDegree), allWeightsEqual_(true) { copyMeasure(inMeasure); calcMeanXandWeightSums(shiftMeasure); calcRecurrenceCoeffs(m); } template ContOrthoPoly1D::ContOrthoPoly1D(const unsigned maxDegree, const std::vector& inCoords, const OrthoPolyMethod m, const bool shiftMeasure) : wsum_(precise_zero), wsumsq_(precise_zero), minX_(DBL_MAX), maxX_(-DBL_MAX), maxdeg_(maxDegree), allWeightsEqual_(true) { copyInputCoords(inCoords); calcMeanXandWeightSums(shiftMeasure); calcRecurrenceCoeffs(m); } template ContOrthoPoly1D::ContOrthoPoly1D(const unsigned maxDegree, const std::vector >& inMeasure, const OrthoPoly& ops, const bool shiftMeasure) : wsum_(precise_zero), wsumsq_(precise_zero), minX_(DBL_MAX), maxX_(-DBL_MAX), maxdeg_(maxDegree), allWeightsEqual_(true) { copyMeasure(inMeasure); calcMeanXandWeightSums(shiftMeasure); calcRecurrenceModifiedChebyshev(ops); } #ifndef SWIGBUG template ContOrthoPoly1D::ContOrthoPoly1D(const unsigned maxDegree, const std::vector& inCoords, const OrthoPoly& ops, const bool shiftMeasure) : wsum_(precise_zero), wsumsq_(precise_zero), minX_(DBL_MAX), maxX_(-DBL_MAX), maxdeg_(maxDegree), allWeightsEqual_(true) { copyInputCoords(inCoords); calcMeanXandWeightSums(shiftMeasure); calcRecurrenceModifiedChebyshev(ops); } #endif template void ContOrthoPoly1D::calculateCoeffs(const Functor& fcn, Numeric* coeffs, const unsigned maxdeg) const { if (maxdeg > maxdeg_) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::calculateCoeffs: " "maximum degree is out of range"); assert(coeffs); std::vector scalarProducts(maxdeg+1U, precise_zero); const unsigned long mSize = measure_.size(); for (unsigned long i = 0; i < mSize; ++i) { const double x = measure_[i].first; const double w = measure_[i].second; const precise_type f = fcn(x + shiftX_); precise_type polyk = 1.0, polykm1 = precise_zero; for (unsigned k=0; k double ContOrthoPoly1D::weightedSquaredError(const Functor& fcn, const double *coeffs, const unsigned maxdeg) const { if (maxdeg > maxdeg_) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::weightedSquaredError: " "maximum degree is out of range"); assert(coeffs); precise_type sum = precise_zero; const unsigned long mSize = measure_.size(); for (unsigned long i = 0; i < mSize; ++i) { const double x = measure_[i].first; const precise_type delta = normseries(coeffs, maxdeg, x) - fcn(x + shiftX_); sum += delta*delta*measure_[i].second; } return sum/wsum_; } template double ContOrthoPoly1D::integratedSquaredError( const Functor& infcn, const double *coeffs, const unsigned maxdeg, const double xmin, const double xmax, unsigned integrationRulePoints) const { if (maxdeg > maxdeg_) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::integratedSquaredError: " "maximum degree is out of range"); assert(coeffs); if (!integrationRulePoints) { integrationRulePoints = PreciseQuadrature::minimalExactRule(2*maxdeg); if (!integrationRulePoints) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::integratedSquaredError: " "order of requested integration rule is too high"); } DeltaSquaredSerFcn fcn(*this, infcn, coeffs, maxdeg); PreciseQuadrature glq(integrationRulePoints); return glq.integrate(fcn, xmin, xmax); } template double ContOrthoPoly1D::integrateEWPolyProduct( const Functor& weight, const unsigned deg1, const unsigned deg2, const double xmin, const double xmax, const unsigned integrationRulePoints) const { if (deg1 > maxdeg_ || deg2 > maxdeg_) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::integrateEWPolyProduct: " "degree argument is out of range"); PreciseQuadrature glq(integrationRulePoints); EWPolyProductFcn fcn(*this, weight, deg1, deg2); // The shift of the poly argument will be performed inside "fcn" return glq.integrate(fcn, xmin, xmax); } template void ContOrthoPoly1D::extWeightAverages( const Functor& fcn, const AbsIntervalQuadrature1D& quad, const unsigned maxdeg, const double i_xmin, const double i_xmax, double* averages) const { if (maxdeg > maxdeg_) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::extWeightAverages: " "degree argument is out of range"); Private::extWeightAverages( *this, fcn, quad, maxdeg, i_xmin, i_xmax, averages); } template Matrix ContOrthoPoly1D::extWeightProductAverages( const Functor& fcn, const AbsIntervalQuadrature1D& quad, const unsigned maxdeg, const double i_xmin, const double i_xmax) const { if (maxdeg > maxdeg_) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::extWeightProductAverages: " "degree argument is out of range"); return Private::extWeightProductAverages( *this, fcn, quad, maxdeg, i_xmin, i_xmax); } template void ContOrthoPoly1D::getAllPolys(const double x, const unsigned maxdeg, - Numeric *polyValues) const + Numeric* polyValues) const { if (maxdeg > maxdeg_) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::getAllPolys: " "maximum polynomial degree is out of range"); assert(polyValues); precise_type polyk = 1.0, polykm1 = precise_zero; polyValues[0] = polyk; for (unsigned k=0; k double ContOrthoPoly1D::constrainedCoeffs( const Functor& fcn, double *coeffs, const unsigned maxdeg, const double xmin, const double xmax, const double integralValue) const { const unsigned nPolys = maxdeg + 1U; // Calculate the unconstrained coefficients std::vector coeffs0(nPolys); calculateCoeffs(fcn, &coeffs0[0], maxdeg); // Construct the normalization constraint matrix npstat::Matrix constrMat(1, nPolys); lapack_double* constrData = constrMat[0]; for (unsigned i=0; i fitted(nPolys); npstat::Matrix U(nPolys, nPolys, 1); const bool status = U.constrainedLeastSquares( &coeffs0[0], nPolys, constrMat, &constraint, 1U, &fitted[0], nPolys, &chisq); assert(status); // Fill out the result buffer for (unsigned i=0; i void ContOrthoPoly1D::sampleAverages(const Numeric* xValues, const unsigned long sz, double *polyValues, const unsigned maxdeg) const { if (!sz) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::sampleAverages: empty sample"); assert(xValues); assert(polyValues); std::vector buffer(2U*(maxdeg + 1U), precise_zero); precise_type* sums = &buffer[0]; precise_type* tmp = sums + (maxdeg + 1U); for (unsigned long i=0; i(xValues[i]) - shiftX_, maxdeg, tmp); for (unsigned deg=0; deg<=maxdeg; ++deg) sums[deg] += tmp[deg]; } const precise_type ldsz = sz; for (unsigned deg=0; deg<=maxdeg; ++deg) polyValues[deg] = sums[deg]/ldsz; } template void ContOrthoPoly1D::weightedPointsAverages( const Pair* points, const unsigned long sz, double *polyValues, const unsigned maxdeg) const { if (!sz) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::weightedPointsAverages: empty sample"); assert(points); assert(polyValues); std::vector buffer(2U*(maxdeg + 1U), precise_zero); precise_type* sums = &buffer[0]; precise_type* tmp = sums + (maxdeg + 1U); precise_type wsum = precise_zero; for (unsigned long i=0; i(points[i].first) - shiftX_, maxdeg, tmp); for (unsigned deg=0; deg<=maxdeg; ++deg) sums[deg] += w*tmp[deg]; } if (wsum == precise_zero) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::weightedPointsAverages: " "at least one weight must be positive"); for (unsigned deg=0; deg<=maxdeg; ++deg) polyValues[deg] = sums[deg]/wsum; } template Matrix ContOrthoPoly1D::sampleProductAverages( const Numeric* xValues, const unsigned long sz, const unsigned maxdeg) const { if (!sz) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::sampleProductAverages: empty sample"); assert(xValues); const unsigned maxdegp1 = maxdeg+1U; Matrix acc(maxdegp1, maxdegp1, 0); std::vector buf(maxdegp1); precise_type* tmp = &buf[0]; for (unsigned long i=0; i(xValues[i]) - shiftX_, maxdeg, tmp); for (unsigned deg=0; deg<=maxdeg; ++deg) { precise_type* row = acc[deg]; for (unsigned k=0; k<=deg; ++k) row[k] += tmp[deg]*tmp[k]; } } for (unsigned deg=1; deg<=maxdeg; ++deg) { precise_type* row = acc[deg]; for (unsigned k=0; k(sz); return acc; } template ContOrthoPoly1D::precise_type ContOrthoPoly1D::normseries( const Numeric* coeffs, const unsigned maxdeg, const precise_type x) const { assert(coeffs); assert(maxdeg <= maxdeg_); precise_type sum = coeffs[0]; precise_type polyk = 1.0, polykm1 = precise_zero; for (unsigned k=0; k double ContOrthoPoly1D::series(const Numeric* coeffs, const unsigned deg, const double x) const { if (deg > maxdeg_) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::series: degree argument is out of range"); return normseries(coeffs, deg, x - shiftX_); } } Index: trunk/npstat/nm/ContOrthoPoly1D.cc =================================================================== --- trunk/npstat/nm/ContOrthoPoly1D.cc (revision 919) +++ trunk/npstat/nm/ContOrthoPoly1D.cc (revision 920) @@ -1,976 +1,979 @@ #include "npstat/nm/ContOrthoPoly1D.hh" #include "npstat/nm/allocators.hh" #include "npstat/nm/StorablePolySeries1D.hh" #include "npstat/nm/Triple.hh" inline static int kdelta(const unsigned i, const unsigned j) { return i == j ? 1 : 0; } namespace npstat { const ContOrthoPoly1D::precise_type ContOrthoPoly1D::precise_zero = 0.0; void ContOrthoPoly1D::calcMeanXandWeightSums(const bool shiftTheMeasure) { // Calculate wsum_, wsumsq_, meanX_, and shiftX_ const unsigned long mSize = measure_.size(); precise_type xsum = precise_zero; if (allWeightsEqual_) { const precise_type lw0 = measure_[0].second; wsum_ = mSize*lw0; wsumsq_ = mSize*lw0*lw0; for (unsigned long i = 0; i < mSize; ++i) { const double x = measure_[i].first; xsum += x; if (x < minX_) minX_ = x; if (x > maxX_) maxX_ = x; } meanX_ = xsum/mSize; } else { for (unsigned long i = 0; i < mSize; ++i) { const double x = measure_[i].first; const precise_type w = measure_[i].second; wsum_ += w; wsumsq_ += w*w; xsum += w*x; - if (x < minX_) - minX_ = x; - if (x > maxX_) - maxX_ = x; + if (w != precise_zero) + { + if (x < minX_) + minX_ = x; + if (x > maxX_) + maxX_ = x; + } } assert(wsum_ > precise_zero); meanX_ = xsum/wsum_; } if (shiftTheMeasure) { // Shift the measure double shift = meanX_; for (unsigned long i = 0; i < mSize; ++i) measure_[i].first -= shift; // Try to improve the mean xsum = precise_zero; precise_type dx; if (allWeightsEqual_) { for (unsigned long i = 0; i < mSize; ++i) xsum += measure_[i].first; dx = xsum/mSize; } else { for (unsigned long i = 0; i < mSize; ++i) { const precise_type w = measure_[i].second; xsum += w*measure_[i].first; } dx = xsum/wsum_; } // Shift the measure and the mean meanX_ += dx; shift = dx; for (unsigned long i = 0; i < mSize; ++i) measure_[i].first -= shift; shiftX_ = meanX_; } else shiftX_ = precise_zero; } void ContOrthoPoly1D::calcRecurrenceCoeffs(const OrthoPolyMethod m) { rCoeffs_.clear(); rCoeffs_.reserve(maxdeg_ + 1); switch (m) { case OPOLY_STIELTJES: calcRecurrenceStieltjes(); break; case OPOLY_LANCZOS: calcRecurrenceLanczos(); break; default: throw std::runtime_error( "In npstat::ContOrthoPoly1D::calcRecurrenceCoeffs: " "incomplete switch statement. This is a bug. Please report."); } assert(rCoeffs_.size() == maxdeg_ + 1); } double ContOrthoPoly1D::effectiveSampleSize() const { if (allWeightsEqual_) return measure_.size(); else return wsum_*wsum_/wsumsq_; } ContOrthoPoly1D::precise_type ContOrthoPoly1D::monicpoly( const unsigned degree, const precise_type x) const { assert(degree <= maxdeg_); precise_type polyk = 1.0, polykm1 = precise_zero; for (unsigned k=0; k maxdeg_) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::powerAverage: " "degree argument is out of range"); const unsigned long mSize = measure_.size(); precise_type sum = precise_zero; for (unsigned long i = 0; i < mSize; ++i) sum += measure_[i].second*powl(normpoly(deg, measure_[i].first), power); return sum/wsum_; } } } std::pair ContOrthoPoly1D::twonormpoly( const unsigned deg1, const unsigned deg2, const precise_type x) const { precise_type p1 = precise_zero, p2 = precise_zero, polyk = 1.0, polykm1 = precise_zero; const unsigned degmax = std::max(deg1, deg2); for (unsigned k=0; k(p1, p2); } ContOrthoPoly1D::precise_type ContOrthoPoly1D::normpolyprod( const unsigned* degrees, const unsigned nDeg, const unsigned degmax, const precise_type x) const { precise_type prod = 1.0, polyk = 1.0, polykm1 = precise_zero; for (unsigned k=0; k ContOrthoPoly1D::monicInnerProducts(const unsigned degree) const { precise_type sum = precise_zero, xsum = precise_zero; const unsigned long mSize = measure_.size(); for (unsigned long i = 0; i < mSize; ++i) { const precise_type x = measure_[i].first; const precise_type p = monicpoly(degree, x); const precise_type pprod = p*p*measure_[i].second; sum += pprod; xsum += x*pprod; } return std::pair(xsum/wsum_, sum/wsum_); } void ContOrthoPoly1D::weightCoeffs(double *coeffs, const unsigned maxdeg) const { if (maxdeg > maxdeg_) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::weightsSquaredCoeffs: " "maximum degree out of range"); assert(coeffs); std::vector scalarProducts(maxdeg+1U, precise_zero); const unsigned long mSize = measure_.size(); for (unsigned long i = 0; i < mSize; ++i) { const double x = measure_[i].first; const double w = measure_[i].second; const precise_type f = w; precise_type polyk = 1.0, polykm1 = precise_zero; for (unsigned k=0; k ip = monicInnerProducts(deg); rCoeffs_.push_back(Recurrence(ip.first/ip.second, ip.second/prevSprod)); prevSprod = ip.second; } } void ContOrthoPoly1D::calcRecurrenceLanczos() { const unsigned long mSize = measure_.size(); std::vector dmem(mSize*2UL); precise_type* p0 = &dmem[0]; for (unsigned long i=0; i maxdeg_) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::poly: degree argument is out of range"); return normpoly(deg, x - shiftX_); } std::pair ContOrthoPoly1D::polyPair( const unsigned deg1, const unsigned deg2, const double x) const { if (deg1 > maxdeg_ || deg2 > maxdeg_) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::polyPair: degree argument is out of range"); const std::pair& ld = twonormpoly(deg1, deg2, x - shiftX_); return std::pair(ld.first, ld.second); } ContOrthoPoly1D::precise_type ContOrthoPoly1D::empiricalKroneckerDelta( const unsigned ideg1, const unsigned ideg2) const { if (ideg1 > maxdeg_ || ideg2 > maxdeg_) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::empiricalKroneckerDelta: " "degree argument is out of range"); precise_type sum = precise_zero; const unsigned long mSize = measure_.size(); for (unsigned long i = 0; i < mSize; ++i) { const std::pair& p = twonormpoly(ideg1, ideg2, measure_[i].first); sum += measure_[i].second*p.first*p.second; } return sum/wsum_; } Matrix ContOrthoPoly1D::empiricalKroneckerMatrix(const unsigned maxdeg) const { if (maxdeg > maxdeg_) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::empiricalKroneckerMatrix: " "requested matrix size is out of range"); Matrix kd(maxdeg+1U, maxdeg+1U, 0); std::vector polyv(maxdeg+1U); ContOrthoPoly1D::precise_type* polyBuf = &polyv[0]; const unsigned long mSize = measure_.size(); for (unsigned long ipt = 0; ipt < mSize; ++ipt) { const double weight = measure_[ipt].second; getAllPolys(measure_[ipt].first, maxdeg, polyBuf); for (unsigned i=0; i<=maxdeg; ++i) { const ContOrthoPoly1D::precise_type polyI = polyBuf[i]; ContOrthoPoly1D::precise_type* row = kd[i]; for (unsigned j=i; j<=maxdeg; ++j) row[j] += weight*polyI*polyBuf[j]; } } for (unsigned i=0; i maxdeg_ || ideg2 > maxdeg_) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::jointPowerAverage: " "degree argument is out of range"); precise_type sum = precise_zero; const unsigned long mSize = measure_.size(); for (unsigned long i = 0; i < mSize; ++i) { const std::pair& p = twonormpoly(ideg1, ideg2, measure_[i].first); sum += measure_[i].second*powl(p.first,power1)*powl(p.second,power2); } return sum/wsum_; } double ContOrthoPoly1D::jointAverage( const unsigned* degrees, const unsigned nDegrees, const bool sorted) const { if (nDegrees) { assert(degrees); // See if we can avoid a direct calculation if (nDegrees == 1U) return kdelta(degrees[0], 0U); if (nDegrees == 2U) return kdelta(degrees[0], degrees[1]); // Check if we can remove leading zeros { unsigned nonZeroDegs = nDegrees; while (nonZeroDegs && !degrees[0]) { ++degrees; --nonZeroDegs; } if (nonZeroDegs < nDegrees) return jointAverage(degrees, nonZeroDegs, sorted); } // Check if we can remove any other zeros if (!sorted) { bool allNonZero = true; for (unsigned ideg=0; ideg maxdeg_) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::jointAverage: " "degree argument is out of range"); precise_type sum = precise_zero; const unsigned long mSize = measure_.size(); for (unsigned long i = 0; i < mSize; ++i) sum += measure_[i].second*normpolyprod( degrees, nDegrees, degmax, measure_[i].first); return sum/wsum_; } else return 1.0; } double ContOrthoPoly1D::empiricalKroneckerCovariance( const unsigned deg1, const unsigned deg2, const unsigned deg3, const unsigned deg4) const { double cov = 0.0; if (!((deg1 == 0 && deg2 == 0) || (deg3 == 0 && deg4 == 0))) { unsigned degs[4]; degs[0] = deg1; degs[1] = deg2; degs[2] = deg3; degs[3] = deg4; cov = (jointAverage(degs, 4) - kdelta(deg1, deg2)*kdelta(deg3, deg4))/ effectiveSampleSize(); if (std::min(deg1, deg2) == std::min(deg3, deg4) && std::max(deg1, deg2) == std::max(deg3, deg4)) if (cov < 0.0) cov = 0.0; } return cov; } Matrix ContOrthoPoly1D::jacobiMatrix(const unsigned n) const { if (!n) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::jacobiMatrix: " "can not build matrix of zero size"); if (n > maxdeg_) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::jacobiMatrix: " "matrix size is out of range"); Matrix mat(n, n, 0); unsigned ip1 = 1; for (unsigned i=0; i maxdeg_) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::integratePoly: " "degree argument is out of range"); const unsigned nGood = PreciseQuadrature::minimalExactRule(deg1*power); if (!nGood) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::integratePoly: " "product of poly degree and power is too large"); PreciseQuadrature glq(nGood); PolyFcn fcn(*this, deg1, power); return glq.integrate(fcn, xmin - shiftX_, xmax - shiftX_); } ContOrthoPoly1D::precise_type ContOrthoPoly1D::integrateTripleProduct( const unsigned deg1, const unsigned deg2, const unsigned deg3, const double xmin, const double xmax) const { const unsigned maxdex = std::max(std::max(deg1, deg2), deg3); if (maxdex > maxdeg_) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::integrateTripleProduct: " "degree argument is out of range"); const unsigned sumdeg = deg1 + deg2 + deg3; const unsigned nGood = PreciseQuadrature::minimalExactRule(sumdeg); if (!nGood) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::integrateTripleProduct: " "sum of the polynomial degrees is too large"); PreciseQuadrature glq(nGood); TripleProdFcn fcn(*this, deg1, deg2, deg3); return glq.integrate(fcn, xmin - shiftX_, xmax - shiftX_); } Matrix ContOrthoPoly1D::tripleProductMatrix( const std::vector >& pairs, const unsigned maxdeg, const double xmin, const double xmax) const { typedef npstat::Triple Key3; typedef std::map TripleProductMap; const unsigned nPairs = pairs.size(); if (!nPairs) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::tripleProductMatrix: " "empty vector of degree specifications"); const unsigned nPolys = maxdeg + 1U; npstat::Matrix design0(nPairs, nPolys); TripleProductMap tmap; // Avoid calculating the same integral more than once for (unsigned ipair=0; ipair where = tmap.insert(std::make_pair(key, value)); assert(where.second); it = where.first; } design0[ipair][ipoly] = it->second; } } return design0; } double ContOrthoPoly1D::cachedJointAverage(const unsigned deg1, const unsigned deg2, const unsigned deg3, const unsigned deg4) const { MemoKey key(deg1, deg2, deg3, deg4); return getCachedAverage(key); } double ContOrthoPoly1D::cachedJointAverage(const unsigned deg1, const unsigned deg2, const unsigned deg3, const unsigned deg4, const unsigned deg5, const unsigned deg6) const { MemoKey key(deg1, deg2, deg3, deg4, deg5, deg6); return getCachedAverage(key); } double ContOrthoPoly1D::cachedJointAverage(const unsigned deg1, const unsigned deg2, const unsigned deg3, const unsigned deg4, const unsigned deg5, const unsigned deg6, const unsigned deg7, const unsigned deg8) const { MemoKey key(deg1, deg2, deg3, deg4, deg5, deg6, deg7, deg8); return getCachedAverage(key); } double ContOrthoPoly1D::getCachedAverage(const MemoKey& key) const { double value; std::map::const_iterator it = cachedAverages_.find(key); if (it == cachedAverages_.end()) { value = jointAverage(key.degrees(), key.nDegrees(), true); cachedAverages_.insert(std::pair(key, value)); } else value = it->second; return value; } double ContOrthoPoly1D::cov4(const unsigned deg1, const unsigned deg2, const unsigned deg3, const unsigned deg4) const { const bool has0 = (deg1 == 0 && deg2 == 0) || (deg3 == 0 && deg4 == 0); double cov = 0.0; if (!has0) { const double N = effectiveSampleSize(); cov = (cachedJointAverage(deg1, deg2, deg3, deg4) - kdelta(deg1, deg2)*kdelta(deg3, deg4))/N; if (std::min(deg1, deg2) == std::min(deg3, deg4) && std::max(deg1, deg2) == std::max(deg3, deg4)) if (cov < 0.0) cov = 0.0; } return cov; } double ContOrthoPoly1D::cov6(const unsigned a, const unsigned b, const unsigned c, const unsigned d, const unsigned e, const unsigned f) const { const bool has0 = (a == 0 && b == 0) || (c == 0 && d == 0) || (e == 0 && f == 0); double cov = 0.0; if (!has0) { double sum = cachedJointAverage(a, b, c, d, e, f); double add = 2.0; if (kdelta(a, b)) sum -= cachedJointAverage(c, d, e, f); else add = 0.0; if (kdelta(c, d)) sum -= cachedJointAverage(a, b, e, f); else add = 0.0; if (kdelta(e, f)) sum -= cachedJointAverage(a, b, c, d); else add = 0.0; const double N = effectiveSampleSize(); cov = (sum + add)/N/N; } return cov; } double ContOrthoPoly1D::slowCov8(const unsigned a, const unsigned b, const unsigned c, const unsigned d, const unsigned e, const unsigned f, const unsigned g, const unsigned h) const { const bool has0 = (a == 0 && b == 0) || (c == 0 && d == 0) || (e == 0 && f == 0) || (g == 0 && h == 0); double cov = 0.0; if (!has0) { const double pabcd = cachedJointAverage(a, b, c, d); const double pefgh = cachedJointAverage(e, f, g, h); const double pabef = cachedJointAverage(a, b, e, f); const double pcdgh = cachedJointAverage(c, d, g, h); const double pabgh = cachedJointAverage(a, b, g, h); const double pcdef = cachedJointAverage(c, d, e, f); const double pabcdef = cachedJointAverage(a, b, c, d, e, f); const double pabcdgh = cachedJointAverage(a, b, c, d, g, h); const double pabefgh = cachedJointAverage(a, b, e, f, g, h); const double pcdefgh = cachedJointAverage(c, d, e, f, g, h); const double pabcdefgh = cachedJointAverage(a, b, c, d, e, f, g, h); const double deltaprod = kdelta(a, b)*kdelta(c, d)*kdelta(e, f)*kdelta(g, h); const double tmp = kdelta(e,f)*kdelta(g,h)*pabcd + kdelta(c,d)*kdelta(g,h)*pabef + kdelta(c,d)*kdelta(e,f)*pabgh + kdelta(a,b)*kdelta(c,d)*pefgh + kdelta(a,b)*kdelta(e,f)*pcdgh + kdelta(a,b)*kdelta(g,h)*pcdef; const double term1 = pabcd*pefgh + pabef*pcdgh + pabgh*pcdef + 3.0*deltaprod - tmp; const double term2 = pabcdefgh - 6.0*deltaprod - kdelta(a,b)*pcdefgh - kdelta(c,d)*pabefgh - kdelta(e,f)*pabcdgh - kdelta(g,h)*pabcdef - pabcd*pefgh - pabef*pcdgh - pabgh*pcdef + 2.0*tmp; const double nPoints = effectiveSampleSize(); const double prod8 = (term1 + term2/nPoints)/nPoints/nPoints; cov = prod8 - cov4(a, b, c, d)*cov4(e, f, g, h); } return cov; } double ContOrthoPoly1D::covCov4(const unsigned a, const unsigned b, const unsigned c, const unsigned d, const unsigned e, const unsigned f, const unsigned g, const unsigned h) const { const bool has0 = (a == 0 && b == 0) || (c == 0 && d == 0) || (e == 0 && f == 0) || (g == 0 && h == 0); double cov = 0.0; if (!has0) { const double pabcdefgh = cachedJointAverage(a, b, c, d, e, f, g, h); const double pabcd = cachedJointAverage(a, b, c, d); const double pefgh = cachedJointAverage(e, f, g, h); const double N = effectiveSampleSize(); cov = (pabcdefgh - pabcd*pefgh)/N/N/N; } return cov; } double ContOrthoPoly1D::cov8(const unsigned a, const unsigned b, const unsigned c, const unsigned d, const unsigned e, const unsigned f, const unsigned g, const unsigned h) const { const bool has0 = (a == 0 && b == 0) || (c == 0 && d == 0) || (e == 0 && f == 0) || (g == 0 && h == 0); double cov = 0.0; if (!has0) { const bool includeCubicPart = true; // First, calculate the O(N^-2) part const double pabef = cachedJointAverage(a, b, e, f); const double pcdgh = cachedJointAverage(c, d, g, h); const double pabgh = cachedJointAverage(a, b, g, h); const double pcdef = cachedJointAverage(c, d, e, f); const double deltaprod = kdelta(a, b)*kdelta(c, d)*kdelta(e, f)*kdelta(g, h); const double tmp2 = kdelta(c, d)*kdelta(g, h)*pabef + kdelta(c, d)*kdelta(e, f)*pabgh + kdelta(a, b)*kdelta(e, f)*pcdgh + kdelta(a, b)*kdelta(g, h)*pcdef; const double term2 = pabef*pcdgh + pabgh*pcdef + 2.0*deltaprod - tmp2; double term3 = 0.0; if (includeCubicPart) { // Additional terms needed to calculate the O(N^-3) part const double pabcdefgh = cachedJointAverage(a, b, c, d, e, f, g, h); double sixsum = 0.0; if (kdelta(a, b)) sixsum += cachedJointAverage(c, d, e, f, g, h); if (kdelta(c, d)) sixsum += cachedJointAverage(a, b, e, f, g, h); if (kdelta(e, f)) sixsum += cachedJointAverage(a, b, c, d, g, h); if (kdelta(g, h)) sixsum += cachedJointAverage(a, b, c, d, e, f); const double pabcd = cachedJointAverage(a, b, c, d); const double pefgh = cachedJointAverage(e, f, g, h); const double tmp3 = tmp2 + kdelta(e, f)*kdelta(g, h)*pabcd + kdelta(a, b)*kdelta(c, d)*pefgh; term3 = pabcdefgh - 6.0*deltaprod - sixsum - (pabcd*pefgh + pabef*pcdgh + pabgh*pcdef) + 2.0*tmp3; } const double N = effectiveSampleSize(); cov = (term2 + term3/N)/N/N; // const bool isVariance = ?; // if (isVariance) // if (cov < 0.0) // cov = 0.0; } return cov; } double ContOrthoPoly1D::epsExpectation(const unsigned m_in, const unsigned n_in, const bool highOrder) const { if (highOrder) { precise_type sum = precise_zero; if (m_in || n_in) { const unsigned m = std::min(m_in, n_in); const unsigned n = std::max(m_in, n_in); for (unsigned k=0; k<=n; ++k) { const double f = k == n ? 1.0 : (k > m ? 1.0 : 2.0); sum += f*cachedJointAverage(k, k, m, n); } if (m == n) sum -= 1.0; else sum -= (cachedJointAverage(m, m, m, n) + cachedJointAverage(m, n, n, n))/2.0; } return sum/effectiveSampleSize(); } else return 0.0; } double ContOrthoPoly1D::epsCovariance(const unsigned m1_in, const unsigned n1_in, const unsigned m2_in, const unsigned n2_in, const bool highOrder) const { const bool has0 = (m1_in == 0 && n1_in == 0) || (m2_in == 0 && n2_in == 0); if (has0) return 0.0; if (highOrder) { const unsigned m1 = std::min(m1_in, n1_in); const unsigned n1 = std::max(m1_in, n1_in); const unsigned m2 = std::min(m2_in, n2_in); const unsigned n2 = std::max(m2_in, n2_in); precise_type sum = precise_zero; // Process the -v_{m1,n1} term (i.e., the linear one) of eps_{m1,n1} sum += cov4(m2, n2, m1, n1); sum += cov6(m2, n2, n2, n2, m1, n1)/2.0; sum += cov6(m2, n2, m2, m2, m1, n1)/2.0; for (unsigned k=0; k<=n2; ++k) { const double factor = k > m2 ? 1.0 : 2.0; sum -= factor*cov6(k, m2, k, n2, m1, n1); } // Process the term -v_{m1,n1}/2 (v_{n1,n1} + v_{m1,m1}) of eps_{m1,n1} unsigned idx[2]; idx[0] = n1; idx[1] = m1; for (unsigned ii=0; ii<2; ++ii) { const unsigned mOrN = idx[ii]; sum += cov6(m1, n1, mOrN, mOrN, m2, n2)/2.0; sum += cov8(m1, n1, mOrN, mOrN, m2, n2, n2, n2)/4.0; sum += cov8(m1, n1, mOrN, mOrN, m2, n2, m2, m2)/4.0; for (unsigned k=0; k<=n2; ++k) { const double factor = k > m2 ? 1.0 : 2.0; sum -= factor/2.0*cov8(m1, n1, mOrN, mOrN, k, m2, k, n2); } } // Process the sum in eps_{m1,n1} for (unsigned k1=0; k1<=n1; ++k1) { const double f1 = k1 > m1 ? 1.0 : 2.0; sum -= f1*cov6(k1, m1, k1, n1, m2, n2); sum -= f1*cov8(k1, m1, k1, n1, m2, n2, n2, n2)/2.0; sum -= f1*cov8(k1, m1, k1, n1, m2, n2, m2, m2)/2.0; for (unsigned k=0; k<=n2; ++k) { const double factor = k > m2 ? 1.0 : 2.0; sum += f1*factor*cov8(k1, m1, k1, n1, k, m2, k, n2); } } return sum; } else return cov4(m2_in, n2_in, m1_in, n1_in); } Matrix ContOrthoPoly1D::epsCovarianceMatrix( const std::vector >& pairs, const bool highOrder) const { if (pairs.empty()) throw std::invalid_argument( "In npstat::ContOrthoPoly1D::epsCovarianceMatrix: empty list of pairs"); const unsigned nPairs = pairs.size(); Matrix cov(nPairs, nPairs); for (unsigned ipair1=0; ipair1 ContOrthoPoly1D::makeStorablePolySeries( const double i_xmin, const double i_xmax, const double *coeffs, const unsigned maxdeg) const { const unsigned sz = rCoeffs_.size(); std::vector > rc(sz); for (unsigned i=0; i( new StorablePolySeries1D(rc, i_xmin, i_xmax, shiftX_, coeffs, maxdeg)); } } Index: trunk/npstat/nm/RecurrenceCoeffsQ.icc =================================================================== --- trunk/npstat/nm/RecurrenceCoeffsQ.icc (revision 0) +++ trunk/npstat/nm/RecurrenceCoeffsQ.icc (revision 920) @@ -0,0 +1,142 @@ +#include + +#include "npstat/nm/allocators.hh" + +namespace npstat { + namespace Private { + template + void calcRecurrenceCoeffsQ(const std::vector& measure, + const unsigned maxdeg, const quad_float norm, + const OrthoPolyMethod m, + std::vector* rcoeffs) + { + assert(norm > 0.0Q); + assert(rcoeffs); + rcoeffs->clear(); + rcoeffs->reserve(maxdeg + 1U); + switch (m) + { + case OPOLY_STIELTJES: + calcRecurrenceStieltjesQ(measure, maxdeg, norm, rcoeffs); + break; + + case OPOLY_LANCZOS: + calcRecurrenceLanczosQ(measure, maxdeg, norm, rcoeffs); + break; + + default: + throw std::runtime_error( + "In npstat::Private::calcRecurrenceCoeffsQ: " + "incomplete switch statement. This is a bug. Please report."); + } + assert(rcoeffs->size() == maxdeg + 1U); + } + + template + std::pair monicInnerProductsQ( + const std::vector& rcoeffs, + const std::vector& measure, + const unsigned degree, const quad_float norm) + { + quad_float sum = 0.0Q, xsum = 0.0Q; + const unsigned mSize = measure.size(); + for (unsigned i = 0; i < mSize; ++i) + { + const quad_float x = measure[i].first; + const quad_float p = monicpolyQ(rcoeffs, degree, x); + const quad_float pprod = p*p*measure[i].second; + sum += pprod; + xsum += x*pprod; + } + return std::pair(xsum/norm, sum/norm); + } + + template + void calcRecurrenceStieltjesQ( + const std::vector& measure, + const unsigned maxdeg, const quad_float norm, + std::vector* rcoeffs) + { + quad_float prevSprod = 1.0Q; + for (unsigned deg=0; deg<=maxdeg; ++deg) + { + const std::pair ip = monicInnerProductsQ( + *rcoeffs, measure, deg, norm); + assert(ip.second > 0.0Q); + rcoeffs->push_back(RecurrenceQ(ip.first/ip.second, ip.second/prevSprod)); + prevSprod = ip.second; + } + } + + template + void calcRecurrenceLanczosQ(const std::vector& measure, + const unsigned maxdeg, const quad_float norm, + std::vector* rcoeffs) + { + typedef quad_float Real; + + const unsigned mSize = measure.size(); + std::vector dmem(mSize*2U); + + Real* p0 = &dmem[0]; + for (unsigned i=0; ipush_back(RecurrenceQ(p0[deg], p1[deg])); + } + + inline quad_float monicpolyQ(const std::vector& rcoeffs, + const unsigned degree, const quad_float x) + { + quad_float polyk = 1.0Q, polykm1 = 0.0Q; + for (unsigned k=0; k= 3.1.2 geners >= 1.3.0 kstest >= 2.0.0 configure:3730: $PKG_CONFIG --exists --print-errors "fftw3 >= 3.1.2 geners >= 1.3.0 kstest >= 2.0.0" configure:3733: $? = 0 configure:3747: $PKG_CONFIG --exists --print-errors "fftw3 >= 3.1.2 geners >= 1.3.0 kstest >= 2.0.0" configure:3750: $? = 0 configure:3808: result: yes configure:3882: checking for g++ configure:3903: found /bin/g++ configure:3914: result: g++ configure:3941: checking for C++ compiler version configure:3950: g++ --version >&5 g++ (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0 Copyright (C) 2021 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:3961: $? = 0 configure:3950: g++ -v >&5 Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa OFFLOAD_TARGET_DEFAULT=1 Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.3.0-1ubuntu1~22.04.1' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --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-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-aYxV0E/gcc-11-11.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-aYxV0E/gcc-11-11.3.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04.1) ... rest of stderr output deleted ... configure:3961: $? = 0 configure:3950: g++ -V >&5 g++: error: unrecognized command-line option '-V' g++: fatal error: no input files compilation terminated. configure:3961: $? = 1 configure:3950: g++ -qversion >&5 g++: error: unrecognized command-line option '-qversion'; did you mean '--version'? g++: fatal error: no input files compilation terminated. configure:3961: $? = 1 configure:3981: checking whether the C++ compiler works configure:4003: g++ -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5 configure:4007: $? = 0 configure:4057: result: yes configure:4060: checking for C++ compiler default output file name configure:4062: result: a.out configure:4068: checking for suffix of executables configure:4075: g++ -o conftest -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5 configure:4079: $? = 0 configure:4102: result: configure:4124: checking whether we are cross compiling configure:4132: g++ -o conftest -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5 configure:4136: $? = 0 configure:4143: ./conftest configure:4147: $? = 0 configure:4162: result: no configure:4167: checking for suffix of object files configure:4190: g++ -c -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5 configure:4194: $? = 0 configure:4216: result: o configure:4220: checking whether the compiler supports GNU C++ configure:4240: g++ -c -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5 configure:4240: $? = 0 configure:4250: result: yes configure:4261: checking whether g++ accepts -g configure:4282: g++ -c -g conftest.cpp >&5 configure:4282: $? = 0 configure:4326: result: yes configure:4346: checking for g++ option to enable C++11 features configure:4361: g++ -c -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5 conftest.cpp: In function 'int main(int, char**)': conftest.cpp:134:8: error: unused variable 'a1' [-Werror=unused-variable] 134 | auto a1 = 6538; | ^~ conftest.cpp:141:16: error: unused variable 'a4' [-Werror=unused-variable] 141 | decltype(a2) a4 = 34895.034; | ^~ conftest.cpp:145:9: error: unused variable 'sa' [-Werror=unused-variable] 145 | short sa[cxx11test::get_val()] = { 0 }; | ^~ conftest.cpp:149:23: error: unused variable 'il' [-Werror=unused-variable] 149 | cxx11test::testinit il = { 4323, 435234.23544 }; | ^~ conftest.cpp:170:8: error: unused variable 'a' [-Werror=unused-variable] 170 | auto a = sum(1); | ^ conftest.cpp:171:8: error: unused variable 'b' [-Werror=unused-variable] 171 | auto b = sum(1, 2); | ^ conftest.cpp:172:8: error: unused variable 'c' [-Werror=unused-variable] 172 | auto c = sum(1.0, 2.0, 3.0); | ^ conftest.cpp:177:25: error: empty parentheses were disambiguated as a function declaration [-Werror=vexing-parse] 177 | cxx11test::delegate d2(); | ^~ conftest.cpp:177:25: note: remove parentheses to default-initialize a variable 177 | cxx11test::delegate d2(); | ^~ | -- conftest.cpp:177:25: note: or replace parentheses with braces to value-initialize a variable conftest.cpp:186:9: error: unused variable 'c' [-Werror=unused-variable] 186 | char *c = nullptr; | ^ conftest.cpp:194:15: error: unused variable 'utf8' [-Werror=unused-variable] 194 | char const *utf8 = u8"UTF-8 string \u2500"; | ^~~~ conftest.cpp:195:19: error: unused variable 'utf16' [-Werror=unused-variable] 195 | char16_t const *utf16 = u"UTF-8 string \u2500"; | ^~~~~ conftest.cpp:196:19: error: unused variable 'utf32' [-Werror=unused-variable] 196 | char32_t const *utf32 = U"UTF-32 string \u2500"; | ^~~~~ cc1plus: all warnings being treated as errors configure:4361: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "npstat" | #define PACKAGE_TARNAME "npstat" | #define PACKAGE_VERSION "5.10.0" | #define PACKAGE_STRING "npstat 5.10.0" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define PACKAGE "npstat" | #define VERSION "5.10.0" | /* end confdefs.h. */ | | // Does the compiler advertise C++98 conformance? | #if !defined __cplusplus || __cplusplus < 199711L | # error "Compiler does not advertise C++98 conformance" | #endif | | // These inclusions are to reject old compilers that | // lack the unsuffixed header files. | #include | #include | | // and are *not* freestanding headers in C++98. | extern void assert (int); | namespace std { | extern int strcmp (const char *, const char *); | } | | // Namespaces, exceptions, and templates were all added after "C++ 2.0". | using std::exception; | using std::strcmp; | | namespace { | | void test_exception_syntax() | { | try { | throw "test"; | } catch (const char *s) { | // Extra parentheses suppress a warning when building autoconf itself, | // due to lint rules shared with more typical C programs. | assert (!(strcmp) (s, "test")); | } | } | | template struct test_template | { | T const val; | explicit test_template(T t) : val(t) {} | template T add(U u) { return static_cast(u) + val; } | }; | | } // anonymous namespace | | | // Does the compiler advertise C++ 2011 conformance? | #if !defined __cplusplus || __cplusplus < 201103L | # error "Compiler does not advertise C++11 conformance" | #endif | | namespace cxx11test | { | constexpr int get_val() { return 20; } | | struct testinit | { | int i; | double d; | }; | | class delegate | { | public: | delegate(int n) : n(n) {} | delegate(): delegate(2354) {} | | virtual int getval() { return this->n; }; | protected: | int n; | }; | | class overridden : public delegate | { | public: | overridden(int n): delegate(n) {} | virtual int getval() override final { return this->n * 2; } | }; | | class nocopy | { | public: | nocopy(int i): i(i) {} | nocopy() = default; | nocopy(const nocopy&) = delete; | nocopy & operator=(const nocopy&) = delete; | private: | int i; | }; | | // for testing lambda expressions | template Ret eval(Fn f, Ret v) | { | return f(v); | } | | // for testing variadic templates and trailing return types | template auto sum(V first) -> V | { | return first; | } | template auto sum(V first, Args... rest) -> V | { | return first + sum(rest...); | } | } | | | int | main (int argc, char **argv) | { | int ok = 0; | | assert (argc); | assert (! argv[0]); | { | test_exception_syntax (); | test_template tt (2.0); | assert (tt.add (4) == 6.0); | assert (true && !false); | } | | | { | // Test auto and decltype | auto a1 = 6538; | auto a2 = 48573953.4; | auto a3 = "String literal"; | | int total = 0; | for (auto i = a3; *i; ++i) { total += *i; } | | decltype(a2) a4 = 34895.034; | } | { | // Test constexpr | short sa[cxx11test::get_val()] = { 0 }; | } | { | // Test initializer lists | cxx11test::testinit il = { 4323, 435234.23544 }; | } | { | // Test range-based for | int array[] = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3, | 14, 19, 17, 8, 6, 20, 16, 2, 11, 1}; | for (auto &x : array) { x += 23; } | } | { | // Test lambda expressions | using cxx11test::eval; | assert (eval ([](int x) { return x*2; }, 21) == 42); | double d = 2.0; | assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); | assert (d == 5.0); | assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); | assert (d == 5.0); | } | { | // Test use of variadic templates | using cxx11test::sum; | auto a = sum(1); | auto b = sum(1, 2); | auto c = sum(1.0, 2.0, 3.0); | } | { | // Test constructor delegation | cxx11test::delegate d1; | cxx11test::delegate d2(); | cxx11test::delegate d3(45); | } | { | // Test override and final | cxx11test::overridden o1(55464); | } | { | // Test nullptr | char *c = nullptr; | } | { | // Test template brackets | test_template<::test_template> v(test_template(12)); | } | { | // Unicode literals | char const *utf8 = u8"UTF-8 string \u2500"; | char16_t const *utf16 = u"UTF-8 string \u2500"; | char32_t const *utf32 = U"UTF-32 string \u2500"; | } | | return ok; | } | configure:4379: result: none needed configure:4446: checking whether make supports the include directive configure:4461: make -f confmf.GNU && cat confinc.out this is the am__doit target configure:4464: $? = 0 configure:4483: result: yes (GNU style) configure:4509: checking dependency style of g++ configure:4621: result: gcc3 configure:4695: checking for g77 configure:4716: found /home/igv/bin/g77 configure:4727: result: g77 configure:4753: checking for Fortran 77 compiler version configure:4762: g77 --version >&5 GNU Fortran (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0 Copyright (C) 2021 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:4773: $? = 0 configure:4762: g77 -v >&5 Using built-in specs. COLLECT_GCC=g77 COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa OFFLOAD_TARGET_DEFAULT=1 Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.3.0-1ubuntu1~22.04.1' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --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-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-aYxV0E/gcc-11-11.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-aYxV0E/gcc-11-11.3.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04.1) ... rest of stderr output deleted ... configure:4773: $? = 0 configure:4762: g77 -V >&5 g77: error: unrecognized command-line option '-V' g77: fatal error: no input files compilation terminated. configure:4773: $? = 1 configure:4762: g77 -qversion >&5 g77: error: unrecognized command-line option '-qversion'; did you mean '--version'? g77: fatal error: no input files compilation terminated. configure:4773: $? = 1 configure:4782: checking whether the compiler supports GNU Fortran 77 configure:4796: g77 -c conftest.F >&5 configure:4796: $? = 0 configure:4806: result: yes configure:4814: checking whether g77 accepts -g configure:4826: g77 -c -g conftest.f >&5 configure:4826: $? = 0 configure:4835: result: yes configure:4870: checking build system type configure:4885: result: x86_64-pc-linux-gnu configure:4905: checking host system type configure:4919: result: x86_64-pc-linux-gnu configure:4944: checking how to get verbose linking output from g77 configure:4955: g77 -c -g -O2 conftest.f >&5 configure:4955: $? = 0 configure:4974: g77 -o conftest -g -O2 -v conftest.f Using built-in specs. Target: x86_64-linux-gnu Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04.1) - /usr/lib/gcc/x86_64-linux-gnu/11/f951 conftest.f -ffixed-form -quiet -dumpbase conftest.f -dumpbase-ext .f -mtune=generic -march=x86-64 -g -O2 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/11/finclude -fpre-include=/usr/include/finclude/math-vector-fortran.h -o /tmp/cclFYyTj.s + /usr/lib/gcc/x86_64-linux-gnu/11/f951 conftest.f -ffixed-form -quiet -dumpbase conftest.f -dumpbase-ext .f -mtune=generic -march=x86-64 -g -O2 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/11/finclude -fpre-include=/usr/include/finclude/math-vector-fortran.h -o /tmp/cc30hX7n.s GNU Fortran (Ubuntu 11.3.0-1ubuntu1~22.04.1) version 11.3.0 (x86_64-linux-gnu) compiled by GNU C version 11.3.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 GNU Fortran2008 (Ubuntu 11.3.0-1ubuntu1~22.04.1) version 11.3.0 (x86_64-linux-gnu) compiled by GNU C version 11.3.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 - as -v --gdwarf-5 --64 -o /tmp/ccG3QpY1.o /tmp/cclFYyTj.s + as -v --gdwarf-5 --64 -o /tmp/ccAnpn8Q.o /tmp/cc30hX7n.s GNU assembler version 2.38 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38 Reading specs from /usr/lib/gcc/x86_64-linux-gnu/11/libgfortran.spec rename spec lib to liborig - /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/cc3fy7N7.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/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../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/11/../../.. /tmp/ccG3QpY1.o -lgfortran -lm -lgcc_s -lgcc -lquadmath -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o + /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccELV0ww.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/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../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/11/../../.. /tmp/ccAnpn8Q.o -lgfortran -lm -lgcc_s -lgcc -lquadmath -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o configure:5057: result: -v configure:5059: checking for Fortran 77 libraries of g77 configure:5083: g77 -o conftest -g -O2 -v conftest.f Using built-in specs. Target: x86_64-linux-gnu Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04.1) - /usr/lib/gcc/x86_64-linux-gnu/11/f951 conftest.f -ffixed-form -quiet -dumpbase conftest.f -dumpbase-ext .f -mtune=generic -march=x86-64 -g -O2 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/11/finclude -fpre-include=/usr/include/finclude/math-vector-fortran.h -o /tmp/ccLtyNwS.s + /usr/lib/gcc/x86_64-linux-gnu/11/f951 conftest.f -ffixed-form -quiet -dumpbase conftest.f -dumpbase-ext .f -mtune=generic -march=x86-64 -g -O2 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/11/finclude -fpre-include=/usr/include/finclude/math-vector-fortran.h -o /tmp/ccRLuKa0.s GNU Fortran (Ubuntu 11.3.0-1ubuntu1~22.04.1) version 11.3.0 (x86_64-linux-gnu) compiled by GNU C version 11.3.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 GNU Fortran2008 (Ubuntu 11.3.0-1ubuntu1~22.04.1) version 11.3.0 (x86_64-linux-gnu) compiled by GNU C version 11.3.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 - as -v --gdwarf-5 --64 -o /tmp/ccuoex1U.o /tmp/ccLtyNwS.s + as -v --gdwarf-5 --64 -o /tmp/ccdpE9SV.o /tmp/ccRLuKa0.s GNU assembler version 2.38 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38 Reading specs from /usr/lib/gcc/x86_64-linux-gnu/11/libgfortran.spec rename spec lib to liborig - /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccypH8sD.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/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../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/11/../../.. /tmp/ccuoex1U.o -lgfortran -lm -lgcc_s -lgcc -lquadmath -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o + /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccmIM11n.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/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../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/11/../../.. /tmp/ccdpE9SV.o -lgfortran -lm -lgcc_s -lgcc -lquadmath -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o configure:5299: result: -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../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/11/../../.. -lgfortran -lm -lquadmath configure:5362: checking how to print strings configure:5389: result: printf configure:5472: checking for gcc configure:5493: found /bin/gcc configure:5504: result: gcc configure:5857: checking for C compiler version configure:5866: gcc --version >&5 gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0 Copyright (C) 2021 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:5877: $? = 0 configure:5866: gcc -v >&5 Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa OFFLOAD_TARGET_DEFAULT=1 Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.3.0-1ubuntu1~22.04.1' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --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-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-aYxV0E/gcc-11-11.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-aYxV0E/gcc-11-11.3.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04.1) ... rest of stderr output deleted ... configure:5877: $? = 0 configure:5866: gcc -V >&5 gcc: error: unrecognized command-line option '-V' gcc: fatal error: no input files compilation terminated. configure:5877: $? = 1 configure:5866: gcc -qversion >&5 gcc: error: unrecognized command-line option '-qversion'; did you mean '--version'? gcc: fatal error: no input files compilation terminated. configure:5877: $? = 1 configure:5866: gcc -version >&5 gcc: error: unrecognized command-line option '-version' gcc: fatal error: no input files compilation terminated. configure:5877: $? = 1 configure:5881: checking whether the compiler supports GNU C configure:5901: gcc -c conftest.c >&5 configure:5901: $? = 0 configure:5911: result: yes configure:5922: checking whether gcc accepts -g configure:5943: gcc -c -g conftest.c >&5 configure:5943: $? = 0 configure:5987: result: yes configure:6007: checking for gcc option to enable C11 features configure:6022: gcc -c -g -O2 conftest.c >&5 configure:6022: $? = 0 configure:6040: result: none needed configure:6156: checking whether gcc understands -c and -o together configure:6179: gcc -c conftest.c -o conftest2.o configure:6182: $? = 0 configure:6179: gcc -c conftest.c -o conftest2.o configure:6182: $? = 0 configure:6194: result: yes configure:6213: checking dependency style of gcc configure:6325: result: gcc3 configure:6340: checking for a sed that does not truncate output configure:6410: result: /bin/sed configure:6428: checking for grep that handles long lines and -e configure:6492: result: /bin/grep configure:6497: checking for egrep configure:6565: result: /bin/grep -E configure:6570: checking for fgrep configure:6638: result: /bin/grep -F configure:6674: checking for ld used by gcc configure:6742: result: /bin/ld configure:6749: checking if the linker (/bin/ld) is GNU ld configure:6765: result: yes configure:6777: checking for BSD- or MS-compatible name lister (nm) configure:6832: result: /bin/nm -B configure:6972: checking the name lister (/bin/nm -B) interface configure:6980: gcc -c -g -O2 conftest.c >&5 configure:6983: /bin/nm -B "conftest.o" configure:6986: output 0000000000000000 B some_variable configure:6993: result: BSD nm configure:6996: checking whether ln -s works configure:7000: result: yes configure:7008: checking the maximum length of command line arguments configure:7140: result: 1572864 configure:7188: checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format configure:7229: result: func_convert_file_noop configure:7236: checking how to convert x86_64-pc-linux-gnu file names to toolchain format configure:7257: result: func_convert_file_noop configure:7264: checking for /bin/ld option to reload object files configure:7272: result: -r configure:7351: checking for objdump configure:7372: found /bin/objdump configure:7383: result: objdump configure:7415: checking how to recognize dependent libraries configure:7616: result: pass_all configure:7706: checking for dlltool configure:7741: result: no configure:7771: checking how to associate runtime and link libraries configure:7799: result: printf %s\n configure:7865: checking for ar configure:7886: found /bin/ar configure:7897: result: ar configure:7934: checking for archiver @FILE support configure:7952: gcc -c -g -O2 conftest.c >&5 configure:7952: $? = 0 configure:7956: ar cr libconftest.a @conftest.lst >&5 configure:7959: $? = 0 configure:7964: ar cr libconftest.a @conftest.lst >&5 ar: conftest.o: No such file or directory configure:7967: $? = 1 configure:7979: result: @ configure:8042: checking for strip configure:8063: found /bin/strip configure:8074: result: strip configure:8151: checking for ranlib configure:8172: found /bin/ranlib configure:8183: result: ranlib configure:8285: checking command to parse /bin/nm -B output from gcc object configure:8439: gcc -c -g -O2 conftest.c >&5 configure:8442: $? = 0 configure:8446: /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:8512: gcc -o conftest -g -O2 conftest.c conftstm.o >&5 configure:8515: $? = 0 configure:8553: result: ok configure:8600: checking for sysroot configure:8631: result: no configure:8638: checking for a working dd configure:8682: result: /bin/dd configure:8686: checking how to truncate binary pipes configure:8702: result: /bin/dd bs=4096 count=1 configure:8839: gcc -c -g -O2 conftest.c >&5 configure:8842: $? = 0 configure:9039: checking for mt configure:9060: found /bin/mt configure:9071: result: mt configure:9094: checking if mt is a manifest tool configure:9101: mt '-?' configure:9109: result: no configure:9839: checking for stdio.h configure:9839: gcc -c -g -O2 conftest.c >&5 configure:9839: $? = 0 configure:9839: result: yes configure:9839: checking for stdlib.h configure:9839: gcc -c -g -O2 conftest.c >&5 configure:9839: $? = 0 configure:9839: result: yes configure:9839: checking for string.h configure:9839: gcc -c -g -O2 conftest.c >&5 configure:9839: $? = 0 configure:9839: result: yes configure:9839: checking for inttypes.h configure:9839: gcc -c -g -O2 conftest.c >&5 configure:9839: $? = 0 configure:9839: result: yes configure:9839: checking for stdint.h configure:9839: gcc -c -g -O2 conftest.c >&5 configure:9839: $? = 0 configure:9839: result: yes configure:9839: checking for strings.h configure:9839: gcc -c -g -O2 conftest.c >&5 configure:9839: $? = 0 configure:9839: result: yes configure:9839: checking for sys/stat.h configure:9839: gcc -c -g -O2 conftest.c >&5 configure:9839: $? = 0 configure:9839: result: yes configure:9839: checking for sys/types.h configure:9839: gcc -c -g -O2 conftest.c >&5 configure:9839: $? = 0 configure:9839: result: yes configure:9839: checking for unistd.h configure:9839: gcc -c -g -O2 conftest.c >&5 configure:9839: $? = 0 configure:9839: result: yes configure:9864: checking for dlfcn.h configure:9864: gcc -c -g -O2 conftest.c >&5 configure:9864: $? = 0 configure:9864: result: yes configure:10134: checking for objdir configure:10150: result: .libs configure:10414: checking if gcc supports -fno-rtti -fno-exceptions configure:10433: gcc -c -g -O2 -fno-rtti -fno-exceptions conftest.c >&5 cc1: warning: command-line option '-fno-rtti' is valid for C++/D/ObjC++ but not for C configure:10437: $? = 0 configure:10450: result: no configure:10814: checking for gcc option to produce PIC configure:10822: result: -fPIC -DPIC configure:10830: checking if gcc PIC flag -fPIC -DPIC works configure:10849: gcc -c -g -O2 -fPIC -DPIC -DPIC conftest.c >&5 configure:10853: $? = 0 configure:10866: result: yes configure:10895: checking if gcc static flag -static works configure:10924: result: yes configure:10939: checking if gcc supports -c -o file.o configure:10961: gcc -c -g -O2 -o out/conftest2.o conftest.c >&5 configure:10965: $? = 0 configure:10987: result: yes configure:10995: checking if gcc supports -c -o file.o configure:11043: result: yes configure:11076: checking whether the gcc linker (/bin/ld -m elf_x86_64) supports shared libraries configure:12346: result: yes configure:12383: checking whether -lc should be explicitly linked in configure:12392: gcc -c -g -O2 conftest.c >&5 configure:12395: $? = 0 configure:12410: gcc -shared -fPIC -DPIC conftest.o -v -Wl,-soname -Wl,conftest -o conftest 2\>\&1 \| /bin/grep -lc \>/dev/null 2\>\&1 configure:12413: $? = 0 configure:12427: result: no configure:12587: checking dynamic linker characteristics configure:13169: gcc -o conftest -g -O2 -Wl,-rpath -Wl,/foo conftest.c >&5 configure:13169: $? = 0 configure:13420: result: GNU/Linux ld.so configure:13542: checking how to hardcode library paths into programs configure:13567: result: immediate configure:14119: checking whether stripping libraries is possible configure:14124: result: yes configure:14159: checking if libtool supports shared libraries configure:14161: result: yes configure:14164: checking whether to build shared libraries configure:14189: result: yes configure:14192: checking whether to build static libraries configure:14196: result: no configure:14219: checking how to run the C++ preprocessor configure:14241: g++ -E conftest.cpp configure:14241: $? = 0 configure:14256: g++ -E conftest.cpp conftest.cpp:23:10: fatal error: ac_nonexistent.h: No such file or directory 23 | #include | ^~~~~~~~~~~~~~~~~~ compilation terminated. configure:14256: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "npstat" | #define PACKAGE_TARNAME "npstat" | #define PACKAGE_VERSION "5.10.0" | #define PACKAGE_STRING "npstat 5.10.0" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define PACKAGE "npstat" | #define VERSION "5.10.0" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define STDC_HEADERS 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | /* end confdefs.h. */ | #include configure:14283: result: g++ -E configure:14297: g++ -E conftest.cpp configure:14297: $? = 0 configure:14312: g++ -E conftest.cpp conftest.cpp:23:10: fatal error: ac_nonexistent.h: No such file or directory 23 | #include | ^~~~~~~~~~~~~~~~~~ compilation terminated. configure:14312: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "npstat" | #define PACKAGE_TARNAME "npstat" | #define PACKAGE_VERSION "5.10.0" | #define PACKAGE_STRING "npstat 5.10.0" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define PACKAGE "npstat" | #define VERSION "5.10.0" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define STDC_HEADERS 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | /* end confdefs.h. */ | #include configure:14477: checking for ld used by g++ configure:14545: result: /bin/ld -m elf_x86_64 configure:14552: checking if the linker (/bin/ld -m elf_x86_64) is GNU ld configure:14568: result: yes configure:14623: checking whether the g++ linker (/bin/ld -m elf_x86_64) supports shared libraries configure:15700: result: yes configure:15736: g++ -c -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5 configure:15739: $? = 0 configure:16220: checking for g++ option to produce PIC configure:16228: result: -fPIC -DPIC configure:16236: checking if g++ PIC flag -fPIC -DPIC works configure:16255: g++ -c -std=c++11 -O3 -Wall -W -Werror -fPIC -DPIC -DPIC conftest.cpp >&5 configure:16259: $? = 0 configure:16272: result: yes configure:16295: checking if g++ static flag -static works configure:16324: result: yes configure:16336: checking if g++ supports -c -o file.o configure:16358: g++ -c -std=c++11 -O3 -Wall -W -Werror -o out/conftest2.o conftest.cpp >&5 configure:16362: $? = 0 configure:16384: result: yes configure:16389: checking if g++ supports -c -o file.o configure:16437: result: yes configure:16467: checking whether the g++ linker (/bin/ld -m elf_x86_64) supports shared libraries configure:16510: result: yes configure:16652: checking dynamic linker characteristics configure:17412: result: GNU/Linux ld.so configure:17477: checking how to hardcode library paths into programs configure:17502: result: immediate configure:17643: checking if libtool supports shared libraries configure:17645: result: yes configure:17648: checking whether to build shared libraries configure:17672: result: yes configure:17675: checking whether to build static libraries configure:17679: result: no configure:18037: checking for g77 option to produce PIC configure:18045: result: -fPIC configure:18053: checking if g77 PIC flag -fPIC works configure:18072: g77 -c -g -O2 -fPIC conftest.f >&5 configure:18076: $? = 0 configure:18089: result: yes configure:18112: checking if g77 static flag -static works configure:18141: result: yes configure:18153: checking if g77 supports -c -o file.o configure:18175: g77 -c -g -O2 -o out/conftest2.o conftest.f >&5 configure:18179: $? = 0 configure:18201: result: yes configure:18206: checking if g77 supports -c -o file.o configure:18254: result: yes configure:18284: checking whether the g77 linker (/bin/ld -m elf_x86_64) supports shared libraries configure:19503: result: yes configure:19645: checking dynamic linker characteristics configure:20399: result: GNU/Linux ld.so configure:20464: checking how to hardcode library paths into programs configure:20489: result: immediate configure:20681: checking that generated files are newer than configure configure:20687: result: done configure:20714: creating ./config.status ## ---------------------- ## ## Running config.status. ## ## ---------------------- ## This file was extended by npstat config.status 5.10.0, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = CONFIG_HEADERS = CONFIG_LINKS = CONFIG_COMMANDS = $ ./config.status on dawn config.status:1138: creating Makefile config.status:1138: creating npstat/nm/Makefile config.status:1138: creating npstat/rng/Makefile config.status:1138: creating npstat/stat/Makefile config.status:1138: creating npstat/wrap/Makefile config.status:1138: creating npstat/interfaces/Makefile config.status:1138: creating npstat/emsunfold/Makefile config.status:1138: creating npstat/Makefile config.status:1138: creating examples/C++/Makefile config.status:1138: creating npstat/swig/Makefile config.status:1138: creating npstat.pc config.status:1310: executing depfiles commands config.status:1387: cd npstat/nm && sed -e '/# am--include-marker/d' Makefile | make -f - am--depfiles make: Nothing to be done for 'am--depfiles'. config.status:1392: $? = 0 config.status:1387: cd npstat/rng && sed -e '/# am--include-marker/d' Makefile | make -f - am--depfiles make: Nothing to be done for 'am--depfiles'. config.status:1392: $? = 0 config.status:1387: cd npstat/stat && sed -e '/# am--include-marker/d' Makefile | make -f - am--depfiles make: Nothing to be done for 'am--depfiles'. config.status:1392: $? = 0 config.status:1387: cd examples/C++ && sed -e '/# am--include-marker/d' Makefile | make -f - am--depfiles make: Nothing to be done for 'am--depfiles'. config.status:1392: $? = 0 config.status:1387: cd npstat/swig && sed -e '/# am--include-marker/d' Makefile | make -f - am--depfiles make: Nothing to be done for 'am--depfiles'. config.status:1392: $? = 0 config.status:1310: 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_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/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../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/11/../../.. -lgfortran -lm -lquadmath' ac_cv_header_dlfcn_h=yes ac_cv_header_inttypes_h=yes ac_cv_header_stdint_h=yes ac_cv_header_stdio_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=/bin/pkg-config ac_cv_path_install='/bin/install -c' ac_cv_path_lt_DD=/bin/dd ac_cv_path_mkdir=/bin/mkdir ac_cv_prog_AWK=mawk 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_c11= ac_cv_prog_cc_g=yes ac_cv_prog_cc_stdc= ac_cv_prog_cxx_11=no ac_cv_prog_cxx_g=yes ac_cv_prog_cxx_stdcxx= 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=/bin/ld lt_cv_path_LDCXX='/bin/ld -m elf_x86_64' lt_cv_path_NM='/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.16' 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.16' AWK='mawk' CC='gcc' CCDEPMODE='depmode=gcc3' CFLAGS='-g -O2' CPPFLAGS='' CSCOPE='cscope' CTAGS='ctags' 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.10.0\" -DPACKAGE_STRING=\"npstat\ 5.10.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"npstat\" -DVERSION=\"5.10.0\" -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=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' ETAGS='etags' EXEEXT='' F77='g77' FFLAGS='-g -O2' FGREP='/bin/grep -F' FLIBS=' -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../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/11/../../.. -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='/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='/bin/nm -B' NMEDIT='' OBJDUMP='objdump' OBJEXT='o' OTOOL64='' OTOOL='' PACKAGE='npstat' PACKAGE_BUGREPORT='' PACKAGE_NAME='npstat' PACKAGE_STRING='npstat 5.10.0' PACKAGE_TARNAME='npstat' PACKAGE_URL='' PACKAGE_VERSION='5.10.0' PATH_SEPARATOR=':' PKG_CONFIG='/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.10.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.10.0" #define PACKAGE_STRING "npstat 5.10.0" #define PACKAGE_BUGREPORT "" #define PACKAGE_URL "" #define PACKAGE "npstat" #define VERSION "5.10.0" #define HAVE_STDIO_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRING_H 1 #define HAVE_INTTYPES_H 1 #define HAVE_STDINT_H 1 #define HAVE_STRINGS_H 1 #define HAVE_SYS_STAT_H 1 #define HAVE_SYS_TYPES_H 1 #define HAVE_UNISTD_H 1 #define STDC_HEADERS 1 #define HAVE_DLFCN_H 1 #define LT_OBJDIR ".libs/" configure: exit 0