Index: trunk/config.log =================================================================== --- trunk/config.log (revision 791) +++ trunk/config.log (revision 792) @@ -1,970 +1,961 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by npstat configure 5.7.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ ./configure --disable-static --with-pic ## --------- ## ## Platform. ## ## --------- ## hostname = dawn uname -m = x86_64 uname -r = 5.4.0-120-generic uname -s = Linux uname -v = #136-Ubuntu SMP Fri Jun 10 13:40:48 UTC 2022 /usr/bin/uname -p = unknown /bin/uname -X = unknown /bin/arch = unknown /usr/bin/arch -k = unknown /usr/convex/getsysinfo = unknown /usr/bin/hostinfo = unknown /bin/machine = unknown /usr/bin/oslevel = unknown /bin/universe = unknown PATH: /home/igv/bin PATH: /home/igv/local/bin -PATH: /home/igv/.local/bin PATH: /usr/local/anaconda3/bin PATH: /usr/local/bin PATH: /usr/local/root/bin PATH: /usr/local/bin PATH: /bin PATH: /usr/bin PATH: /sbin PATH: /usr/sbin PATH: . ## ----------- ## ## Core tests. ## ## ----------- ## configure:2417: checking for a BSD-compatible install configure:2485: result: /usr/bin/install -c configure:2496: checking whether build environment is sane configure:2551: result: yes configure:2700: checking for a thread-safe mkdir -p configure:2739: result: /bin/mkdir -p configure:2746: checking for gawk configure:2762: found /usr/bin/gawk configure:2773: result: gawk configure:2784: checking whether make sets $(MAKE) configure:2806: result: yes configure:2835: checking whether make supports nested variables configure:2852: result: yes configure:3036: checking for pkg-config configure:3054: found /usr/bin/pkg-config configure:3066: result: /usr/bin/pkg-config configure:3091: checking pkg-config is at least version 0.9.0 configure:3094: result: yes configure:3104: checking for DEPS configure:3111: $PKG_CONFIG --exists --print-errors "fftw3 >= 3.1.2 geners >= 1.3.0 kstest >= 2.0.0" configure:3114: $? = 0 configure:3128: $PKG_CONFIG --exists --print-errors "fftw3 >= 3.1.2 geners >= 1.3.0 kstest >= 2.0.0" configure:3131: $? = 0 configure:3189: result: yes configure:3252: checking for g++ configure:3268: found /usr/bin/g++ configure:3279: result: g++ configure:3306: checking for C++ compiler version configure:3315: g++ --version >&5 g++ (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0 Copyright (C) 2019 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:3326: $? = 0 configure:3315: g++ -v >&5 Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper OFFLOAD_TARGET_NAMES=nvptx-none:hsa OFFLOAD_TARGET_DEFAULT=1 Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --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-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 --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) configure:3326: $? = 0 configure:3315: g++ -V >&5 g++: error: unrecognized command line option '-V' g++: fatal error: no input files compilation terminated. configure:3326: $? = 1 configure:3315: g++ -qversion >&5 g++: error: unrecognized command line option '-qversion'; did you mean '--version'? g++: fatal error: no input files compilation terminated. configure:3326: $? = 1 configure:3346: checking whether the C++ compiler works configure:3368: g++ -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5 configure:3372: $? = 0 configure:3420: result: yes configure:3423: checking for C++ compiler default output file name configure:3425: result: a.out configure:3431: checking for suffix of executables configure:3438: g++ -o conftest -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5 configure:3442: $? = 0 configure:3464: result: configure:3486: checking whether we are cross compiling configure:3494: g++ -o conftest -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5 configure:3498: $? = 0 configure:3505: ./conftest configure:3509: $? = 0 configure:3497: result: no configure:3502: checking for suffix of object files configure:3524: g++ -c -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5 configure:3528: $? = 0 configure:3549: result: o configure:3553: checking whether we are using the GNU C++ compiler configure:3572: g++ -c -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5 configure:3572: $? = 0 configure:3581: result: yes configure:3590: checking whether g++ accepts -g configure:3610: g++ -c -g conftest.cpp >&5 configure:3610: $? = 0 configure:3651: result: yes configure:3677: checking whether make supports the include directive configure:3692: make -f confmf.GNU && cat confinc.out this is the am__doit target configure:3695: $? = 0 configure:3714: result: yes (GNU style) configure:3739: checking dependency style of g++ configure:3850: result: gcc3 configure:3919: checking for g77 configure:3935: found /home/igv/bin/g77 configure:3946: result: g77 configure:3972: checking for Fortran 77 compiler version configure:3981: g77 --version >&5 GNU Fortran (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0 Copyright (C) 2019 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:3992: $? = 0 configure:3981: g77 -v >&5 Using built-in specs. COLLECT_GCC=g77 COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper OFFLOAD_TARGET_NAMES=nvptx-none:hsa OFFLOAD_TARGET_DEFAULT=1 Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --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-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 --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) configure:3992: $? = 0 configure:3981: g77 -V >&5 g77: error: unrecognized command line option '-V' g77: fatal error: no input files compilation terminated. configure:3992: $? = 1 configure:3981: g77 -qversion >&5 g77: error: unrecognized command line option '-qversion'; did you mean '--version'? g77: fatal error: no input files compilation terminated. configure:3992: $? = 1 configure:4001: checking whether we are using the GNU Fortran 77 compiler configure:4014: g77 -c conftest.F >&5 configure:4014: $? = 0 configure:4023: result: yes configure:4029: checking whether g77 accepts -g configure:4040: g77 -c -g conftest.f >&5 configure:4040: $? = 0 configure:4048: result: yes configure:4081: checking build system type configure:4095: result: x86_64-pc-linux-gnu configure:4115: checking host system type configure:4128: result: x86_64-pc-linux-gnu configure:4153: checking how to get verbose linking output from g77 configure:4163: g77 -c -g -O2 conftest.f >&5 configure:4163: $? = 0 configure:4181: g77 -o conftest -g -O2 -v conftest.f Using built-in specs. Target: x86_64-linux-gnu Thread model: posix gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) - /usr/lib/gcc/x86_64-linux-gnu/9/f951 conftest.f -ffixed-form -quiet -dumpbase conftest.f -mtune=generic -march=x86-64 -auxbase conftest -g -O2 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/9/finclude -fpre-include=/usr/include/finclude/math-vector-fortran.h -o /tmp/ccKMNhBB.s + /usr/lib/gcc/x86_64-linux-gnu/9/f951 conftest.f -ffixed-form -quiet -dumpbase conftest.f -mtune=generic -march=x86-64 -auxbase conftest -g -O2 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/9/finclude -fpre-include=/usr/include/finclude/math-vector-fortran.h -o /tmp/ccs4lrvM.s GNU Fortran (Ubuntu 9.4.0-1ubuntu1~20.04.1) version 9.4.0 (x86_64-linux-gnu) compiled by GNU C version 9.4.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22.1-GMP -warning: GMP header version 6.2.0 differs from library version 6.2.1. GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 GNU Fortran2008 (Ubuntu 9.4.0-1ubuntu1~20.04.1) version 9.4.0 (x86_64-linux-gnu) compiled by GNU C version 9.4.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22.1-GMP -warning: GMP header version 6.2.0 differs from library version 6.2.1. GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 - as -v --64 -o /tmp/ccjOb2IB.o /tmp/ccKMNhBB.s + as -v --64 -o /tmp/ccHhDv0L.o /tmp/ccs4lrvM.s GNU assembler version 2.34 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.34 Reading specs from /usr/lib/gcc/x86_64-linux-gnu/9/libgfortran.spec rename spec lib to liborig - /usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccTVEk3A.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/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../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/9/../../.. /tmp/ccjOb2IB.o -lgfortran -lm -lgcc_s -lgcc -lquadmath -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o + /usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccxe3P2N.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/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../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/9/../../.. /tmp/ccHhDv0L.o -lgfortran -lm -lgcc_s -lgcc -lquadmath -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o configure:4264: result: -v configure:4266: checking for Fortran 77 libraries of g77 configure:4289: g77 -o conftest -g -O2 -v conftest.f Using built-in specs. Target: x86_64-linux-gnu Thread model: posix gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) - /usr/lib/gcc/x86_64-linux-gnu/9/f951 conftest.f -ffixed-form -quiet -dumpbase conftest.f -mtune=generic -march=x86-64 -auxbase conftest -g -O2 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/9/finclude -fpre-include=/usr/include/finclude/math-vector-fortran.h -o /tmp/cchBVrbK.s + /usr/lib/gcc/x86_64-linux-gnu/9/f951 conftest.f -ffixed-form -quiet -dumpbase conftest.f -mtune=generic -march=x86-64 -auxbase conftest -g -O2 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/9/finclude -fpre-include=/usr/include/finclude/math-vector-fortran.h -o /tmp/ccGa5t3V.s GNU Fortran (Ubuntu 9.4.0-1ubuntu1~20.04.1) version 9.4.0 (x86_64-linux-gnu) compiled by GNU C version 9.4.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22.1-GMP -warning: GMP header version 6.2.0 differs from library version 6.2.1. GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 GNU Fortran2008 (Ubuntu 9.4.0-1ubuntu1~20.04.1) version 9.4.0 (x86_64-linux-gnu) compiled by GNU C version 9.4.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22.1-GMP -warning: GMP header version 6.2.0 differs from library version 6.2.1. GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 - as -v --64 -o /tmp/ccYszGoK.o /tmp/cchBVrbK.s + as -v --64 -o /tmp/cc94KHQT.o /tmp/ccGa5t3V.s GNU assembler version 2.34 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.34 Reading specs from /usr/lib/gcc/x86_64-linux-gnu/9/libgfortran.spec rename spec lib to liborig - /usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccfZyQEK.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/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../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/9/../../.. /tmp/ccYszGoK.o -lgfortran -lm -lgcc_s -lgcc -lquadmath -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o + /usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/cczkYHRS.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/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../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/9/../../.. /tmp/cc94KHQT.o -lgfortran -lm -lgcc_s -lgcc -lquadmath -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o configure:4485: result: -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../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/9/../../.. -lgfortran -lm -lquadmath configure:4547: checking how to print strings configure:4574: result: printf configure:4643: checking for gcc configure:4659: found /usr/bin/gcc configure:4670: result: gcc configure:4899: checking for C compiler version configure:4908: gcc --version >&5 gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0 Copyright (C) 2019 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:4919: $? = 0 configure:4908: gcc -v >&5 Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper OFFLOAD_TARGET_NAMES=nvptx-none:hsa OFFLOAD_TARGET_DEFAULT=1 Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --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-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 --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) configure:4919: $? = 0 configure:4908: gcc -V >&5 gcc: error: unrecognized command line option '-V' gcc: fatal error: no input files compilation terminated. configure:4919: $? = 1 configure:4908: gcc -qversion >&5 gcc: error: unrecognized command line option '-qversion'; did you mean '--version'? gcc: fatal error: no input files compilation terminated. configure:4919: $? = 1 configure:4923: checking whether we are using the GNU C compiler configure:4942: gcc -c conftest.c >&5 configure:4942: $? = 0 configure:4951: result: yes configure:4960: checking whether gcc accepts -g configure:4980: gcc -c -g conftest.c >&5 configure:4980: $? = 0 configure:5021: result: yes configure:5038: checking for gcc option to accept ISO C89 configure:5101: gcc -c -g -O2 conftest.c >&5 configure:5101: $? = 0 configure:5114: result: none needed configure:5139: checking whether gcc understands -c and -o together configure:5161: gcc -c conftest.c -o conftest2.o configure:5164: $? = 0 configure:5161: gcc -c conftest.c -o conftest2.o configure:5164: $? = 0 configure:5176: result: yes configure:5195: checking dependency style of gcc configure:5306: result: gcc3 configure:5321: checking for a sed that does not truncate output configure:5385: result: /bin/sed configure:5403: checking for grep that handles long lines and -e configure:5461: result: /bin/grep configure:5466: checking for egrep configure:5528: result: /bin/grep -E configure:5533: checking for fgrep configure:5595: result: /bin/grep -F configure:5630: checking for ld used by gcc configure:5697: result: /usr/bin/ld configure:5704: checking if the linker (/usr/bin/ld) is GNU ld configure:5719: result: yes configure:5731: checking for BSD- or MS-compatible name lister (nm) configure:5785: result: /usr/bin/nm -B configure:5915: checking the name lister (/usr/bin/nm -B) interface configure:5922: gcc -c -g -O2 conftest.c >&5 configure:5925: /usr/bin/nm -B "conftest.o" configure:5928: output 0000000000000000 B some_variable configure:5929: result: BSD nm configure:5932: checking whether ln -s works configure:5936: result: yes configure:5944: checking the maximum length of command line arguments configure:6075: result: 1572864 configure:6123: checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format configure:6163: result: func_convert_file_noop configure:6170: checking how to convert x86_64-pc-linux-gnu file names to toolchain format configure:6190: result: func_convert_file_noop configure:6197: checking for /usr/bin/ld option to reload object files configure:6204: result: -r configure:6278: checking for objdump configure:6294: found /usr/bin/objdump configure:6305: result: objdump configure:6337: checking how to recognize dependent libraries configure:6537: result: pass_all configure:6622: checking for dlltool configure:6652: result: no configure:6682: checking how to associate runtime and link libraries configure:6709: result: printf %s\n configure:6770: checking for ar configure:6786: found /usr/bin/ar configure:6797: result: ar configure:6834: checking for archiver @FILE support configure:6851: gcc -c -g -O2 conftest.c >&5 configure:6851: $? = 0 configure:6854: ar cru libconftest.a @conftest.lst >&5 ar: `u' modifier ignored since `D' is the default (see `U') configure:6857: $? = 0 configure:6862: ar cru libconftest.a @conftest.lst >&5 ar: `u' modifier ignored since `D' is the default (see `U') ar: conftest.o: No such file or directory configure:6865: $? = 1 configure:6864: result: @ configure:6922: checking for strip configure:6938: found /usr/bin/strip configure:6949: result: strip configure:7021: checking for ranlib configure:7037: found /usr/bin/ranlib configure:7048: result: ranlib configure:7150: checking command to parse /usr/bin/nm -B output from gcc object configure:7303: gcc -c -g -O2 conftest.c >&5 configure:7306: $? = 0 configure:7310: /usr/bin/nm -B conftest.o \| sed -n -e 's/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | sed '/ __gnu_lto/d' \> conftest.nm configure:7313: $? = 0 configure:7379: gcc -o conftest -g -O2 conftest.c conftstm.o >&5 configure:7382: $? = 0 configure:7420: result: ok configure:7467: checking for sysroot configure:7497: result: no configure:7504: checking for a working dd configure:7542: result: /bin/dd configure:7546: checking how to truncate binary pipes configure:7561: result: /bin/dd bs=4096 count=1 configure:7697: gcc -c -g -O2 conftest.c >&5 configure:7700: $? = 0 configure:7890: checking for mt configure:7906: found /bin/mt configure:7917: result: mt configure:7940: checking if mt is a manifest tool configure:7946: mt '-?' configure:7954: result: no configure:8631: checking how to run the C preprocessor configure:8662: gcc -E conftest.c configure:8662: $? = 0 configure:8676: gcc -E conftest.c conftest.c:11:10: fatal error: ac_nonexistent.h: No such file or directory 11 | #include | ^~~~~~~~~~~~~~~~~~ compilation terminated. configure:8676: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "npstat" | #define PACKAGE_TARNAME "npstat" | #define PACKAGE_VERSION "5.7.0" | #define PACKAGE_STRING "npstat 5.7.0" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define PACKAGE "npstat" | #define VERSION "5.7.0" | /* end confdefs.h. */ | #include configure:8701: result: gcc -E configure:8721: gcc -E conftest.c configure:8721: $? = 0 configure:8735: gcc -E conftest.c conftest.c:11:10: fatal error: ac_nonexistent.h: No such file or directory 11 | #include | ^~~~~~~~~~~~~~~~~~ compilation terminated. configure:8735: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "npstat" | #define PACKAGE_TARNAME "npstat" | #define PACKAGE_VERSION "5.7.0" | #define PACKAGE_STRING "npstat 5.7.0" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define PACKAGE "npstat" | #define VERSION "5.7.0" | /* end confdefs.h. */ | #include configure:8764: checking for ANSI C header files configure:8784: gcc -c -g -O2 conftest.c >&5 configure:8784: $? = 0 configure:8857: gcc -o conftest -g -O2 conftest.c >&5 configure:8857: $? = 0 configure:8857: ./conftest configure:8857: $? = 0 configure:8868: result: yes configure:8881: checking for sys/types.h configure:8881: gcc -c -g -O2 conftest.c >&5 configure:8881: $? = 0 configure:8881: result: yes configure:8881: checking for sys/stat.h configure:8881: gcc -c -g -O2 conftest.c >&5 configure:8881: $? = 0 configure:8881: result: yes configure:8881: checking for stdlib.h configure:8881: gcc -c -g -O2 conftest.c >&5 configure:8881: $? = 0 configure:8881: result: yes configure:8881: checking for string.h configure:8881: gcc -c -g -O2 conftest.c >&5 configure:8881: $? = 0 configure:8881: result: yes configure:8881: checking for memory.h configure:8881: gcc -c -g -O2 conftest.c >&5 configure:8881: $? = 0 configure:8881: result: yes configure:8881: checking for strings.h configure:8881: gcc -c -g -O2 conftest.c >&5 configure:8881: $? = 0 configure:8881: result: yes configure:8881: checking for inttypes.h configure:8881: gcc -c -g -O2 conftest.c >&5 configure:8881: $? = 0 configure:8881: result: yes configure:8881: checking for stdint.h configure:8881: gcc -c -g -O2 conftest.c >&5 configure:8881: $? = 0 configure:8881: result: yes configure:8881: checking for unistd.h configure:8881: gcc -c -g -O2 conftest.c >&5 configure:8881: $? = 0 configure:8881: result: yes configure:8895: checking for dlfcn.h configure:8895: gcc -c -g -O2 conftest.c >&5 configure:8895: $? = 0 configure:8895: result: yes configure:9162: checking for objdir configure:9177: result: .libs configure:9441: checking if gcc supports -fno-rtti -fno-exceptions configure:9459: 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:9463: $? = 0 configure:9476: result: no configure:9834: checking for gcc option to produce PIC configure:9841: result: -fPIC -DPIC configure:9849: checking if gcc PIC flag -fPIC -DPIC works configure:9867: gcc -c -g -O2 -fPIC -DPIC -DPIC conftest.c >&5 configure:9871: $? = 0 configure:9884: result: yes configure:9913: checking if gcc static flag -static works configure:9941: result: yes configure:9956: checking if gcc supports -c -o file.o configure:9977: gcc -c -g -O2 -o out/conftest2.o conftest.c >&5 configure:9981: $? = 0 configure:10003: result: yes configure:10011: checking if gcc supports -c -o file.o configure:10058: result: yes configure:10091: checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries configure:11350: result: yes configure:11387: checking whether -lc should be explicitly linked in configure:11395: gcc -c -g -O2 conftest.c >&5 configure:11398: $? = 0 configure:11413: gcc -shared -fPIC -DPIC conftest.o -v -Wl,-soname -Wl,conftest -o conftest 2\>\&1 \| /bin/grep -lc \>/dev/null 2\>\&1 configure:11416: $? = 0 configure:11430: result: no configure:11590: checking dynamic linker characteristics configure:12171: gcc -o conftest -g -O2 -Wl,-rpath -Wl,/foo conftest.c >&5 configure:12171: $? = 0 configure:12408: result: GNU/Linux ld.so configure:12530: checking how to hardcode library paths into programs configure:12555: result: immediate configure:13103: checking whether stripping libraries is possible configure:13108: result: yes configure:13143: checking if libtool supports shared libraries configure:13145: result: yes configure:13148: checking whether to build shared libraries configure:13173: result: yes configure:13176: checking whether to build static libraries configure:13180: result: no configure:9995: checking how to run the C++ preprocessor configure:10022: g++ -E conftest.cpp configure:10022: $? = 0 configure:10036: g++ -E conftest.cpp conftest.cpp:23:10: fatal error: ac_nonexistent.h: No such file or directory 23 | #include | ^~~~~~~~~~~~~~~~~~ compilation terminated. configure:10036: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "npstat" | #define PACKAGE_TARNAME "npstat" | #define PACKAGE_VERSION "5.7.0" | #define PACKAGE_STRING "npstat 5.7.0" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define PACKAGE "npstat" | #define VERSION "5.7.0" | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | /* end confdefs.h. */ | #include configure:10061: result: g++ -E configure:10081: g++ -E conftest.cpp configure:10081: $? = 0 configure:10095: g++ -E conftest.cpp conftest.cpp:23:10: fatal error: ac_nonexistent.h: No such file or directory 23 | #include | ^~~~~~~~~~~~~~~~~~ compilation terminated. configure:10095: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "npstat" | #define PACKAGE_TARNAME "npstat" | #define PACKAGE_VERSION "5.7.0" | #define PACKAGE_STRING "npstat 5.7.0" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define PACKAGE "npstat" | #define VERSION "5.7.0" | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | /* end confdefs.h. */ | #include configure:10257: checking for ld used by g++ configure:10324: result: /usr/bin/ld -m elf_x86_64 configure:10331: checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld configure:10346: result: yes configure:10401: checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries configure:11474: result: yes configure:11510: g++ -c -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5 configure:11513: $? = 0 configure:11994: checking for g++ option to produce PIC configure:12001: result: -fPIC -DPIC configure:12009: checking if g++ PIC flag -fPIC -DPIC works configure:12027: g++ -c -std=c++11 -O3 -Wall -W -Werror -fPIC -DPIC -DPIC conftest.cpp >&5 configure:12031: $? = 0 configure:12044: result: yes configure:12067: checking if g++ static flag -static works configure:12095: result: yes configure:12107: checking if g++ supports -c -o file.o configure:12128: g++ -c -std=c++11 -O3 -Wall -W -Werror -o out/conftest2.o conftest.cpp >&5 configure:12132: $? = 0 configure:12154: result: yes configure:12159: checking if g++ supports -c -o file.o configure:12206: result: yes configure:12236: checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries configure:12276: result: yes configure:12417: checking dynamic linker characteristics configure:13162: result: GNU/Linux ld.so configure:13227: checking how to hardcode library paths into programs configure:13252: result: immediate configure:12239: checking if libtool supports shared libraries configure:12241: result: yes configure:12244: checking whether to build shared libraries configure:12268: result: yes configure:12271: checking whether to build static libraries configure:12275: result: no configure:12627: checking for g77 option to produce PIC configure:12634: result: -fPIC configure:12642: checking if g77 PIC flag -fPIC works configure:12660: g77 -c -g -O2 -fPIC conftest.f >&5 configure:12664: $? = 0 configure:12677: result: yes configure:12700: checking if g77 static flag -static works configure:12728: result: yes configure:12740: checking if g77 supports -c -o file.o configure:12761: g77 -c -g -O2 -o out/conftest2.o conftest.f >&5 configure:12765: $? = 0 configure:12787: result: yes configure:12792: checking if g77 supports -c -o file.o configure:12839: result: yes configure:12869: checking whether the g77 linker (/usr/bin/ld -m elf_x86_64) supports shared libraries configure:14078: result: yes configure:14219: checking dynamic linker characteristics configure:14958: result: GNU/Linux ld.so configure:15023: checking how to hardcode library paths into programs configure:15048: result: immediate configure:12930: checking that generated files are newer than configure configure:12936: result: done configure:12963: creating ./config.status ## ---------------------- ## ## Running config.status. ## ## ---------------------- ## This file was extended by npstat config.status 5.7.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = CONFIG_HEADERS = CONFIG_LINKS = CONFIG_COMMANDS = $ ./config.status on dawn config.status:1139: creating Makefile config.status:1139: creating npstat/nm/Makefile config.status:1139: creating npstat/rng/Makefile config.status:1139: creating npstat/stat/Makefile config.status:1139: creating npstat/wrap/Makefile config.status:1139: creating npstat/interfaces/Makefile config.status:1139: creating npstat/emsunfold/Makefile config.status:1139: creating npstat/Makefile config.status:1139: creating examples/C++/Makefile config.status:1139: creating npstat/swig/Makefile config.status:1139: creating npstat.pc config.status:1311: executing depfiles commands config.status:1388: cd npstat/nm && sed -e '/# am--include-marker/d' Makefile | make -f - am--depfiles make: Nothing to be done for 'am--depfiles'. config.status:1393: $? = 0 config.status:1388: cd npstat/rng && sed -e '/# am--include-marker/d' Makefile | make -f - am--depfiles make: Nothing to be done for 'am--depfiles'. config.status:1393: $? = 0 config.status:1388: cd npstat/stat && sed -e '/# am--include-marker/d' Makefile | make -f - am--depfiles make: Nothing to be done for 'am--depfiles'. config.status:1393: $? = 0 config.status:1388: cd examples/C++ && sed -e '/# am--include-marker/d' Makefile | make -f - am--depfiles make: Nothing to be done for 'am--depfiles'. config.status:1393: $? = 0 config.status:1388: cd npstat/swig && sed -e '/# am--include-marker/d' Makefile | make -f - am--depfiles -/bin/bash: /usr/local/anaconda3/lib/libtinfo.so.6: no version information available (required by /bin/bash) -/bin/bash: /usr/local/anaconda3/lib/libtinfo.so.6: no version information available (required by /bin/bash) -/bin/bash: /usr/local/anaconda3/lib/libtinfo.so.6: no version information available (required by /bin/bash) -/bin/bash: /usr/local/anaconda3/lib/libtinfo.so.6: no version information available (required by /bin/bash) -/bin/bash: /usr/local/anaconda3/lib/libtinfo.so.6: no version information available (required by /bin/bash) +make: Nothing to be done for 'am--depfiles'. config.status:1393: $? = 0 config.status:1311: executing libtool commands ## ---------------- ## ## Cache variables. ## ## ---------------- ## ac_cv_build=x86_64-pc-linux-gnu ac_cv_c_compiler_gnu=yes ac_cv_cxx_compiler_gnu=yes ac_cv_env_CCC_set= ac_cv_env_CCC_value= ac_cv_env_CC_set= ac_cv_env_CC_value= ac_cv_env_CFLAGS_set= ac_cv_env_CFLAGS_value= ac_cv_env_CPPFLAGS_set= ac_cv_env_CPPFLAGS_value= ac_cv_env_CPP_set= ac_cv_env_CPP_value= ac_cv_env_CXXCPP_set= ac_cv_env_CXXCPP_value= ac_cv_env_CXXFLAGS_set=set ac_cv_env_CXXFLAGS_value='-std=c++11 -O3 -Wall -W -Werror' ac_cv_env_CXX_set= ac_cv_env_CXX_value= ac_cv_env_DEPS_CFLAGS_set= ac_cv_env_DEPS_CFLAGS_value= ac_cv_env_DEPS_LIBS_set= ac_cv_env_DEPS_LIBS_value= ac_cv_env_F77_set= ac_cv_env_F77_value= ac_cv_env_FFLAGS_set= ac_cv_env_FFLAGS_value= ac_cv_env_LDFLAGS_set= ac_cv_env_LDFLAGS_value= ac_cv_env_LIBS_set= ac_cv_env_LIBS_value= ac_cv_env_LT_SYS_LIBRARY_PATH_set= ac_cv_env_LT_SYS_LIBRARY_PATH_value= ac_cv_env_PKG_CONFIG_LIBDIR_set= ac_cv_env_PKG_CONFIG_LIBDIR_value= ac_cv_env_PKG_CONFIG_PATH_set=set ac_cv_env_PKG_CONFIG_PATH_value=/usr/local/lib/pkgconfig ac_cv_env_PKG_CONFIG_set= ac_cv_env_PKG_CONFIG_value= ac_cv_env_build_alias_set= ac_cv_env_build_alias_value= ac_cv_env_host_alias_set= ac_cv_env_host_alias_value= ac_cv_env_target_alias_set= ac_cv_env_target_alias_value= ac_cv_f77_compiler_gnu=yes ac_cv_f77_libs=' -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../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/9/../../.. -lgfortran -lm -lquadmath' ac_cv_header_dlfcn_h=yes ac_cv_header_inttypes_h=yes ac_cv_header_memory_h=yes ac_cv_header_stdc=yes ac_cv_header_stdint_h=yes ac_cv_header_stdlib_h=yes ac_cv_header_string_h=yes ac_cv_header_strings_h=yes ac_cv_header_sys_stat_h=yes ac_cv_header_sys_types_h=yes ac_cv_header_unistd_h=yes ac_cv_host=x86_64-pc-linux-gnu ac_cv_objext=o ac_cv_path_EGREP='/bin/grep -E' ac_cv_path_FGREP='/bin/grep -F' ac_cv_path_GREP=/bin/grep ac_cv_path_SED=/bin/sed ac_cv_path_ac_pt_PKG_CONFIG=/usr/bin/pkg-config ac_cv_path_install='/usr/bin/install -c' ac_cv_path_lt_DD=/bin/dd ac_cv_path_mkdir=/bin/mkdir ac_cv_prog_AWK=gawk ac_cv_prog_CPP='gcc -E' ac_cv_prog_CXXCPP='g++ -E' ac_cv_prog_ac_ct_AR=ar ac_cv_prog_ac_ct_CC=gcc ac_cv_prog_ac_ct_CXX=g++ ac_cv_prog_ac_ct_F77=g77 ac_cv_prog_ac_ct_MANIFEST_TOOL=mt ac_cv_prog_ac_ct_OBJDUMP=objdump ac_cv_prog_ac_ct_RANLIB=ranlib ac_cv_prog_ac_ct_STRIP=strip ac_cv_prog_cc_c89= ac_cv_prog_cc_g=yes ac_cv_prog_cxx_g=yes ac_cv_prog_f77_g=yes ac_cv_prog_f77_v=-v ac_cv_prog_make_make_set=yes am_cv_CC_dependencies_compiler_type=gcc3 am_cv_CXX_dependencies_compiler_type=gcc3 am_cv_make_support_nested_variables=yes am_cv_prog_cc_c_o=yes lt_cv_ar_at_file=@ lt_cv_archive_cmds_need_lc=no lt_cv_deplibs_check_method=pass_all lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_ld_reload_flag=-r lt_cv_nm_interface='BSD nm' lt_cv_objdir=.libs lt_cv_path_LD=/usr/bin/ld lt_cv_path_LDCXX='/usr/bin/ld -m elf_x86_64' lt_cv_path_NM='/usr/bin/nm -B' lt_cv_path_mainfest_tool=no lt_cv_prog_compiler_c_o=yes lt_cv_prog_compiler_c_o_CXX=yes lt_cv_prog_compiler_c_o_F77=yes lt_cv_prog_compiler_pic='-fPIC -DPIC' lt_cv_prog_compiler_pic_CXX='-fPIC -DPIC' lt_cv_prog_compiler_pic_F77=-fPIC lt_cv_prog_compiler_pic_works=yes lt_cv_prog_compiler_pic_works_CXX=yes lt_cv_prog_compiler_pic_works_F77=yes lt_cv_prog_compiler_rtti_exceptions=no lt_cv_prog_compiler_static_works=yes lt_cv_prog_compiler_static_works_CXX=yes lt_cv_prog_compiler_static_works_F77=yes lt_cv_prog_gnu_ld=yes lt_cv_prog_gnu_ldcxx=yes lt_cv_sharedlib_from_linklib_cmd='printf %s\n' lt_cv_shlibpath_overrides_runpath=yes lt_cv_sys_global_symbol_pipe='sed -n -e '\''s/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p'\'' | sed '\''/ __gnu_lto/d'\''' lt_cv_sys_global_symbol_to_c_name_address='sed -n -e '\''s/^: \(.*\) .*$/ {"\1", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/ {"\1", (void *) \&\1},/p'\''' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='sed -n -e '\''s/^: \(.*\) .*$/ {"\1", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(lib.*\)$/ {"\1", (void *) \&\1},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/ {"lib\1", (void *) \&\1},/p'\''' lt_cv_sys_global_symbol_to_cdecl='sed -n -e '\''s/^T .* \(.*\)$/extern int \1();/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/extern char \1;/p'\''' lt_cv_sys_global_symbol_to_import= lt_cv_sys_max_cmd_len=1572864 lt_cv_to_host_file_cmd=func_convert_file_noop lt_cv_to_tool_file_cmd=func_convert_file_noop lt_cv_truncate_bin='/bin/dd bs=4096 count=1' pkg_cv_DEPS_CFLAGS=-I/usr/local/include pkg_cv_DEPS_LIBS='-L/usr/local/lib -lfftw3 -lgeners -lkstest' ## ----------------- ## ## Output variables. ## ## ----------------- ## ACLOCAL='${SHELL} /home/igv/Hepforge/npstat/trunk/missing aclocal-1.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='gawk' CC='gcc' CCDEPMODE='depmode=gcc3' CFLAGS='-g -O2' CPP='gcc -E' CPPFLAGS='' CXX='g++' CXXCPP='g++ -E' CXXDEPMODE='depmode=gcc3' CXXFLAGS='-std=c++11 -O3 -Wall -W -Werror' CYGPATH_W='echo' DEFS='-DPACKAGE_NAME=\"npstat\" -DPACKAGE_TARNAME=\"npstat\" -DPACKAGE_VERSION=\"5.7.0\" -DPACKAGE_STRING=\"npstat\ 5.7.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"npstat\" -DVERSION=\"5.7.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\"' DEPDIR='.deps' DEPS_CFLAGS='-I/usr/local/include' DEPS_LIBS='-L/usr/local/lib -lfftw3 -lgeners -lkstest' DLLTOOL='false' DSYMUTIL='' DUMPBIN='' ECHO_C='' ECHO_N='-n' ECHO_T='' EGREP='/bin/grep -E' EXEEXT='' F77='g77' FFLAGS='-g -O2' FGREP='/bin/grep -F' FLIBS=' -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../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/9/../../.. -lgfortran -lm -lquadmath' GREP='/bin/grep' INSTALL_DATA='${INSTALL} -m 644' INSTALL_PROGRAM='${INSTALL}' INSTALL_SCRIPT='${INSTALL}' INSTALL_STRIP_PROGRAM='$(install_sh) -c -s' LD='/usr/bin/ld -m elf_x86_64' LDFLAGS='' LIBOBJS='' LIBS='' LIBTOOL='$(SHELL) $(top_builddir)/libtool' LIPO='' LN_S='ln -s' LTLIBOBJS='' LT_SYS_LIBRARY_PATH='' MAKEINFO='${SHELL} /home/igv/Hepforge/npstat/trunk/missing makeinfo' MANIFEST_TOOL=':' MKDIR_P='/bin/mkdir -p' NM='/usr/bin/nm -B' NMEDIT='' OBJDUMP='objdump' OBJEXT='o' OTOOL64='' OTOOL='' PACKAGE='npstat' PACKAGE_BUGREPORT='' PACKAGE_NAME='npstat' PACKAGE_STRING='npstat 5.7.0' PACKAGE_TARNAME='npstat' PACKAGE_URL='' PACKAGE_VERSION='5.7.0' PATH_SEPARATOR=':' PKG_CONFIG='/usr/bin/pkg-config' PKG_CONFIG_LIBDIR='' PKG_CONFIG_PATH='/usr/local/lib/pkgconfig' RANLIB='ranlib' SED='/bin/sed' SET_MAKE='' SHELL='/bin/bash' STRIP='strip' VERSION='5.7.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.7.0" #define PACKAGE_STRING "npstat 5.7.0" #define PACKAGE_BUGREPORT "" #define PACKAGE_URL "" #define PACKAGE "npstat" #define VERSION "5.7.0" #define STDC_HEADERS 1 #define HAVE_SYS_TYPES_H 1 #define HAVE_SYS_STAT_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRING_H 1 #define HAVE_MEMORY_H 1 #define HAVE_STRINGS_H 1 #define HAVE_INTTYPES_H 1 #define HAVE_STDINT_H 1 #define HAVE_UNISTD_H 1 #define HAVE_DLFCN_H 1 #define LT_OBJDIR ".libs/" configure: exit 0 Index: trunk/tests/test_Distributions1D.cc =================================================================== --- trunk/tests/test_Distributions1D.cc (revision 791) +++ trunk/tests/test_Distributions1D.cc (revision 792) @@ -1,2223 +1,2235 @@ #include #include #include #include #include "UnitTest++.h" #include "test_utils.hh" #include "EdgeworthSeries1DOld.hh" #include "npstat/stat/Distributions1D.hh" #include "npstat/stat/GaussianMixture1D.hh" #include "npstat/stat/JohnsonCurves.hh" #include "npstat/stat/TruncatedDistribution1D.hh" #include "npstat/stat/FoldedDistribution1D.hh" #include "npstat/stat/LeftCensoredDistribution.hh" #include "npstat/stat/RightCensoredDistribution.hh" #include "npstat/stat/QuantileTable1D.hh" +#include "npstat/stat/ModulatedDistribution1D.hh" #include "npstat/stat/DistributionMix1D.hh" #include "npstat/stat/VerticallyInterpolatedDistribution1D.hh" #include "npstat/stat/UGaussConvolution1D.hh" #include "npstat/stat/RatioOfNormals.hh" #include "npstat/stat/InterpolatedDistro1D1P.hh" #include "npstat/stat/TransformedDistribution1D.hh" #include "npstat/stat/EdgeworthSeries1D.hh" #include "npstat/stat/DeltaMixture1D.hh" #include "npstat/stat/CompositeDistribution1D.hh" #include "npstat/stat/ComparisonDistribution1D.hh" #include "npstat/stat/PolynomialDistro1D.hh" #include "npstat/stat/distro1DStats.hh" #include "npstat/stat/cumulantConversion.hh" #include "npstat/stat/IdentityTransform1D.hh" #include "npstat/stat/AsinhTransform1D.hh" #include "npstat/stat/LogRatioTransform1D.hh" #include "npstat/stat/LocationScaleTransform1.hh" #include "npstat/stat/Distribution1DReader.hh" #include "npstat/stat/DistributionTransform1DReader.hh" #include "npstat/stat/arrayStats.hh" #include "npstat/nm/EquidistantSequence.hh" #include "npstat/nm/LinearMapper1d.hh" #include "npstat/nm/ClassicalOrthoPolys1D.hh" #include "npstat/nm/MathUtils.hh" #include "npstat/nm/GaussHermiteQuadrature.hh" #include "npstat/nm/GaussLegendreQuadrature.hh" #include "npstat/nm/SpecialFunctions.hh" #include "npstat/rng/MersenneTwister.hh" #include "LogLogQuadratic1D.hh" #include "geners/pseudoIO.hh" #define LSQR2 1.41421356237309504880169L #define SQRTWOPIL 2.50662827463100050241577L using namespace npstat; using namespace std; struct Two : public npstat::ConstValue1 { inline Two() : npstat::ConstValue1(2.0) {} }; gs_enable_pseudo_io(Two) struct Three : public npstat::ConstValue1 { inline Three() : npstat::ConstValue1(3.0) {} }; gs_enable_pseudo_io(Three) struct Xsq { inline double operator()(const double x) const {return x*x;} inline bool operator==(const Xsq&) const {return true;} }; gs_enable_pseudo_io(Xsq) struct Xp1 { inline double operator()(const double x) const {return x + 1.0;} inline bool operator==(const Xp1&) const {return true;} }; gs_enable_pseudo_io(Xp1) static long double ldgexceedance(const long double x) { return erfcl(x/LSQR2)/2.0L; } static long double ldgcdf(const long double x) { return erfcl(-x/LSQR2)/2.0L; } namespace { double he0(const double x) { return 1.0; } double he1(const double x) { return x; } double he2(const double x) { return x*x - 1.0; } double he3(const double x) { return x*(x*x - 3.0); } double he4(const long double x) { const long double xsq = x*x; return 3 - 6*xsq + xsq*xsq; } double he5(const long double x) { const long double xsq = x*x; return x*(xsq*xsq - 10*xsq + 15); } double he6(const long double x) { const long double xsq = x*x; return -15 + 45*xsq - 15*xsq*xsq + xsq*xsq*xsq; } double he7(const long double x) { const long double xsq = x*x; return x*(-105 + 105*xsq - 21*xsq*xsq + xsq*xsq*xsq); } double he8(const long double x) { const long double xsq = x*x; const long double x4 = xsq*xsq; return 105 - 420*xsq + 210*x4 - 28*x4*xsq + x4*x4; } double he9(const long double x) { const long double xsq = x*x; const long double x4 = xsq*xsq; return x*(945 - 1260*xsq + 378*x4 - 36*xsq*x4 + x4*x4); } double he10(const long double x) { const long double xsq = x*x; const long double x4 = xsq*xsq; const long double x6 = x4*xsq; const long double x8 = x6*xsq; const long double x10 = x8*xsq; return -945 + 4725*xsq - 3150*x4 + 630*x6 - 45*x8 + x10; } double he11(const long double x) { const long double xsq = x*x; const long double x4 = xsq*xsq; const long double x6 = x4*xsq; const long double x8 = x6*xsq; const long double x10 = x8*xsq; return x*(-10395 + 17325*xsq - 6930*x4 + 990*x6 - 55*x8 + x10); } double he12(const long double x) { const long double xsq = x*x; const long double x4 = xsq*xsq; const long double x6 = x4*xsq; const long double x8 = x6*xsq; const long double x10 = x8*xsq; const long double x12 = x10*xsq; return 10395 - 62370*xsq + 51975*x4 - 13860*x6 + 1485*x8 - 66*x10 + x12; } /* void cumulants_from_moments(const double m[10], double cumulants[10]) { cumulants[0] = 0.0; for (unsigned i=1; i<4; ++i) cumulants[i] = m[i]; const double m2sq = m[2]*m[2]; const double m3sq = m[3]*m[3]; cumulants[4] = m[4] - 3*m2sq; cumulants[5] = m[5] - 10*m[2]*m[3]; cumulants[6] = m[6] - 15*m[2]*m[4] - 10*m[3]*m[3] + 30*m2sq*m[2]; cumulants[7] = m[7] + 210*m2sq*m[3] - 35*m[3]*m[4] - 21*m[2]*m[5]; cumulants[8] = -630*m2sq*m2sq + 420*m2sq*m[4] - 35*m[4]*m[4] - 56*m[3]*m[5] + 28*m[2]*(20*m3sq - m[6]) + m[8]; cumulants[9] = -7560*m2sq*m[2]*m[3] + 560*m[3]*m3sq + 756*m2sq*m[5] - 126*m[4]*m[5] - 84*m[3]*m[6] + 36*m[2]*(70*m[3]*m[4] - m[7]) + m[9]; } */ void get_edgeworth_cumulants(const EdgeworthSeries1D& s, double cumulants[10]) { double m[10]; for (unsigned i=0; i<10; ++i) m[i] = s.empiricalCentralMoment(i); if (s.order()) m[1] = s.cum(0); npstat::convertCentralMomentsToCumulants(m, 9, cumulants); } class DummyFunct : public Functor1 { public: inline DummyFunct(double a, double b) : a_(a), b_(b) {} inline double operator()(const double& x) const { const double twoxm1 = 2*x - 1; const double p1 = twoxm1; const double p2 = 0.5*(3.0*twoxm1*twoxm1 - 1.0); return exp(a_*p1 + b_*p2); } private: double a_; double b_; }; void io_test(const AbsDistribution1D& d) { std::ostringstream os; CHECK(d.classId().write(os)); CHECK(d.write(os)); std::istringstream is(os.str()); gs::ClassId id(is, 1); AbsDistribution1D* phoenix = AbsDistribution1D::read(id, is); CHECK(*phoenix == d); delete phoenix; } void standard_test(const AbsDistribution1D& d, const double range, const double eps, const bool do_io = true) { const double cdf0 = d.cdf(0.0); for (unsigned i=0; i<100; ++i) { const double r = 2*range*(test_rng() - 0.5); const double cdfr = d.cdf(r); if (cdfr > 0.0 && cdfr < 1.0) { CHECK_CLOSE(cdfr, 1.0 - d.exceedance(r), eps); CHECK_CLOSE(r, d.quantile(cdfr), eps); const double integ = simpson_integral( DensityFunctor1D(d), 0.0, r); CHECK_CLOSE(integ, cdfr-cdf0, eps); } } if (do_io) io_test(d); } void standard_test_01(const AbsDistribution1D& d, const double eps, const bool do_io = true) { const double cdf0 = d.cdf(0.0); for (unsigned i=0; i<100; ++i) { const double r = test_rng(); const double cdfr = d.cdf(r); if (cdfr > 0.0 && cdfr < 1.0) { CHECK_CLOSE(cdfr, 1.0 - d.exceedance(r), eps); CHECK_CLOSE(r, d.quantile(cdfr), eps); const double integ = simpson_integral( DensityFunctor1D(d), 0.0, r); CHECK_CLOSE(integ, cdfr-cdf0, eps); } } if (do_io) io_test(d); } void invcdf_test(const AbsDistribution1D& d, const double eps) { for (unsigned i=0; i<1000; ++i) { const double r = test_rng(); const double x = d.quantile(r); const double cdf = d.cdf(x); CHECK_CLOSE(cdf, r, eps); CHECK_CLOSE(cdf, 1.0 - d.exceedance(x), eps); } } void invexceedance_test(const EdgeworthSeries1D& d, const double eps) { for (unsigned i=0; i<1000; ++i) { const double r = test_rng(); const double x = d.inverseExceedance(r); const double exc = d.exceedance(x); CHECK_CLOSE(exc, r, eps); CHECK_CLOSE(exc, 1.0 - d.cdf(x), eps); } } class MirroredGauss1D_meanFunctor : public Functor1 { public: inline MirroredGauss1D_meanFunctor(const MirroredGauss1D& mg, const double y) : location_(mg.location()), scale_(mg.scale()), sigmaOn0_1_(mg.sigmaOn0_1()), y_(y), mapper_(location_, 0.0, location_+scale_, 1.0) {} inline double operator()(const double& mean) const { MirroredGauss1D mg(location_, scale_, mapper_(mean), sigmaOn0_1_); return mg.density(y_); } private: double location_; double scale_; double sigmaOn0_1_; double y_; LinearMapper1d mapper_; }; TEST(expectation) { Gauss1D g(2.0, 1.0); auto lamx = [](double x) {return x;}; auto lamx2 = [](double x) {return x*x;}; auto lamx3 = [](double x) {return x*x*x;}; const double eps1 = 1.0e-14; CHECK_CLOSE(2.0, g.expectation(lamx), eps1); CHECK_CLOSE(5.0, g.expectation(lamx2), eps1); CHECK_CLOSE(14.0, g.expectation(lamx3), eps1); } TEST(cumulantConversion) { const double eps1 = 1.0e-15; const double eps2 = 1.0e-13; const unsigned maxOrder = 20U; const unsigned npoints = 100U; long double moments[maxOrder+1U]; long double moments2[maxOrder+1U]; long double cumulants[maxOrder+1U]; std::vector points(npoints); for (unsigned i=0; i >(); const double teps = 1.0e-12; Two two; Three three; LocationScaleTransform1 tr(two, three); Gauss1D g(0.0, 1.0); TransformedDistribution1D d1(tr, g); io_test(d1); Gauss1D g1(2.0, 3.0); for (unsigned i=0; i<100; ++i) { const double x = 10.0*(test_rng() - 0.5); CHECK_CLOSE(g1.density(x), d1.density(x), teps); CHECK_CLOSE(g1.cdf(x), d1.cdf(x), teps); CHECK_CLOSE(g1.exceedance(x), d1.exceedance(x), teps); const double y = test_rng(); CHECK_CLOSE(g1.quantile(y), d1.quantile(y), teps); } } TEST(Distributions1D_JohnsonSu) { const double teps = 1.0e-12; JohnsonSu jsu1(0.0, 1.0, 1.0, 10.0); standard_test(jsu1, 6, 1.e-8); AsinhTransform1D tr1(jsu1.getDelta(), jsu1.getLambda(), jsu1.getGamma(), jsu1.getXi()); Gauss1D g(0.0, 1.0); TransformedDistribution1D d1(tr1, g); standard_test(d1, 6, 1.e-8); for (unsigned i=0; i<100; ++i) { const double x = 10.0*(test_rng() - 0.5); CHECK_CLOSE(jsu1.density(x), d1.density(x), teps); CHECK_CLOSE(jsu1.cdf(x), d1.cdf(x), teps); CHECK_CLOSE(jsu1.exceedance(x), d1.exceedance(x), teps); const double y = test_rng(); CHECK_CLOSE(jsu1.quantile(y), d1.quantile(y), teps); } JohnsonSu jsu2(0.1, 1.0, -1.0, 10.0); standard_test(jsu2, 6, 1.e-8); AsinhTransform1D tr2(jsu2.getDelta(), jsu2.getLambda(), jsu2.getGamma(), jsu2.getXi()); TransformedDistribution1D d2(tr2, g); standard_test(d2, 6, 1.e-8); double mean, sigma, skew, kurt; distro1DStats(jsu2, -30.0, 20.0, 500000, &mean, &sigma, &skew, &kurt); CHECK_CLOSE(0.1, mean, 1.0e-5); CHECK_CLOSE(1.0, sigma, 1.0e-4); CHECK_CLOSE(-1.0, skew, 0.01); CHECK_CLOSE(10.0, kurt, 0.2); } TEST(Distributions1D_JohnsonSb) { const double teps = 1.0e-12; JohnsonSb jsb1(0.0, 1.0, 1.0, 2.9); LogRatioTransform1D tr1(jsb1.getDelta(), jsb1.getLambda(), jsb1.getGamma(), jsb1.getXi()); Gauss1D g(0.0, 1.0); TransformedDistribution1D d1(tr1, g); const double lolim = jsb1.getXi(); const double range = jsb1.getLambda(); for (unsigned i=0; i<100; ++i) { const double x = lolim + range*test_rng(); CHECK_CLOSE(jsb1.density(x), d1.density(x), teps); CHECK_CLOSE(jsb1.cdf(x), d1.cdf(x), teps); CHECK_CLOSE(jsb1.exceedance(x), d1.exceedance(x), teps); const double y = test_rng(); CHECK_CLOSE(jsb1.quantile(y), d1.quantile(y), teps); } } TEST(Distributions1D_LogNormal0) { LogNormal g(0., 1., 0.); double value = simpson_integral(DensityFunctor1D(g), -6, 6); CHECK_CLOSE(1.0, value, 1.e-8); standard_test(g, 6, 1.e-6); } TEST(Distributions1D_LogNormal1) { LogNormal ln1(0., 1., 2.0); double value = simpson_integral(DensityFunctor1D(ln1), -6, 20); CHECK_CLOSE(1.0, value, 1.e-6); standard_test(ln1, 7, 2.e-4); } TEST(Distributions1D_LogNormal2) { LogNormal ln2(0., 1., -2.0); double value = simpson_integral(DensityFunctor1D(ln2), -20, 6); CHECK_CLOSE(1.0, value, 1.e-6); standard_test(ln2, 7, 4.e-4); } TEST(Distributions1D_LogNormal3) { LogNormal ln3(-0.5, 1., 2.0); standard_test(ln3, 7, 1.e-3); } TEST(Distributions1D_LogNormal4) { LogNormal ln4(-0.5, 1., -2.0); standard_test(ln4, 7, 1.e-3); } TEST(Distributions1D_LogNormal5) { LogNormal ln5(0.5, 2., 2.0); standard_test(ln5, 7, 1.e-3); } TEST(Distributions1D_LogNormal6) { LogNormal ln6(0.5, 2., -2.0); standard_test(ln6, 7, 1.e-3); } TEST(Distributions1D_LogNormal7) { LogNormal ln7(1., 2., 10.0); standard_test(ln7, 7, 1.e-3); } TEST(Distributions1D_LogNormal8) { LogNormal ln8(1., 2., -10.0); standard_test(ln8, 7, 1.e-3); } TEST(Distributions1D_misc) { const double eps = 1.0e-14; Cauchy1D ch(0.0, 0.5); standard_test(ch, 5, 1.e-8); TruncatedGauss1D tg(0.0, 2.0, 3.0); standard_test(tg, 6.0, 1.e-8); Gauss1D gauss(0.0, 2.0); TruncatedDistribution1D td(gauss, -6.0, 6.0); standard_test(td, 6.0, 1.e-8); for (unsigned i=0; i<100; ++i) { const double x = 12*(test_rng() - 0.5); CHECK_CLOSE(td.density(x), tg.density(x), eps); CHECK_CLOSE(td.cdf(x), tg.cdf(x), eps); CHECK_CLOSE(td.exceedance(x), tg.exceedance(x), eps); const double tmp = test_rng(); CHECK_CLOSE(td.quantile(tmp), tg.quantile(tmp), eps); } } TEST(Distributions1D_NotReallyFolded) { const double eps1 = 1.0e-14; Beta1D b1(-0.5, 1.5, 2, 3); FoldedDistribution1D f1(b1, -10.0, 20.0); standard_test(f1, 1.5, 1.e-8); for (unsigned i=0; i<100; ++i) { const double r = 4*(test_rng() - 0.5); CHECK_CLOSE(b1.cdf(r), f1.cdf(r), eps1); CHECK_CLOSE(b1.density(r), f1.density(r), eps1); CHECK_CLOSE(b1.exceedance(r), f1.exceedance(r), eps1); const double tmp = test_rng(); CHECK_CLOSE(b1.quantile(tmp), f1.quantile(tmp), eps1); } } TEST(Distributions1D_Folded_Norm) { Beta1D b1(0.0, 1.0, 2, 3); for (unsigned i=0; i<50; ++i) { double xmin = test_rng(); double xmax = test_rng(); if (xmin > xmax) std::swap(xmin, xmax); if (xmax - xmin > 0.01) { FoldedDistribution1D f1(b1, xmin, xmax); const double integ = simpson_integral( DensityFunctor1D(f1), xmin, xmax, 10000); CHECK_CLOSE(1.0, integ, 1.0e-8); } } } TEST(Distributions1D_Folded_Gauss) { const double eps1 = 1.0e-14; for (unsigned i=0; i<10; ++i) { const double meanOn0_1 = test_rng(); const double sigmaOn0_1 = 0.1 + test_rng(); MirroredGauss1D b1(0.0, 1.0, meanOn0_1, sigmaOn0_1); TruncatedGauss1D g(meanOn0_1, sigmaOn0_1, 20.0); FoldedDistribution1D f1(g, 0.0, 1.0); for (unsigned j=0; j<10; ++j) { const double r = test_rng(); CHECK_CLOSE(b1.cdf(r), f1.cdf(r), eps1); CHECK_CLOSE(b1.density(r), f1.density(r), eps1); CHECK_CLOSE(b1.exceedance(r), f1.exceedance(r), eps1); const double tmp = test_rng(); CHECK_CLOSE(b1.quantile(tmp), f1.quantile(tmp), eps1); } } } TEST(EdgeworthSeries1D_io) { const unsigned order = 2; std::vector cumulants(4); for (unsigned i=0; i dummy; double empCum[10]; EdgeworthSeries1D es1(dummy, EDGEWORTH_SEVERINI, order, false); CHECK_CLOSE(0.241970724519143, es1.density(1.0), 1.e-14); CHECK_CLOSE(7.61985302416e-24, es1.cdf(-10.0), 1.e-34); CHECK_CLOSE(7.61985302416e-24, es1.exceedance(10.0), 1.e-34); standard_test(es1, 6, 1.e-7); invexceedance_test(es1, 1.e-8); get_edgeworth_cumulants(es1, empCum); CHECK_CLOSE(0.0, empCum[0], 1.e-14); CHECK_CLOSE(0.0, empCum[1], 1.e-14); CHECK_CLOSE(1.0, empCum[2], 1.e-14); CHECK_CLOSE(0.0, empCum[3], 1.e-14); CHECK_CLOSE(0.0, empCum[4], 1.e-14); EdgeworthSeries1D es2(dummy, EDGEWORTH_SEVERINI, order, true); CHECK_CLOSE(0.241970724519143, es2.density(1.0), 1.e-14); CHECK_CLOSE(7.61985302416e-24, es2.cdf(-10.0), 1.e-34); CHECK_CLOSE(7.61985302416e-24, es2.exceedance(10.0), 1.e-34); standard_test(es2, 6, 1.e-7); invexceedance_test(es2, 1.e-8); get_edgeworth_cumulants(es2, empCum); CHECK_CLOSE(0.0, empCum[0], 1.e-14); CHECK_CLOSE(0.0, empCum[1], 1.e-14); CHECK_CLOSE(1.0, empCum[2], 1.e-14); CHECK_CLOSE(0.0, empCum[3], 1.e-14); CHECK_CLOSE(0.0, empCum[4], 1.e-14); EdgeworthSeries1D es3(dummy, EDGEWORTH_CLASSICAL, order, false); CHECK_CLOSE(0.241970724519143, es3.density(1.0), 1.e-14); CHECK_CLOSE(7.61985302416e-24, es3.cdf(-10.0), 1.e-34); CHECK_CLOSE(7.61985302416e-24, es3.exceedance(10.0), 1.e-34); standard_test(es3, 6, 1.e-7); invexceedance_test(es3, 1.e-8); get_edgeworth_cumulants(es3, empCum); CHECK_CLOSE(0.0, empCum[0], 1.e-14); CHECK_CLOSE(0.0, empCum[1], 1.e-14); CHECK_CLOSE(1.0, empCum[2], 1.e-14); CHECK_CLOSE(0.0, empCum[3], 1.e-14); CHECK_CLOSE(0.0, empCum[4], 1.e-14); EdgeworthSeries1D es4(dummy, EDGEWORTH_CLASSICAL, order, true); CHECK_CLOSE(0.241970724519143, es4.density(1.0), 1.e-14); CHECK_CLOSE(7.61985302416e-24, es4.cdf(-10.0), 1.e-34); CHECK_CLOSE(7.61985302416e-24, es4.exceedance(10.0), 1.e-34); standard_test(es4, 6, 1.e-7); invexceedance_test(es4, 1.e-8); get_edgeworth_cumulants(es4, empCum); CHECK_CLOSE(0.0, empCum[0], 1.e-14); CHECK_CLOSE(0.0, empCum[1], 1.e-14); CHECK_CLOSE(1.0, empCum[2], 1.e-14); CHECK_CLOSE(0.0, empCum[3], 1.e-14); CHECK_CLOSE(0.0, empCum[4], 1.e-14); } TEST(EdgeworthSeries1D_1) { const double range = 5.0; const unsigned ntries = 10; const unsigned order = 1; const double k1 = 3, k2 = 2, k3 = 0.5; double empCum[10]; std::vector c_slr(1); c_slr[0] = k1; std::vector c_gen(3); c_gen[0] = k1; c_gen[1] = k2; c_gen[2] = k3; EdgeworthSeries1D es1(c_slr, EDGEWORTH_SEVERINI, order, true); standard_test(es1, 6, 1.e-8); invexceedance_test(es1, 1.e-8); for (unsigned i=0; i c_slr(2); c_slr[0] = k1; c_slr[1] = k2; std::vector c_gen(4); c_gen[0] = k1; c_gen[1] = k2; c_gen[2] = k3; c_gen[3] = k4; EdgeworthSeries1D es1(c_slr, EDGEWORTH_SEVERINI, order, true); standard_test(es1, 6, 1.e-8); for (unsigned i=0; i c_slr(3); c_slr[0] = k1; c_slr[1] = k2; c_slr[2] = k3; std::vector c_gen(5); c_gen[0] = k1; c_gen[1] = k2; c_gen[2] = k3; c_gen[3] = k4; c_gen[4] = k5; EdgeworthSeries1D es1(c_slr, EDGEWORTH_SEVERINI, order, true); standard_test(es1, 3, 1.e-8); for (unsigned i=0; i c_slr(4); c_slr[0] = k1; c_slr[1] = k2; c_slr[2] = k3; c_slr[3] = k4; std::vector c_gen(6); c_gen[0] = k1; c_gen[1] = k2; c_gen[2] = k3; c_gen[3] = k4; c_gen[4] = k5; c_gen[5] = k6; EdgeworthSeries1D es1(c_slr, EDGEWORTH_SEVERINI, order, true); standard_test(es1, 3, 1.e-8); invexceedance_test(es1, 1.e-8); for (unsigned i=0; i c_gen(6); c_gen[0] = k1; c_gen[1] = k2; c_gen[2] = k3; c_gen[3] = k4; c_gen[4] = k5; c_gen[5] = k6; EdgeworthSeries1D es1(c_gen, EDGEWORTH_CLASSICAL, order, false); EdgeworthSeries1DOld es2(c_gen, EDGEWORTH_CLASSICAL, order, false); for (unsigned i=0; i quantiles(nquant); arrayQuantiles1D(data, sizeof(data)/sizeof(data[0]), 0.0, 1.0, &qs[0], &quantiles[0], nquant); BinnedDensity1D t1(location, width, data, sizeof(data)/sizeof(data[0]), 0); for (unsigned i=0; i(); LogLogQuadratic1D q1(1.0, 10.0, 0.5, 1.0); standard_test(q1, 1.0, 1.e-9); invcdf_test(q1, 1.e-14); } TEST(GaussianMixture1D_1) { std::vector entries; entries.push_back(GaussianMixtureEntry(3, 0, 1)); GaussianMixture1D g(0, 1, &entries[0], entries.size()); double value = simpson_integral(DensityFunctor1D(g), -6, 6); CHECK_CLOSE(1.0, value, 1.e-8); standard_test(g, 6, 1.e-7); Gauss1D g2(0, 1); DistributionMix1D mix; mix.add(g2, 3.0); value = simpson_integral(DensityFunctor1D(mix), -6, 6); CHECK_CLOSE(1.0, value, 1.e-8); standard_test(mix, 6, 1.e-7); VerticallyInterpolatedDistribution1D shmix(1U); shmix.add(g2, 3.0); value = simpson_integral(DensityFunctor1D(shmix), -6, 6); CHECK_CLOSE(1.0, value, 1.e-8); standard_test(shmix, 6, 1.e-7, false); for (unsigned i=0; i<100; ++i) { const double r = test_rng(); CHECK_CLOSE(shmix.quantile(r), mix.quantile(r), 1.e-15); } } TEST(GaussianMixture1D_2) { for (unsigned i=0; i<100; ++i) { Gauss1D g(test_rng(), 0.1+test_rng()); GaussianMixture1D mix(g); for (unsigned j=0; j<100; ++j) { const double x = -3 + 6*test_rng(); CHECK_CLOSE(g.density(x), mix.density(x), 1.0e-15); CHECK_CLOSE(g.cdf(x), mix.cdf(x), 1.0e-15); } } } TEST(DistributionMix1D_2) { for (unsigned i=0; i<100; ++i) { Gauss1D g(test_rng(), 0.1+test_rng()); DistributionMix1D mix; VerticallyInterpolatedDistribution1D shmix; mix.add(g, 1); shmix.add(g, 1); for (unsigned j=0; j<100; ++j) { const double x = -3 + 6*test_rng(); CHECK_CLOSE(g.density(x), mix.density(x), 1.0e-15); CHECK_CLOSE(g.cdf(x), mix.cdf(x), 1.0e-15); CHECK_CLOSE(g.density(x), shmix.density(x), 1.0e-15); CHECK_CLOSE(g.cdf(x), shmix.cdf(x), 1.0e-15); } } } TEST(GaussianMixture1D_3) { std::vector entries; entries.push_back(GaussianMixtureEntry(3, 0, 1)); entries.push_back(GaussianMixtureEntry(2, -0.5, 1.5)); entries.push_back(GaussianMixtureEntry(1, 0.5, 0.5)); GaussianMixture1D g(0, 1, &entries[0], entries.size()); double value = simpson_integral(DensityFunctor1D(g), -8, 8); CHECK_CLOSE(1.0, value, 1.e-7); standard_test(g, 4, 1.e-7); } TEST(DistributionMix1D_3) { DistributionMix1D mix; VerticallyInterpolatedDistribution1D shmix(3); Gauss1D g1(0, 1), g2(-0.5, 1.5), g3(0.5, 0.5); mix.add(g1, 3); mix.add(g2, 2); mix.add(g3, 1); shmix.add(g1, 3); shmix.add(g2, 2); shmix.add(g3, 1); double value = simpson_integral(DensityFunctor1D(mix), -8, 8); CHECK_CLOSE(1.0, value, 1.e-7); value = simpson_integral(DensityFunctor1D(shmix), -8, 8); CHECK_CLOSE(1.0, value, 1.e-7); standard_test(mix, 4, 1.e-7); standard_test(shmix, 4, 1.e-7, false); } TEST(GaussianMixture1D_4) { const double m0 = 1.3; const double s0 = 3/2.0; std::vector entries; entries.push_back(GaussianMixtureEntry(3, 0, 1)); entries.push_back(GaussianMixtureEntry(2, -0.5, 1.5)); entries.push_back(GaussianMixtureEntry(1, 0.5, 0.5)); GaussianMixture1D g(m0, s0, &entries[0], entries.size()); // G[x_, m_, s_] := 1/Sqrt[2 Pi]/s Exp[-(x - m)^2/s^2/2] // w1 = 3/6; m1 = 0; s1 = 1 // w2 = 2/6; m2 = -1/2; s2 = 3/2 // w3 = 1/6; m3 = 1/2; s3 = 1/2 // m0 = 1 + 3/10 // s0 = 3/2 // f = (w1*G[(x-m0)/s0,m1,s1]+w2*G[(x-m0)/s0,m2,s2]+w3*G[(x-m0)/s0,m3,s3])/s0 // mean = Integrate[x f, {x, -Infinity, Infinity}] // stdev = Sqrt[Integrate[(x - mean)^2 f, {x, -Infinity, Infinity}]] // q0 = Integrate[f, {x, -Infinity, 5/2}] // N[q0, 20] const double expmean = 47.0/40; const double expstdev = sqrt(203.0)/8.0; const double expcdf = 0.78400933536932041748; CHECK_CLOSE(expmean, g.mean(), 1.0e-15); CHECK_CLOSE(expstdev, g.stdev(), 1.0e-15); CHECK_CLOSE(expcdf, g.cdf(2.5), 1.0e-15); CHECK_CLOSE(2.5, g.quantile(expcdf), 1.0e-12); } TEST(LeftCensoredDistribution) { const double cutoff = 0.1234; const double eps = 1.0e-9; const double infty = -100.0; Gauss1D gauss(0.0, 1.0); TruncatedDistribution1D td(gauss, cutoff, 100.0); const double frac = gauss.exceedance(cutoff); LeftCensoredDistribution lc(td, frac, infty); CHECK_CLOSE(lc.cdf(cutoff-1.0), 1.0-frac, eps); CHECK_CLOSE(lc.exceedance(cutoff-1.0), frac, eps); CHECK_EQUAL(lc.cdf(infty-10.0), 0.0); CHECK_EQUAL(lc.exceedance(infty-10.0), 1.0); for (unsigned i=0; i<1000; ++i) { const double r = cutoff + test_rng()*5.0; CHECK_CLOSE(gauss.density(r), lc.density(r), eps); CHECK_CLOSE(gauss.exceedance(r), lc.exceedance(r), eps); CHECK_CLOSE(gauss.cdf(r), lc.cdf(r), eps); CHECK_CLOSE(lc.quantile(lc.cdf(r)), r, eps); } io_test(lc); } TEST(RightCensoredDistribution) { const double cutoff = 0.1234; const double eps = 1.0e-10; const double infty = 100.0; Gauss1D gauss(0.0, 1.0); TruncatedDistribution1D td(gauss, -100.0, cutoff); const double frac = gauss.cdf(cutoff); RightCensoredDistribution rc(td, frac, infty); CHECK_CLOSE(rc.cdf(cutoff+1.0), frac, eps); CHECK_CLOSE(rc.exceedance(cutoff+1.0), 1.0-frac, eps); CHECK_EQUAL(rc.cdf(infty+10.0), 1.0); CHECK_EQUAL(rc.exceedance(infty+10.0), 0.0); for (unsigned i=0; i<1000; ++i) { const double r = cutoff - test_rng()*5.0; CHECK_CLOSE(gauss.density(r), rc.density(r), eps); CHECK_CLOSE(gauss.exceedance(r), rc.exceedance(r), eps); CHECK_CLOSE(gauss.cdf(r), rc.cdf(r), eps); CHECK_CLOSE(rc.quantile(rc.cdf(r)), r, eps); } io_test(rc); } TEST(RatioOfNormals) { RatioOfNormals r1(-2.0, 1.0, 0.5, 1.0, 0.7); standard_test(r1, 10, 1.e-8); RatioOfNormals r2(1.0, 3.0, 2.0, 1.0, 0.5); standard_test(r2, 10, 1.e-7); const double x = 1.0; const double cdf = r2.cdf(x); const double quantile = r2.quantile(cdf); CHECK_CLOSE(x, quantile, 1.0e-8); } TEST(InterpolatedDistro1D1P) { const double eps = 1.0e-8; const double gridPoints[] = {1.0, 2.0}; double param = 1.3; const unsigned nGridPoints = sizeof(gridPoints)/sizeof(gridPoints[0]); GridAxis ax(std::vector(gridPoints, gridPoints+nGridPoints)); std::vector > distros; distros.push_back(CPP11_shared_ptr(new Gauss1D(1.0, 2.0))); distros.push_back(CPP11_shared_ptr(new Gauss1D(-1.0, 1.0))); InterpolatedDistro1D1P idist(ax, distros, param); standard_test(idist, 10.0, 1.e-7); LinearMapper1d meanmap(gridPoints[0], 1.0, gridPoints[1], -1.0); LinearMapper1d sigmap(gridPoints[0], 2.0, gridPoints[1], 1.0); for (unsigned i=0; i<100; ++i) { param = 1.0 + test_rng(); idist.setParameter(param); Gauss1D g(meanmap(param), sigmap(param)); const double r = test_rng(); const double x = g.quantile(r); CHECK_CLOSE(x, idist.quantile(r), eps); CHECK_CLOSE(g.density(x), idist.density(x), eps); CHECK_CLOSE(g.cdf(x), idist.cdf(x), eps); } } TEST(distro1DStats_1) { const double eps = 1.0e-7; for (unsigned i=0; i<100; ++i) { const double mean = test_rng(); const double sigma = 0.5 + test_rng(); double m, s, skew, kurt; distro1DStats(Gauss1D(mean, sigma), -10., 11., 100000, &m, &s, &skew, &kurt); CHECK_CLOSE(mean, m, eps); CHECK_CLOSE(sigma, s, eps); CHECK_CLOSE(0.0, skew, eps); CHECK_CLOSE(3.0, kurt, eps); } } TEST(DeltaMixture1D_1) { const double eps = 1.0e-12; const unsigned nPoints = 3; double coords[nPoints] = {0., 1., 2.}; double weights[nPoints] = {1., 3., 2.}; DeltaMixture1D dmix(5.0, 1.0, coords, weights, nPoints); io_test(dmix); CHECK_CLOSE(0.6666666666666666, dmix.cdf(6.0), eps); CHECK_CLOSE(0.3333333333333333, dmix.exceedance(6.0), eps); MersenneTwister rng; int counts[nPoints] = {0}; for (unsigned i=0; i<6000; ++i) { double rnd; dmix.random(rng, &rnd); CHECK(rnd == 5.0 || rnd == 6.0 || rnd == 7.0); if (rnd == 5.0) ++counts[0]; if (rnd == 6.0) ++counts[1]; if (rnd == 7.0) ++counts[2]; } CHECK(std::abs(counts[0] - 1000) < 200); CHECK(std::abs(counts[2] - 2000) < 300); CHECK_CLOSE(0.5, dmix.integral(6.0, true, 6.0, true), eps); CHECK_CLOSE(0.0, dmix.integral(6.0, false, 6.0, false), eps); CHECK_CLOSE(0.0, dmix.integral(6.0, false, 6.0, true), eps); CHECK_CLOSE(0.0, dmix.integral(6.0, true, 6.0, false), eps); CHECK_CLOSE(1.0, dmix.integral(5.0, true, 7.0, true), eps); CHECK_CLOSE(0.5, dmix.integral(5.0, false, 7.0, false), eps); CHECK_CLOSE(0.8333333333333334, dmix.integral(5.0, false, 7.0, true), eps); CHECK_CLOSE(0.6666666666666667, dmix.integral(5.0, true, 7.0, false), eps); const double expectedMoments[4] = {1.0, 37/6.0, 77/2.0, 1459/6.0}; long double moments[4]; dmix.moments(0, 3, moments); for (unsigned i=0; i<=3; ++i) CHECK_CLOSE(expectedMoments[i], moments[i], eps); const double expectedCMoments[4] = {1.0, 37/6.0, 17/36.0, -2/27.0}; dmix.centralMoments(3, moments); for (unsigned i=0; i<=3; ++i) CHECK_CLOSE(expectedCMoments[i], moments[i], eps); } TEST(DeltaMixture1D_2) { const double eps = 1.0e-12; const unsigned nPoints = 3; double coords[nPoints] = {0., 1., 2.}; double weights[nPoints] = {1., 3., 2.}; DeltaMixture1D dmix(5.0, 2.0, coords, weights, nPoints); io_test(dmix); CHECK_CLOSE(0.6666666666666666, dmix.cdf(7.0), eps); CHECK_CLOSE(0.3333333333333333, dmix.exceedance(7.0), eps); MersenneTwister rng; int counts[nPoints] = {0}; for (unsigned i=0; i<6000; ++i) { double rnd; dmix.random(rng, &rnd); CHECK(rnd == 5.0 || rnd == 7.0 || rnd == 9.0); if (rnd == 5.0) ++counts[0]; if (rnd == 7.0) ++counts[1]; if (rnd == 9.0) ++counts[2]; } CHECK(std::abs(counts[0] - 1000) < 200); CHECK(std::abs(counts[2] - 2000) < 300); CHECK_CLOSE(0.5, dmix.integral(7.0, true, 7.0, true), eps); CHECK_CLOSE(0.0, dmix.integral(7.0, false, 7.0, false), eps); CHECK_CLOSE(0.0, dmix.integral(7.0, false, 7.0, true), eps); CHECK_CLOSE(0.0, dmix.integral(7.0, true, 7.0, false), eps); CHECK_CLOSE(1.0, dmix.integral(5.0, true, 9.0, true), eps); CHECK_CLOSE(0.5, dmix.integral(5.0, false, 9.0, false), eps); CHECK_CLOSE(0.8333333333333334, dmix.integral(5.0, false, 9.0, true), eps); CHECK_CLOSE(0.6666666666666667, dmix.integral(5.0, true, 9.0, false), eps); const double expectedMoments[4] = {1.0, 22/3.0, 167/3.0, 1306/3.0}; long double moments[4]; dmix.moments(0, 3, moments); for (unsigned i=0; i<=3; ++i) CHECK_CLOSE(expectedMoments[i], moments[i], eps); const double expectedCMoments[4] = {1.0, 22/3.0, 17/9.0, -16/27.0}; dmix.centralMoments(3, moments); for (unsigned i=0; i<=3; ++i) CHECK_CLOSE(expectedCMoments[i], moments[i], eps); } TEST(DeltaMixture1D_3) { const unsigned nPoints = 3; double coords[nPoints] = {0., 1., 2.}; double weights[nPoints] = {1., 3., 2.}; DeltaMixture1D dmix1(5.0, 2.0, coords, weights, nPoints); const unsigned nPoints2 = 7; double coords2[nPoints2] = {-1., 0., 1., 1., 2., 2., 3.}; double weights2[nPoints2] = {0., 1., 1., 2., 1., 1., 0.}; DeltaMixture1D dmix2(5.0, 2.0, coords2, weights2, nPoints2); CHECK(dmix1 == dmix2); } TEST(ComparisonDistribution1D) { Gauss1D d1(0, 1); Quadratic1D d2(0.0, 1.0, 0.5, 0.2); CompositeDistribution1D d3(d2, d1); ComparisonDistribution1D d4(d3, d1); for (unsigned i=0; i<100; ++i) { const double x = test_rng(); CHECK_CLOSE(d2.density(x), d4.density(x), 1.0e-10); } standard_test_01(d2, 1.e-12); standard_test_01(d4, 1.e-10); } TEST(ChiSquare) { const double eps = 1.0e-10; const int n = 7; const double norm = pow(2.0,-n/2.0)/Gamma(n/2.0); Gamma1D chisq(0.0, 2.0, n/2.0); for (unsigned i=0; i<100; ++i) { const double x = test_rng()*20; const double ref = norm*pow(x,n/2.0-1)*exp(-x/2); CHECK_CLOSE(ref, chisq.density(x), eps); } } + + TEST(ModulatedDistribution1D) + { + const double eps = 1.0e-12; + + Uniform1D uni(-1.0, 3.0); + Gauss1D gauss(0.2, 0.5); + const AbsDistribution1D& fcn = make_ModulatedDistribution1D( + uni, DensityFunctor1D(gauss)); + standard_test(fcn, 1.0, eps, false); + } } Index: trunk/tests/test_Ntuples.cc =================================================================== --- trunk/tests/test_Ntuples.cc (revision 791) +++ trunk/tests/test_Ntuples.cc (revision 792) @@ -1,689 +1,688 @@ #include #include #include "UnitTest++.h" #include "test_utils.hh" #include "npstat/stat/InMemoryNtuple.hh" #include "npstat/stat/ArchivedNtuple.hh" #include "npstat/stat/NtupleReference.hh" #include "npstat/stat/MultivariateSumsqAccumulator.hh" #include "npstat/stat/MultivariateWeightedSumAccumulator.hh" #include "npstat/stat/NtHistoFill.hh" #include "npstat/stat/NtNtupleFill.hh" #include "npstat/stat/NtRectangularCut.hh" #include "npstat/stat/HistoND.hh" #include "geners/StringArchive.hh" #include "geners/BinaryFileArchive.hh" #define STORE_COLUMNWISE true using namespace npstat; using namespace gs; using namespace std; namespace { class Persistent3 { public: inline explicit Persistent3(int n) : n_(test_rng() > 0.5 ? 2 : 1, n) {} inline bool operator==(const Persistent3& r) const {return n_ == r.n_;} inline bool operator!=(const Persistent3& r) const {return !(*this == r);} inline gs::ClassId classId() const {return gs::ClassId(*this);} inline bool write(std::ostream& os) const { gs::write_pod_vector(os, n_); return !os.bad() && !os.fail(); } static inline const char* classname() {return "npstat::test::Persistent3";} static inline unsigned version() {return 1;} static inline Persistent3* read(const gs::ClassId& id, std::istream& in) { assert(id == gs::ClassId::makeId()); Persistent3* dummy = new Persistent3(0); gs::read_pod_vector(in, &dummy->n_); assert(!(in.bad() || in.fail())); return dummy; } private: Persistent3(); std::vector n_; }; class PassFirstN { public: inline explicit PassFirstN(const unsigned n) - : n_(n), count_(0) {} + : n_(n) {} template - bool operator()(const T*, unsigned long) const + bool operator()(const unsigned long row, const T*, unsigned long) const { - return count_++ < n_; + return row < n_; } private: unsigned long n_; - mutable unsigned long count_; }; struct ConstantWeight { template inline explicit ConstantWeight(const T& value) : c_(value) {} template - inline double operator()(const T*, unsigned long) const + inline double operator()(unsigned long, const T*, unsigned long) const {return c_;} private: double c_; }; void test_ntuple(AbsNtuple& nt) { double buf[3]; for (unsigned i=0; i<1000; ++i) { for (unsigned k=0; k sums; nt.cycleOverRows(sums); for (unsigned icol=0; icol<3; ++icol) CHECK_EQUAL(dsums[icol], sums.sum(icol)); MultivariateSumsqAccumulator sumsqs(sums); nt.cycleOverRows(sumsqs); MultivariateWeightedSumAccumulator sumsw; nt.weightedCycleOverRows(sumsw, ConstantWeight(3.0)); for (unsigned icol=0; icol<3; ++icol) CHECK_CLOSE(1.0e-12, dsums[icol]*3.0, sumsw.sum(icol)); sums.reset(); nt.conditionalCycleOverRows(PassFirstN(100), sums); for (unsigned icol=0; icol<3; ++icol) CHECK_EQUAL(fsums[icol], sums.sum(icol)); CHECK_EQUAL(200UL, nt.conditionalRowCount(PassFirstN(200))); double colbuf[1000]; for (unsigned icol=0; icol<3; ++icol) { nt.columnContents(icol, colbuf, 1000); for (unsigned i=0; i<1000; ++i) CHECK_EQUAL(colbuf[i], nt(i, icol)); } const double ref = nt(1, 2); CHECK_EQUAL(ref, nt.element(1, Column("c"))); CHECK_EQUAL(ref, nt.element(1, 2)); CHECK_EQUAL(ref, nt.element(1, "c")); CHECK_EQUAL(ref, nt.element(1, std::string("c"))); unsigned i=0; const AbsNtuple::column_iterator end = nt.column_end(); for (AbsNtuple::column_iterator it = nt.column_begin("b"); it != end; ++it, ++i) CHECK_EQUAL(nt(i, 1), *it); const double sumb = std::accumulate( nt.column_begin("b"), nt.column_end(), 0.0); CHECK_EQUAL(dsums[1], sumb); i=0; for (AbsNtuple::column_iterator it = nt.column_begin(2); it < end; ++it, ++i) CHECK_EQUAL(nt(i, 2), *it); i=0; double rowsum = 0.0; const AbsNtuple::row_iterator cend = nt.row_end(); for (AbsNtuple::row_iterator it = nt.row_begin(10); it != cend; ++it, ++i) { CHECK_EQUAL(nt(10, i), *it); rowsum += *it; } const double sum10 = std::accumulate( nt.row_begin(10), nt.row_end(), 0.0); CHECK_EQUAL(rowsum, sum10); i=0; for (AbsNtuple::row_iterator it = nt.row_begin(20); it < cend; ++it, ++i) CHECK_EQUAL(nt(20, i), *it); } void test_obj_ntuple(AbsNtuple& nt, const bool inMem) { AbsNtuple* nt_add_0(0); AbsNtuple* nt_add_1(0); if (inMem) { InMemoryNtuple& ntmem( dynamic_cast&>(nt)); nt_add_0 = new InMemoryNtuple(ntmem); nt_add_1 = new InMemoryNtuple(ntmem); } std::vector buf; for (unsigned i=0; i<1000; ++i) { buf.clear(); for (unsigned k=0; k<4; ++k) buf.push_back(Persistent3(static_cast(test_rng()*1000000))); nt.fill(&buf[0], buf.size()); if (inMem) { if (i < 500) nt_add_0->fill(&buf[0], buf.size()); else nt_add_1->fill(&buf[0], buf.size()); } } if (inMem) nt_add_0->append(*nt_add_1); CHECK(nt.nColumns() == 4); CHECK(nt.nRows() == 1000); if (inMem) { CHECK(*nt_add_0 == nt); delete nt_add_1; delete nt_add_0; } for (unsigned i=0; i<1000; ++i) { nt.rowContents(i, &buf[0], buf.size()); for (unsigned k=0; k<4; ++k) CHECK(buf[k] == nt(i, k)); } bool out = false; try { nt.rowContents(1001, &buf[0], buf.size()); } catch (std::out_of_range& e) { out = true; } CHECK(out); std::vector colbuf(1000,Persistent3(0)); for (unsigned icol=0; icol<4; ++icol) { nt.columnContents(icol, &colbuf[0], 1000); for (unsigned i=0; i<1000; ++i) CHECK(colbuf[i] == nt(i, icol)); } const Persistent3 ref(nt(1, 2)); CHECK(ref == nt.element(1, Column("c"))); CHECK(ref == nt.element(1, 2)); CHECK(ref == nt.element(1, "c")); CHECK(ref == nt.element(1, std::string("c"))); unsigned i=0; const AbsNtuple::column_iterator end = nt.column_end(); for (AbsNtuple::column_iterator it = nt.column_begin("b"); it != end; ++it, ++i) CHECK(nt(i, 1) == *it); i=0; for (AbsNtuple::column_iterator it = nt.column_begin(2); it < end; ++it, ++i) CHECK(nt(i, 2) == *it); i=0; const AbsNtuple::row_iterator cend = nt.row_end(); for (AbsNtuple::row_iterator it = nt.row_begin(10); it != cend; ++it, ++i) CHECK(nt(10, i) == *it); i=0; for (AbsNtuple::row_iterator it = nt.row_begin(20); it < cend; ++it, ++i) CHECK(nt(20, i) == *it); } TEST(convenienceFill1) { const char* vars[] = {"a"}; InMemoryNtuple nt(ntupleColumns( vars, sizeof(vars)/sizeof(vars[0]))); nt.fill(1.0); } TEST(convenienceFill2) { const char* vars[] = {"a", "b"}; InMemoryNtuple nt(ntupleColumns( vars, sizeof(vars)/sizeof(vars[0]))); nt.fill(0.0, 1.0); } TEST(convenienceFill3) { const char* vars[] = {"a", "b", "c"}; InMemoryNtuple nt(ntupleColumns( vars, sizeof(vars)/sizeof(vars[0]))); nt.fill(0.0, 1.0, 2.0); } TEST(InMemoryNtuple) { const char* vars[] = {"a", "b", "c"}; InMemoryNtuple nt(ntupleColumns( vars, sizeof(vars)/sizeof(vars[0]))); test_ntuple(nt); std::ostringstream os; nt.classId().write(os); nt.write(os); std::istringstream is(os.str()); gs::ClassId id(is, 1); AbsNtuple* nt2 = InMemoryNtuple::read(id, is); CHECK(*nt2 == nt); delete nt2; InMemoryNtuple nt3(simpleColumnNames(4)); CHECK(nt3.nColumns() == 4); CHECK(nt3.columnName(0) == "c0"); CHECK(nt3.columnName(1) == "c1"); CHECK(nt3.columnName(2) == "c2"); CHECK(nt3.columnName(3) == "c3"); } TEST(ArchivedNtuple) { // StringArchive ar("Test Archive"); BinaryFileArchive ar("archive2", "w+", "ArchivedNtuple test"); ArchivedNtuple nt(ntupleColumns("a", "b", "c"), "dummy", ar, "example ntuple", "my category", 73, STORE_COLUMNWISE); test_ntuple(nt); nt.fill(0.0, 1.0, 2.0); nt.write(); ar.flush(); CPP11_auto_ptr > ptr = NtupleReference >( ar, "example ntuple", "my category").get(0); CHECK(*ptr == nt); double colbuf[1001]; ptr->columnContents("b", colbuf, 1001); for (unsigned i=0; i<1000; ++i) CHECK_EQUAL(colbuf[i], nt(i, 1)); } TEST(InMemoryObjectNtuple) { InMemoryNtuple nt(ntupleColumns("a", "b", "c", "d")); CHECK_EQUAL(2UL, nt.columnNumber("c")); CHECK_EQUAL(4UL, nt.columnNumber("z")); test_obj_ntuple(nt, true); std::ostringstream os; nt.classId().write(os); nt.write(os); std::istringstream is(os.str()); gs::ClassId id(is, 1); AbsNtuple* nt2 = InMemoryNtuple::read(id, is); CHECK(*nt2 == nt); delete nt2; } TEST(ArchivedObjectNtuple) { BinaryFileArchive ar("archive3", "w+", "ArchivedObjectNtuple test"); ArchivedNtuple nt( ntupleColumns("a", "b", "c", "d"), "test", ar, "example obj ntuple", "my category", 127, STORE_COLUMNWISE); test_obj_ntuple(nt, false); nt.write(); ar.flush(); CPP11_auto_ptr > ptr = NtupleReference >( ar, "example obj ntuple", "my category").get(0); CHECK(*ptr == nt); } TEST(NtupleTextDumpInt) { const char* vars[] = {"a", "b", "c"}; const unsigned nvars = sizeof(vars)/sizeof(vars[0]); InMemoryNtuple nt1(ntupleColumns(vars, nvars)); int buf[nvars]; for (unsigned i=0; i<100; ++i) { for (unsigned iv=0; iv(1000*(test_rng()-0.5)); nt1.fill(buf, nvars); } std::ostringstream of; CHECK(dumpNtupleAsText(nt1, of)); std::istringstream is(of.str()); InMemoryNtuple nt2(ntupleColumns(vars, nvars)); CHECK(fillNtupleFromText(is, &nt2)); CHECK(nt2 == nt1); } TEST(NtupleTextDumpDouble) { const char* vars[] = {"a", "b", "c"}; const unsigned nvars = sizeof(vars)/sizeof(vars[0]); InMemoryNtuple nt1(ntupleColumns(vars, nvars)); double buf[nvars]; for (unsigned i=0; i<100; ++i) { for (unsigned iv=0; iv nt2(ntupleColumns(vars, nvars)); CHECK(fillNtupleFromText(is, &nt2, true)); CHECK(nt2 == nt1); } TEST(NtupleTextDumpMulti) { const char* vars[] = {"a", "b", "c"}; const unsigned nvars = sizeof(vars)/sizeof(vars[0]); InMemoryNtuple nt1(ntupleColumns(vars, nvars)); double buf[nvars]; for (unsigned i=0; i<100; ++i) { for (unsigned iv=0; iv nt1_1(ntupleColumns(vars2, nvars2)); int buf2[nvars2]; for (unsigned i=0; i<100; ++i) { for (unsigned iv=0; iv(1000*(test_rng()-0.5)); nt1_1.fill(buf2, nvars2); } CHECK(dumpNtupleAsText(nt1_1, of, true)); std::istringstream is(of.str()); InMemoryNtuple nt2(ntupleColumns(vars, nvars)); CHECK(fillNtupleFromText(is, &nt2, true, 100)); InMemoryNtuple nt2_2(ntupleColumns(vars2, nvars2)); CHECK(fillNtupleFromText(is, &nt2_2, true)); CHECK(nt2 == nt1); CHECK(nt2_2 == nt1_1); } TEST(NtupleProjOntoNtuple) { const char* vars[] = {"a", "b", "c"}; const unsigned nvars = sizeof(vars)/sizeof(vars[0]); InMemoryNtuple nt1(ntupleColumns(vars, nvars)); double buf[nvars]; for (unsigned i=0; i<1000; ++i) { for (unsigned iv=0; iv nt2(ntupleColumns(vars, nvars)); NtNtupleFill > filler( &nt2, std::vector()); nt1.cycleOverRows(filler); CHECK(nt1 == nt2); } TEST(NtupleAppendSameType) { const char* vars[] = {"a", "b", "c"}; const unsigned nvars = sizeof(vars)/sizeof(vars[0]); InMemoryNtuple nt1(ntupleColumns(vars, nvars)); InMemoryNtuple nt2(nt1); InMemoryNtuple nt3(nt1); double buf[nvars]; for (unsigned i=0; i<1000; ++i) { for (unsigned iv=0; iv nt1(ntupleColumns(vars, nvars)); InMemoryNtuple nt2(nt1); InMemoryNtuple nt3(ntupleColumns(vars, nvars)); double buf[nvars]; float fbuf[nvars]; for (unsigned i=0; i<1000; ++i) { for (unsigned iv=0; iv(buf[iv]); } nt1.fill(fbuf, nvars); if (i < 500) nt2.fill(fbuf, nvars); else nt3.fill(buf, nvars); } nt2.append(nt3); CHECK(nt1 == nt2); } TEST(NtupleProjOntoHisto) { const char* vars[] = {"a", "b", "c"}; const unsigned nvars = sizeof(vars)/sizeof(vars[0]); InMemoryNtuple nt1(ntupleColumns(vars, nvars)); double buf[nvars]; for (unsigned i=0; i<1000; ++i) { for (unsigned iv=0; iv axes; axes.push_back(HistoAxis(10, 0.2, 0.9)); axes.push_back(HistoAxis(15, -0.1, 1.3)); HistoND h1(axes); HistoND h2(axes); NtHistoFill > filler(&h1, nt1.columnIndices("c", "b"), nt1.validColumn("a")); nt1.cycleOverRows(filler); const unsigned long nr = nt1.nRows(); for (unsigned long r=0; r,true> filler3(&h1, nt1.columnIndices("c", "b"), nt1.validColumn("a")); nt1.cycleOverRows(filler3); for (unsigned long r=0; r,true> filler4(&h1, nt1.columnIndices("c", "b")); nt1.cycleOverRows(filler4); for (unsigned long r=0; r > filler5(&h1, nt1.columnIndices("c", "b")); nt1.cycleOverRows(filler5); for (unsigned long r=0; r > filler2(&h1, nt1.columnIndices("b", "c")); nt1.cycleOverRows(filler2); for (unsigned long r=0; r cut; cut.addCut(nt1.validColumn("a"), -1.0f, 2.0f). addCut(nt1.validColumn("b"), -3.0f, 3.0f); h1.clear(); nt1.conditionalCycleOverRows(cut, filler2); CHECK(h1 == h2); NtRectangularCut cut2(nt1.validColumn("a"), -1.0f, 0.0f, nt1.validColumn("b"), -3.0f, 0.0f); h1.clear(); nt1.conditionalCycleOverRows(cut2, filler2); CHECK(h1 != h2); ostringstream os; CHECK(cut.classId().write(os)); CHECK(cut.write(os)); std::istringstream is(os.str()); gs::ClassId id(is, 1); NtRectangularCut readback; NtRectangularCut::restore(id, is, &readback); CHECK(readback == cut); NtRectangularCut cut3(cut2.ntupleColumns(), cut2.acceptedBox()); CHECK(cut2 == cut3); NtRectangularCut cut4(nt1.validColumn("a"), 1.0f, 0.0f, nt1.validColumn("b"), -3.0f, 0.0f); NtRectangularCut cut5(cut4.ntupleColumns(), cut4.acceptedBox()); CHECK(cut4 == cut5); NtRectangularCut cut6; cut6.addCut(cut5); CHECK(cut6 == cut5); NtRectangularCut cut7(nt1.validColumn("a"), 1.0f, 0.0f, nt1.validColumn("b"), -3.0f, 0.0f, nt1.validColumn("a"), 3.0f, 4.0f); CHECK(cut7.nUniqueColumns() == 2UL); CHECK(cut7.dim() == 3UL); NtRectangularCut cut8; cut8.addCut(cut5); } } Index: trunk/autom4te.cache/requests =================================================================== --- trunk/autom4te.cache/requests (revision 791) +++ trunk/autom4te.cache/requests (revision 792) @@ -1,283 +1,283 @@ # This file was generated by Autom4te Wed Jan 22 14:03:12 UTC 2020. # It contains the lists of macros which have been traced. # It can be safely removed. @request = ( bless( [ '0', 1, [ '/usr/share/autoconf' ], [ '/usr/share/autoconf/autoconf/autoconf.m4f', '-', '/usr/share/aclocal-1.16/internal/ac-config-macro-dirs.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' ], { - 'AM_SUBST_NOTMAKE' => 1, - 'AC_LIBTOOL_COMPILER_OPTION' => 1, - 'AC_DEPLIBS_CHECK_METHOD' => 1, - 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, - '_LT_AC_TAGCONFIG' => 1, - 'AC_LIBTOOL_OBJDIR' => 1, - 'AC_LIBTOOL_DLOPEN_SELF' => 1, + 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, + 'AM_SET_LEADING_DOT' => 1, + '_AM_IF_OPTION' => 1, + 'AC_LIBTOOL_F77' => 1, + 'AC_LIBTOOL_PICMODE' => 1, + '_LT_AC_PROG_ECHO_BACKSLASH' => 1, + '_PKG_SHORT_ERRORS_SUPPORTED' => 1, + 'AM_MISSING_PROG' => 1, + '_LT_PATH_TOOL_PREFIX' => 1, + 'AC_LTDL_OBJDIR' => 1, + 'LT_PROG_GCJ' => 1, + 'AM_MAKE_INCLUDE' => 1, + '_LT_CC_BASENAME' => 1, + 'PKG_CHECK_MODULES_STATIC' => 1, + 'AM_PROG_INSTALL_STRIP' => 1, + 'AC_LTDL_PREOPEN' => 1, + 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, + 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, + '_LT_PROG_LTMAIN' => 1, + 'AM_RUN_LOG' => 1, + '_LT_PREPARE_SED_QUOTE_VARS' => 1, + '_LT_AC_LANG_GCJ_CONFIG' => 1, + '_LT_COMPILER_OPTION' => 1, + '_LT_AC_PROG_CXXCPP' => 1, + 'AC_PROG_LD_RELOAD_FLAG' => 1, 'LT_AC_PROG_RC' => 1, - 'AC_PROG_EGREP' => 1, - 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, - 'LT_INIT' => 1, - 'AM_PROG_NM' => 1, + '_LT_COMPILER_BOILERPLATE' => 1, + 'AC_LIBTOOL_FC' => 1, + 'AC_CHECK_LIBM' => 1, 'AM_MISSING_HAS_RUN' => 1, - '_LT_AC_TRY_DLOPEN_SELF' => 1, - 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, - '_AM_DEPENDENCIES' => 1, - 'AC_DISABLE_STATIC' => 1, - 'AM_EXTRA_RECURSIVE_TARGETS' => 1, - 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, - 'AM_AUTOMAKE_VERSION' => 1, - 'AC_ENABLE_FAST_INSTALL' => 1, - 'm4_pattern_allow' => 1, - 'LT_PROG_RC' => 1, - 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, - '_AM_PROG_TAR' => 1, - 'AC_CONFIG_MACRO_DIR' => 1, + 'AM_PROG_LIBTOOL' => 1, + 'AC_LIBTOOL_CXX' => 1, + 'AM_ENABLE_STATIC' => 1, + 'LTSUGAR_VERSION' => 1, 'LTVERSION_VERSION' => 1, - '_LT_REQUIRED_DARWIN_CHECKS' => 1, - 'AM_PROG_CC_C_O' => 1, - '_LT_AC_LANG_F77' => 1, - 'm4_pattern_forbid' => 1, - 'AC_ENABLE_SHARED' => 1, + 'AM_SUBST_NOTMAKE' => 1, + 'AC_PROG_LIBTOOL' => 1, + 'AM_SILENT_RULES' => 1, + 'AC_ENABLE_STATIC' => 1, + 'AM_PROG_INSTALL_SH' => 1, + 'AM_PROG_NM' => 1, + 'AC_PROG_NM' => 1, + 'AU_DEFUN' => 1, + 'PKG_INSTALLDIR' => 1, + '_AM_SET_OPTIONS' => 1, 'LT_LANG' => 1, - 'LT_OUTPUT' => 1, + 'AC_CONFIG_MACRO_DIR' => 1, + 'm4_pattern_forbid' => 1, + 'AM_SANITY_CHECK' => 1, + '_LT_AC_LANG_GCJ' => 1, + 'AC_LIBTOOL_RC' => 1, + 'AC_DISABLE_SHARED' => 1, + 'AC_PROG_LD_GNU' => 1, + 'AM_DISABLE_SHARED' => 1, + 'PKG_CHECK_EXISTS' => 1, + 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, + 'AM_PROG_CC_C_O' => 1, + 'AC_PROG_EGREP' => 1, + '_LT_AC_TRY_DLOPEN_SELF' => 1, + '_LT_LINKER_BOILERPLATE' => 1, + 'LT_PATH_NM' => 1, + '_LT_AC_TAGCONFIG' => 1, '_LT_LINKER_OPTION' => 1, - 'AM_CONDITIONAL' => 1, - 'AC_CHECK_LIBM' => 1, - '_LT_AC_CHECK_DLFCN' => 1, - 'AC_LIBTOOL_GCJ' => 1, - 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, - 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, - 'AC_DISABLE_FAST_INSTALL' => 1, - '_LT_PROG_ECHO_BACKSLASH' => 1, - 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, - 'LT_CMD_MAX_LEN' => 1, - '_LT_AC_SYS_COMPILER' => 1, - '_LT_WITH_SYSROOT' => 1, - 'LT_SYS_DLOPEN_SELF' => 1, - '_LT_AC_LANG_RC_CONFIG' => 1, - 'AC_ENABLE_STATIC' => 1, - 'PKG_CHECK_MODULES_STATIC' => 1, - 'AM_MAKE_INCLUDE' => 1, - '_AC_AM_CONFIG_HEADER_HOOK' => 1, + 'LT_LIB_M' => 1, + '_AM_CONFIG_MACRO_DIRS' => 1, + 'include' => 1, '_AC_PROG_LIBTOOL' => 1, - '_LT_CC_BASENAME' => 1, - 'PKG_CHECK_MODULES' => 1, - '_LT_PROG_F77' => 1, + '_LT_PROG_FC' => 1, + '_LT_AC_LOCK' => 1, + 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, + '_AM_DEPENDENCIES' => 1, + 'AC_ENABLE_FAST_INSTALL' => 1, + 'AM_AUX_DIR_EXPAND' => 1, + 'AC_LIBTOOL_LANG_C_CONFIG' => 1, + 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, 'AC_LIBTOOL_SETUP' => 1, - 'AC_LIBTOOL_LINKER_OPTION' => 1, - 'AM_DEP_TRACK' => 1, - 'AM_PROG_LD' => 1, - 'AM_SET_DEPDIR' => 1, - 'AU_DEFUN' => 1, - 'AM_PROG_LIBTOOL' => 1, - '_LT_COMPILER_OPTION' => 1, - 'AC_LTDL_OBJDIR' => 1, - 'AC_LIBTOOL_FC' => 1, - 'PKG_PROG_PKG_CONFIG' => 1, - 'AM_DISABLE_SHARED' => 1, + '_AM_SUBST_NOTMAKE' => 1, + '_AM_PROG_CC_C_O' => 1, + '_LT_AC_LANG_RC_CONFIG' => 1, + 'AC_LTDL_ENABLE_INSTALL' => 1, + 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, + '_LT_AC_LANG_F77' => 1, 'LT_PROG_GO' => 1, - '_AM_AUTOCONF_VERSION' => 1, + '_AM_PROG_TAR' => 1, '_LT_AC_SYS_LIBPATH_AIX' => 1, - '_PKG_SHORT_ERRORS_SUPPORTED' => 1, '_LT_AC_LANG_CXX' => 1, - '_LT_PROG_FC' => 1, - '_LT_DLL_DEF_P' => 1, - '_LT_AC_LANG_GCJ' => 1, - 'LT_PROG_GCJ' => 1, - 'include' => 1, - 'AM_PROG_INSTALL_SH' => 1, - 'AM_SET_LEADING_DOT' => 1, - 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, - '_AM_SUBST_NOTMAKE' => 1, - 'PKG_NOARCH_INSTALLDIR' => 1, - '_LT_PATH_TOOL_PREFIX' => 1, - 'AC_CONFIG_MACRO_DIR_TRACE' => 1, - 'LTSUGAR_VERSION' => 1, - 'AC_LIBTOOL_F77' => 1, - 'AM_MISSING_PROG' => 1, - 'LTOBSOLETE_VERSION' => 1, - 'AM_DISABLE_STATIC' => 1, - 'LT_SUPPORTED_TAG' => 1, - 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, - '_LT_PREPARE_SED_QUOTE_VARS' => 1, - '_LT_AC_LANG_F77_CONFIG' => 1, - 'LT_AC_PROG_GCJ' => 1, - 'AC_PATH_MAGIC' => 1, - 'LT_AC_PROG_SED' => 1, - 'AC_PROG_NM' => 1, - '_LT_AC_LOCK' => 1, - '_LT_LINKER_BOILERPLATE' => 1, - 'AM_PROG_INSTALL_STRIP' => 1, - 'LTOPTIONS_VERSION' => 1, - '_LT_AC_PROG_ECHO_BACKSLASH' => 1, - 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, - '_AM_CONFIG_MACRO_DIRS' => 1, - 'AC_LIBTOOL_WIN32_DLL' => 1, + 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, + 'PKG_PROG_PKG_CONFIG' => 1, + 'AM_SET_DEPDIR' => 1, 'LT_PATH_LD' => 1, - 'LT_LIB_M' => 1, - '_AM_MANGLE_OPTION' => 1, - 'AC_LIBTOOL_RC' => 1, - '_LT_AC_LANG_C_CONFIG' => 1, - 'AM_ENABLE_SHARED' => 1, - 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, - '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, - 'AC_LIBTOOL_CXX' => 1, - 'LT_AC_PROG_EGREP' => 1, 'PKG_CHECK_VAR' => 1, - 'AC_PROG_LD_GNU' => 1, - 'PKG_INSTALLDIR' => 1, - 'AM_SANITY_CHECK' => 1, - '_AM_IF_OPTION' => 1, - '_LT_AC_SHELL_INIT' => 1, - 'AM_INIT_AUTOMAKE' => 1, - 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, - 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, + 'AM_EXTRA_RECURSIVE_TARGETS' => 1, + 'AC_DEPLIBS_CHECK_METHOD' => 1, + 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, + 'AC_PATH_TOOL_PREFIX' => 1, + 'LT_INIT' => 1, + 'LT_CMD_MAX_LEN' => 1, + 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + 'AM_DEP_TRACK' => 1, + 'AC_LIBTOOL_COMPILER_OPTION' => 1, + 'LTOBSOLETE_VERSION' => 1, + '_AM_SET_OPTION' => 1, + 'AC_DISABLE_FAST_INSTALL' => 1, + 'PKG_NOARCH_INSTALLDIR' => 1, + 'LT_AC_PROG_SED' => 1, '_m4_warn' => 1, + 'AM_AUTOMAKE_VERSION' => 1, 'AC_PROG_LD' => 1, - 'AC_PROG_LIBTOOL' => 1, - '_LT_AC_PROG_CXXCPP' => 1, + '_LT_PROG_F77' => 1, + '_LT_WITH_SYSROOT' => 1, + 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, + 'AM_CONDITIONAL' => 1, + 'AM_PROG_LD' => 1, + 'AC_LIBTOOL_OBJDIR' => 1, + 'LT_OUTPUT' => 1, + '_LT_AC_LANG_C_CONFIG' => 1, + '_LT_PROG_ECHO_BACKSLASH' => 1, + 'AC_LIBTOOL_GCJ' => 1, + '_AM_MANGLE_OPTION' => 1, + 'AM_INIT_AUTOMAKE' => 1, + 'LTOPTIONS_VERSION' => 1, 'AC_LIBTOOL_DLOPEN' => 1, - 'AC_DEFUN' => 1, - 'AC_PROG_LD_RELOAD_FLAG' => 1, - 'AC_LIBTOOL_PICMODE' => 1, - 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, - 'AM_ENABLE_STATIC' => 1, - '_AM_PROG_CC_C_O' => 1, - 'AC_DEFUN_ONCE' => 1, - 'AM_SILENT_RULES' => 1, - '_AM_SET_OPTION' => 1, - '_LT_AC_LANG_GCJ_CONFIG' => 1, - '_LT_COMPILER_BOILERPLATE' => 1, - 'AC_LTDL_PREOPEN' => 1, + '_LT_AC_TAGVAR' => 1, + 'AC_PATH_MAGIC' => 1, + 'LT_AC_PROG_EGREP' => 1, + 'AC_LIBTOOL_WIN32_DLL' => 1, + 'AC_DISABLE_STATIC' => 1, + 'LT_AC_PROG_GCJ' => 1, + 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, + 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, + 'AM_DISABLE_STATIC' => 1, + 'AC_CONFIG_MACRO_DIR_TRACE' => 1, + '_LT_AC_FILE_LTDLL_C' => 1, + '_LT_AC_SYS_COMPILER' => 1, '_LT_PROG_CXX' => 1, - 'AC_LTDL_ENABLE_INSTALL' => 1, + 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, + 'AC_DEFUN' => 1, + 'PKG_CHECK_MODULES' => 1, + 'AC_LIBTOOL_DLOPEN_SELF' => 1, + '_LT_REQUIRED_DARWIN_CHECKS' => 1, + 'AC_ENABLE_SHARED' => 1, + 'm4_pattern_allow' => 1, + 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, + 'LT_PROG_RC' => 1, '_LT_AC_LANG_CXX_CONFIG' => 1, + '_LT_AC_CHECK_DLFCN' => 1, 'AC_LIBTOOL_CONFIG' => 1, - 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, - 'AC_PATH_TOOL_PREFIX' => 1, + 'AM_ENABLE_SHARED' => 1, 'AC_LIBTOOL_PROG_CC_C_O' => 1, - '_LT_PROG_LTMAIN' => 1, - 'PKG_CHECK_EXISTS' => 1, - 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, - 'LT_PATH_NM' => 1, - 'AM_AUX_DIR_EXPAND' => 1, - 'AC_LIBTOOL_LANG_C_CONFIG' => 1, - '_LT_AC_FILE_LTDLL_C' => 1, - 'AC_DISABLE_SHARED' => 1, + '_LT_AC_LANG_F77_CONFIG' => 1, + 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, + '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + 'AC_DEFUN_ONCE' => 1, + '_LT_DLL_DEF_P' => 1, + 'LT_SYS_DLOPEN_SELF' => 1, + '_AC_AM_CONFIG_HEADER_HOOK' => 1, + 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, + 'LT_SUPPORTED_TAG' => 1, + '_AM_AUTOCONF_VERSION' => 1, 'm4_include' => 1, - 'AM_RUN_LOG' => 1, - '_LT_AC_TAGVAR' => 1, - '_AM_SET_OPTIONS' => 1 + '_LT_AC_SHELL_INIT' => 1, + 'AC_LIBTOOL_LINKER_OPTION' => 1 } ], 'Autom4te::Request' ), bless( [ '1', 1, [ '/usr/share/autoconf' ], [ '/usr/share/autoconf/autoconf/autoconf.m4f', 'aclocal.m4', 'configure.ac' ], { - 'AC_REQUIRE_AUX_FILE' => 1, - 'AC_CANONICAL_TARGET' => 1, - 'AM_PROG_MKDIR_P' => 1, - 'AC_CANONICAL_HOST' => 1, - 'AM_PROG_AR' => 1, - 'AC_FC_FREEFORM' => 1, - 'include' => 1, + 'AM_MAINTAINER_MODE' => 1, 'AM_PROG_FC_C_O' => 1, - 'AC_CANONICAL_BUILD' => 1, - '_AM_SUBST_NOTMAKE' => 1, - 'm4_include' => 1, - 'AM_ENABLE_MULTILIB' => 1, - 'AM_PROG_CXX_C_O' => 1, - 'AC_CONFIG_HEADERS' => 1, - 'AM_PROG_MOC' => 1, - 'AC_DEFINE_TRACE_LITERAL' => 1, - 'AM_SILENT_RULES' => 1, 'AM_PROG_LIBTOOL' => 1, - '_AM_COND_IF' => 1, - 'AC_FC_PP_DEFINE' => 1, - 'AC_FC_PP_SRCEXT' => 1, - 'AM_PATH_GUILE' => 1, + 'AM_CONDITIONAL' => 1, + 'AM_PROG_AR' => 1, 'AC_PROG_LIBTOOL' => 1, - 'AC_CONFIG_AUX_DIR' => 1, - 'AM_XGETTEXT_OPTION' => 1, - 'AM_INIT_AUTOMAKE' => 1, + 'AM_SILENT_RULES' => 1, + 'AM_PROG_MOC' => 1, + 'AC_CONFIG_FILES' => 1, + 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, '_m4_warn' => 1, - 'AC_CONFIG_LINKS' => 1, - 'AC_CANONICAL_SYSTEM' => 1, - 'm4_sinclude' => 1, - 'AC_SUBST_TRACE' => 1, + 'AM_NLS' => 1, + 'AM_AUTOMAKE_VERSION' => 1, + 'LT_INIT' => 1, + 'AC_FC_PP_DEFINE' => 1, + 'AM_ENABLE_MULTILIB' => 1, + 'AM_PROG_MKDIR_P' => 1, + 'AM_EXTRA_RECURSIVE_TARGETS' => 1, + 'AC_CANONICAL_BUILD' => 1, 'AC_SUBST' => 1, + '_AM_COND_ENDIF' => 1, + 'AC_CANONICAL_TARGET' => 1, '_AM_COND_ELSE' => 1, - 'AM_MAINTAINER_MODE' => 1, - 'AC_FC_SRCEXT' => 1, - 'AM_CONDITIONAL' => 1, - 'sinclude' => 1, - 'AC_INIT' => 1, - 'AM_PROG_CC_C_O' => 1, 'AC_LIBSOURCE' => 1, + 'AC_DEFINE_TRACE_LITERAL' => 1, + 'AC_CANONICAL_SYSTEM' => 1, + 'AC_REQUIRE_AUX_FILE' => 1, + 'AM_GNU_GETTEXT' => 1, + 'AC_SUBST_TRACE' => 1, 'AM_PROG_F77_C_O' => 1, - 'm4_pattern_forbid' => 1, - '_AM_COND_ENDIF' => 1, + 'AC_CONFIG_SUBDIRS' => 1, + 'AM_PATH_GUILE' => 1, + 'sinclude' => 1, + 'AC_INIT' => 1, 'AM_MAKEFILE_INCLUDE' => 1, - 'LT_CONFIG_LTDL_DIR' => 1, - 'AM_EXTRA_RECURSIVE_TARGETS' => 1, - 'AH_OUTPUT' => 1, - 'AM_AUTOMAKE_VERSION' => 1, - 'AM_NLS' => 1, - '_AM_MAKEFILE_INCLUDE' => 1, 'AM_POT_TOOLS' => 1, + 'AC_CANONICAL_HOST' => 1, + 'm4_include' => 1, + 'LT_SUPPORTED_TAG' => 1, + '_AM_COND_IF' => 1, + '_AM_SUBST_NOTMAKE' => 1, + 'AC_FC_FREEFORM' => 1, + 'AC_CONFIG_AUX_DIR' => 1, 'm4_pattern_allow' => 1, - 'AC_CONFIG_LIBOBJ_DIR' => 1, - 'AC_CONFIG_SUBDIRS' => 1, - 'LT_INIT' => 1, - 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, - 'AC_CONFIG_FILES' => 1, - 'AM_GNU_GETTEXT' => 1, '_LT_AC_TAGCONFIG' => 1, - 'LT_SUPPORTED_TAG' => 1 + 'AC_CONFIG_HEADERS' => 1, + 'AC_CONFIG_LINKS' => 1, + 'include' => 1, + 'AC_FC_PP_SRCEXT' => 1, + 'AC_FC_SRCEXT' => 1, + 'AM_PROG_CC_C_O' => 1, + 'LT_CONFIG_LTDL_DIR' => 1, + 'm4_sinclude' => 1, + '_AM_MAKEFILE_INCLUDE' => 1, + 'AM_XGETTEXT_OPTION' => 1, + 'm4_pattern_forbid' => 1, + 'AH_OUTPUT' => 1, + 'AC_CONFIG_LIBOBJ_DIR' => 1, + 'AM_INIT_AUTOMAKE' => 1, + 'AM_PROG_CXX_C_O' => 1 } ], 'Autom4te::Request' ) ); Index: trunk/npstat/nm/GaussLegendreQuadrature.icc =================================================================== --- trunk/npstat/nm/GaussLegendreQuadrature.icc (revision 791) +++ trunk/npstat/nm/GaussLegendreQuadrature.icc (revision 792) @@ -1,82 +1,87 @@ #include #include #include namespace npstat { template inline long double GaussLegendreQuadrature::integrate( const Functor1& function, const long double left, const long double right) const { if (buf_.size() != npoints_) buf_.resize(npoints_); std::pair* results = &buf_[0]; const unsigned halfpoints = npoints_/2; const long double midpoint = (left + right)/2.0L; const long double unit = (right - left)/2.0L; FcnArg a; long double v; for (unsigned i=0; i(midpoint + unit*a_[i]); v = w_[i]*static_cast(function(a)); results[2*i].first = std::abs(v); results[2*i].second = v; a = static_cast(midpoint - unit*a_[i]); v = w_[i]*static_cast(function(a)); results[2*i+1].first = std::abs(v); results[2*i+1].second = v; } std::sort(buf_.begin(), buf_.end()); v = 0.0L; for (unsigned i=0; i inline long double GaussLegendreQuadrature::integrate( const Functor1& function, const long double left, const long double right, const unsigned nsplit) const { if (!nsplit) throw std::invalid_argument( "In npstat::GaussLegendreQuadrature::integrate: " "number of subintervals must be positive"); - const long double step = (right - left)/nsplit; - long double acc = 0.0L; - long double b = left; - for (unsigned i=0; i inline std::vector > GaussLegendreQuadrature::weightedIntegrationPoints( const Functor& weight, const long double left, const long double right) const { typedef std::pair DDPair; std::vector result; result.reserve(npoints_); const unsigned halfpoints = npoints_/2; const long double midpoint = (left + right)/2.0L; const long double unit = (right - left)/2.0L; for (unsigned i=0; i #include +#include #include #include // The following include is needed for std::sqrt(lapack_double) #include "npstat/nm/lapack_double.h" namespace npstat { /** Base class for a functor that takes no arguments */ template struct Functor0 { typedef Result result_type; inline virtual ~Functor0() {} virtual Result operator()() const = 0; }; /** Base class for a functor that takes a single argument */ template struct Functor1 { typedef Result result_type; typedef Arg1 first_argument_type; inline virtual ~Functor1() {} virtual Result operator()(const Arg1&) const = 0; }; /** Base class for a functor that takes two arguments */ template struct Functor2 { typedef Result result_type; typedef Arg1 first_argument_type; typedef Arg2 second_argument_type; inline virtual ~Functor2() {} virtual Result operator()(const Arg1&, const Arg2&) const = 0; }; /** Base class for a functor that takes three arguments */ template struct Functor3 { typedef Result result_type; typedef Arg1 first_argument_type; typedef Arg2 second_argument_type; typedef Arg3 third_argument_type; inline virtual ~Functor3() {} virtual Result operator()(const Arg1&,const Arg2&,const Arg3&) const=0; }; /** Base class for a functor that returns a pair */ template struct PairFunctor { typedef std::pair result_type; typedef Numeric first_argument_type; inline virtual ~PairFunctor() {} virtual std::pair operator()(const Numeric&) const=0; }; /** A simple functor which returns a copy of its argument */ template struct Same : public Functor1 { inline virtual ~Same() {} inline Result operator()(const Result& a) const {return a;} inline bool operator==(const Same&) const {return true;} inline bool operator!=(const Same&) const {return false;} }; /** A simple functor which adds a constant to its argument */ template class Shift : public Functor1 { public: inline Shift(const Result& v) : value_(v) {} inline virtual ~Shift() {} inline Result operator()(const Result& a) const {return a + value_;} inline bool operator==(const Shift& r) const {return value_ == r.value_;} inline bool operator!=(const Shift& r) const {return !(*this == r);} private: Shift(); Result value_; }; /** A simple functor which returns a reference to its argument */ template struct SameRef : public Functor1 { inline virtual ~SameRef() {} inline const Result& operator()(const Result& a) const {return a;} inline bool operator==(const SameRef&) const {return true;} inline bool operator!=(const SameRef&) const {return false;} }; /** // Simple functor which ignores is arguments and instead // builds the result using the default constructor of the result type */ template struct DefaultConstructor0 : public Functor0 { inline virtual ~DefaultConstructor0() {} inline Result operator()() const {return Result();} inline bool operator==(const DefaultConstructor0&) const {return true;} inline bool operator!=(const DefaultConstructor0&) const {return false;} }; /** // Simple functor which ignores is arguments and instead // builds the result using the default constructor of the result type */ template struct DefaultConstructor1 : public Functor1 { inline virtual ~DefaultConstructor1() {} inline Result operator()(const Arg1&) const {return Result();} inline bool operator==(const DefaultConstructor1&) const {return true;} inline bool operator!=(const DefaultConstructor1&) const {return false;} }; /** // Simple functor which ignores is arguments and instead // builds the result using the default constructor of the result type */ template struct DefaultConstructor2 : public Functor2 { inline virtual ~DefaultConstructor2() {} inline Result operator()(const Arg1&, const Arg2&) const {return Result();} inline bool operator==(const DefaultConstructor2&) const {return true;} inline bool operator!=(const DefaultConstructor2&) const {return false;} }; /** // Simple functor which ignores is arguments and instead // builds the result using the default constructor of the result type */ template struct DefaultConstructor3 : public Functor3 { inline virtual ~DefaultConstructor3() {} inline Result operator()(const Arg1&, const Arg2&, const Arg3&) const {return Result();} inline bool operator==(const DefaultConstructor3&) const {return true;} inline bool operator!=(const DefaultConstructor3&) const {return false;} }; /** Simple functor which returns a constant */ template class ConstValue0 : public Functor0 { public: inline ConstValue0(const Result& v) : value_(v) {} inline virtual ~ConstValue0() {} inline Result operator()() const {return value_;} inline bool operator==(const ConstValue0& r) const {return value_ == r.value_;} inline bool operator!=(const ConstValue0& r) const {return !(*this == r);} private: ConstValue0(); Result value_; }; /** Simple functor which returns a constant */ template class ConstValue1 : public Functor1 { public: inline ConstValue1(const Result& v) : value_(v) {} inline virtual ~ConstValue1() {} inline Result operator()(const Arg1&) const {return value_;} inline bool operator==(const ConstValue1& r) const {return value_ == r.value_;} inline bool operator!=(const ConstValue1& r) const {return !(*this == r);} private: ConstValue1(); Result value_; }; /** Simple functor which returns a constant */ template class ConstValue2 : public Functor2 { public: inline ConstValue2(const Result& v) : value_(v) {} inline virtual ~ConstValue2() {} inline Result operator()(const Arg1&, const Arg2&) const {return value_;} inline bool operator==(const ConstValue2& r) const {return value_ == r.value_;} inline bool operator!=(const ConstValue2& r) const {return !(*this == r);} private: ConstValue2(); Result value_; }; /** Simple functor which returns a constant */ template class ConstValue3 : public Functor3 { public: inline ConstValue3(const Result& v) : value_(v) {} inline virtual ~ConstValue3() {} inline Result operator()(const Arg1&, const Arg2&, const Arg3&) const {return value_;} inline bool operator==(const ConstValue3& r) const {return value_ == r.value_;} inline bool operator!=(const ConstValue3& r) const {return !(*this == r);} private: ConstValue3(); Result value_; }; /** // Sometimes it becomes necessary to perform an explicit cast for proper // overload resolution of a converting copy constructor */ template struct CastingCopyConstructor : public Functor1 { inline virtual ~CastingCopyConstructor() {} inline Result operator()(const Arg1& a) const {return Result(static_cast(a));} inline bool operator==(const CastingCopyConstructor&) const {return true;} inline bool operator!=(const CastingCopyConstructor&) const {return false;} }; /** // Adaptation for using functors without arguments with simple // cmath-style functions */ template struct FcnFunctor0 : public Functor0 { inline explicit FcnFunctor0(Result (*fcn)()) : fcn_(fcn) {} inline virtual ~FcnFunctor0() {} inline Result operator()() const {return fcn_();} inline bool operator==(const FcnFunctor0& r) const {return fcn_ == r.fcn_;} inline bool operator!=(const FcnFunctor0& r) const {return !(*this == r);} private: FcnFunctor0(); Result (*fcn_)(); }; /** // Adaptation for using single-argument functors with simple // cmath-style functions */ template struct FcnFunctor1 : public Functor1 { inline explicit FcnFunctor1(Result (*fcn)(Arg1)) : fcn_(fcn) {} inline virtual ~FcnFunctor1() {} inline Result operator()(const Arg1& a) const {return fcn_(a);} inline bool operator==(const FcnFunctor1& r) const {return fcn_ == r.fcn_;} inline bool operator!=(const FcnFunctor1& r) const {return !(*this == r);} private: FcnFunctor1(); Result (*fcn_)(Arg1); }; /** // Adaptation for using two-argument functors with simple // cmath-style functions */ template struct FcnFunctor2 : public Functor2 { inline explicit FcnFunctor2(Result (*fcn)(Arg1, Arg2)) : fcn_(fcn) {} inline virtual ~FcnFunctor2() {} inline Result operator()(const Arg1& x, const Arg2& y) const {return fcn_(x, y);} inline bool operator==(const FcnFunctor2& r) const {return fcn_ == r.fcn_;} inline bool operator!=(const FcnFunctor2& r) const {return !(*this == r);} private: FcnFunctor2(); Result (*fcn_)(Arg1, Arg2); }; /** // Adaptation for using three-argument functors with simple // cmath-style functions */ template struct FcnFunctor3 : public Functor3 { inline explicit FcnFunctor3(Result (*fcn)(Arg1,Arg2,Arg3)):fcn_(fcn) {} inline virtual ~FcnFunctor3() {} inline Result operator()(const Arg1&x,const Arg2&y,const Arg3&z) const {return fcn_(x, y, z);} inline bool operator==(const FcnFunctor3& r) const {return fcn_ == r.fcn_;} inline bool operator!=(const FcnFunctor3& r) const {return !(*this == r);} private: FcnFunctor3(); Result (*fcn_)(Arg1, Arg2, Arg3); }; /** // Functor which extracts a given element from a random access linear // container without bounds checking */ template struct Element1D : public Functor1 { inline explicit Element1D(const unsigned long index) : idx(index) {} inline virtual ~Element1D() {} inline Result operator()(const Container& c) const {return c[idx];} inline bool operator==(const Element1D& r) const {return idx == r.idx;} inline bool operator!=(const Element1D& r) const {return !(*this == r);} private: Element1D(); unsigned long idx; }; /** // Functor which extracts a given element from a random access linear // container with bounds checking */ template struct Element1DAt : public Functor1 { inline explicit Element1DAt(const unsigned long index) : idx(index) {} inline virtual ~Element1DAt() {} inline Result operator()(const Container& c) const {return c.at(idx);} inline bool operator==(const Element1DAt& r) const {return idx == r.idx;} inline bool operator!=(const Element1DAt& r) const {return !(*this == r);} private: Element1DAt(); unsigned long idx; }; /** // Left assignment functor. Works just like normal binary // assignment operator in places where functor is needed. */ template struct assign_left { inline T1& operator()(T1& left, const T2& right) const {return left = right;} }; /** // Right assignment functor. Reverses the assignment direction // in comparison with the normal binary assignment operator. */ template struct assign_right { inline T2& operator()(const T1& left, T2& right) const {return right = left;} }; /** In-place addition on the left side */ template struct pluseq_left { inline T1& operator()(T1& left, const T2& right) const {return left += right;} }; /** In-place addition on the right side */ template struct pluseq_right { inline T2& operator()(const T1& left, T2& right) const {return right += left;} }; /** // In-place addition on the left side preceded by // multiplication of the right argument by a double */ template struct addmul_left { inline explicit addmul_left(const double weight) : w_(weight) {} inline T1& operator()(T1& left, const T2& right) const {return left += w_*right;} private: addmul_left(); double w_; }; /** // In-place addition on the right side preceded by // multiplication of the left argument by a double */ template struct addmul_right { inline explicit addmul_right(const double weight) : w_(weight) {} inline T1& operator()(T1& left, const T2& right) const {return right += w_*left;} private: addmul_right(); double w_; }; /** In-place subtraction on the left side */ template struct minuseq_left { inline T1& operator()(T1& left, const T2& right) const {return left -= right;} }; /** In-place subtraction on the right side */ template struct minuseq_right { inline T2& operator()(const T1& left, T2& right) const {return right -= left;} }; /** In-place multiplication on the left side */ template struct multeq_left { inline T1& operator()(T1& left, const T2& right) const {return left *= right;} }; /** In-place multiplication on the right side */ template struct multeq_right { inline T2& operator()(const T1& left, T2& right) const {return right *= left;} }; /** In-place division on the left side without checking for division by 0 */ template struct diveq_left { inline T1& operator()(T1& left, const T2& right) const {return left /= right;} }; /** In-place division on the right side without checking for division by 0 */ template struct diveq_right { inline T2& operator()(const T1& left, T2& right) const {return right /= left;} }; /** In-place division on the left side. Allow 0/0 = const. */ template struct diveq_left_0by0isC { inline diveq_left_0by0isC() : C(T1()), leftZero(T1()), rightZero(T2()) {} inline explicit diveq_left_0by0isC(const T1& value) : C(value), leftZero(T1()), rightZero(T2()) {} inline T1& operator()(T1& left, const T2& right) const { if (right == rightZero) if (left == leftZero) { left = C; return left; } return left /= right; } private: T1 C; T1 leftZero; T2 rightZero; }; /** In-place division on the right side. Allow 0/0 = const. */ template struct diveq_right_0by0isC { inline diveq_right_0by0isC() : C(T2()), leftZero(T1()), rightZero(T2()) {} inline explicit diveq_right_0by0isC(const T2& value) : C(value), leftZero(T1()), rightZero(T2()) {} inline T2& operator()(const T1& left, T2& right) const { if (left == leftZero) if (right == rightZero) { right = C; return right; } return right /= left; } private: T2 C; T1 leftZero; T2 rightZero; }; /** Left assignment functor preceded by a static cast */ template struct scast_assign_left { inline T1& operator()(T1& left, const T2& right) const {return left = static_cast(right);} }; /** Right assignment functor preceded by a static cast */ template struct scast_assign_right { inline T2& operator()(const T1& left, T2& right) const {return right = static_cast(left);} }; /** In-place addition on the left side preceded by a static cast */ template struct scast_pluseq_left { inline T1& operator()(T1& left, const T2& right) const {return left += static_cast(right);} }; /** In-place addition on the right side preceded by a static cast */ template struct scast_pluseq_right { inline T2& operator()(const T1& left, T2& right) const {return right += static_cast(left);} }; /** In-place subtraction on the left side preceded by a static cast */ template struct scast_minuseq_left { inline T1& operator()(T1& left, const T2& right) const {return left -= static_cast(right);} }; /** In-place subtraction on the right side preceded by a static cast */ template struct scast_minuseq_right { inline T2& operator()(const T1& left, T2& right) const {return right -= static_cast(left);} }; /** Square root functor */ template struct SquareRoot : public Functor1 { inline virtual ~SquareRoot() {} inline virtual T1 operator()(const T1& x) const { static const T1 zero = static_cast(0); if (!(x >= zero)) throw std::domain_error( "In npstat::SquareRoot::operator(): " "argument must be non-negative"); return std::sqrt(x); } }; /** Inverse square root functor */ template struct InverseSquareRoot : public Functor1 { inline virtual ~InverseSquareRoot() {} inline virtual T1 operator()(const T1& x) const { static const T1 zero = static_cast(0); static const T1 one = static_cast(1); if (!(x > zero)) throw std::domain_error( "In npstat::InverseSquareRoot::operator(): " "argument must be positive"); return one/std::sqrt(x); } }; /** // Useful functor for calculating ISE between a function and // a polynomial series */ template class DeltaSquaredSerFcn : public Functor1 { public: // Note that the series coefficients are not copied inline DeltaSquaredSerFcn( const Poly& poly, const Functor& fcn, const double* coeffs, const unsigned maxdeg) : poly_(poly), fcn_(fcn), coeffs_(coeffs), maxdeg_(maxdeg) {} + inline virtual ~DeltaSquaredSerFcn() {} + inline double operator()(const double& x) const { const double delta = poly_.series(coeffs_, maxdeg_, x) - fcn_(x); return delta*delta; } private: const Poly& poly_; const Functor& fcn_; const double* coeffs_; unsigned maxdeg_; }; /** // Useful functor for calculating powers of another functor or - // a cmath-style function + // a cmath-style function. Does not make a copy of the argument + // functor, using only a reference. */ template class FunctorPowerFcnHelper : public Functor1 { public: inline FunctorPowerFcnHelper(const Functor& fcn, const double power) : fcn_(fcn), power_(power) {} + inline virtual ~FunctorPowerFcnHelper() {} + inline double operator()(const double& x) const { if (power_) { const double tmp = fcn_(x); if (power_ == 1.0) return tmp; else if (power_ == 2.0) return tmp*tmp; + else if (power_ == -1.0) + { + assert(tmp); + return 1.0/tmp; + } else + { + if (power_ < 0.0) + assert(tmp); return std::pow(tmp, power_); + } } else return 1.0; } private: const Functor& fcn_; double power_; }; /** Utility function for making FunctorPowerFcnHelper objects */ template - inline FunctorPowerFcnHelper FunctorPowerFcn(const Functor& fcn, - const double power) + inline FunctorPowerFcnHelper FunctorPowerFcn( + const Functor& fcn, const double power) { return FunctorPowerFcnHelper(fcn, power); } + /** + // Useful functor for calculating powers of another functor or + // a cmath-style function. Makes a copy of the argument functor. + */ + template + class FunctorPowerFcnCpHelper : public Functor1 + { + public: + inline FunctorPowerFcnCpHelper(const Functor& fcn, const double power) + : fcn_(fcn), power_(power) {} + + inline virtual ~FunctorPowerFcnCpHelper() {} + + inline double operator()(const double& x) const + {return FunctorPowerFcnHelper(fcn_, power_)(x);} + + private: + Functor fcn_; + double power_; + }; + + /** Utility function for making FunctorPowerFcnCpHelper objects */ + template + inline FunctorPowerFcnCpHelper FunctorPowerFcnCp( + const Functor& fcn, const double power) + { + return FunctorPowerFcnCpHelper(fcn, power); + } + /** Functor for multiplying the result of another functor by a constant */ template class MultiplyByConstHelper : public Functor1 { public: template inline MultiplyByConstHelper(const Functor1& fcn, const Numeric& factor) : fcn_(fcn), factor_(static_cast(factor)) {} + inline virtual ~MultiplyByConstHelper() {} + inline double operator()(const Arg1& x) const {return factor_*fcn_(x);} private: - Functor1& fcn_; + const Functor1& fcn_; Result factor_; }; /** Utility function for making MultiplyByConstHelper objects */ template inline MultiplyByConstHelper MultiplyByConst( const Functor1& fcn, const Numeric& factor) { return MultiplyByConstHelper(fcn, factor); } } #endif // NPSTAT_SIMPLEFUNCTORS_HH_ Index: trunk/npstat/stat/Makefile =================================================================== --- trunk/npstat/stat/Makefile (revision 791) +++ trunk/npstat/stat/Makefile (revision 792) @@ -1,1698 +1,1699 @@ # Makefile.in generated by automake 1.16.1 from Makefile.am. # npstat/stat/Makefile. Generated from Makefile.in by configure. # Copyright (C) 1994-2018 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/stat 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) libstat_la_LIBADD = am_libstat_la_OBJECTS = AbsDistribution1D.lo AbsUnfoldND.lo \ AbsKDE1DKernel.lo AbsDistributionND.lo \ amiseOptimalBandwidth.lo CompositeDistribution1D.lo \ CompositeDistributionND.lo CopulaInterpolationND.lo \ SymbetaParams1D.lo Distribution1DFactory.lo \ Distribution1DReader.lo DistributionNDReader.lo \ Distributions1D.lo DistributionsND.lo \ CrossCovarianceAccumulator.lo fitSbParameters.lo \ StatAccumulatorArr.lo HistoAxis.lo ResponseMatrix.lo \ InterpolatedDistribution1D.lo JohnsonCurves.lo \ JohnsonKDESmoother.lo LocalPolyFilter1D.lo \ logLikelihoodPeak.lo PolyFilterCollection1D.lo \ SbMomentsBigGamma.lo SbMomentsCalculator.lo \ gaussianResponseMatrix.lo SequentialCopulaSmoother.lo \ SequentialPolyFilterND.lo StatAccumulator.lo \ UnitMapInterpolationND.lo WeightedStatAccumulator.lo \ AbsNtuple.lo QuadraticOrthoPolyND.lo NMCombinationSequencer.lo \ Filter1DBuilders.lo StatAccumulatorPair.lo GridRandomizer.lo \ ConstantBandwidthSmoother1D.lo GaussianMixture1D.lo \ HistoNDCdf.lo NUHistoAxis.lo AllSymbetaParams1D.lo \ distributionReadError.lo WeightedStatAccumulatorPair.lo \ AbsUnfold1D.lo ProductSymmetricBetaNDCdf.lo DualHistoAxis.lo \ multinomialCovariance1D.lo StorableMultivariateFunctor.lo \ StorableMultivariateFunctorReader.lo \ TruncatedDistribution1D.lo neymanPearsonWindow1D.lo \ AsinhTransform1D.lo LOrPEMarginalSmoother.lo \ LeftCensoredDistribution.lo QuantileTable1D.lo \ RightCensoredDistribution.lo AbsDiscreteDistribution1D.lo \ convertAxis.lo DiscreteDistribution1DReader.lo \ DiscreteDistributions1D.lo lorpeMise1D.lo \ BernsteinFilter1DBuilder.lo BetaFilter1DBuilder.lo \ AbsFilter1DBuilder.lo continuousDegreeTaper.lo \ RatioOfNormals.lo AbsCVCopulaSmoother.lo DensityScan1D.lo \ BoundaryHandling.lo SmoothedEMUnfold1D.lo Copulas.lo \ PearsonsChiSquared.lo BinnedKSTest1D.lo \ MultiscaleEMUnfold1D.lo AbsBinnedComparison1D.lo \ BinnedADTest1D.lo LocalPolyFilter1DReader.lo \ MemoizingSymbetaFilterProvider.lo UGaussConvolution1D.lo \ BinSummary.lo SmoothedEMUnfoldND.lo UnfoldingFilterNDReader.lo \ AbsUnfoldingFilterND.lo UnfoldingBandwidthScannerND.lo \ DistributionMix1D.lo ScalableGaussND.lo \ InterpolatedDistro1D1P.lo AbsDistributionTransform1D.lo \ LogTransform1D.lo DistributionTransform1DReader.lo \ TransformedDistribution1D.lo AbsCGF1D.lo \ WeightTableFilter1DBuilder.lo \ VerticallyInterpolatedDistribution1D.lo LocalMultiFilter1D.lo \ LogRatioTransform1D.lo IdentityTransform1D.lo \ VariableBandwidthSmoother1D.lo AbsMarginalSmootherBase.lo \ OSDE1D.lo buildInterpolatedHelpers.lo \ GridInterpolatedDistribution.lo StatUtils.lo \ AbsCopulaSmootherBase.lo BernsteinCopulaSmoother.lo \ distro1DStats.lo SequentialGroupedCopulaSmoother.lo \ UnfoldingBandwidthScanner1D.lo InterpolatedDistro1DNP.lo \ volumeDensityFromBinnedRadial.lo statUncertainties.lo \ LocationScaleFamily1D.lo SinhAsinhTransform1D.lo \ KDE1DHOSymbetaKernel.lo EdgeworthSeriesMethod.lo \ scannedKSDistance.lo EdgeworthSeries1D.lo DeltaMixture1D.lo \ LikelihoodStatisticType.lo likelihoodStatisticCumulants.lo \ GaussianMixtureEntry.lo SeriesCGF1D.lo \ correctDensityEstimateGHU.lo ComparisonDistribution1D.lo \ DistributionMixND.lo DiscreteGauss1DBuilder.lo \ DensityOrthoPoly1D.lo scanMultivariateDensityAsWeight.lo \ scanSymmetricDensityAsWeight.lo DiscreteGaussCopulaSmoother.lo \ ExpTiltedDistribution1D.lo saddlepointDistribution1D.lo \ MatrixFilter1DBuilder.lo PolynomialDistro1D.lo \ AbsUnbinnedGOFTest1D.lo OrthoPolyGOFTest1D.lo \ UnbinnedGOFTests1D.lo SmoothGOFTest1D.lo \ UnbinnedGOFTest1DFactory.lo LOrPE1DSymbetaKernel.lo \ FoldedDistribution1D.lo libstat_la_OBJECTS = $(am_libstat_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)/AbsBinnedComparison1D.Plo \ ./$(DEPDIR)/AbsCGF1D.Plo ./$(DEPDIR)/AbsCVCopulaSmoother.Plo \ ./$(DEPDIR)/AbsCopulaSmootherBase.Plo \ ./$(DEPDIR)/AbsDiscreteDistribution1D.Plo \ ./$(DEPDIR)/AbsDistribution1D.Plo \ ./$(DEPDIR)/AbsDistributionND.Plo \ ./$(DEPDIR)/AbsDistributionTransform1D.Plo \ ./$(DEPDIR)/AbsFilter1DBuilder.Plo \ ./$(DEPDIR)/AbsKDE1DKernel.Plo \ ./$(DEPDIR)/AbsMarginalSmootherBase.Plo \ ./$(DEPDIR)/AbsNtuple.Plo ./$(DEPDIR)/AbsUnbinnedGOFTest1D.Plo \ ./$(DEPDIR)/AbsUnfold1D.Plo ./$(DEPDIR)/AbsUnfoldND.Plo \ ./$(DEPDIR)/AbsUnfoldingFilterND.Plo \ ./$(DEPDIR)/AllSymbetaParams1D.Plo \ ./$(DEPDIR)/AsinhTransform1D.Plo \ ./$(DEPDIR)/BernsteinCopulaSmoother.Plo \ ./$(DEPDIR)/BernsteinFilter1DBuilder.Plo \ ./$(DEPDIR)/BetaFilter1DBuilder.Plo ./$(DEPDIR)/BinSummary.Plo \ ./$(DEPDIR)/BinnedADTest1D.Plo ./$(DEPDIR)/BinnedKSTest1D.Plo \ ./$(DEPDIR)/BoundaryHandling.Plo \ ./$(DEPDIR)/ComparisonDistribution1D.Plo \ ./$(DEPDIR)/CompositeDistribution1D.Plo \ ./$(DEPDIR)/CompositeDistributionND.Plo \ ./$(DEPDIR)/ConstantBandwidthSmoother1D.Plo \ ./$(DEPDIR)/CopulaInterpolationND.Plo ./$(DEPDIR)/Copulas.Plo \ ./$(DEPDIR)/CrossCovarianceAccumulator.Plo \ ./$(DEPDIR)/DeltaMixture1D.Plo \ ./$(DEPDIR)/DensityOrthoPoly1D.Plo \ ./$(DEPDIR)/DensityScan1D.Plo \ ./$(DEPDIR)/DiscreteDistribution1DReader.Plo \ ./$(DEPDIR)/DiscreteDistributions1D.Plo \ ./$(DEPDIR)/DiscreteGauss1DBuilder.Plo \ ./$(DEPDIR)/DiscreteGaussCopulaSmoother.Plo \ ./$(DEPDIR)/Distribution1DFactory.Plo \ ./$(DEPDIR)/Distribution1DReader.Plo \ ./$(DEPDIR)/DistributionMix1D.Plo \ ./$(DEPDIR)/DistributionMixND.Plo \ ./$(DEPDIR)/DistributionNDReader.Plo \ ./$(DEPDIR)/DistributionTransform1DReader.Plo \ ./$(DEPDIR)/Distributions1D.Plo \ ./$(DEPDIR)/DistributionsND.Plo ./$(DEPDIR)/DualHistoAxis.Plo \ ./$(DEPDIR)/EdgeworthSeries1D.Plo \ ./$(DEPDIR)/EdgeworthSeriesMethod.Plo \ ./$(DEPDIR)/ExpTiltedDistribution1D.Plo \ ./$(DEPDIR)/Filter1DBuilders.Plo \ ./$(DEPDIR)/FoldedDistribution1D.Plo \ ./$(DEPDIR)/GaussianMixture1D.Plo \ ./$(DEPDIR)/GaussianMixtureEntry.Plo \ ./$(DEPDIR)/GridInterpolatedDistribution.Plo \ ./$(DEPDIR)/GridRandomizer.Plo ./$(DEPDIR)/HistoAxis.Plo \ ./$(DEPDIR)/HistoNDCdf.Plo ./$(DEPDIR)/IdentityTransform1D.Plo \ ./$(DEPDIR)/InterpolatedDistribution1D.Plo \ ./$(DEPDIR)/InterpolatedDistro1D1P.Plo \ ./$(DEPDIR)/InterpolatedDistro1DNP.Plo \ ./$(DEPDIR)/JohnsonCurves.Plo \ ./$(DEPDIR)/JohnsonKDESmoother.Plo \ ./$(DEPDIR)/KDE1DHOSymbetaKernel.Plo \ ./$(DEPDIR)/LOrPE1DSymbetaKernel.Plo \ ./$(DEPDIR)/LOrPEMarginalSmoother.Plo \ ./$(DEPDIR)/LeftCensoredDistribution.Plo \ ./$(DEPDIR)/LikelihoodStatisticType.Plo \ ./$(DEPDIR)/LocalMultiFilter1D.Plo \ ./$(DEPDIR)/LocalPolyFilter1D.Plo \ ./$(DEPDIR)/LocalPolyFilter1DReader.Plo \ ./$(DEPDIR)/LocationScaleFamily1D.Plo \ ./$(DEPDIR)/LogRatioTransform1D.Plo \ ./$(DEPDIR)/LogTransform1D.Plo \ ./$(DEPDIR)/MatrixFilter1DBuilder.Plo \ ./$(DEPDIR)/MemoizingSymbetaFilterProvider.Plo \ ./$(DEPDIR)/MultiscaleEMUnfold1D.Plo \ ./$(DEPDIR)/NMCombinationSequencer.Plo \ ./$(DEPDIR)/NUHistoAxis.Plo ./$(DEPDIR)/OSDE1D.Plo \ ./$(DEPDIR)/OrthoPolyGOFTest1D.Plo \ ./$(DEPDIR)/PearsonsChiSquared.Plo \ ./$(DEPDIR)/PolyFilterCollection1D.Plo \ ./$(DEPDIR)/PolynomialDistro1D.Plo \ ./$(DEPDIR)/ProductSymmetricBetaNDCdf.Plo \ ./$(DEPDIR)/QuadraticOrthoPolyND.Plo \ ./$(DEPDIR)/QuantileTable1D.Plo ./$(DEPDIR)/RatioOfNormals.Plo \ ./$(DEPDIR)/ResponseMatrix.Plo \ ./$(DEPDIR)/RightCensoredDistribution.Plo \ ./$(DEPDIR)/SbMomentsBigGamma.Plo \ ./$(DEPDIR)/SbMomentsCalculator.Plo \ ./$(DEPDIR)/ScalableGaussND.Plo \ ./$(DEPDIR)/SequentialCopulaSmoother.Plo \ ./$(DEPDIR)/SequentialGroupedCopulaSmoother.Plo \ ./$(DEPDIR)/SequentialPolyFilterND.Plo \ ./$(DEPDIR)/SeriesCGF1D.Plo \ ./$(DEPDIR)/SinhAsinhTransform1D.Plo \ ./$(DEPDIR)/SmoothGOFTest1D.Plo \ ./$(DEPDIR)/SmoothedEMUnfold1D.Plo \ ./$(DEPDIR)/SmoothedEMUnfoldND.Plo \ ./$(DEPDIR)/StatAccumulator.Plo \ ./$(DEPDIR)/StatAccumulatorArr.Plo \ ./$(DEPDIR)/StatAccumulatorPair.Plo ./$(DEPDIR)/StatUtils.Plo \ ./$(DEPDIR)/StorableMultivariateFunctor.Plo \ ./$(DEPDIR)/StorableMultivariateFunctorReader.Plo \ ./$(DEPDIR)/SymbetaParams1D.Plo \ ./$(DEPDIR)/TransformedDistribution1D.Plo \ ./$(DEPDIR)/TruncatedDistribution1D.Plo \ ./$(DEPDIR)/UGaussConvolution1D.Plo \ ./$(DEPDIR)/UnbinnedGOFTest1DFactory.Plo \ ./$(DEPDIR)/UnbinnedGOFTests1D.Plo \ ./$(DEPDIR)/UnfoldingBandwidthScanner1D.Plo \ ./$(DEPDIR)/UnfoldingBandwidthScannerND.Plo \ ./$(DEPDIR)/UnfoldingFilterNDReader.Plo \ ./$(DEPDIR)/UnitMapInterpolationND.Plo \ ./$(DEPDIR)/VariableBandwidthSmoother1D.Plo \ ./$(DEPDIR)/VerticallyInterpolatedDistribution1D.Plo \ ./$(DEPDIR)/WeightTableFilter1DBuilder.Plo \ ./$(DEPDIR)/WeightedStatAccumulator.Plo \ ./$(DEPDIR)/WeightedStatAccumulatorPair.Plo \ ./$(DEPDIR)/amiseOptimalBandwidth.Plo \ ./$(DEPDIR)/buildInterpolatedHelpers.Plo \ ./$(DEPDIR)/continuousDegreeTaper.Plo \ ./$(DEPDIR)/convertAxis.Plo \ ./$(DEPDIR)/correctDensityEstimateGHU.Plo \ ./$(DEPDIR)/distributionReadError.Plo \ ./$(DEPDIR)/distro1DStats.Plo ./$(DEPDIR)/fitSbParameters.Plo \ ./$(DEPDIR)/gaussianResponseMatrix.Plo \ ./$(DEPDIR)/likelihoodStatisticCumulants.Plo \ ./$(DEPDIR)/logLikelihoodPeak.Plo ./$(DEPDIR)/lorpeMise1D.Plo \ ./$(DEPDIR)/multinomialCovariance1D.Plo \ ./$(DEPDIR)/neymanPearsonWindow1D.Plo \ ./$(DEPDIR)/saddlepointDistribution1D.Plo \ ./$(DEPDIR)/scanMultivariateDensityAsWeight.Plo \ ./$(DEPDIR)/scanSymmetricDensityAsWeight.Plo \ ./$(DEPDIR)/scannedKSDistance.Plo \ ./$(DEPDIR)/statUncertainties.Plo \ ./$(DEPDIR)/volumeDensityFromBinnedRadial.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 = $(libstat_la_SOURCES) DIST_SOURCES = $(libstat_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(includedir)" HEADERS = $(include_HEADERS) am__extra_recursive_targets = python-recursive am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = ${SHELL} /home/igv/Hepforge/npstat/trunk/missing aclocal-1.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 = gawk CC = gcc CCDEPMODE = depmode=gcc3 CFLAGS = -g -O2 CPP = gcc -E CPPFLAGS = CXX = g++ CXXCPP = g++ -E CXXDEPMODE = depmode=gcc3 CXXFLAGS = -std=c++11 -O3 -Wall -W -Werror CYGPATH_W = echo DEFS = -DPACKAGE_NAME=\"npstat\" -DPACKAGE_TARNAME=\"npstat\" -DPACKAGE_VERSION=\"5.7.0\" -DPACKAGE_STRING=\"npstat\ 5.7.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"npstat\" -DVERSION=\"5.7.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" DEPDIR = .deps DEPS_CFLAGS = -I/usr/local/include DEPS_LIBS = -L/usr/local/lib -lfftw3 -lgeners -lkstest DLLTOOL = false DSYMUTIL = DUMPBIN = ECHO_C = ECHO_N = -n ECHO_T = EGREP = /bin/grep -E EXEEXT = F77 = g77 FFLAGS = -g -O2 FGREP = /bin/grep -F FLIBS = -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../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/9/../../.. -lgfortran -lm -lquadmath GREP = /bin/grep INSTALL = /usr/bin/install -c INSTALL_DATA = ${INSTALL} -m 644 INSTALL_PROGRAM = ${INSTALL} INSTALL_SCRIPT = ${INSTALL} INSTALL_STRIP_PROGRAM = $(install_sh) -c -s LD = /usr/bin/ld -m elf_x86_64 LDFLAGS = LIBOBJS = LIBS = LIBTOOL = $(SHELL) $(top_builddir)/libtool LIPO = LN_S = ln -s LTLIBOBJS = LT_SYS_LIBRARY_PATH = MAKEINFO = ${SHELL} /home/igv/Hepforge/npstat/trunk/missing makeinfo MANIFEST_TOOL = : MKDIR_P = /bin/mkdir -p NM = /usr/bin/nm -B NMEDIT = OBJDUMP = objdump OBJEXT = o OTOOL = OTOOL64 = PACKAGE = npstat PACKAGE_BUGREPORT = PACKAGE_NAME = npstat PACKAGE_STRING = npstat 5.7.0 PACKAGE_TARNAME = npstat PACKAGE_URL = PACKAGE_VERSION = 5.7.0 PATH_SEPARATOR = : PKG_CONFIG = /usr/bin/pkg-config PKG_CONFIG_LIBDIR = PKG_CONFIG_PATH = /usr/local/lib/pkgconfig RANLIB = ranlib SED = /bin/sed SET_MAKE = SHELL = /bin/bash STRIP = strip VERSION = 5.7.0 abs_builddir = /home/igv/Hepforge/npstat/trunk/npstat/stat abs_srcdir = /home/igv/Hepforge/npstat/trunk/npstat/stat 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/stat 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 = libstat.la libstat_la_SOURCES = AbsDistribution1D.cc AbsUnfoldND.cc AbsKDE1DKernel.cc \ AbsDistributionND.cc amiseOptimalBandwidth.cc CompositeDistribution1D.cc \ CompositeDistributionND.cc CopulaInterpolationND.cc SymbetaParams1D.cc \ Distribution1DFactory.cc Distribution1DReader.cc DistributionNDReader.cc \ Distributions1D.cc DistributionsND.cc CrossCovarianceAccumulator.cc \ fitSbParameters.cc StatAccumulatorArr.cc HistoAxis.cc ResponseMatrix.cc \ InterpolatedDistribution1D.cc JohnsonCurves.cc JohnsonKDESmoother.cc \ LocalPolyFilter1D.cc logLikelihoodPeak.cc PolyFilterCollection1D.cc \ SbMomentsBigGamma.cc SbMomentsCalculator.cc gaussianResponseMatrix.cc \ SequentialCopulaSmoother.cc SequentialPolyFilterND.cc StatAccumulator.cc \ UnitMapInterpolationND.cc WeightedStatAccumulator.cc AbsNtuple.cc \ QuadraticOrthoPolyND.cc NMCombinationSequencer.cc Filter1DBuilders.cc \ StatAccumulatorPair.cc GridRandomizer.cc ConstantBandwidthSmoother1D.cc \ GaussianMixture1D.cc HistoNDCdf.cc NUHistoAxis.cc AllSymbetaParams1D.cc \ distributionReadError.cc WeightedStatAccumulatorPair.cc AbsUnfold1D.cc \ ProductSymmetricBetaNDCdf.cc DualHistoAxis.cc multinomialCovariance1D.cc \ StorableMultivariateFunctor.cc StorableMultivariateFunctorReader.cc \ TruncatedDistribution1D.cc neymanPearsonWindow1D.cc AsinhTransform1D.cc \ LOrPEMarginalSmoother.cc LeftCensoredDistribution.cc QuantileTable1D.cc \ RightCensoredDistribution.cc AbsDiscreteDistribution1D.cc convertAxis.cc \ DiscreteDistribution1DReader.cc DiscreteDistributions1D.cc lorpeMise1D.cc \ BernsteinFilter1DBuilder.cc BetaFilter1DBuilder.cc AbsFilter1DBuilder.cc \ continuousDegreeTaper.cc RatioOfNormals.cc AbsCVCopulaSmoother.cc \ DensityScan1D.cc BoundaryHandling.cc SmoothedEMUnfold1D.cc Copulas.cc \ PearsonsChiSquared.cc BinnedKSTest1D.cc MultiscaleEMUnfold1D.cc \ AbsBinnedComparison1D.cc BinnedADTest1D.cc LocalPolyFilter1DReader.cc \ MemoizingSymbetaFilterProvider.cc UGaussConvolution1D.cc BinSummary.cc \ SmoothedEMUnfoldND.cc UnfoldingFilterNDReader.cc AbsUnfoldingFilterND.cc \ UnfoldingBandwidthScannerND.cc DistributionMix1D.cc ScalableGaussND.cc \ InterpolatedDistro1D1P.cc AbsDistributionTransform1D.cc LogTransform1D.cc \ DistributionTransform1DReader.cc TransformedDistribution1D.cc AbsCGF1D.cc \ WeightTableFilter1DBuilder.cc VerticallyInterpolatedDistribution1D.cc \ LocalMultiFilter1D.cc LogRatioTransform1D.cc IdentityTransform1D.cc \ VariableBandwidthSmoother1D.cc AbsMarginalSmootherBase.cc OSDE1D.cc \ buildInterpolatedHelpers.cc GridInterpolatedDistribution.cc StatUtils.cc \ AbsCopulaSmootherBase.cc BernsteinCopulaSmoother.cc distro1DStats.cc \ SequentialGroupedCopulaSmoother.cc UnfoldingBandwidthScanner1D.cc \ InterpolatedDistro1DNP.cc volumeDensityFromBinnedRadial.cc \ statUncertainties.cc LocationScaleFamily1D.cc SinhAsinhTransform1D.cc \ KDE1DHOSymbetaKernel.cc EdgeworthSeriesMethod.cc scannedKSDistance.cc \ EdgeworthSeries1D.cc DeltaMixture1D.cc LikelihoodStatisticType.cc \ likelihoodStatisticCumulants.cc GaussianMixtureEntry.cc SeriesCGF1D.cc \ correctDensityEstimateGHU.cc ComparisonDistribution1D.cc \ DistributionMixND.cc DiscreteGauss1DBuilder.cc DensityOrthoPoly1D.cc \ scanMultivariateDensityAsWeight.cc scanSymmetricDensityAsWeight.cc \ DiscreteGaussCopulaSmoother.cc ExpTiltedDistribution1D.cc \ saddlepointDistribution1D.cc MatrixFilter1DBuilder.cc \ PolynomialDistro1D.cc AbsUnbinnedGOFTest1D.cc OrthoPolyGOFTest1D.cc \ UnbinnedGOFTests1D.cc SmoothGOFTest1D.cc UnbinnedGOFTest1DFactory.cc \ LOrPE1DSymbetaKernel.cc FoldedDistribution1D.cc include_HEADERS = AbsBandwidthCV.hh \ AbsBandwidthGCV.hh \ AbsBinnedComparison1D.hh \ AbsBinnedComparison1D.icc \ AbsCGF1D.hh \ AbsCompositeDistroBuilder.hh \ AbsCompositeDistroBuilder.icc \ AbsCopulaSmootherBase.hh \ AbsCopulaSmootherBase.icc \ AbsCVCopulaSmoother.hh \ AbsDiscreteDistribution1D.hh \ AbsDistribution1D.hh \ AbsDistribution1D.icc \ AbsDistributionND.hh \ AbsDistributionND.icc \ AbsDistributionTransform1D.hh \ AbsDistro1DBuilder.hh \ AbsDistro1DBuilder.icc \ AbsFilter1DBuilder.hh \ AbsInterpolatedDistribution1D.hh \ AbsInterpolationAlgoND.hh \ AbsKDE1DKernel.hh \ AbsKDE1DKernel.icc \ AbsLossCalculator.hh \ AbsMarginalSmootherBase.hh \ AbsMarginalSmootherBase.icc \ AbsNtuple.hh \ AbsNtuple.icc \ AbsPolyFilter1D.hh \ AbsPolyFilterND.hh \ AbsResponseBoxBuilder.hh \ AbsResponseIntervalBuilder.hh \ AbsSymbetaFilterProvider.hh \ AbsUnbinnedGOFTest1D.hh \ AbsUnfold1D.hh \ AbsUnfoldingFilterND.hh \ AbsUnfoldND.hh \ AllSymbetaParams1D.hh \ amiseOptimalBandwidth.hh \ amiseOptimalBandwidth.icc \ ArchivedNtuple.hh \ ArchivedNtuple.icc \ ArrayProjectors.hh \ ArrayProjectors.icc \ arrayStats.hh \ arrayStats.icc \ AsinhTransform1D.hh \ BandwidthCVLeastSquares1D.hh \ BandwidthCVLeastSquares1D.icc \ BandwidthCVLeastSquaresND.hh \ BandwidthCVLeastSquaresND.icc \ BandwidthCVPseudoLogli1D.hh \ BandwidthCVPseudoLogli1D.icc \ BandwidthCVPseudoLogliND.hh \ BandwidthCVPseudoLogliND.icc \ BandwidthGCVLeastSquares1D.hh \ BandwidthGCVLeastSquares1D.icc \ BandwidthGCVLeastSquaresND.hh \ BandwidthGCVLeastSquaresND.icc \ BandwidthGCVPseudoLogli1D.hh \ BandwidthGCVPseudoLogli1D.icc \ BandwidthGCVPseudoLogliND.hh \ BandwidthGCVPseudoLogliND.icc \ BernsteinCopulaSmoother.hh \ BernsteinFilter1DBuilder.hh \ betaKernelsBandwidth.hh \ betaKernelsBandwidth.icc \ BetaFilter1DBuilder.hh \ BinnedADTest1D.hh \ BinnedKSTest1D.hh \ BinSummary.hh \ BinSummary.icc \ BoundaryHandling.hh \ BoundaryMethod.hh \ buildInterpolatedCompositeDistroND.hh \ buildInterpolatedCompositeDistroND.icc \ buildInterpolatedDistro1DNP.hh \ buildInterpolatedDistro1DNP.icc \ buildInterpolatedHelpers.hh \ CensoredQuantileRegression.hh \ CensoredQuantileRegression.icc \ CircularBuffer.hh \ CircularBuffer.icc \ Column.hh \ Column.icc \ ComparisonDistribution1D.hh \ CompositeDistribution1D.hh \ CompositeDistributionND.hh \ CompositeDistributionND.icc \ CompositeDistros1D.hh \ ConstantBandwidthSmoother1D.hh \ ConstantBandwidthSmootherND.hh \ ConstantBandwidthSmootherND.icc \ continuousDegreeTaper.hh \ convertAxis.hh \ CopulaInterpolationND.hh \ Copulas.hh \ correctDensityEstimateGHU.hh \ CrossCovarianceAccumulator.hh \ CrossCovarianceAccumulator.icc \ cumulantConversion.hh \ cumulantConversion.icc \ cumulantUncertainties.hh \ cumulantUncertainties.icc \ CVCopulaSmoother.hh \ CVCopulaSmoother.icc \ DeltaMixture1D.hh \ DeltaMixture1D.icc \ DensityAveScanND.hh \ DensityOrthoPoly1D.hh \ DensityScan1D.hh \ DensityScanND.hh \ DiscreteDistribution1DReader.hh \ DiscreteDistributions1D.hh \ DiscreteGauss1DBuilder.hh \ DiscreteGaussCopulaSmoother.hh \ discretizationErrorND.hh \ Distribution1DFactory.hh \ Distribution1DReader.hh \ DistributionTransform1DReader.hh \ DistributionMix1D.hh \ DistributionMixND.hh \ DistributionNDReader.hh \ Distributions1D.hh \ Distributions1D.icc \ DistributionsND.hh \ DistributionsND.icc \ distributionReadError.hh \ distro1DStats.hh \ DualHistoAxis.hh \ DummyCompositeDistroBuilder.hh \ DummyDistro1DBuilder.hh \ DummyResponseBoxBuilder.hh \ DummyResponseIntervalBuilder.hh \ EdgeworthSeries1D.hh \ EdgeworthSeriesMethod.hh \ empiricalCopula.hh \ empiricalCopulaHisto.hh \ empiricalCopulaHisto.icc \ empiricalCopula.icc \ ExpTiltedDistribution1D.hh \ fillHistoFromText.hh \ fillHistoFromText.icc \ Filter1DBuilders.hh \ FitUtils.hh \ FitUtils.icc \ FoldedDistribution1D.hh \ GaussianMixtureEntry.hh \ GaussianMixture1D.hh \ gaussianResponseMatrix.hh \ GCVCopulaSmoother.hh \ GCVCopulaSmoother.icc \ griddedRobustRegression.hh \ griddedRobustRegression.icc \ GriddedRobustRegressionStop.hh \ GridInterpolatedDistribution.hh \ GridRandomizer.hh \ HistoAxis.hh \ HistoND.hh \ HistoND.icc \ HistoNDCdf.hh \ HistoNDFunctorInstances.hh \ histoStats.hh \ histoStats.icc \ histoUtils.hh \ histoUtils.icc \ IdentityTransform1D.hh \ InMemoryNtuple.hh \ InMemoryNtuple.icc \ InterpolatedDistribution1D.hh \ InterpolatedDistro1D1P.hh \ InterpolatedDistro1DNP.hh \ interpolateHistoND.hh \ interpolateHistoND.icc \ InterpolationFunctorInstances.hh \ JohnsonCurves.hh \ JohnsonKDESmoother.hh \ KDE1D.hh \ KDE1DCV.hh \ KDE1DHOSymbetaKernel.hh \ KDECopulaSmoother.hh \ KDECopulaSmoother.icc \ KDEGroupedCopulaSmoother.hh \ KDEGroupedCopulaSmoother.icc \ KDEFilterND.hh \ KDEFilterND.icc \ kendallsTau.hh \ kendallsTau.icc \ kernelSensitivityMatrix.hh \ kernelSensitivityMatrix.icc \ LeftCensoredDistribution.hh \ likelihoodStatisticCumulants.hh \ LikelihoodStatisticType.hh \ LocalLogisticRegression.hh \ LocalLogisticRegression.icc \ LocalMultiFilter1D.hh \ LocalMultiFilter1D.icc \ LocalPolyFilter1D.hh \ LocalPolyFilter1D.icc \ LocalPolyFilter1DReader.hh \ LocalPolyFilterND.hh \ LocalPolyFilterND.icc \ LocalQuadraticLeastSquaresND.hh \ LocalQuadraticLeastSquaresND.icc \ LocalQuantileRegression.hh \ LocalQuantileRegression.icc \ LocationScaleFamily1D.hh \ LocationScaleTransform1.hh \ LocationScaleTransform1.icc \ logLikelihoodPeak.hh \ LogRatioTransform1D.hh \ LogTransform1D.hh \ LOrPE1D.hh \ LOrPE1D.icc \ LOrPE1DCV.hh \ LOrPE1DSymbetaKernel.hh \ LOrPE1DSymbetaKernel.icc \ LOrPECopulaSmoother.hh \ LOrPECopulaSmoother.icc \ LOrPEGroupedCopulaSmoother.hh \ LOrPEGroupedCopulaSmoother.icc \ LOrPEMarginalSmoother.hh \ lorpeBackgroundCVDensity1D.hh \ lorpeBackgroundCVDensity1D.icc \ lorpeBackground1D.hh \ lorpeBackground1D.icc \ lorpeMise1D.hh \ lorpeSmooth1D.hh \ lorpeSmooth1D.icc \ MatrixFilter1DBuilder.hh \ MemoizingSymbetaFilterProvider.hh \ mergeTwoHistos.hh \ mergeTwoHistos.icc \ mirrorWeight.hh \ + ModulatedDistribution1D.hh \ MultiscaleEMUnfold1D.hh \ multinomialCovariance1D.hh \ MultivariateSumAccumulator.hh \ MultivariateSumsqAccumulator.hh \ MultivariateSumsqAccumulator.icc \ MultivariateWeightedSumAccumulator.hh \ MultivariateWeightedSumsqAccumulator.hh \ MultivariateWeightedSumsqAccumulator.icc \ neymanPearsonWindow1D.hh \ NMCombinationSequencer.hh \ NonparametricCompositeBuilder.hh \ NonparametricCompositeBuilder.icc \ NonparametricDistro1DBuilder.hh \ NonparametricDistro1DBuilder.icc \ NtHistoFill.hh \ NtNtupleFill.hh \ NtRectangularCut.hh \ NtRectangularCut.icc \ NtupleBuffer.hh \ NtupleBuffer.icc \ NtupleRecordTypes.hh \ NtupleRecordTypesFwd.hh \ NtupleReference.hh \ NUHistoAxis.hh \ OrderedPointND.hh \ OrderedPointND.icc \ orthoPoly1DVProducts.hh \ orthoPoly1DVProducts.icc \ OrthoPolyGOFTest1D.hh \ OrthoPolyGOFTest1D.icc \ OSDE1D.hh \ OSDE1D.icc \ PearsonsChiSquared.hh \ PolyFilterCollection1D.hh \ PolynomialDistro1D.hh \ productResponseMatrix.hh \ productResponseMatrix.icc \ ProductSymmetricBetaNDCdf.hh \ QuadraticOrthoPolyND.hh \ QuadraticOrthoPolyND.icc \ QuantileRegression1D.hh \ QuantileRegression1D.icc \ QuantileTable1D.hh \ randomHistoFill1D.hh \ randomHistoFill1D.icc \ randomHistoFillND.hh \ randomHistoFillND.icc \ RatioOfNormals.hh \ RatioResponseBoxBuilder.hh \ RatioResponseBoxBuilder.icc \ RatioResponseIntervalBuilder.hh \ RatioResponseIntervalBuilder.icc \ ResponseMatrix.hh \ RightCensoredDistribution.hh \ saddlepointDistribution1D.hh \ SampleAccumulator.hh \ SampleAccumulator.icc \ sampleDistro1DWithWeight.hh \ SbMomentsCalculator.hh \ ScalableGaussND.hh \ scannedKSDistance.hh \ scanMultivariateDensityAsWeight.hh \ scanSymmetricDensityAsWeight.hh \ SequentialCopulaSmoother.hh \ SequentialCopulaSmoother.icc \ SequentialGroupedCopulaSmoother.hh \ SequentialGroupedCopulaSmoother.icc \ SequentialPolyFilterND.hh \ SequentialPolyFilterND.icc \ SeriesCGF1D.hh \ SinhAsinhTransform1D.hh \ SmoothedEMUnfold1D.hh \ SmoothedEMUnfoldND.hh \ SmoothGOFTest1D.hh \ SmoothGOFTest1D.icc \ spearmansRho.hh \ spearmansRho.icc \ StatAccumulator.hh \ StatAccumulatorArr.hh \ StatAccumulatorPair.hh \ statUncertainties.hh \ StatUtils.hh \ StatUtils.icc \ StorableHistoNDFunctor.hh \ StorableHistoNDFunctor.icc \ StorableInterpolationFunctor.hh \ StorableInterpolationFunctor.icc \ StorableMultivariateFunctor.hh \ StorableMultivariateFunctorReader.hh \ SymbetaParams1D.hh \ TransformedDistribution1D.hh \ TruncatedDistribution1D.hh \ TwoPointsLTSLoss.hh \ TwoPointsLTSLoss.icc \ UGaussConvolution1D.hh \ UnbinnedGOFTests1D.hh \ UnbinnedGOFTests1D.icc \ UnbinnedGOFTest1DFactory.hh \ UnfoldingBandwidthScanner1D.hh \ UnfoldingBandwidthScannerND.hh \ UnfoldingFilterNDReader.hh \ UnitMapInterpolationND.hh \ variableBandwidthSmooth1D.hh \ variableBandwidthSmooth1D.icc \ VariableBandwidthSmoother1D.hh \ VerticallyInterpolatedDistribution1D.hh \ volumeDensityFromBinnedRadial.hh \ weightedCopulaHisto.hh \ weightedCopulaHisto.icc \ WeightedDistro1DPtr.hh \ WeightedLTSLoss.hh \ WeightedLTSLoss.icc \ WeightedSampleAccumulator.hh \ WeightedSampleAccumulator.icc \ WeightedStatAccumulator.hh \ WeightedStatAccumulatorPair.hh \ WeightTableFilter1DBuilder.hh EXTRA_DIST = 00README.txt npstat_doxy.hh 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/stat/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign npstat/stat/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}; \ } libstat.la: $(libstat_la_OBJECTS) $(libstat_la_DEPENDENCIES) $(EXTRA_libstat_la_DEPENDENCIES) $(AM_V_CXXLD)$(CXXLINK) $(libstat_la_OBJECTS) $(libstat_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c include ./$(DEPDIR)/AbsBinnedComparison1D.Plo # am--include-marker include ./$(DEPDIR)/AbsCGF1D.Plo # am--include-marker include ./$(DEPDIR)/AbsCVCopulaSmoother.Plo # am--include-marker include ./$(DEPDIR)/AbsCopulaSmootherBase.Plo # am--include-marker include ./$(DEPDIR)/AbsDiscreteDistribution1D.Plo # am--include-marker include ./$(DEPDIR)/AbsDistribution1D.Plo # am--include-marker include ./$(DEPDIR)/AbsDistributionND.Plo # am--include-marker include ./$(DEPDIR)/AbsDistributionTransform1D.Plo # am--include-marker include ./$(DEPDIR)/AbsFilter1DBuilder.Plo # am--include-marker include ./$(DEPDIR)/AbsKDE1DKernel.Plo # am--include-marker include ./$(DEPDIR)/AbsMarginalSmootherBase.Plo # am--include-marker include ./$(DEPDIR)/AbsNtuple.Plo # am--include-marker include ./$(DEPDIR)/AbsUnbinnedGOFTest1D.Plo # am--include-marker include ./$(DEPDIR)/AbsUnfold1D.Plo # am--include-marker include ./$(DEPDIR)/AbsUnfoldND.Plo # am--include-marker include ./$(DEPDIR)/AbsUnfoldingFilterND.Plo # am--include-marker include ./$(DEPDIR)/AllSymbetaParams1D.Plo # am--include-marker include ./$(DEPDIR)/AsinhTransform1D.Plo # am--include-marker include ./$(DEPDIR)/BernsteinCopulaSmoother.Plo # am--include-marker include ./$(DEPDIR)/BernsteinFilter1DBuilder.Plo # am--include-marker include ./$(DEPDIR)/BetaFilter1DBuilder.Plo # am--include-marker include ./$(DEPDIR)/BinSummary.Plo # am--include-marker include ./$(DEPDIR)/BinnedADTest1D.Plo # am--include-marker include ./$(DEPDIR)/BinnedKSTest1D.Plo # am--include-marker include ./$(DEPDIR)/BoundaryHandling.Plo # am--include-marker include ./$(DEPDIR)/ComparisonDistribution1D.Plo # am--include-marker include ./$(DEPDIR)/CompositeDistribution1D.Plo # am--include-marker include ./$(DEPDIR)/CompositeDistributionND.Plo # am--include-marker include ./$(DEPDIR)/ConstantBandwidthSmoother1D.Plo # am--include-marker include ./$(DEPDIR)/CopulaInterpolationND.Plo # am--include-marker include ./$(DEPDIR)/Copulas.Plo # am--include-marker include ./$(DEPDIR)/CrossCovarianceAccumulator.Plo # am--include-marker include ./$(DEPDIR)/DeltaMixture1D.Plo # am--include-marker include ./$(DEPDIR)/DensityOrthoPoly1D.Plo # am--include-marker include ./$(DEPDIR)/DensityScan1D.Plo # am--include-marker include ./$(DEPDIR)/DiscreteDistribution1DReader.Plo # am--include-marker include ./$(DEPDIR)/DiscreteDistributions1D.Plo # am--include-marker include ./$(DEPDIR)/DiscreteGauss1DBuilder.Plo # am--include-marker include ./$(DEPDIR)/DiscreteGaussCopulaSmoother.Plo # am--include-marker include ./$(DEPDIR)/Distribution1DFactory.Plo # am--include-marker include ./$(DEPDIR)/Distribution1DReader.Plo # am--include-marker include ./$(DEPDIR)/DistributionMix1D.Plo # am--include-marker include ./$(DEPDIR)/DistributionMixND.Plo # am--include-marker include ./$(DEPDIR)/DistributionNDReader.Plo # am--include-marker include ./$(DEPDIR)/DistributionTransform1DReader.Plo # am--include-marker include ./$(DEPDIR)/Distributions1D.Plo # am--include-marker include ./$(DEPDIR)/DistributionsND.Plo # am--include-marker include ./$(DEPDIR)/DualHistoAxis.Plo # am--include-marker include ./$(DEPDIR)/EdgeworthSeries1D.Plo # am--include-marker include ./$(DEPDIR)/EdgeworthSeriesMethod.Plo # am--include-marker include ./$(DEPDIR)/ExpTiltedDistribution1D.Plo # am--include-marker include ./$(DEPDIR)/Filter1DBuilders.Plo # am--include-marker include ./$(DEPDIR)/FoldedDistribution1D.Plo # am--include-marker include ./$(DEPDIR)/GaussianMixture1D.Plo # am--include-marker include ./$(DEPDIR)/GaussianMixtureEntry.Plo # am--include-marker include ./$(DEPDIR)/GridInterpolatedDistribution.Plo # am--include-marker include ./$(DEPDIR)/GridRandomizer.Plo # am--include-marker include ./$(DEPDIR)/HistoAxis.Plo # am--include-marker include ./$(DEPDIR)/HistoNDCdf.Plo # am--include-marker include ./$(DEPDIR)/IdentityTransform1D.Plo # am--include-marker include ./$(DEPDIR)/InterpolatedDistribution1D.Plo # am--include-marker include ./$(DEPDIR)/InterpolatedDistro1D1P.Plo # am--include-marker include ./$(DEPDIR)/InterpolatedDistro1DNP.Plo # am--include-marker include ./$(DEPDIR)/JohnsonCurves.Plo # am--include-marker include ./$(DEPDIR)/JohnsonKDESmoother.Plo # am--include-marker include ./$(DEPDIR)/KDE1DHOSymbetaKernel.Plo # am--include-marker include ./$(DEPDIR)/LOrPE1DSymbetaKernel.Plo # am--include-marker include ./$(DEPDIR)/LOrPEMarginalSmoother.Plo # am--include-marker include ./$(DEPDIR)/LeftCensoredDistribution.Plo # am--include-marker include ./$(DEPDIR)/LikelihoodStatisticType.Plo # am--include-marker include ./$(DEPDIR)/LocalMultiFilter1D.Plo # am--include-marker include ./$(DEPDIR)/LocalPolyFilter1D.Plo # am--include-marker include ./$(DEPDIR)/LocalPolyFilter1DReader.Plo # am--include-marker include ./$(DEPDIR)/LocationScaleFamily1D.Plo # am--include-marker include ./$(DEPDIR)/LogRatioTransform1D.Plo # am--include-marker include ./$(DEPDIR)/LogTransform1D.Plo # am--include-marker include ./$(DEPDIR)/MatrixFilter1DBuilder.Plo # am--include-marker include ./$(DEPDIR)/MemoizingSymbetaFilterProvider.Plo # am--include-marker include ./$(DEPDIR)/MultiscaleEMUnfold1D.Plo # am--include-marker include ./$(DEPDIR)/NMCombinationSequencer.Plo # am--include-marker include ./$(DEPDIR)/NUHistoAxis.Plo # am--include-marker include ./$(DEPDIR)/OSDE1D.Plo # am--include-marker include ./$(DEPDIR)/OrthoPolyGOFTest1D.Plo # am--include-marker include ./$(DEPDIR)/PearsonsChiSquared.Plo # am--include-marker include ./$(DEPDIR)/PolyFilterCollection1D.Plo # am--include-marker include ./$(DEPDIR)/PolynomialDistro1D.Plo # am--include-marker include ./$(DEPDIR)/ProductSymmetricBetaNDCdf.Plo # am--include-marker include ./$(DEPDIR)/QuadraticOrthoPolyND.Plo # am--include-marker include ./$(DEPDIR)/QuantileTable1D.Plo # am--include-marker include ./$(DEPDIR)/RatioOfNormals.Plo # am--include-marker include ./$(DEPDIR)/ResponseMatrix.Plo # am--include-marker include ./$(DEPDIR)/RightCensoredDistribution.Plo # am--include-marker include ./$(DEPDIR)/SbMomentsBigGamma.Plo # am--include-marker include ./$(DEPDIR)/SbMomentsCalculator.Plo # am--include-marker include ./$(DEPDIR)/ScalableGaussND.Plo # am--include-marker include ./$(DEPDIR)/SequentialCopulaSmoother.Plo # am--include-marker include ./$(DEPDIR)/SequentialGroupedCopulaSmoother.Plo # am--include-marker include ./$(DEPDIR)/SequentialPolyFilterND.Plo # am--include-marker include ./$(DEPDIR)/SeriesCGF1D.Plo # am--include-marker include ./$(DEPDIR)/SinhAsinhTransform1D.Plo # am--include-marker include ./$(DEPDIR)/SmoothGOFTest1D.Plo # am--include-marker include ./$(DEPDIR)/SmoothedEMUnfold1D.Plo # am--include-marker include ./$(DEPDIR)/SmoothedEMUnfoldND.Plo # am--include-marker include ./$(DEPDIR)/StatAccumulator.Plo # am--include-marker include ./$(DEPDIR)/StatAccumulatorArr.Plo # am--include-marker include ./$(DEPDIR)/StatAccumulatorPair.Plo # am--include-marker include ./$(DEPDIR)/StatUtils.Plo # am--include-marker include ./$(DEPDIR)/StorableMultivariateFunctor.Plo # am--include-marker include ./$(DEPDIR)/StorableMultivariateFunctorReader.Plo # am--include-marker include ./$(DEPDIR)/SymbetaParams1D.Plo # am--include-marker include ./$(DEPDIR)/TransformedDistribution1D.Plo # am--include-marker include ./$(DEPDIR)/TruncatedDistribution1D.Plo # am--include-marker include ./$(DEPDIR)/UGaussConvolution1D.Plo # am--include-marker include ./$(DEPDIR)/UnbinnedGOFTest1DFactory.Plo # am--include-marker include ./$(DEPDIR)/UnbinnedGOFTests1D.Plo # am--include-marker include ./$(DEPDIR)/UnfoldingBandwidthScanner1D.Plo # am--include-marker include ./$(DEPDIR)/UnfoldingBandwidthScannerND.Plo # am--include-marker include ./$(DEPDIR)/UnfoldingFilterNDReader.Plo # am--include-marker include ./$(DEPDIR)/UnitMapInterpolationND.Plo # am--include-marker include ./$(DEPDIR)/VariableBandwidthSmoother1D.Plo # am--include-marker include ./$(DEPDIR)/VerticallyInterpolatedDistribution1D.Plo # am--include-marker include ./$(DEPDIR)/WeightTableFilter1DBuilder.Plo # am--include-marker include ./$(DEPDIR)/WeightedStatAccumulator.Plo # am--include-marker include ./$(DEPDIR)/WeightedStatAccumulatorPair.Plo # am--include-marker include ./$(DEPDIR)/amiseOptimalBandwidth.Plo # am--include-marker include ./$(DEPDIR)/buildInterpolatedHelpers.Plo # am--include-marker include ./$(DEPDIR)/continuousDegreeTaper.Plo # am--include-marker include ./$(DEPDIR)/convertAxis.Plo # am--include-marker include ./$(DEPDIR)/correctDensityEstimateGHU.Plo # am--include-marker include ./$(DEPDIR)/distributionReadError.Plo # am--include-marker include ./$(DEPDIR)/distro1DStats.Plo # am--include-marker include ./$(DEPDIR)/fitSbParameters.Plo # am--include-marker include ./$(DEPDIR)/gaussianResponseMatrix.Plo # am--include-marker include ./$(DEPDIR)/likelihoodStatisticCumulants.Plo # am--include-marker include ./$(DEPDIR)/logLikelihoodPeak.Plo # am--include-marker include ./$(DEPDIR)/lorpeMise1D.Plo # am--include-marker include ./$(DEPDIR)/multinomialCovariance1D.Plo # am--include-marker include ./$(DEPDIR)/neymanPearsonWindow1D.Plo # am--include-marker include ./$(DEPDIR)/saddlepointDistribution1D.Plo # am--include-marker include ./$(DEPDIR)/scanMultivariateDensityAsWeight.Plo # am--include-marker include ./$(DEPDIR)/scanSymmetricDensityAsWeight.Plo # am--include-marker include ./$(DEPDIR)/scannedKSDistance.Plo # am--include-marker include ./$(DEPDIR)/statUncertainties.Plo # am--include-marker include ./$(DEPDIR)/volumeDensityFromBinnedRadial.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)/AbsBinnedComparison1D.Plo -rm -f ./$(DEPDIR)/AbsCGF1D.Plo -rm -f ./$(DEPDIR)/AbsCVCopulaSmoother.Plo -rm -f ./$(DEPDIR)/AbsCopulaSmootherBase.Plo -rm -f ./$(DEPDIR)/AbsDiscreteDistribution1D.Plo -rm -f ./$(DEPDIR)/AbsDistribution1D.Plo -rm -f ./$(DEPDIR)/AbsDistributionND.Plo -rm -f ./$(DEPDIR)/AbsDistributionTransform1D.Plo -rm -f ./$(DEPDIR)/AbsFilter1DBuilder.Plo -rm -f ./$(DEPDIR)/AbsKDE1DKernel.Plo -rm -f ./$(DEPDIR)/AbsMarginalSmootherBase.Plo -rm -f ./$(DEPDIR)/AbsNtuple.Plo -rm -f ./$(DEPDIR)/AbsUnbinnedGOFTest1D.Plo -rm -f ./$(DEPDIR)/AbsUnfold1D.Plo -rm -f ./$(DEPDIR)/AbsUnfoldND.Plo -rm -f ./$(DEPDIR)/AbsUnfoldingFilterND.Plo -rm -f ./$(DEPDIR)/AllSymbetaParams1D.Plo -rm -f ./$(DEPDIR)/AsinhTransform1D.Plo -rm -f ./$(DEPDIR)/BernsteinCopulaSmoother.Plo -rm -f ./$(DEPDIR)/BernsteinFilter1DBuilder.Plo -rm -f ./$(DEPDIR)/BetaFilter1DBuilder.Plo -rm -f ./$(DEPDIR)/BinSummary.Plo -rm -f ./$(DEPDIR)/BinnedADTest1D.Plo -rm -f ./$(DEPDIR)/BinnedKSTest1D.Plo -rm -f ./$(DEPDIR)/BoundaryHandling.Plo -rm -f ./$(DEPDIR)/ComparisonDistribution1D.Plo -rm -f ./$(DEPDIR)/CompositeDistribution1D.Plo -rm -f ./$(DEPDIR)/CompositeDistributionND.Plo -rm -f ./$(DEPDIR)/ConstantBandwidthSmoother1D.Plo -rm -f ./$(DEPDIR)/CopulaInterpolationND.Plo -rm -f ./$(DEPDIR)/Copulas.Plo -rm -f ./$(DEPDIR)/CrossCovarianceAccumulator.Plo -rm -f ./$(DEPDIR)/DeltaMixture1D.Plo -rm -f ./$(DEPDIR)/DensityOrthoPoly1D.Plo -rm -f ./$(DEPDIR)/DensityScan1D.Plo -rm -f ./$(DEPDIR)/DiscreteDistribution1DReader.Plo -rm -f ./$(DEPDIR)/DiscreteDistributions1D.Plo -rm -f ./$(DEPDIR)/DiscreteGauss1DBuilder.Plo -rm -f ./$(DEPDIR)/DiscreteGaussCopulaSmoother.Plo -rm -f ./$(DEPDIR)/Distribution1DFactory.Plo -rm -f ./$(DEPDIR)/Distribution1DReader.Plo -rm -f ./$(DEPDIR)/DistributionMix1D.Plo -rm -f ./$(DEPDIR)/DistributionMixND.Plo -rm -f ./$(DEPDIR)/DistributionNDReader.Plo -rm -f ./$(DEPDIR)/DistributionTransform1DReader.Plo -rm -f ./$(DEPDIR)/Distributions1D.Plo -rm -f ./$(DEPDIR)/DistributionsND.Plo -rm -f ./$(DEPDIR)/DualHistoAxis.Plo -rm -f ./$(DEPDIR)/EdgeworthSeries1D.Plo -rm -f ./$(DEPDIR)/EdgeworthSeriesMethod.Plo -rm -f ./$(DEPDIR)/ExpTiltedDistribution1D.Plo -rm -f ./$(DEPDIR)/Filter1DBuilders.Plo -rm -f ./$(DEPDIR)/FoldedDistribution1D.Plo -rm -f ./$(DEPDIR)/GaussianMixture1D.Plo -rm -f ./$(DEPDIR)/GaussianMixtureEntry.Plo -rm -f ./$(DEPDIR)/GridInterpolatedDistribution.Plo -rm -f ./$(DEPDIR)/GridRandomizer.Plo -rm -f ./$(DEPDIR)/HistoAxis.Plo -rm -f ./$(DEPDIR)/HistoNDCdf.Plo -rm -f ./$(DEPDIR)/IdentityTransform1D.Plo -rm -f ./$(DEPDIR)/InterpolatedDistribution1D.Plo -rm -f ./$(DEPDIR)/InterpolatedDistro1D1P.Plo -rm -f ./$(DEPDIR)/InterpolatedDistro1DNP.Plo -rm -f ./$(DEPDIR)/JohnsonCurves.Plo -rm -f ./$(DEPDIR)/JohnsonKDESmoother.Plo -rm -f ./$(DEPDIR)/KDE1DHOSymbetaKernel.Plo -rm -f ./$(DEPDIR)/LOrPE1DSymbetaKernel.Plo -rm -f ./$(DEPDIR)/LOrPEMarginalSmoother.Plo -rm -f ./$(DEPDIR)/LeftCensoredDistribution.Plo -rm -f ./$(DEPDIR)/LikelihoodStatisticType.Plo -rm -f ./$(DEPDIR)/LocalMultiFilter1D.Plo -rm -f ./$(DEPDIR)/LocalPolyFilter1D.Plo -rm -f ./$(DEPDIR)/LocalPolyFilter1DReader.Plo -rm -f ./$(DEPDIR)/LocationScaleFamily1D.Plo -rm -f ./$(DEPDIR)/LogRatioTransform1D.Plo -rm -f ./$(DEPDIR)/LogTransform1D.Plo -rm -f ./$(DEPDIR)/MatrixFilter1DBuilder.Plo -rm -f ./$(DEPDIR)/MemoizingSymbetaFilterProvider.Plo -rm -f ./$(DEPDIR)/MultiscaleEMUnfold1D.Plo -rm -f ./$(DEPDIR)/NMCombinationSequencer.Plo -rm -f ./$(DEPDIR)/NUHistoAxis.Plo -rm -f ./$(DEPDIR)/OSDE1D.Plo -rm -f ./$(DEPDIR)/OrthoPolyGOFTest1D.Plo -rm -f ./$(DEPDIR)/PearsonsChiSquared.Plo -rm -f ./$(DEPDIR)/PolyFilterCollection1D.Plo -rm -f ./$(DEPDIR)/PolynomialDistro1D.Plo -rm -f ./$(DEPDIR)/ProductSymmetricBetaNDCdf.Plo -rm -f ./$(DEPDIR)/QuadraticOrthoPolyND.Plo -rm -f ./$(DEPDIR)/QuantileTable1D.Plo -rm -f ./$(DEPDIR)/RatioOfNormals.Plo -rm -f ./$(DEPDIR)/ResponseMatrix.Plo -rm -f ./$(DEPDIR)/RightCensoredDistribution.Plo -rm -f ./$(DEPDIR)/SbMomentsBigGamma.Plo -rm -f ./$(DEPDIR)/SbMomentsCalculator.Plo -rm -f ./$(DEPDIR)/ScalableGaussND.Plo -rm -f ./$(DEPDIR)/SequentialCopulaSmoother.Plo -rm -f ./$(DEPDIR)/SequentialGroupedCopulaSmoother.Plo -rm -f ./$(DEPDIR)/SequentialPolyFilterND.Plo -rm -f ./$(DEPDIR)/SeriesCGF1D.Plo -rm -f ./$(DEPDIR)/SinhAsinhTransform1D.Plo -rm -f ./$(DEPDIR)/SmoothGOFTest1D.Plo -rm -f ./$(DEPDIR)/SmoothedEMUnfold1D.Plo -rm -f ./$(DEPDIR)/SmoothedEMUnfoldND.Plo -rm -f ./$(DEPDIR)/StatAccumulator.Plo -rm -f ./$(DEPDIR)/StatAccumulatorArr.Plo -rm -f ./$(DEPDIR)/StatAccumulatorPair.Plo -rm -f ./$(DEPDIR)/StatUtils.Plo -rm -f ./$(DEPDIR)/StorableMultivariateFunctor.Plo -rm -f ./$(DEPDIR)/StorableMultivariateFunctorReader.Plo -rm -f ./$(DEPDIR)/SymbetaParams1D.Plo -rm -f ./$(DEPDIR)/TransformedDistribution1D.Plo -rm -f ./$(DEPDIR)/TruncatedDistribution1D.Plo -rm -f ./$(DEPDIR)/UGaussConvolution1D.Plo -rm -f ./$(DEPDIR)/UnbinnedGOFTest1DFactory.Plo -rm -f ./$(DEPDIR)/UnbinnedGOFTests1D.Plo -rm -f ./$(DEPDIR)/UnfoldingBandwidthScanner1D.Plo -rm -f ./$(DEPDIR)/UnfoldingBandwidthScannerND.Plo -rm -f ./$(DEPDIR)/UnfoldingFilterNDReader.Plo -rm -f ./$(DEPDIR)/UnitMapInterpolationND.Plo -rm -f ./$(DEPDIR)/VariableBandwidthSmoother1D.Plo -rm -f ./$(DEPDIR)/VerticallyInterpolatedDistribution1D.Plo -rm -f ./$(DEPDIR)/WeightTableFilter1DBuilder.Plo -rm -f ./$(DEPDIR)/WeightedStatAccumulator.Plo -rm -f ./$(DEPDIR)/WeightedStatAccumulatorPair.Plo -rm -f ./$(DEPDIR)/amiseOptimalBandwidth.Plo -rm -f ./$(DEPDIR)/buildInterpolatedHelpers.Plo -rm -f ./$(DEPDIR)/continuousDegreeTaper.Plo -rm -f ./$(DEPDIR)/convertAxis.Plo -rm -f ./$(DEPDIR)/correctDensityEstimateGHU.Plo -rm -f ./$(DEPDIR)/distributionReadError.Plo -rm -f ./$(DEPDIR)/distro1DStats.Plo -rm -f ./$(DEPDIR)/fitSbParameters.Plo -rm -f ./$(DEPDIR)/gaussianResponseMatrix.Plo -rm -f ./$(DEPDIR)/likelihoodStatisticCumulants.Plo -rm -f ./$(DEPDIR)/logLikelihoodPeak.Plo -rm -f ./$(DEPDIR)/lorpeMise1D.Plo -rm -f ./$(DEPDIR)/multinomialCovariance1D.Plo -rm -f ./$(DEPDIR)/neymanPearsonWindow1D.Plo -rm -f ./$(DEPDIR)/saddlepointDistribution1D.Plo -rm -f ./$(DEPDIR)/scanMultivariateDensityAsWeight.Plo -rm -f ./$(DEPDIR)/scanSymmetricDensityAsWeight.Plo -rm -f ./$(DEPDIR)/scannedKSDistance.Plo -rm -f ./$(DEPDIR)/statUncertainties.Plo -rm -f ./$(DEPDIR)/volumeDensityFromBinnedRadial.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)/AbsBinnedComparison1D.Plo -rm -f ./$(DEPDIR)/AbsCGF1D.Plo -rm -f ./$(DEPDIR)/AbsCVCopulaSmoother.Plo -rm -f ./$(DEPDIR)/AbsCopulaSmootherBase.Plo -rm -f ./$(DEPDIR)/AbsDiscreteDistribution1D.Plo -rm -f ./$(DEPDIR)/AbsDistribution1D.Plo -rm -f ./$(DEPDIR)/AbsDistributionND.Plo -rm -f ./$(DEPDIR)/AbsDistributionTransform1D.Plo -rm -f ./$(DEPDIR)/AbsFilter1DBuilder.Plo -rm -f ./$(DEPDIR)/AbsKDE1DKernel.Plo -rm -f ./$(DEPDIR)/AbsMarginalSmootherBase.Plo -rm -f ./$(DEPDIR)/AbsNtuple.Plo -rm -f ./$(DEPDIR)/AbsUnbinnedGOFTest1D.Plo -rm -f ./$(DEPDIR)/AbsUnfold1D.Plo -rm -f ./$(DEPDIR)/AbsUnfoldND.Plo -rm -f ./$(DEPDIR)/AbsUnfoldingFilterND.Plo -rm -f ./$(DEPDIR)/AllSymbetaParams1D.Plo -rm -f ./$(DEPDIR)/AsinhTransform1D.Plo -rm -f ./$(DEPDIR)/BernsteinCopulaSmoother.Plo -rm -f ./$(DEPDIR)/BernsteinFilter1DBuilder.Plo -rm -f ./$(DEPDIR)/BetaFilter1DBuilder.Plo -rm -f ./$(DEPDIR)/BinSummary.Plo -rm -f ./$(DEPDIR)/BinnedADTest1D.Plo -rm -f ./$(DEPDIR)/BinnedKSTest1D.Plo -rm -f ./$(DEPDIR)/BoundaryHandling.Plo -rm -f ./$(DEPDIR)/ComparisonDistribution1D.Plo -rm -f ./$(DEPDIR)/CompositeDistribution1D.Plo -rm -f ./$(DEPDIR)/CompositeDistributionND.Plo -rm -f ./$(DEPDIR)/ConstantBandwidthSmoother1D.Plo -rm -f ./$(DEPDIR)/CopulaInterpolationND.Plo -rm -f ./$(DEPDIR)/Copulas.Plo -rm -f ./$(DEPDIR)/CrossCovarianceAccumulator.Plo -rm -f ./$(DEPDIR)/DeltaMixture1D.Plo -rm -f ./$(DEPDIR)/DensityOrthoPoly1D.Plo -rm -f ./$(DEPDIR)/DensityScan1D.Plo -rm -f ./$(DEPDIR)/DiscreteDistribution1DReader.Plo -rm -f ./$(DEPDIR)/DiscreteDistributions1D.Plo -rm -f ./$(DEPDIR)/DiscreteGauss1DBuilder.Plo -rm -f ./$(DEPDIR)/DiscreteGaussCopulaSmoother.Plo -rm -f ./$(DEPDIR)/Distribution1DFactory.Plo -rm -f ./$(DEPDIR)/Distribution1DReader.Plo -rm -f ./$(DEPDIR)/DistributionMix1D.Plo -rm -f ./$(DEPDIR)/DistributionMixND.Plo -rm -f ./$(DEPDIR)/DistributionNDReader.Plo -rm -f ./$(DEPDIR)/DistributionTransform1DReader.Plo -rm -f ./$(DEPDIR)/Distributions1D.Plo -rm -f ./$(DEPDIR)/DistributionsND.Plo -rm -f ./$(DEPDIR)/DualHistoAxis.Plo -rm -f ./$(DEPDIR)/EdgeworthSeries1D.Plo -rm -f ./$(DEPDIR)/EdgeworthSeriesMethod.Plo -rm -f ./$(DEPDIR)/ExpTiltedDistribution1D.Plo -rm -f ./$(DEPDIR)/Filter1DBuilders.Plo -rm -f ./$(DEPDIR)/FoldedDistribution1D.Plo -rm -f ./$(DEPDIR)/GaussianMixture1D.Plo -rm -f ./$(DEPDIR)/GaussianMixtureEntry.Plo -rm -f ./$(DEPDIR)/GridInterpolatedDistribution.Plo -rm -f ./$(DEPDIR)/GridRandomizer.Plo -rm -f ./$(DEPDIR)/HistoAxis.Plo -rm -f ./$(DEPDIR)/HistoNDCdf.Plo -rm -f ./$(DEPDIR)/IdentityTransform1D.Plo -rm -f ./$(DEPDIR)/InterpolatedDistribution1D.Plo -rm -f ./$(DEPDIR)/InterpolatedDistro1D1P.Plo -rm -f ./$(DEPDIR)/InterpolatedDistro1DNP.Plo -rm -f ./$(DEPDIR)/JohnsonCurves.Plo -rm -f ./$(DEPDIR)/JohnsonKDESmoother.Plo -rm -f ./$(DEPDIR)/KDE1DHOSymbetaKernel.Plo -rm -f ./$(DEPDIR)/LOrPE1DSymbetaKernel.Plo -rm -f ./$(DEPDIR)/LOrPEMarginalSmoother.Plo -rm -f ./$(DEPDIR)/LeftCensoredDistribution.Plo -rm -f ./$(DEPDIR)/LikelihoodStatisticType.Plo -rm -f ./$(DEPDIR)/LocalMultiFilter1D.Plo -rm -f ./$(DEPDIR)/LocalPolyFilter1D.Plo -rm -f ./$(DEPDIR)/LocalPolyFilter1DReader.Plo -rm -f ./$(DEPDIR)/LocationScaleFamily1D.Plo -rm -f ./$(DEPDIR)/LogRatioTransform1D.Plo -rm -f ./$(DEPDIR)/LogTransform1D.Plo -rm -f ./$(DEPDIR)/MatrixFilter1DBuilder.Plo -rm -f ./$(DEPDIR)/MemoizingSymbetaFilterProvider.Plo -rm -f ./$(DEPDIR)/MultiscaleEMUnfold1D.Plo -rm -f ./$(DEPDIR)/NMCombinationSequencer.Plo -rm -f ./$(DEPDIR)/NUHistoAxis.Plo -rm -f ./$(DEPDIR)/OSDE1D.Plo -rm -f ./$(DEPDIR)/OrthoPolyGOFTest1D.Plo -rm -f ./$(DEPDIR)/PearsonsChiSquared.Plo -rm -f ./$(DEPDIR)/PolyFilterCollection1D.Plo -rm -f ./$(DEPDIR)/PolynomialDistro1D.Plo -rm -f ./$(DEPDIR)/ProductSymmetricBetaNDCdf.Plo -rm -f ./$(DEPDIR)/QuadraticOrthoPolyND.Plo -rm -f ./$(DEPDIR)/QuantileTable1D.Plo -rm -f ./$(DEPDIR)/RatioOfNormals.Plo -rm -f ./$(DEPDIR)/ResponseMatrix.Plo -rm -f ./$(DEPDIR)/RightCensoredDistribution.Plo -rm -f ./$(DEPDIR)/SbMomentsBigGamma.Plo -rm -f ./$(DEPDIR)/SbMomentsCalculator.Plo -rm -f ./$(DEPDIR)/ScalableGaussND.Plo -rm -f ./$(DEPDIR)/SequentialCopulaSmoother.Plo -rm -f ./$(DEPDIR)/SequentialGroupedCopulaSmoother.Plo -rm -f ./$(DEPDIR)/SequentialPolyFilterND.Plo -rm -f ./$(DEPDIR)/SeriesCGF1D.Plo -rm -f ./$(DEPDIR)/SinhAsinhTransform1D.Plo -rm -f ./$(DEPDIR)/SmoothGOFTest1D.Plo -rm -f ./$(DEPDIR)/SmoothedEMUnfold1D.Plo -rm -f ./$(DEPDIR)/SmoothedEMUnfoldND.Plo -rm -f ./$(DEPDIR)/StatAccumulator.Plo -rm -f ./$(DEPDIR)/StatAccumulatorArr.Plo -rm -f ./$(DEPDIR)/StatAccumulatorPair.Plo -rm -f ./$(DEPDIR)/StatUtils.Plo -rm -f ./$(DEPDIR)/StorableMultivariateFunctor.Plo -rm -f ./$(DEPDIR)/StorableMultivariateFunctorReader.Plo -rm -f ./$(DEPDIR)/SymbetaParams1D.Plo -rm -f ./$(DEPDIR)/TransformedDistribution1D.Plo -rm -f ./$(DEPDIR)/TruncatedDistribution1D.Plo -rm -f ./$(DEPDIR)/UGaussConvolution1D.Plo -rm -f ./$(DEPDIR)/UnbinnedGOFTest1DFactory.Plo -rm -f ./$(DEPDIR)/UnbinnedGOFTests1D.Plo -rm -f ./$(DEPDIR)/UnfoldingBandwidthScanner1D.Plo -rm -f ./$(DEPDIR)/UnfoldingBandwidthScannerND.Plo -rm -f ./$(DEPDIR)/UnfoldingFilterNDReader.Plo -rm -f ./$(DEPDIR)/UnitMapInterpolationND.Plo -rm -f ./$(DEPDIR)/VariableBandwidthSmoother1D.Plo -rm -f ./$(DEPDIR)/VerticallyInterpolatedDistribution1D.Plo -rm -f ./$(DEPDIR)/WeightTableFilter1DBuilder.Plo -rm -f ./$(DEPDIR)/WeightedStatAccumulator.Plo -rm -f ./$(DEPDIR)/WeightedStatAccumulatorPair.Plo -rm -f ./$(DEPDIR)/amiseOptimalBandwidth.Plo -rm -f ./$(DEPDIR)/buildInterpolatedHelpers.Plo -rm -f ./$(DEPDIR)/continuousDegreeTaper.Plo -rm -f ./$(DEPDIR)/convertAxis.Plo -rm -f ./$(DEPDIR)/correctDensityEstimateGHU.Plo -rm -f ./$(DEPDIR)/distributionReadError.Plo -rm -f ./$(DEPDIR)/distro1DStats.Plo -rm -f ./$(DEPDIR)/fitSbParameters.Plo -rm -f ./$(DEPDIR)/gaussianResponseMatrix.Plo -rm -f ./$(DEPDIR)/likelihoodStatisticCumulants.Plo -rm -f ./$(DEPDIR)/logLikelihoodPeak.Plo -rm -f ./$(DEPDIR)/lorpeMise1D.Plo -rm -f ./$(DEPDIR)/multinomialCovariance1D.Plo -rm -f ./$(DEPDIR)/neymanPearsonWindow1D.Plo -rm -f ./$(DEPDIR)/saddlepointDistribution1D.Plo -rm -f ./$(DEPDIR)/scanMultivariateDensityAsWeight.Plo -rm -f ./$(DEPDIR)/scanSymmetricDensityAsWeight.Plo -rm -f ./$(DEPDIR)/scannedKSDistance.Plo -rm -f ./$(DEPDIR)/statUncertainties.Plo -rm -f ./$(DEPDIR)/volumeDensityFromBinnedRadial.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/stat/NtRectangularCut.hh =================================================================== --- trunk/npstat/stat/NtRectangularCut.hh (revision 791) +++ trunk/npstat/stat/NtRectangularCut.hh (revision 792) @@ -1,239 +1,240 @@ #ifndef NPSTAT_NTRECTANGULARCUT_HH_ #define NPSTAT_NTRECTANGULARCUT_HH_ /*! // \file NtRectangularCut.hh // // \brief Rectangular cuts for homogeneous ntuples // // Author: I. Volobouev // // November 2011 */ #include "npstat/nm/BoxND.hh" namespace npstat { /** // This convenience class implements simple rectangular cuts // on ntuple contents. Cut lower bound is included and cut upper bound // is excluded from the passing sample. It is possible to specify // min >= max for any rectangle dimension. In this case no ntuple rows // will be accepted by the cut. // // The template parameter should coincide with the ntuple value_type. // // For use inside "conditionalCycleOverRows", and other similar methods // of AbsNtuple. */ template class NtRectangularCut { template friend class NtRectangularCut; public: /** Default constructor creates an "all pass" cut */ inline NtRectangularCut() : nCuts_(0) {} //@{ /** // For this convenience constructor, there must be // an automatic conversion from type T to Numeric. // // It is assumed that correctness of the ntuple column numbers // has already been verified. Use "validColumn()" ntuple method // or other similar checks to ensure this correctness and do not // reuse cut objects with ntuples that might have different // column structure. */ template NtRectangularCut(unsigned long c0, const T& min0, const T& max0); template NtRectangularCut(unsigned long c0, const T& min0, const T& max0, unsigned long c1, const T& min1, const T& max1); template NtRectangularCut(unsigned long c0, const T& min0, const T& max0, unsigned long c1, const T& min1, const T& max1, unsigned long c2, const T& min2, const T& max2); template NtRectangularCut(unsigned long c0, const T& min0, const T& max0, unsigned long c1, const T& min1, const T& max1, unsigned long c2, const T& min2, const T& max2, unsigned long c3, const T& min3, const T& max3); template NtRectangularCut(unsigned long c0, const T& min0, const T& max0, unsigned long c1, const T& min1, const T& max1, unsigned long c2, const T& min2, const T& max2, unsigned long c3, const T& min3, const T& max3, unsigned long c4, const T& min4, const T& max4); template NtRectangularCut(unsigned long c0, const T& min0, const T& max0, unsigned long c1, const T& min1, const T& max1, unsigned long c2, const T& min2, const T& max2, unsigned long c3, const T& min3, const T& max3, unsigned long c4, const T& min4, const T& max4, unsigned long c5, const T& min5, const T& max5); template NtRectangularCut(unsigned long c0, const T& min0, const T& max0, unsigned long c1, const T& min1, const T& max1, unsigned long c2, const T& min2, const T& max2, unsigned long c3, const T& min3, const T& max3, unsigned long c4, const T& min4, const T& max4, unsigned long c5, const T& min5, const T& max5, unsigned long c6, const T& min6, const T& max6); template NtRectangularCut(unsigned long c0, const T& min0, const T& max0, unsigned long c1, const T& min1, const T& max1, unsigned long c2, const T& min2, const T& max2, unsigned long c3, const T& min3, const T& max3, unsigned long c4, const T& min4, const T& max4, unsigned long c5, const T& min5, const T& max5, unsigned long c6, const T& min6, const T& max6, unsigned long c7, const T& min7, const T& max7); template NtRectangularCut(unsigned long c0, const T& min0, const T& max0, unsigned long c1, const T& min1, const T& max1, unsigned long c2, const T& min2, const T& max2, unsigned long c3, const T& min3, const T& max3, unsigned long c4, const T& min4, const T& max4, unsigned long c5, const T& min5, const T& max5, unsigned long c6, const T& min6, const T& max6, unsigned long c7, const T& min7, const T& max7, unsigned long c8, const T& min8, const T& max8); template NtRectangularCut(unsigned long c0, const T& min0, const T& max0, unsigned long c1, const T& min1, const T& max1, unsigned long c2, const T& min2, const T& max2, unsigned long c3, const T& min3, const T& max3, unsigned long c4, const T& min4, const T& max4, unsigned long c5, const T& min5, const T& max5, unsigned long c6, const T& min6, const T& max6, unsigned long c7, const T& min7, const T& max7, unsigned long c8, const T& min8, const T& max8, unsigned long c9, const T& min9, const T& max9); //@} /** // Constructor for a cut of arbitrary dimensionality. Note that // it is impossible to specify a box with negative side length. */ template NtRectangularCut(const std::vector& ntupleColumns, const BoxND& acceptedBox); /** // Add a cut on column contents to the set. Returns *this, so that // a bunch of calls of this method can be stacked. */ template NtRectangularCut& addCut(unsigned long cutColumn, const T& min, const T& max, bool inverted=false); /** Add all cuts from another object of similar kind */ template NtRectangularCut& addCut(const NtRectangularCut& another); /** Invert the meaning of all cuts added so far to this object */ void invert(); /** The number of cuts defined so far */ inline unsigned long dim() const {return nCuts_;} /** In this method, cutNumber parameter should be less than dim() */ inline unsigned long cutColumn(const unsigned long cutNumber) const {return cutData_.at(cutNumber).col;} /** // In principle, min can be larger than max. Because of this, we // can't just return Interval when inspecting cut values. */ void cutInterval(unsigned long cutNumber, Numeric* minValue, Numeric* maxValue) const; /** Was the cut meaning inverted? */ bool isInverted(unsigned long cutNumber) const; /** // The following method returns the number of unique columns. // It may be useful to check that nUniqueColumns() == dim() after // the cut is fully constructed (unless you intentionally include // more than one cut for some column). */ unsigned long nUniqueColumns() const; /** // Convert to column vector / cut box. Intervals in which // min >= max are converted into [min, min]. "acceptedBox" // method will throw std::invalid_argument if any of the // cuts have been inverted. */ std::vector ntupleColumns() const; BoxND acceptedBox() const; /** Operator which returns "true" if an ntuple row passes the cut */ - bool operator()(const Numeric* row, unsigned long nCols) const; + bool operator()(unsigned long rowNumber, + const Numeric* row, unsigned long nCols) const; /** Comparison for equality */ bool operator==(const NtRectangularCut& r) const; /** Logical negation of operator== */ inline bool operator!=(const NtRectangularCut& r) const {return !(*this == r);} //@{ /** Method related to "geners" I/O */ inline gs::ClassId classId() const {return gs::ClassId(*this);} bool write(std::ostream& of) const; //@} static const char* classname(); static inline unsigned version() {return 1;} static void restore(const gs::ClassId& id, std::istream& in, NtRectangularCut* cut); private: struct RCut { inline RCut(unsigned long icol, Numeric imin, Numeric imax, bool inv) : col(icol), min(imin), max(imax), inverted(inv) {} inline bool operator==(const RCut& r) const {return col == r.col && min == r.min && inverted == r.inverted && (max == r.max || (max <= min && r.max <= min));} unsigned long col; Numeric min; Numeric max; bool inverted; }; std::vector cutData_; unsigned long nCuts_; #ifdef SWIG public: inline void addCut2(unsigned long cutColumn, const Numeric& min, const Numeric& max, bool inverted=false) {addCut(cutColumn, min, max, inverted);} inline void addCut2(const NtRectangularCut& another) {addCut(another);} #endif // SWIG }; } #include "npstat/stat/NtRectangularCut.icc" #endif // NPSTAT_NTRECTANGULARCUT_HH_ Index: trunk/npstat/stat/AbsNtuple.icc =================================================================== --- trunk/npstat/stat/AbsNtuple.icc (revision 791) +++ trunk/npstat/stat/AbsNtuple.icc (revision 792) @@ -1,686 +1,686 @@ #include #include #include #include "geners/IOIsSameType.hh" namespace npstat { template inline AbsNtuple::column_iterator::column_iterator() : nt_(0), column_(0), row_(0) { } template inline T AbsNtuple::column_iterator::operator*() const { return (*nt_)(row_, column_); } template inline typename AbsNtuple::column_iterator& AbsNtuple::column_iterator::operator++() { ++row_; return *this; } template inline typename AbsNtuple::column_iterator AbsNtuple::column_iterator::operator++(int) { column_iterator tmp(*this); ++row_; return tmp; } template inline bool AbsNtuple::column_iterator::operator==( const column_iterator& r) const { return row_ == r.row_; } template inline bool AbsNtuple::column_iterator::operator!=( const column_iterator& r) const { return row_ != r.row_; } template inline bool AbsNtuple::column_iterator::operator<( const column_iterator& r) const { return row_ < r.row_; } template inline AbsNtuple::row_iterator::row_iterator() : nt_(0), column_(0), row_(0) { } template inline T AbsNtuple::row_iterator::operator*() const { return (*nt_)(row_, column_); } template inline typename AbsNtuple::row_iterator& AbsNtuple::row_iterator::operator++() { ++column_; return *this; } template inline typename AbsNtuple::row_iterator AbsNtuple::row_iterator::operator++(int) { row_iterator tmp(*this); ++column_; return tmp; } template inline bool AbsNtuple::row_iterator::operator==( const row_iterator& r) const { return column_ == r.column_; } template inline bool AbsNtuple::row_iterator::operator!=( const row_iterator& r) const { return column_ != r.column_; } template inline bool AbsNtuple::row_iterator::operator<( const row_iterator& r) const { return column_ < r.column_; } template inline typename AbsNtuple::column_iterator AbsNtuple::column_begin(const Column& icolumn) const { column_iterator it; it.nt_ = this; it.column_ = icolumn(*this); return it; } template inline typename AbsNtuple::column_iterator AbsNtuple::column_end() const { column_iterator it; it.row_ = nRows(); return it; } template inline typename AbsNtuple::row_iterator AbsNtuple::row_begin(const unsigned long rowNumber) const { if (rowNumber >= nRows()) throw std::out_of_range("In npstat::AbsNtuple::row_begin: " "row number is out of range"); row_iterator it; it.nt_ = this; it.row_ = rowNumber; return it; } template inline typename AbsNtuple::row_iterator AbsNtuple::row_end() const { row_iterator it; it.column_ = colNames_.size(); return it; } template inline T AbsNtuple::element( const unsigned long r, const Column& c) const { return operator()(r, c(*this)); } template inline T AbsNtuple::elementAt( const unsigned long r, const Column& c) const { return at(r, c(*this)); } template bool AbsNtuple::isEqual(const AbsNtuple& r) const { if (colNames_ != r.colNames_) return false; if (title_ != r.title_) return false; const unsigned long ncols = colNames_.size(); const unsigned long nrows = this->nRows(); if (nrows != r.nRows()) return false; for (unsigned long irow=0; irow template inline void AbsNtuple::append(const AbsNtuple& another) { if (another.nColumns() != this->nColumns()) throw std::invalid_argument( "In npstat::AbsNtuple::append: incompatible number of columns"); AppendNTuple::value,T2>::append(this, another); } template template void AbsNtuple::cycleOverRows(Accumulator& acc) const { const unsigned long nr = this->nRows(); if (nr) { const unsigned long nc = colNames_.size(); std::vector rowBuffer(nc); T* buf = &rowBuffer[0]; for (unsigned long i=0UL; i < nr; ++i) { this->rowContents(i, buf, nc); acc.accumulate(buf, nc); } } } template template unsigned long AbsNtuple::conditionalCycleOverRows( const Filter& filter, Accumulator& acc) const { unsigned long nPass = 0UL; const unsigned long nr = this->nRows(); if (nr) { const unsigned long nc = colNames_.size(); std::vector rowBuffer(nc); T* buf = &rowBuffer[0]; const T* constbuf = buf; for (unsigned long i=0UL; i < nr; ++i) { this->rowContents(i, buf, nc); - if (filter(constbuf, nc)) + if (filter(i, constbuf, nc)) { acc.accumulate(buf, nc); ++nPass; } } } return nPass; } template template unsigned long AbsNtuple::conditionalRowCount( const Filter& filter) const { unsigned long nPass = 0UL; const unsigned long nr = this->nRows(); if (nr) { const unsigned long nc = colNames_.size(); std::vector rowBuffer(nc); T* buf = &rowBuffer[0]; const T* constbuf = buf; for (unsigned long i=0UL; i < nr; ++i) { this->rowContents(i, buf, nc); - if (filter(constbuf, nc)) + if (filter(i, constbuf, nc)) ++nPass; } } return nPass; } template template void AbsNtuple::weightedCycleOverRows( Accumulator& acc, const WeightCalc& wcalc, const bool skip0) const { const unsigned long nr = this->nRows(); if (nr) { const unsigned long nc = colNames_.size(); std::vector rowBuffer(nc); T* buf = &rowBuffer[0]; const T* constbuf = buf; for (unsigned long i=0UL; i < nr; ++i) { this->rowContents(i, buf, nc); - const double w = wcalc(constbuf, nc); + const double w = wcalc(i, constbuf, nc); if (w < 0.0) throw std::invalid_argument( "In npstat::AbsNtuple::weightedCycleOverRows: " "negative weight"); if (w > 0.0 || !skip0) acc.accumulate(buf, nc, w); } } } template template double AbsNtuple::weightedConditionalCycleOverRows( const Filter& filter, Accumulator& acc, const WeightCalc& wcalc, const bool skip0) const { long double nPass = 0.0L; const unsigned long nr = this->nRows(); if (nr) { const unsigned long nc = colNames_.size(); std::vector rowBuffer(nc); T* buf = &rowBuffer[0]; const T* constbuf = buf; for (unsigned long i=0UL; i < nr; ++i) { this->rowContents(i, buf, nc); - if (filter(constbuf, nc)) + if (filter(i, constbuf, nc)) { - const double w = wcalc(constbuf, nc); + const double w = wcalc(i, constbuf, nc); if (w < 0.0) throw std::invalid_argument( "In npstat::AbsNtuple::weightedConditionalCycleOverRows:" " negative weight"); if (w > 0.0 || !skip0) acc.accumulate(buf, nc, w); nPass += w; } } } return nPass; } template template double AbsNtuple::weightedConditionalRowCount( const Filter& filter, const WeightCalc& wcalc) const { long double nPass = 0.0L; const unsigned long nr = this->nRows(); if (nr) { const unsigned long nc = colNames_.size(); std::vector rowBuffer(nc); T* buf = &rowBuffer[0]; const T* constbuf = buf; for (unsigned long i=0UL; i < nr; ++i) { this->rowContents(i, buf, nc); - if (filter(constbuf, nc)) + if (filter(i, constbuf, nc)) { - const double w = wcalc(constbuf, nc); + const double w = wcalc(i, constbuf, nc); if (w < 0.0) throw std::invalid_argument( "In npstat::AbsNtuple::weightedConditionalRowCount:" " negative weight"); nPass += w; } } } return nPass; } template unsigned long AbsNtuple::columnNumber(const char* columnName) const { assert(columnName); const std::string* names = &colNames_[0]; const unsigned long ncols = colNames_.size(); unsigned long col = 0; for (; col < ncols; ++col) if (names[col] == columnName) break; return col; } template unsigned long AbsNtuple::validColumn( const char* columnName) const { assert(columnName); const std::string* names = &colNames_[0]; const unsigned long ncols = colNames_.size(); for (unsigned long col = 0; col < ncols; ++col) if (names[col] == columnName) return col; { std::string err = "In npstat::AbsNtuple::validColumn: " "no column named \""; err += columnName; err += "\""; throw std::invalid_argument(err); } return 0; } template bool AbsNtuple::setColumnName(const unsigned long i, const char* newname) { const unsigned long n = colNames_.size(); if (i >= n) return false; if (columnNumber(newname) < n) return false; colNames_[i] = newname; return true; } template std::vector AbsNtuple::columnIndices(const Column& c0) const { std::vector idx(1); idx[0] = c0(*this); return idx; } template std::vector AbsNtuple::columnIndices(const Column& c0, const Column& c1) const { std::vector idx(2); idx[0] = c0(*this); idx[1] = c1(*this); return idx; } template std::vector AbsNtuple::columnIndices(const Column& c0, const Column& c1, const Column& c2) const { std::vector idx(3); idx[0] = c0(*this); idx[1] = c1(*this); idx[2] = c2(*this); return idx; } template std::vector AbsNtuple::columnIndices(const Column& c0, const Column& c1, const Column& c2, const Column& c3) const { std::vector idx(4); idx[0] = c0(*this); idx[1] = c1(*this); idx[2] = c2(*this); idx[3] = c3(*this); return idx; } template std::vector AbsNtuple::columnIndices(const Column& c0, const Column& c1, const Column& c2, const Column& c3, const Column& c4) const { std::vector idx(5); idx[0] = c0(*this); idx[1] = c1(*this); idx[2] = c2(*this); idx[3] = c3(*this); idx[4] = c4(*this); return idx; } template std::vector AbsNtuple::columnIndices(const Column& c0, const Column& c1, const Column& c2, const Column& c3, const Column& c4, const Column& c5) const { std::vector idx(6); idx[0] = c0(*this); idx[1] = c1(*this); idx[2] = c2(*this); idx[3] = c3(*this); idx[4] = c4(*this); idx[5] = c5(*this); return idx; } template std::vector AbsNtuple::columnIndices(const Column& c0, const Column& c1, const Column& c2, const Column& c3, const Column& c4, const Column& c5, const Column& c6) const { std::vector idx(7); idx[0] = c0(*this); idx[1] = c1(*this); idx[2] = c2(*this); idx[3] = c3(*this); idx[4] = c4(*this); idx[5] = c5(*this); idx[6] = c6(*this); return idx; } template std::vector AbsNtuple::columnIndices(const Column& c0, const Column& c1, const Column& c2, const Column& c3, const Column& c4, const Column& c5, const Column& c6, const Column& c7) const { std::vector idx(8); idx[0] = c0(*this); idx[1] = c1(*this); idx[2] = c2(*this); idx[3] = c3(*this); idx[4] = c4(*this); idx[5] = c5(*this); idx[6] = c6(*this); idx[7] = c7(*this); return idx; } template std::vector AbsNtuple::columnIndices(const Column& c0, const Column& c1, const Column& c2, const Column& c3, const Column& c4, const Column& c5, const Column& c6, const Column& c7, const Column& c8) const { std::vector idx(9); idx[0] = c0(*this); idx[1] = c1(*this); idx[2] = c2(*this); idx[3] = c3(*this); idx[4] = c4(*this); idx[5] = c5(*this); idx[6] = c6(*this); idx[7] = c7(*this); idx[8] = c8(*this); return idx; } template std::vector AbsNtuple::columnIndices(const Column& c0, const Column& c1, const Column& c2, const Column& c3, const Column& c4, const Column& c5, const Column& c6, const Column& c7, const Column& c8, const Column& c9) const { std::vector idx(10); idx[0] = c0(*this); idx[1] = c1(*this); idx[2] = c2(*this); idx[3] = c3(*this); idx[4] = c4(*this); idx[5] = c5(*this); idx[6] = c6(*this); idx[7] = c7(*this); idx[8] = c8(*this); idx[9] = c9(*this); return idx; } template std::vector AbsNtuple::columnIndices( const std::vector& names) const { const unsigned long n = names.size(); std::vector cvec(n); for (unsigned long i=0; i bool dumpNtupleAsText(const AbsNtuple& nt, std::ostream& asciiStream, const bool insertCommasBetweenValues, const unsigned long firstRowToDump, const unsigned long nRowsToDump) { if (nRowsToDump) { const unsigned long nR = nt.nRows(); if (firstRowToDump < nR) { const unsigned long nCols = nt.nColumns(); std::vector bufVec(nCols); T* buf = &bufVec[0]; unsigned long ndumped = 0; for (unsigned long irow=firstRowToDump; irow bool fillNtupleFromText(std::istream& asciiStream, AbsNtuple* ntuple, const bool hasCommasBetweenValues, const unsigned long maxRowsToFill) { bool status = true; if (maxRowsToFill) { assert(ntuple); const unsigned long nCols = ntuple->nColumns(); std::vector bufVec(nCols); T* buf = &bufVec[0]; std::string linebuf; std::istringstream is; unsigned long nfilled = 0; while (asciiStream && status && nfilled> buf[icol]; if (is.fail()) { status = false; break; } } // Fill the ntuple if (status) { ntuple->fill(buf, nCols); ++nfilled; } } if ((asciiStream.fail() && !asciiStream.eof()) || asciiStream.bad()) status = false; } return status; } } Index: trunk/npstat/stat/Makefile.am =================================================================== --- trunk/npstat/stat/Makefile.am (revision 791) +++ trunk/npstat/stat/Makefile.am (revision 792) @@ -1,410 +1,411 @@ AM_CPPFLAGS = -I@top_srcdir@/ $(DEPS_CFLAGS) noinst_LTLIBRARIES = libstat.la libstat_la_SOURCES = AbsDistribution1D.cc AbsUnfoldND.cc AbsKDE1DKernel.cc \ AbsDistributionND.cc amiseOptimalBandwidth.cc CompositeDistribution1D.cc \ CompositeDistributionND.cc CopulaInterpolationND.cc SymbetaParams1D.cc \ Distribution1DFactory.cc Distribution1DReader.cc DistributionNDReader.cc \ Distributions1D.cc DistributionsND.cc CrossCovarianceAccumulator.cc \ fitSbParameters.cc StatAccumulatorArr.cc HistoAxis.cc ResponseMatrix.cc \ InterpolatedDistribution1D.cc JohnsonCurves.cc JohnsonKDESmoother.cc \ LocalPolyFilter1D.cc logLikelihoodPeak.cc PolyFilterCollection1D.cc \ SbMomentsBigGamma.cc SbMomentsCalculator.cc gaussianResponseMatrix.cc \ SequentialCopulaSmoother.cc SequentialPolyFilterND.cc StatAccumulator.cc \ UnitMapInterpolationND.cc WeightedStatAccumulator.cc AbsNtuple.cc \ QuadraticOrthoPolyND.cc NMCombinationSequencer.cc Filter1DBuilders.cc \ StatAccumulatorPair.cc GridRandomizer.cc ConstantBandwidthSmoother1D.cc \ GaussianMixture1D.cc HistoNDCdf.cc NUHistoAxis.cc AllSymbetaParams1D.cc \ distributionReadError.cc WeightedStatAccumulatorPair.cc AbsUnfold1D.cc \ ProductSymmetricBetaNDCdf.cc DualHistoAxis.cc multinomialCovariance1D.cc \ StorableMultivariateFunctor.cc StorableMultivariateFunctorReader.cc \ TruncatedDistribution1D.cc neymanPearsonWindow1D.cc AsinhTransform1D.cc \ LOrPEMarginalSmoother.cc LeftCensoredDistribution.cc QuantileTable1D.cc \ RightCensoredDistribution.cc AbsDiscreteDistribution1D.cc convertAxis.cc \ DiscreteDistribution1DReader.cc DiscreteDistributions1D.cc lorpeMise1D.cc \ BernsteinFilter1DBuilder.cc BetaFilter1DBuilder.cc AbsFilter1DBuilder.cc \ continuousDegreeTaper.cc RatioOfNormals.cc AbsCVCopulaSmoother.cc \ DensityScan1D.cc BoundaryHandling.cc SmoothedEMUnfold1D.cc Copulas.cc \ PearsonsChiSquared.cc BinnedKSTest1D.cc MultiscaleEMUnfold1D.cc \ AbsBinnedComparison1D.cc BinnedADTest1D.cc LocalPolyFilter1DReader.cc \ MemoizingSymbetaFilterProvider.cc UGaussConvolution1D.cc BinSummary.cc \ SmoothedEMUnfoldND.cc UnfoldingFilterNDReader.cc AbsUnfoldingFilterND.cc \ UnfoldingBandwidthScannerND.cc DistributionMix1D.cc ScalableGaussND.cc \ InterpolatedDistro1D1P.cc AbsDistributionTransform1D.cc LogTransform1D.cc \ DistributionTransform1DReader.cc TransformedDistribution1D.cc AbsCGF1D.cc \ WeightTableFilter1DBuilder.cc VerticallyInterpolatedDistribution1D.cc \ LocalMultiFilter1D.cc LogRatioTransform1D.cc IdentityTransform1D.cc \ VariableBandwidthSmoother1D.cc AbsMarginalSmootherBase.cc OSDE1D.cc \ buildInterpolatedHelpers.cc GridInterpolatedDistribution.cc StatUtils.cc \ AbsCopulaSmootherBase.cc BernsteinCopulaSmoother.cc distro1DStats.cc \ SequentialGroupedCopulaSmoother.cc UnfoldingBandwidthScanner1D.cc \ InterpolatedDistro1DNP.cc volumeDensityFromBinnedRadial.cc \ statUncertainties.cc LocationScaleFamily1D.cc SinhAsinhTransform1D.cc \ KDE1DHOSymbetaKernel.cc EdgeworthSeriesMethod.cc scannedKSDistance.cc \ EdgeworthSeries1D.cc DeltaMixture1D.cc LikelihoodStatisticType.cc \ likelihoodStatisticCumulants.cc GaussianMixtureEntry.cc SeriesCGF1D.cc \ correctDensityEstimateGHU.cc ComparisonDistribution1D.cc \ DistributionMixND.cc DiscreteGauss1DBuilder.cc DensityOrthoPoly1D.cc \ scanMultivariateDensityAsWeight.cc scanSymmetricDensityAsWeight.cc \ DiscreteGaussCopulaSmoother.cc ExpTiltedDistribution1D.cc \ saddlepointDistribution1D.cc MatrixFilter1DBuilder.cc \ PolynomialDistro1D.cc AbsUnbinnedGOFTest1D.cc OrthoPolyGOFTest1D.cc \ UnbinnedGOFTests1D.cc SmoothGOFTest1D.cc UnbinnedGOFTest1DFactory.cc \ LOrPE1DSymbetaKernel.cc FoldedDistribution1D.cc includedir = ${prefix}/include/npstat/stat include_HEADERS = AbsBandwidthCV.hh \ AbsBandwidthGCV.hh \ AbsBinnedComparison1D.hh \ AbsBinnedComparison1D.icc \ AbsCGF1D.hh \ AbsCompositeDistroBuilder.hh \ AbsCompositeDistroBuilder.icc \ AbsCopulaSmootherBase.hh \ AbsCopulaSmootherBase.icc \ AbsCVCopulaSmoother.hh \ AbsDiscreteDistribution1D.hh \ AbsDistribution1D.hh \ AbsDistribution1D.icc \ AbsDistributionND.hh \ AbsDistributionND.icc \ AbsDistributionTransform1D.hh \ AbsDistro1DBuilder.hh \ AbsDistro1DBuilder.icc \ AbsFilter1DBuilder.hh \ AbsInterpolatedDistribution1D.hh \ AbsInterpolationAlgoND.hh \ AbsKDE1DKernel.hh \ AbsKDE1DKernel.icc \ AbsLossCalculator.hh \ AbsMarginalSmootherBase.hh \ AbsMarginalSmootherBase.icc \ AbsNtuple.hh \ AbsNtuple.icc \ AbsPolyFilter1D.hh \ AbsPolyFilterND.hh \ AbsResponseBoxBuilder.hh \ AbsResponseIntervalBuilder.hh \ AbsSymbetaFilterProvider.hh \ AbsUnbinnedGOFTest1D.hh \ AbsUnfold1D.hh \ AbsUnfoldingFilterND.hh \ AbsUnfoldND.hh \ AllSymbetaParams1D.hh \ amiseOptimalBandwidth.hh \ amiseOptimalBandwidth.icc \ ArchivedNtuple.hh \ ArchivedNtuple.icc \ ArrayProjectors.hh \ ArrayProjectors.icc \ arrayStats.hh \ arrayStats.icc \ AsinhTransform1D.hh \ BandwidthCVLeastSquares1D.hh \ BandwidthCVLeastSquares1D.icc \ BandwidthCVLeastSquaresND.hh \ BandwidthCVLeastSquaresND.icc \ BandwidthCVPseudoLogli1D.hh \ BandwidthCVPseudoLogli1D.icc \ BandwidthCVPseudoLogliND.hh \ BandwidthCVPseudoLogliND.icc \ BandwidthGCVLeastSquares1D.hh \ BandwidthGCVLeastSquares1D.icc \ BandwidthGCVLeastSquaresND.hh \ BandwidthGCVLeastSquaresND.icc \ BandwidthGCVPseudoLogli1D.hh \ BandwidthGCVPseudoLogli1D.icc \ BandwidthGCVPseudoLogliND.hh \ BandwidthGCVPseudoLogliND.icc \ BernsteinCopulaSmoother.hh \ BernsteinFilter1DBuilder.hh \ betaKernelsBandwidth.hh \ betaKernelsBandwidth.icc \ BetaFilter1DBuilder.hh \ BinnedADTest1D.hh \ BinnedKSTest1D.hh \ BinSummary.hh \ BinSummary.icc \ BoundaryHandling.hh \ BoundaryMethod.hh \ buildInterpolatedCompositeDistroND.hh \ buildInterpolatedCompositeDistroND.icc \ buildInterpolatedDistro1DNP.hh \ buildInterpolatedDistro1DNP.icc \ buildInterpolatedHelpers.hh \ CensoredQuantileRegression.hh \ CensoredQuantileRegression.icc \ CircularBuffer.hh \ CircularBuffer.icc \ Column.hh \ Column.icc \ ComparisonDistribution1D.hh \ CompositeDistribution1D.hh \ CompositeDistributionND.hh \ CompositeDistributionND.icc \ CompositeDistros1D.hh \ ConstantBandwidthSmoother1D.hh \ ConstantBandwidthSmootherND.hh \ ConstantBandwidthSmootherND.icc \ continuousDegreeTaper.hh \ convertAxis.hh \ CopulaInterpolationND.hh \ Copulas.hh \ correctDensityEstimateGHU.hh \ CrossCovarianceAccumulator.hh \ CrossCovarianceAccumulator.icc \ cumulantConversion.hh \ cumulantConversion.icc \ cumulantUncertainties.hh \ cumulantUncertainties.icc \ CVCopulaSmoother.hh \ CVCopulaSmoother.icc \ DeltaMixture1D.hh \ DeltaMixture1D.icc \ DensityAveScanND.hh \ DensityOrthoPoly1D.hh \ DensityScan1D.hh \ DensityScanND.hh \ DiscreteDistribution1DReader.hh \ DiscreteDistributions1D.hh \ DiscreteGauss1DBuilder.hh \ DiscreteGaussCopulaSmoother.hh \ discretizationErrorND.hh \ Distribution1DFactory.hh \ Distribution1DReader.hh \ DistributionTransform1DReader.hh \ DistributionMix1D.hh \ DistributionMixND.hh \ DistributionNDReader.hh \ Distributions1D.hh \ Distributions1D.icc \ DistributionsND.hh \ DistributionsND.icc \ distributionReadError.hh \ distro1DStats.hh \ DualHistoAxis.hh \ DummyCompositeDistroBuilder.hh \ DummyDistro1DBuilder.hh \ DummyResponseBoxBuilder.hh \ DummyResponseIntervalBuilder.hh \ EdgeworthSeries1D.hh \ EdgeworthSeriesMethod.hh \ empiricalCopula.hh \ empiricalCopulaHisto.hh \ empiricalCopulaHisto.icc \ empiricalCopula.icc \ ExpTiltedDistribution1D.hh \ fillHistoFromText.hh \ fillHistoFromText.icc \ Filter1DBuilders.hh \ FitUtils.hh \ FitUtils.icc \ FoldedDistribution1D.hh \ GaussianMixtureEntry.hh \ GaussianMixture1D.hh \ gaussianResponseMatrix.hh \ GCVCopulaSmoother.hh \ GCVCopulaSmoother.icc \ griddedRobustRegression.hh \ griddedRobustRegression.icc \ GriddedRobustRegressionStop.hh \ GridInterpolatedDistribution.hh \ GridRandomizer.hh \ HistoAxis.hh \ HistoND.hh \ HistoND.icc \ HistoNDCdf.hh \ HistoNDFunctorInstances.hh \ histoStats.hh \ histoStats.icc \ histoUtils.hh \ histoUtils.icc \ IdentityTransform1D.hh \ InMemoryNtuple.hh \ InMemoryNtuple.icc \ InterpolatedDistribution1D.hh \ InterpolatedDistro1D1P.hh \ InterpolatedDistro1DNP.hh \ interpolateHistoND.hh \ interpolateHistoND.icc \ InterpolationFunctorInstances.hh \ JohnsonCurves.hh \ JohnsonKDESmoother.hh \ KDE1D.hh \ KDE1DCV.hh \ KDE1DHOSymbetaKernel.hh \ KDECopulaSmoother.hh \ KDECopulaSmoother.icc \ KDEGroupedCopulaSmoother.hh \ KDEGroupedCopulaSmoother.icc \ KDEFilterND.hh \ KDEFilterND.icc \ kendallsTau.hh \ kendallsTau.icc \ kernelSensitivityMatrix.hh \ kernelSensitivityMatrix.icc \ LeftCensoredDistribution.hh \ likelihoodStatisticCumulants.hh \ LikelihoodStatisticType.hh \ LocalLogisticRegression.hh \ LocalLogisticRegression.icc \ LocalMultiFilter1D.hh \ LocalMultiFilter1D.icc \ LocalPolyFilter1D.hh \ LocalPolyFilter1D.icc \ LocalPolyFilter1DReader.hh \ LocalPolyFilterND.hh \ LocalPolyFilterND.icc \ LocalQuadraticLeastSquaresND.hh \ LocalQuadraticLeastSquaresND.icc \ LocalQuantileRegression.hh \ LocalQuantileRegression.icc \ LocationScaleFamily1D.hh \ LocationScaleTransform1.hh \ LocationScaleTransform1.icc \ logLikelihoodPeak.hh \ LogRatioTransform1D.hh \ LogTransform1D.hh \ LOrPE1D.hh \ LOrPE1D.icc \ LOrPE1DCV.hh \ LOrPE1DSymbetaKernel.hh \ LOrPE1DSymbetaKernel.icc \ LOrPECopulaSmoother.hh \ LOrPECopulaSmoother.icc \ LOrPEGroupedCopulaSmoother.hh \ LOrPEGroupedCopulaSmoother.icc \ LOrPEMarginalSmoother.hh \ lorpeBackgroundCVDensity1D.hh \ lorpeBackgroundCVDensity1D.icc \ lorpeBackground1D.hh \ lorpeBackground1D.icc \ lorpeMise1D.hh \ lorpeSmooth1D.hh \ lorpeSmooth1D.icc \ MatrixFilter1DBuilder.hh \ MemoizingSymbetaFilterProvider.hh \ mergeTwoHistos.hh \ mergeTwoHistos.icc \ mirrorWeight.hh \ + ModulatedDistribution1D.hh \ MultiscaleEMUnfold1D.hh \ multinomialCovariance1D.hh \ MultivariateSumAccumulator.hh \ MultivariateSumsqAccumulator.hh \ MultivariateSumsqAccumulator.icc \ MultivariateWeightedSumAccumulator.hh \ MultivariateWeightedSumsqAccumulator.hh \ MultivariateWeightedSumsqAccumulator.icc \ neymanPearsonWindow1D.hh \ NMCombinationSequencer.hh \ NonparametricCompositeBuilder.hh \ NonparametricCompositeBuilder.icc \ NonparametricDistro1DBuilder.hh \ NonparametricDistro1DBuilder.icc \ NtHistoFill.hh \ NtNtupleFill.hh \ NtRectangularCut.hh \ NtRectangularCut.icc \ NtupleBuffer.hh \ NtupleBuffer.icc \ NtupleRecordTypes.hh \ NtupleRecordTypesFwd.hh \ NtupleReference.hh \ NUHistoAxis.hh \ OrderedPointND.hh \ OrderedPointND.icc \ orthoPoly1DVProducts.hh \ orthoPoly1DVProducts.icc \ OrthoPolyGOFTest1D.hh \ OrthoPolyGOFTest1D.icc \ OSDE1D.hh \ OSDE1D.icc \ PearsonsChiSquared.hh \ PolyFilterCollection1D.hh \ PolynomialDistro1D.hh \ productResponseMatrix.hh \ productResponseMatrix.icc \ ProductSymmetricBetaNDCdf.hh \ QuadraticOrthoPolyND.hh \ QuadraticOrthoPolyND.icc \ QuantileRegression1D.hh \ QuantileRegression1D.icc \ QuantileTable1D.hh \ randomHistoFill1D.hh \ randomHistoFill1D.icc \ randomHistoFillND.hh \ randomHistoFillND.icc \ RatioOfNormals.hh \ RatioResponseBoxBuilder.hh \ RatioResponseBoxBuilder.icc \ RatioResponseIntervalBuilder.hh \ RatioResponseIntervalBuilder.icc \ ResponseMatrix.hh \ RightCensoredDistribution.hh \ saddlepointDistribution1D.hh \ SampleAccumulator.hh \ SampleAccumulator.icc \ sampleDistro1DWithWeight.hh \ SbMomentsCalculator.hh \ ScalableGaussND.hh \ scannedKSDistance.hh \ scanMultivariateDensityAsWeight.hh \ scanSymmetricDensityAsWeight.hh \ SequentialCopulaSmoother.hh \ SequentialCopulaSmoother.icc \ SequentialGroupedCopulaSmoother.hh \ SequentialGroupedCopulaSmoother.icc \ SequentialPolyFilterND.hh \ SequentialPolyFilterND.icc \ SeriesCGF1D.hh \ SinhAsinhTransform1D.hh \ SmoothedEMUnfold1D.hh \ SmoothedEMUnfoldND.hh \ SmoothGOFTest1D.hh \ SmoothGOFTest1D.icc \ spearmansRho.hh \ spearmansRho.icc \ StatAccumulator.hh \ StatAccumulatorArr.hh \ StatAccumulatorPair.hh \ statUncertainties.hh \ StatUtils.hh \ StatUtils.icc \ StorableHistoNDFunctor.hh \ StorableHistoNDFunctor.icc \ StorableInterpolationFunctor.hh \ StorableInterpolationFunctor.icc \ StorableMultivariateFunctor.hh \ StorableMultivariateFunctorReader.hh \ SymbetaParams1D.hh \ TransformedDistribution1D.hh \ TruncatedDistribution1D.hh \ TwoPointsLTSLoss.hh \ TwoPointsLTSLoss.icc \ UGaussConvolution1D.hh \ UnbinnedGOFTests1D.hh \ UnbinnedGOFTests1D.icc \ UnbinnedGOFTest1DFactory.hh \ UnfoldingBandwidthScanner1D.hh \ UnfoldingBandwidthScannerND.hh \ UnfoldingFilterNDReader.hh \ UnitMapInterpolationND.hh \ variableBandwidthSmooth1D.hh \ variableBandwidthSmooth1D.icc \ VariableBandwidthSmoother1D.hh \ VerticallyInterpolatedDistribution1D.hh \ volumeDensityFromBinnedRadial.hh \ weightedCopulaHisto.hh \ weightedCopulaHisto.icc \ WeightedDistro1DPtr.hh \ WeightedLTSLoss.hh \ WeightedLTSLoss.icc \ WeightedSampleAccumulator.hh \ WeightedSampleAccumulator.icc \ WeightedStatAccumulator.hh \ WeightedStatAccumulatorPair.hh \ WeightTableFilter1DBuilder.hh EXTRA_DIST = 00README.txt npstat_doxy.hh Index: trunk/npstat/stat/sampleDistro1DWithWeight.hh =================================================================== --- trunk/npstat/stat/sampleDistro1DWithWeight.hh (revision 791) +++ trunk/npstat/stat/sampleDistro1DWithWeight.hh (revision 792) @@ -1,159 +1,158 @@ #ifndef NPSTAT_SAMPLEDISTRO1DWITHWEIGHT_HH_ #define NPSTAT_SAMPLEDISTRO1DWITHWEIGHT_HH_ /*! // \file sampleDistro1DWithWeight.hh // // \brief Acceptance-rejection sampling from a density with compensatory // weights. Does not change the average but affects the variance. // // Author: I. Volobouev // // June 2022 */ #include #include #include #include #include #include #include "npstat/nm/Triple.hh" #include "npstat/nm/fcnOrConst.hh" #include "npstat/rng/AbsRandomGenerator.hh" #include "npstat/stat/AbsDistribution1D.hh" namespace npstat { enum SampleSizeInterpretation { SIZE_IS_N_TRIES = 0, SIZE_IS_N_GENERATED, SIZE_IS_KISHS }; /** // AcceptanceFunction is a functor which takes a double as // an argument and returns a double on the [0, 1] interval. // // The elements of the returned triple are: // // first -- sum of weights // // second -- the Kish's effective sample size of the generated // sample // // third -- the efficiency of the generator (the ratio between // the number of points generated and the number of // points attempted) // // In each generated point (the vector "sample" is filled with them), // the first element of the pair is the point coordinate and the // second element is the point weight. - // */ template inline npstat::Triple sampleDistro1DWithWeight( const AbsDistribution1D& distro, const AcceptanceFunction& fcn, AbsRandomGenerator& rng, const double sampleSize, const SampleSizeInterpretation whichSize, std::vector >* sample) { if (sampleSize < 0.0) throw std::invalid_argument( "In npstat::sampleDistro1DWithWeight: " "sample size can not be negative"); if (sample) sample->clear(); if (sampleSize > 0.0) { assert(sample); long double kishLimit = LDBL_MAX; unsigned long nTriesLimit = ULONG_MAX; unsigned long nGeneratedLimit = ULONG_MAX; double lastTryProb = 1.0; double lastGenProb = 1.0; switch (whichSize) { case SIZE_IS_N_TRIES: nTriesLimit = std::floor(sampleSize); if (static_cast(nTriesLimit) != sampleSize) { lastTryProb = sampleSize - nTriesLimit; ++nTriesLimit; } break; case SIZE_IS_N_GENERATED: nGeneratedLimit = std::floor(sampleSize); if (static_cast(nGeneratedLimit) != sampleSize) { lastGenProb = sampleSize - nGeneratedLimit; ++nGeneratedLimit; } break; case SIZE_IS_KISHS: kishLimit = sampleSize; break; default: assert(!"In npstat::sampleDistro1DWithWeight: " "unhandled switch case. This is a bug. Please report."); } unsigned long nTries = 0, nAccepted = 0; long double effSize = 0.0L, sumW = 0.0L, sumWSq = 0.0L; double tmp; while (effSize < kishLimit && nAccepted < nGeneratedLimit && nTries < nTriesLimit) { if (nTries + 1U == nTriesLimit) if (rng() > lastTryProb) break; distro.random(rng, &tmp); const double sf = fcnOrConst(fcn, tmp); assert(sf >= 0.0); assert(sf <= 1.0); if (sf > 0.0) { const double r = rng(); if (r <= sf) { ++nAccepted; bool accepted = true; if (nAccepted == nGeneratedLimit) if (rng() > lastGenProb) accepted = false; if (accepted) { const double w = 1.0/sf; sample->push_back(std::pair(tmp, w)); sumW += w; sumWSq += w*w; effSize = sumW/sumWSq*sumW; } } } ++nTries; } double eff = 0.0; if (nTries) eff = static_cast(nAccepted)/nTries; return npstat::Triple(sumW, effSize, eff); } else return npstat::Triple(0.0, 0.0, 0.0); } } #endif // NPSTAT_SAMPLEDISTRO1DWITHWEIGHT_HH_ Index: trunk/npstat/stat/Makefile.in =================================================================== --- trunk/npstat/stat/Makefile.in (revision 791) +++ trunk/npstat/stat/Makefile.in (revision 792) @@ -1,1698 +1,1699 @@ # Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2018 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/stat 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) libstat_la_LIBADD = am_libstat_la_OBJECTS = AbsDistribution1D.lo AbsUnfoldND.lo \ AbsKDE1DKernel.lo AbsDistributionND.lo \ amiseOptimalBandwidth.lo CompositeDistribution1D.lo \ CompositeDistributionND.lo CopulaInterpolationND.lo \ SymbetaParams1D.lo Distribution1DFactory.lo \ Distribution1DReader.lo DistributionNDReader.lo \ Distributions1D.lo DistributionsND.lo \ CrossCovarianceAccumulator.lo fitSbParameters.lo \ StatAccumulatorArr.lo HistoAxis.lo ResponseMatrix.lo \ InterpolatedDistribution1D.lo JohnsonCurves.lo \ JohnsonKDESmoother.lo LocalPolyFilter1D.lo \ logLikelihoodPeak.lo PolyFilterCollection1D.lo \ SbMomentsBigGamma.lo SbMomentsCalculator.lo \ gaussianResponseMatrix.lo SequentialCopulaSmoother.lo \ SequentialPolyFilterND.lo StatAccumulator.lo \ UnitMapInterpolationND.lo WeightedStatAccumulator.lo \ AbsNtuple.lo QuadraticOrthoPolyND.lo NMCombinationSequencer.lo \ Filter1DBuilders.lo StatAccumulatorPair.lo GridRandomizer.lo \ ConstantBandwidthSmoother1D.lo GaussianMixture1D.lo \ HistoNDCdf.lo NUHistoAxis.lo AllSymbetaParams1D.lo \ distributionReadError.lo WeightedStatAccumulatorPair.lo \ AbsUnfold1D.lo ProductSymmetricBetaNDCdf.lo DualHistoAxis.lo \ multinomialCovariance1D.lo StorableMultivariateFunctor.lo \ StorableMultivariateFunctorReader.lo \ TruncatedDistribution1D.lo neymanPearsonWindow1D.lo \ AsinhTransform1D.lo LOrPEMarginalSmoother.lo \ LeftCensoredDistribution.lo QuantileTable1D.lo \ RightCensoredDistribution.lo AbsDiscreteDistribution1D.lo \ convertAxis.lo DiscreteDistribution1DReader.lo \ DiscreteDistributions1D.lo lorpeMise1D.lo \ BernsteinFilter1DBuilder.lo BetaFilter1DBuilder.lo \ AbsFilter1DBuilder.lo continuousDegreeTaper.lo \ RatioOfNormals.lo AbsCVCopulaSmoother.lo DensityScan1D.lo \ BoundaryHandling.lo SmoothedEMUnfold1D.lo Copulas.lo \ PearsonsChiSquared.lo BinnedKSTest1D.lo \ MultiscaleEMUnfold1D.lo AbsBinnedComparison1D.lo \ BinnedADTest1D.lo LocalPolyFilter1DReader.lo \ MemoizingSymbetaFilterProvider.lo UGaussConvolution1D.lo \ BinSummary.lo SmoothedEMUnfoldND.lo UnfoldingFilterNDReader.lo \ AbsUnfoldingFilterND.lo UnfoldingBandwidthScannerND.lo \ DistributionMix1D.lo ScalableGaussND.lo \ InterpolatedDistro1D1P.lo AbsDistributionTransform1D.lo \ LogTransform1D.lo DistributionTransform1DReader.lo \ TransformedDistribution1D.lo AbsCGF1D.lo \ WeightTableFilter1DBuilder.lo \ VerticallyInterpolatedDistribution1D.lo LocalMultiFilter1D.lo \ LogRatioTransform1D.lo IdentityTransform1D.lo \ VariableBandwidthSmoother1D.lo AbsMarginalSmootherBase.lo \ OSDE1D.lo buildInterpolatedHelpers.lo \ GridInterpolatedDistribution.lo StatUtils.lo \ AbsCopulaSmootherBase.lo BernsteinCopulaSmoother.lo \ distro1DStats.lo SequentialGroupedCopulaSmoother.lo \ UnfoldingBandwidthScanner1D.lo InterpolatedDistro1DNP.lo \ volumeDensityFromBinnedRadial.lo statUncertainties.lo \ LocationScaleFamily1D.lo SinhAsinhTransform1D.lo \ KDE1DHOSymbetaKernel.lo EdgeworthSeriesMethod.lo \ scannedKSDistance.lo EdgeworthSeries1D.lo DeltaMixture1D.lo \ LikelihoodStatisticType.lo likelihoodStatisticCumulants.lo \ GaussianMixtureEntry.lo SeriesCGF1D.lo \ correctDensityEstimateGHU.lo ComparisonDistribution1D.lo \ DistributionMixND.lo DiscreteGauss1DBuilder.lo \ DensityOrthoPoly1D.lo scanMultivariateDensityAsWeight.lo \ scanSymmetricDensityAsWeight.lo DiscreteGaussCopulaSmoother.lo \ ExpTiltedDistribution1D.lo saddlepointDistribution1D.lo \ MatrixFilter1DBuilder.lo PolynomialDistro1D.lo \ AbsUnbinnedGOFTest1D.lo OrthoPolyGOFTest1D.lo \ UnbinnedGOFTests1D.lo SmoothGOFTest1D.lo \ UnbinnedGOFTest1DFactory.lo LOrPE1DSymbetaKernel.lo \ FoldedDistribution1D.lo libstat_la_OBJECTS = $(am_libstat_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)/AbsBinnedComparison1D.Plo \ ./$(DEPDIR)/AbsCGF1D.Plo ./$(DEPDIR)/AbsCVCopulaSmoother.Plo \ ./$(DEPDIR)/AbsCopulaSmootherBase.Plo \ ./$(DEPDIR)/AbsDiscreteDistribution1D.Plo \ ./$(DEPDIR)/AbsDistribution1D.Plo \ ./$(DEPDIR)/AbsDistributionND.Plo \ ./$(DEPDIR)/AbsDistributionTransform1D.Plo \ ./$(DEPDIR)/AbsFilter1DBuilder.Plo \ ./$(DEPDIR)/AbsKDE1DKernel.Plo \ ./$(DEPDIR)/AbsMarginalSmootherBase.Plo \ ./$(DEPDIR)/AbsNtuple.Plo ./$(DEPDIR)/AbsUnbinnedGOFTest1D.Plo \ ./$(DEPDIR)/AbsUnfold1D.Plo ./$(DEPDIR)/AbsUnfoldND.Plo \ ./$(DEPDIR)/AbsUnfoldingFilterND.Plo \ ./$(DEPDIR)/AllSymbetaParams1D.Plo \ ./$(DEPDIR)/AsinhTransform1D.Plo \ ./$(DEPDIR)/BernsteinCopulaSmoother.Plo \ ./$(DEPDIR)/BernsteinFilter1DBuilder.Plo \ ./$(DEPDIR)/BetaFilter1DBuilder.Plo ./$(DEPDIR)/BinSummary.Plo \ ./$(DEPDIR)/BinnedADTest1D.Plo ./$(DEPDIR)/BinnedKSTest1D.Plo \ ./$(DEPDIR)/BoundaryHandling.Plo \ ./$(DEPDIR)/ComparisonDistribution1D.Plo \ ./$(DEPDIR)/CompositeDistribution1D.Plo \ ./$(DEPDIR)/CompositeDistributionND.Plo \ ./$(DEPDIR)/ConstantBandwidthSmoother1D.Plo \ ./$(DEPDIR)/CopulaInterpolationND.Plo ./$(DEPDIR)/Copulas.Plo \ ./$(DEPDIR)/CrossCovarianceAccumulator.Plo \ ./$(DEPDIR)/DeltaMixture1D.Plo \ ./$(DEPDIR)/DensityOrthoPoly1D.Plo \ ./$(DEPDIR)/DensityScan1D.Plo \ ./$(DEPDIR)/DiscreteDistribution1DReader.Plo \ ./$(DEPDIR)/DiscreteDistributions1D.Plo \ ./$(DEPDIR)/DiscreteGauss1DBuilder.Plo \ ./$(DEPDIR)/DiscreteGaussCopulaSmoother.Plo \ ./$(DEPDIR)/Distribution1DFactory.Plo \ ./$(DEPDIR)/Distribution1DReader.Plo \ ./$(DEPDIR)/DistributionMix1D.Plo \ ./$(DEPDIR)/DistributionMixND.Plo \ ./$(DEPDIR)/DistributionNDReader.Plo \ ./$(DEPDIR)/DistributionTransform1DReader.Plo \ ./$(DEPDIR)/Distributions1D.Plo \ ./$(DEPDIR)/DistributionsND.Plo ./$(DEPDIR)/DualHistoAxis.Plo \ ./$(DEPDIR)/EdgeworthSeries1D.Plo \ ./$(DEPDIR)/EdgeworthSeriesMethod.Plo \ ./$(DEPDIR)/ExpTiltedDistribution1D.Plo \ ./$(DEPDIR)/Filter1DBuilders.Plo \ ./$(DEPDIR)/FoldedDistribution1D.Plo \ ./$(DEPDIR)/GaussianMixture1D.Plo \ ./$(DEPDIR)/GaussianMixtureEntry.Plo \ ./$(DEPDIR)/GridInterpolatedDistribution.Plo \ ./$(DEPDIR)/GridRandomizer.Plo ./$(DEPDIR)/HistoAxis.Plo \ ./$(DEPDIR)/HistoNDCdf.Plo ./$(DEPDIR)/IdentityTransform1D.Plo \ ./$(DEPDIR)/InterpolatedDistribution1D.Plo \ ./$(DEPDIR)/InterpolatedDistro1D1P.Plo \ ./$(DEPDIR)/InterpolatedDistro1DNP.Plo \ ./$(DEPDIR)/JohnsonCurves.Plo \ ./$(DEPDIR)/JohnsonKDESmoother.Plo \ ./$(DEPDIR)/KDE1DHOSymbetaKernel.Plo \ ./$(DEPDIR)/LOrPE1DSymbetaKernel.Plo \ ./$(DEPDIR)/LOrPEMarginalSmoother.Plo \ ./$(DEPDIR)/LeftCensoredDistribution.Plo \ ./$(DEPDIR)/LikelihoodStatisticType.Plo \ ./$(DEPDIR)/LocalMultiFilter1D.Plo \ ./$(DEPDIR)/LocalPolyFilter1D.Plo \ ./$(DEPDIR)/LocalPolyFilter1DReader.Plo \ ./$(DEPDIR)/LocationScaleFamily1D.Plo \ ./$(DEPDIR)/LogRatioTransform1D.Plo \ ./$(DEPDIR)/LogTransform1D.Plo \ ./$(DEPDIR)/MatrixFilter1DBuilder.Plo \ ./$(DEPDIR)/MemoizingSymbetaFilterProvider.Plo \ ./$(DEPDIR)/MultiscaleEMUnfold1D.Plo \ ./$(DEPDIR)/NMCombinationSequencer.Plo \ ./$(DEPDIR)/NUHistoAxis.Plo ./$(DEPDIR)/OSDE1D.Plo \ ./$(DEPDIR)/OrthoPolyGOFTest1D.Plo \ ./$(DEPDIR)/PearsonsChiSquared.Plo \ ./$(DEPDIR)/PolyFilterCollection1D.Plo \ ./$(DEPDIR)/PolynomialDistro1D.Plo \ ./$(DEPDIR)/ProductSymmetricBetaNDCdf.Plo \ ./$(DEPDIR)/QuadraticOrthoPolyND.Plo \ ./$(DEPDIR)/QuantileTable1D.Plo ./$(DEPDIR)/RatioOfNormals.Plo \ ./$(DEPDIR)/ResponseMatrix.Plo \ ./$(DEPDIR)/RightCensoredDistribution.Plo \ ./$(DEPDIR)/SbMomentsBigGamma.Plo \ ./$(DEPDIR)/SbMomentsCalculator.Plo \ ./$(DEPDIR)/ScalableGaussND.Plo \ ./$(DEPDIR)/SequentialCopulaSmoother.Plo \ ./$(DEPDIR)/SequentialGroupedCopulaSmoother.Plo \ ./$(DEPDIR)/SequentialPolyFilterND.Plo \ ./$(DEPDIR)/SeriesCGF1D.Plo \ ./$(DEPDIR)/SinhAsinhTransform1D.Plo \ ./$(DEPDIR)/SmoothGOFTest1D.Plo \ ./$(DEPDIR)/SmoothedEMUnfold1D.Plo \ ./$(DEPDIR)/SmoothedEMUnfoldND.Plo \ ./$(DEPDIR)/StatAccumulator.Plo \ ./$(DEPDIR)/StatAccumulatorArr.Plo \ ./$(DEPDIR)/StatAccumulatorPair.Plo ./$(DEPDIR)/StatUtils.Plo \ ./$(DEPDIR)/StorableMultivariateFunctor.Plo \ ./$(DEPDIR)/StorableMultivariateFunctorReader.Plo \ ./$(DEPDIR)/SymbetaParams1D.Plo \ ./$(DEPDIR)/TransformedDistribution1D.Plo \ ./$(DEPDIR)/TruncatedDistribution1D.Plo \ ./$(DEPDIR)/UGaussConvolution1D.Plo \ ./$(DEPDIR)/UnbinnedGOFTest1DFactory.Plo \ ./$(DEPDIR)/UnbinnedGOFTests1D.Plo \ ./$(DEPDIR)/UnfoldingBandwidthScanner1D.Plo \ ./$(DEPDIR)/UnfoldingBandwidthScannerND.Plo \ ./$(DEPDIR)/UnfoldingFilterNDReader.Plo \ ./$(DEPDIR)/UnitMapInterpolationND.Plo \ ./$(DEPDIR)/VariableBandwidthSmoother1D.Plo \ ./$(DEPDIR)/VerticallyInterpolatedDistribution1D.Plo \ ./$(DEPDIR)/WeightTableFilter1DBuilder.Plo \ ./$(DEPDIR)/WeightedStatAccumulator.Plo \ ./$(DEPDIR)/WeightedStatAccumulatorPair.Plo \ ./$(DEPDIR)/amiseOptimalBandwidth.Plo \ ./$(DEPDIR)/buildInterpolatedHelpers.Plo \ ./$(DEPDIR)/continuousDegreeTaper.Plo \ ./$(DEPDIR)/convertAxis.Plo \ ./$(DEPDIR)/correctDensityEstimateGHU.Plo \ ./$(DEPDIR)/distributionReadError.Plo \ ./$(DEPDIR)/distro1DStats.Plo ./$(DEPDIR)/fitSbParameters.Plo \ ./$(DEPDIR)/gaussianResponseMatrix.Plo \ ./$(DEPDIR)/likelihoodStatisticCumulants.Plo \ ./$(DEPDIR)/logLikelihoodPeak.Plo ./$(DEPDIR)/lorpeMise1D.Plo \ ./$(DEPDIR)/multinomialCovariance1D.Plo \ ./$(DEPDIR)/neymanPearsonWindow1D.Plo \ ./$(DEPDIR)/saddlepointDistribution1D.Plo \ ./$(DEPDIR)/scanMultivariateDensityAsWeight.Plo \ ./$(DEPDIR)/scanSymmetricDensityAsWeight.Plo \ ./$(DEPDIR)/scannedKSDistance.Plo \ ./$(DEPDIR)/statUncertainties.Plo \ ./$(DEPDIR)/volumeDensityFromBinnedRadial.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 = $(libstat_la_SOURCES) DIST_SOURCES = $(libstat_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(includedir)" HEADERS = $(include_HEADERS) am__extra_recursive_targets = python-recursive am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = ${prefix}/include/npstat/stat 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 = libstat.la libstat_la_SOURCES = AbsDistribution1D.cc AbsUnfoldND.cc AbsKDE1DKernel.cc \ AbsDistributionND.cc amiseOptimalBandwidth.cc CompositeDistribution1D.cc \ CompositeDistributionND.cc CopulaInterpolationND.cc SymbetaParams1D.cc \ Distribution1DFactory.cc Distribution1DReader.cc DistributionNDReader.cc \ Distributions1D.cc DistributionsND.cc CrossCovarianceAccumulator.cc \ fitSbParameters.cc StatAccumulatorArr.cc HistoAxis.cc ResponseMatrix.cc \ InterpolatedDistribution1D.cc JohnsonCurves.cc JohnsonKDESmoother.cc \ LocalPolyFilter1D.cc logLikelihoodPeak.cc PolyFilterCollection1D.cc \ SbMomentsBigGamma.cc SbMomentsCalculator.cc gaussianResponseMatrix.cc \ SequentialCopulaSmoother.cc SequentialPolyFilterND.cc StatAccumulator.cc \ UnitMapInterpolationND.cc WeightedStatAccumulator.cc AbsNtuple.cc \ QuadraticOrthoPolyND.cc NMCombinationSequencer.cc Filter1DBuilders.cc \ StatAccumulatorPair.cc GridRandomizer.cc ConstantBandwidthSmoother1D.cc \ GaussianMixture1D.cc HistoNDCdf.cc NUHistoAxis.cc AllSymbetaParams1D.cc \ distributionReadError.cc WeightedStatAccumulatorPair.cc AbsUnfold1D.cc \ ProductSymmetricBetaNDCdf.cc DualHistoAxis.cc multinomialCovariance1D.cc \ StorableMultivariateFunctor.cc StorableMultivariateFunctorReader.cc \ TruncatedDistribution1D.cc neymanPearsonWindow1D.cc AsinhTransform1D.cc \ LOrPEMarginalSmoother.cc LeftCensoredDistribution.cc QuantileTable1D.cc \ RightCensoredDistribution.cc AbsDiscreteDistribution1D.cc convertAxis.cc \ DiscreteDistribution1DReader.cc DiscreteDistributions1D.cc lorpeMise1D.cc \ BernsteinFilter1DBuilder.cc BetaFilter1DBuilder.cc AbsFilter1DBuilder.cc \ continuousDegreeTaper.cc RatioOfNormals.cc AbsCVCopulaSmoother.cc \ DensityScan1D.cc BoundaryHandling.cc SmoothedEMUnfold1D.cc Copulas.cc \ PearsonsChiSquared.cc BinnedKSTest1D.cc MultiscaleEMUnfold1D.cc \ AbsBinnedComparison1D.cc BinnedADTest1D.cc LocalPolyFilter1DReader.cc \ MemoizingSymbetaFilterProvider.cc UGaussConvolution1D.cc BinSummary.cc \ SmoothedEMUnfoldND.cc UnfoldingFilterNDReader.cc AbsUnfoldingFilterND.cc \ UnfoldingBandwidthScannerND.cc DistributionMix1D.cc ScalableGaussND.cc \ InterpolatedDistro1D1P.cc AbsDistributionTransform1D.cc LogTransform1D.cc \ DistributionTransform1DReader.cc TransformedDistribution1D.cc AbsCGF1D.cc \ WeightTableFilter1DBuilder.cc VerticallyInterpolatedDistribution1D.cc \ LocalMultiFilter1D.cc LogRatioTransform1D.cc IdentityTransform1D.cc \ VariableBandwidthSmoother1D.cc AbsMarginalSmootherBase.cc OSDE1D.cc \ buildInterpolatedHelpers.cc GridInterpolatedDistribution.cc StatUtils.cc \ AbsCopulaSmootherBase.cc BernsteinCopulaSmoother.cc distro1DStats.cc \ SequentialGroupedCopulaSmoother.cc UnfoldingBandwidthScanner1D.cc \ InterpolatedDistro1DNP.cc volumeDensityFromBinnedRadial.cc \ statUncertainties.cc LocationScaleFamily1D.cc SinhAsinhTransform1D.cc \ KDE1DHOSymbetaKernel.cc EdgeworthSeriesMethod.cc scannedKSDistance.cc \ EdgeworthSeries1D.cc DeltaMixture1D.cc LikelihoodStatisticType.cc \ likelihoodStatisticCumulants.cc GaussianMixtureEntry.cc SeriesCGF1D.cc \ correctDensityEstimateGHU.cc ComparisonDistribution1D.cc \ DistributionMixND.cc DiscreteGauss1DBuilder.cc DensityOrthoPoly1D.cc \ scanMultivariateDensityAsWeight.cc scanSymmetricDensityAsWeight.cc \ DiscreteGaussCopulaSmoother.cc ExpTiltedDistribution1D.cc \ saddlepointDistribution1D.cc MatrixFilter1DBuilder.cc \ PolynomialDistro1D.cc AbsUnbinnedGOFTest1D.cc OrthoPolyGOFTest1D.cc \ UnbinnedGOFTests1D.cc SmoothGOFTest1D.cc UnbinnedGOFTest1DFactory.cc \ LOrPE1DSymbetaKernel.cc FoldedDistribution1D.cc include_HEADERS = AbsBandwidthCV.hh \ AbsBandwidthGCV.hh \ AbsBinnedComparison1D.hh \ AbsBinnedComparison1D.icc \ AbsCGF1D.hh \ AbsCompositeDistroBuilder.hh \ AbsCompositeDistroBuilder.icc \ AbsCopulaSmootherBase.hh \ AbsCopulaSmootherBase.icc \ AbsCVCopulaSmoother.hh \ AbsDiscreteDistribution1D.hh \ AbsDistribution1D.hh \ AbsDistribution1D.icc \ AbsDistributionND.hh \ AbsDistributionND.icc \ AbsDistributionTransform1D.hh \ AbsDistro1DBuilder.hh \ AbsDistro1DBuilder.icc \ AbsFilter1DBuilder.hh \ AbsInterpolatedDistribution1D.hh \ AbsInterpolationAlgoND.hh \ AbsKDE1DKernel.hh \ AbsKDE1DKernel.icc \ AbsLossCalculator.hh \ AbsMarginalSmootherBase.hh \ AbsMarginalSmootherBase.icc \ AbsNtuple.hh \ AbsNtuple.icc \ AbsPolyFilter1D.hh \ AbsPolyFilterND.hh \ AbsResponseBoxBuilder.hh \ AbsResponseIntervalBuilder.hh \ AbsSymbetaFilterProvider.hh \ AbsUnbinnedGOFTest1D.hh \ AbsUnfold1D.hh \ AbsUnfoldingFilterND.hh \ AbsUnfoldND.hh \ AllSymbetaParams1D.hh \ amiseOptimalBandwidth.hh \ amiseOptimalBandwidth.icc \ ArchivedNtuple.hh \ ArchivedNtuple.icc \ ArrayProjectors.hh \ ArrayProjectors.icc \ arrayStats.hh \ arrayStats.icc \ AsinhTransform1D.hh \ BandwidthCVLeastSquares1D.hh \ BandwidthCVLeastSquares1D.icc \ BandwidthCVLeastSquaresND.hh \ BandwidthCVLeastSquaresND.icc \ BandwidthCVPseudoLogli1D.hh \ BandwidthCVPseudoLogli1D.icc \ BandwidthCVPseudoLogliND.hh \ BandwidthCVPseudoLogliND.icc \ BandwidthGCVLeastSquares1D.hh \ BandwidthGCVLeastSquares1D.icc \ BandwidthGCVLeastSquaresND.hh \ BandwidthGCVLeastSquaresND.icc \ BandwidthGCVPseudoLogli1D.hh \ BandwidthGCVPseudoLogli1D.icc \ BandwidthGCVPseudoLogliND.hh \ BandwidthGCVPseudoLogliND.icc \ BernsteinCopulaSmoother.hh \ BernsteinFilter1DBuilder.hh \ betaKernelsBandwidth.hh \ betaKernelsBandwidth.icc \ BetaFilter1DBuilder.hh \ BinnedADTest1D.hh \ BinnedKSTest1D.hh \ BinSummary.hh \ BinSummary.icc \ BoundaryHandling.hh \ BoundaryMethod.hh \ buildInterpolatedCompositeDistroND.hh \ buildInterpolatedCompositeDistroND.icc \ buildInterpolatedDistro1DNP.hh \ buildInterpolatedDistro1DNP.icc \ buildInterpolatedHelpers.hh \ CensoredQuantileRegression.hh \ CensoredQuantileRegression.icc \ CircularBuffer.hh \ CircularBuffer.icc \ Column.hh \ Column.icc \ ComparisonDistribution1D.hh \ CompositeDistribution1D.hh \ CompositeDistributionND.hh \ CompositeDistributionND.icc \ CompositeDistros1D.hh \ ConstantBandwidthSmoother1D.hh \ ConstantBandwidthSmootherND.hh \ ConstantBandwidthSmootherND.icc \ continuousDegreeTaper.hh \ convertAxis.hh \ CopulaInterpolationND.hh \ Copulas.hh \ correctDensityEstimateGHU.hh \ CrossCovarianceAccumulator.hh \ CrossCovarianceAccumulator.icc \ cumulantConversion.hh \ cumulantConversion.icc \ cumulantUncertainties.hh \ cumulantUncertainties.icc \ CVCopulaSmoother.hh \ CVCopulaSmoother.icc \ DeltaMixture1D.hh \ DeltaMixture1D.icc \ DensityAveScanND.hh \ DensityOrthoPoly1D.hh \ DensityScan1D.hh \ DensityScanND.hh \ DiscreteDistribution1DReader.hh \ DiscreteDistributions1D.hh \ DiscreteGauss1DBuilder.hh \ DiscreteGaussCopulaSmoother.hh \ discretizationErrorND.hh \ Distribution1DFactory.hh \ Distribution1DReader.hh \ DistributionTransform1DReader.hh \ DistributionMix1D.hh \ DistributionMixND.hh \ DistributionNDReader.hh \ Distributions1D.hh \ Distributions1D.icc \ DistributionsND.hh \ DistributionsND.icc \ distributionReadError.hh \ distro1DStats.hh \ DualHistoAxis.hh \ DummyCompositeDistroBuilder.hh \ DummyDistro1DBuilder.hh \ DummyResponseBoxBuilder.hh \ DummyResponseIntervalBuilder.hh \ EdgeworthSeries1D.hh \ EdgeworthSeriesMethod.hh \ empiricalCopula.hh \ empiricalCopulaHisto.hh \ empiricalCopulaHisto.icc \ empiricalCopula.icc \ ExpTiltedDistribution1D.hh \ fillHistoFromText.hh \ fillHistoFromText.icc \ Filter1DBuilders.hh \ FitUtils.hh \ FitUtils.icc \ FoldedDistribution1D.hh \ GaussianMixtureEntry.hh \ GaussianMixture1D.hh \ gaussianResponseMatrix.hh \ GCVCopulaSmoother.hh \ GCVCopulaSmoother.icc \ griddedRobustRegression.hh \ griddedRobustRegression.icc \ GriddedRobustRegressionStop.hh \ GridInterpolatedDistribution.hh \ GridRandomizer.hh \ HistoAxis.hh \ HistoND.hh \ HistoND.icc \ HistoNDCdf.hh \ HistoNDFunctorInstances.hh \ histoStats.hh \ histoStats.icc \ histoUtils.hh \ histoUtils.icc \ IdentityTransform1D.hh \ InMemoryNtuple.hh \ InMemoryNtuple.icc \ InterpolatedDistribution1D.hh \ InterpolatedDistro1D1P.hh \ InterpolatedDistro1DNP.hh \ interpolateHistoND.hh \ interpolateHistoND.icc \ InterpolationFunctorInstances.hh \ JohnsonCurves.hh \ JohnsonKDESmoother.hh \ KDE1D.hh \ KDE1DCV.hh \ KDE1DHOSymbetaKernel.hh \ KDECopulaSmoother.hh \ KDECopulaSmoother.icc \ KDEGroupedCopulaSmoother.hh \ KDEGroupedCopulaSmoother.icc \ KDEFilterND.hh \ KDEFilterND.icc \ kendallsTau.hh \ kendallsTau.icc \ kernelSensitivityMatrix.hh \ kernelSensitivityMatrix.icc \ LeftCensoredDistribution.hh \ likelihoodStatisticCumulants.hh \ LikelihoodStatisticType.hh \ LocalLogisticRegression.hh \ LocalLogisticRegression.icc \ LocalMultiFilter1D.hh \ LocalMultiFilter1D.icc \ LocalPolyFilter1D.hh \ LocalPolyFilter1D.icc \ LocalPolyFilter1DReader.hh \ LocalPolyFilterND.hh \ LocalPolyFilterND.icc \ LocalQuadraticLeastSquaresND.hh \ LocalQuadraticLeastSquaresND.icc \ LocalQuantileRegression.hh \ LocalQuantileRegression.icc \ LocationScaleFamily1D.hh \ LocationScaleTransform1.hh \ LocationScaleTransform1.icc \ logLikelihoodPeak.hh \ LogRatioTransform1D.hh \ LogTransform1D.hh \ LOrPE1D.hh \ LOrPE1D.icc \ LOrPE1DCV.hh \ LOrPE1DSymbetaKernel.hh \ LOrPE1DSymbetaKernel.icc \ LOrPECopulaSmoother.hh \ LOrPECopulaSmoother.icc \ LOrPEGroupedCopulaSmoother.hh \ LOrPEGroupedCopulaSmoother.icc \ LOrPEMarginalSmoother.hh \ lorpeBackgroundCVDensity1D.hh \ lorpeBackgroundCVDensity1D.icc \ lorpeBackground1D.hh \ lorpeBackground1D.icc \ lorpeMise1D.hh \ lorpeSmooth1D.hh \ lorpeSmooth1D.icc \ MatrixFilter1DBuilder.hh \ MemoizingSymbetaFilterProvider.hh \ mergeTwoHistos.hh \ mergeTwoHistos.icc \ mirrorWeight.hh \ + ModulatedDistribution1D.hh \ MultiscaleEMUnfold1D.hh \ multinomialCovariance1D.hh \ MultivariateSumAccumulator.hh \ MultivariateSumsqAccumulator.hh \ MultivariateSumsqAccumulator.icc \ MultivariateWeightedSumAccumulator.hh \ MultivariateWeightedSumsqAccumulator.hh \ MultivariateWeightedSumsqAccumulator.icc \ neymanPearsonWindow1D.hh \ NMCombinationSequencer.hh \ NonparametricCompositeBuilder.hh \ NonparametricCompositeBuilder.icc \ NonparametricDistro1DBuilder.hh \ NonparametricDistro1DBuilder.icc \ NtHistoFill.hh \ NtNtupleFill.hh \ NtRectangularCut.hh \ NtRectangularCut.icc \ NtupleBuffer.hh \ NtupleBuffer.icc \ NtupleRecordTypes.hh \ NtupleRecordTypesFwd.hh \ NtupleReference.hh \ NUHistoAxis.hh \ OrderedPointND.hh \ OrderedPointND.icc \ orthoPoly1DVProducts.hh \ orthoPoly1DVProducts.icc \ OrthoPolyGOFTest1D.hh \ OrthoPolyGOFTest1D.icc \ OSDE1D.hh \ OSDE1D.icc \ PearsonsChiSquared.hh \ PolyFilterCollection1D.hh \ PolynomialDistro1D.hh \ productResponseMatrix.hh \ productResponseMatrix.icc \ ProductSymmetricBetaNDCdf.hh \ QuadraticOrthoPolyND.hh \ QuadraticOrthoPolyND.icc \ QuantileRegression1D.hh \ QuantileRegression1D.icc \ QuantileTable1D.hh \ randomHistoFill1D.hh \ randomHistoFill1D.icc \ randomHistoFillND.hh \ randomHistoFillND.icc \ RatioOfNormals.hh \ RatioResponseBoxBuilder.hh \ RatioResponseBoxBuilder.icc \ RatioResponseIntervalBuilder.hh \ RatioResponseIntervalBuilder.icc \ ResponseMatrix.hh \ RightCensoredDistribution.hh \ saddlepointDistribution1D.hh \ SampleAccumulator.hh \ SampleAccumulator.icc \ sampleDistro1DWithWeight.hh \ SbMomentsCalculator.hh \ ScalableGaussND.hh \ scannedKSDistance.hh \ scanMultivariateDensityAsWeight.hh \ scanSymmetricDensityAsWeight.hh \ SequentialCopulaSmoother.hh \ SequentialCopulaSmoother.icc \ SequentialGroupedCopulaSmoother.hh \ SequentialGroupedCopulaSmoother.icc \ SequentialPolyFilterND.hh \ SequentialPolyFilterND.icc \ SeriesCGF1D.hh \ SinhAsinhTransform1D.hh \ SmoothedEMUnfold1D.hh \ SmoothedEMUnfoldND.hh \ SmoothGOFTest1D.hh \ SmoothGOFTest1D.icc \ spearmansRho.hh \ spearmansRho.icc \ StatAccumulator.hh \ StatAccumulatorArr.hh \ StatAccumulatorPair.hh \ statUncertainties.hh \ StatUtils.hh \ StatUtils.icc \ StorableHistoNDFunctor.hh \ StorableHistoNDFunctor.icc \ StorableInterpolationFunctor.hh \ StorableInterpolationFunctor.icc \ StorableMultivariateFunctor.hh \ StorableMultivariateFunctorReader.hh \ SymbetaParams1D.hh \ TransformedDistribution1D.hh \ TruncatedDistribution1D.hh \ TwoPointsLTSLoss.hh \ TwoPointsLTSLoss.icc \ UGaussConvolution1D.hh \ UnbinnedGOFTests1D.hh \ UnbinnedGOFTests1D.icc \ UnbinnedGOFTest1DFactory.hh \ UnfoldingBandwidthScanner1D.hh \ UnfoldingBandwidthScannerND.hh \ UnfoldingFilterNDReader.hh \ UnitMapInterpolationND.hh \ variableBandwidthSmooth1D.hh \ variableBandwidthSmooth1D.icc \ VariableBandwidthSmoother1D.hh \ VerticallyInterpolatedDistribution1D.hh \ volumeDensityFromBinnedRadial.hh \ weightedCopulaHisto.hh \ weightedCopulaHisto.icc \ WeightedDistro1DPtr.hh \ WeightedLTSLoss.hh \ WeightedLTSLoss.icc \ WeightedSampleAccumulator.hh \ WeightedSampleAccumulator.icc \ WeightedStatAccumulator.hh \ WeightedStatAccumulatorPair.hh \ WeightTableFilter1DBuilder.hh EXTRA_DIST = 00README.txt npstat_doxy.hh 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/stat/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign npstat/stat/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}; \ } libstat.la: $(libstat_la_OBJECTS) $(libstat_la_DEPENDENCIES) $(EXTRA_libstat_la_DEPENDENCIES) $(AM_V_CXXLD)$(CXXLINK) $(libstat_la_OBJECTS) $(libstat_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AbsBinnedComparison1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AbsCGF1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AbsCVCopulaSmoother.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AbsCopulaSmootherBase.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AbsDiscreteDistribution1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AbsDistribution1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AbsDistributionND.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AbsDistributionTransform1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AbsFilter1DBuilder.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AbsKDE1DKernel.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AbsMarginalSmootherBase.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AbsNtuple.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AbsUnbinnedGOFTest1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AbsUnfold1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AbsUnfoldND.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AbsUnfoldingFilterND.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AllSymbetaParams1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AsinhTransform1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BernsteinCopulaSmoother.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BernsteinFilter1DBuilder.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BetaFilter1DBuilder.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BinSummary.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BinnedADTest1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BinnedKSTest1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BoundaryHandling.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ComparisonDistribution1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CompositeDistribution1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CompositeDistributionND.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConstantBandwidthSmoother1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CopulaInterpolationND.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Copulas.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CrossCovarianceAccumulator.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DeltaMixture1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DensityOrthoPoly1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DensityScan1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DiscreteDistribution1DReader.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DiscreteDistributions1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DiscreteGauss1DBuilder.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DiscreteGaussCopulaSmoother.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Distribution1DFactory.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Distribution1DReader.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DistributionMix1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DistributionMixND.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DistributionNDReader.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DistributionTransform1DReader.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Distributions1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DistributionsND.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DualHistoAxis.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/EdgeworthSeries1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/EdgeworthSeriesMethod.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ExpTiltedDistribution1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Filter1DBuilders.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FoldedDistribution1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GaussianMixture1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GaussianMixtureEntry.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GridInterpolatedDistribution.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GridRandomizer.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HistoAxis.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HistoNDCdf.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IdentityTransform1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/InterpolatedDistribution1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/InterpolatedDistro1D1P.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/InterpolatedDistro1DNP.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/JohnsonCurves.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/JohnsonKDESmoother.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/KDE1DHOSymbetaKernel.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LOrPE1DSymbetaKernel.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LOrPEMarginalSmoother.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LeftCensoredDistribution.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LikelihoodStatisticType.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LocalMultiFilter1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LocalPolyFilter1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LocalPolyFilter1DReader.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LocationScaleFamily1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LogRatioTransform1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LogTransform1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MatrixFilter1DBuilder.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MemoizingSymbetaFilterProvider.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MultiscaleEMUnfold1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NMCombinationSequencer.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NUHistoAxis.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OSDE1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OrthoPolyGOFTest1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PearsonsChiSquared.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PolyFilterCollection1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PolynomialDistro1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ProductSymmetricBetaNDCdf.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/QuadraticOrthoPolyND.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/QuantileTable1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/RatioOfNormals.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ResponseMatrix.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/RightCensoredDistribution.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SbMomentsBigGamma.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SbMomentsCalculator.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ScalableGaussND.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SequentialCopulaSmoother.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SequentialGroupedCopulaSmoother.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SequentialPolyFilterND.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SeriesCGF1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SinhAsinhTransform1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SmoothGOFTest1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SmoothedEMUnfold1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SmoothedEMUnfoldND.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StatAccumulator.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StatAccumulatorArr.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StatAccumulatorPair.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StatUtils.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StorableMultivariateFunctor.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StorableMultivariateFunctorReader.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SymbetaParams1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TransformedDistribution1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TruncatedDistribution1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UGaussConvolution1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UnbinnedGOFTest1DFactory.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UnbinnedGOFTests1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UnfoldingBandwidthScanner1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UnfoldingBandwidthScannerND.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UnfoldingFilterNDReader.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UnitMapInterpolationND.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/VariableBandwidthSmoother1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/VerticallyInterpolatedDistribution1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/WeightTableFilter1DBuilder.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/WeightedStatAccumulator.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/WeightedStatAccumulatorPair.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amiseOptimalBandwidth.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/buildInterpolatedHelpers.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/continuousDegreeTaper.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/convertAxis.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/correctDensityEstimateGHU.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/distributionReadError.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/distro1DStats.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fitSbParameters.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaussianResponseMatrix.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/likelihoodStatisticCumulants.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/logLikelihoodPeak.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lorpeMise1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multinomialCovariance1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/neymanPearsonWindow1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/saddlepointDistribution1D.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scanMultivariateDensityAsWeight.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scanSymmetricDensityAsWeight.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scannedKSDistance.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/statUncertainties.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/volumeDensityFromBinnedRadial.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)/AbsBinnedComparison1D.Plo -rm -f ./$(DEPDIR)/AbsCGF1D.Plo -rm -f ./$(DEPDIR)/AbsCVCopulaSmoother.Plo -rm -f ./$(DEPDIR)/AbsCopulaSmootherBase.Plo -rm -f ./$(DEPDIR)/AbsDiscreteDistribution1D.Plo -rm -f ./$(DEPDIR)/AbsDistribution1D.Plo -rm -f ./$(DEPDIR)/AbsDistributionND.Plo -rm -f ./$(DEPDIR)/AbsDistributionTransform1D.Plo -rm -f ./$(DEPDIR)/AbsFilter1DBuilder.Plo -rm -f ./$(DEPDIR)/AbsKDE1DKernel.Plo -rm -f ./$(DEPDIR)/AbsMarginalSmootherBase.Plo -rm -f ./$(DEPDIR)/AbsNtuple.Plo -rm -f ./$(DEPDIR)/AbsUnbinnedGOFTest1D.Plo -rm -f ./$(DEPDIR)/AbsUnfold1D.Plo -rm -f ./$(DEPDIR)/AbsUnfoldND.Plo -rm -f ./$(DEPDIR)/AbsUnfoldingFilterND.Plo -rm -f ./$(DEPDIR)/AllSymbetaParams1D.Plo -rm -f ./$(DEPDIR)/AsinhTransform1D.Plo -rm -f ./$(DEPDIR)/BernsteinCopulaSmoother.Plo -rm -f ./$(DEPDIR)/BernsteinFilter1DBuilder.Plo -rm -f ./$(DEPDIR)/BetaFilter1DBuilder.Plo -rm -f ./$(DEPDIR)/BinSummary.Plo -rm -f ./$(DEPDIR)/BinnedADTest1D.Plo -rm -f ./$(DEPDIR)/BinnedKSTest1D.Plo -rm -f ./$(DEPDIR)/BoundaryHandling.Plo -rm -f ./$(DEPDIR)/ComparisonDistribution1D.Plo -rm -f ./$(DEPDIR)/CompositeDistribution1D.Plo -rm -f ./$(DEPDIR)/CompositeDistributionND.Plo -rm -f ./$(DEPDIR)/ConstantBandwidthSmoother1D.Plo -rm -f ./$(DEPDIR)/CopulaInterpolationND.Plo -rm -f ./$(DEPDIR)/Copulas.Plo -rm -f ./$(DEPDIR)/CrossCovarianceAccumulator.Plo -rm -f ./$(DEPDIR)/DeltaMixture1D.Plo -rm -f ./$(DEPDIR)/DensityOrthoPoly1D.Plo -rm -f ./$(DEPDIR)/DensityScan1D.Plo -rm -f ./$(DEPDIR)/DiscreteDistribution1DReader.Plo -rm -f ./$(DEPDIR)/DiscreteDistributions1D.Plo -rm -f ./$(DEPDIR)/DiscreteGauss1DBuilder.Plo -rm -f ./$(DEPDIR)/DiscreteGaussCopulaSmoother.Plo -rm -f ./$(DEPDIR)/Distribution1DFactory.Plo -rm -f ./$(DEPDIR)/Distribution1DReader.Plo -rm -f ./$(DEPDIR)/DistributionMix1D.Plo -rm -f ./$(DEPDIR)/DistributionMixND.Plo -rm -f ./$(DEPDIR)/DistributionNDReader.Plo -rm -f ./$(DEPDIR)/DistributionTransform1DReader.Plo -rm -f ./$(DEPDIR)/Distributions1D.Plo -rm -f ./$(DEPDIR)/DistributionsND.Plo -rm -f ./$(DEPDIR)/DualHistoAxis.Plo -rm -f ./$(DEPDIR)/EdgeworthSeries1D.Plo -rm -f ./$(DEPDIR)/EdgeworthSeriesMethod.Plo -rm -f ./$(DEPDIR)/ExpTiltedDistribution1D.Plo -rm -f ./$(DEPDIR)/Filter1DBuilders.Plo -rm -f ./$(DEPDIR)/FoldedDistribution1D.Plo -rm -f ./$(DEPDIR)/GaussianMixture1D.Plo -rm -f ./$(DEPDIR)/GaussianMixtureEntry.Plo -rm -f ./$(DEPDIR)/GridInterpolatedDistribution.Plo -rm -f ./$(DEPDIR)/GridRandomizer.Plo -rm -f ./$(DEPDIR)/HistoAxis.Plo -rm -f ./$(DEPDIR)/HistoNDCdf.Plo -rm -f ./$(DEPDIR)/IdentityTransform1D.Plo -rm -f ./$(DEPDIR)/InterpolatedDistribution1D.Plo -rm -f ./$(DEPDIR)/InterpolatedDistro1D1P.Plo -rm -f ./$(DEPDIR)/InterpolatedDistro1DNP.Plo -rm -f ./$(DEPDIR)/JohnsonCurves.Plo -rm -f ./$(DEPDIR)/JohnsonKDESmoother.Plo -rm -f ./$(DEPDIR)/KDE1DHOSymbetaKernel.Plo -rm -f ./$(DEPDIR)/LOrPE1DSymbetaKernel.Plo -rm -f ./$(DEPDIR)/LOrPEMarginalSmoother.Plo -rm -f ./$(DEPDIR)/LeftCensoredDistribution.Plo -rm -f ./$(DEPDIR)/LikelihoodStatisticType.Plo -rm -f ./$(DEPDIR)/LocalMultiFilter1D.Plo -rm -f ./$(DEPDIR)/LocalPolyFilter1D.Plo -rm -f ./$(DEPDIR)/LocalPolyFilter1DReader.Plo -rm -f ./$(DEPDIR)/LocationScaleFamily1D.Plo -rm -f ./$(DEPDIR)/LogRatioTransform1D.Plo -rm -f ./$(DEPDIR)/LogTransform1D.Plo -rm -f ./$(DEPDIR)/MatrixFilter1DBuilder.Plo -rm -f ./$(DEPDIR)/MemoizingSymbetaFilterProvider.Plo -rm -f ./$(DEPDIR)/MultiscaleEMUnfold1D.Plo -rm -f ./$(DEPDIR)/NMCombinationSequencer.Plo -rm -f ./$(DEPDIR)/NUHistoAxis.Plo -rm -f ./$(DEPDIR)/OSDE1D.Plo -rm -f ./$(DEPDIR)/OrthoPolyGOFTest1D.Plo -rm -f ./$(DEPDIR)/PearsonsChiSquared.Plo -rm -f ./$(DEPDIR)/PolyFilterCollection1D.Plo -rm -f ./$(DEPDIR)/PolynomialDistro1D.Plo -rm -f ./$(DEPDIR)/ProductSymmetricBetaNDCdf.Plo -rm -f ./$(DEPDIR)/QuadraticOrthoPolyND.Plo -rm -f ./$(DEPDIR)/QuantileTable1D.Plo -rm -f ./$(DEPDIR)/RatioOfNormals.Plo -rm -f ./$(DEPDIR)/ResponseMatrix.Plo -rm -f ./$(DEPDIR)/RightCensoredDistribution.Plo -rm -f ./$(DEPDIR)/SbMomentsBigGamma.Plo -rm -f ./$(DEPDIR)/SbMomentsCalculator.Plo -rm -f ./$(DEPDIR)/ScalableGaussND.Plo -rm -f ./$(DEPDIR)/SequentialCopulaSmoother.Plo -rm -f ./$(DEPDIR)/SequentialGroupedCopulaSmoother.Plo -rm -f ./$(DEPDIR)/SequentialPolyFilterND.Plo -rm -f ./$(DEPDIR)/SeriesCGF1D.Plo -rm -f ./$(DEPDIR)/SinhAsinhTransform1D.Plo -rm -f ./$(DEPDIR)/SmoothGOFTest1D.Plo -rm -f ./$(DEPDIR)/SmoothedEMUnfold1D.Plo -rm -f ./$(DEPDIR)/SmoothedEMUnfoldND.Plo -rm -f ./$(DEPDIR)/StatAccumulator.Plo -rm -f ./$(DEPDIR)/StatAccumulatorArr.Plo -rm -f ./$(DEPDIR)/StatAccumulatorPair.Plo -rm -f ./$(DEPDIR)/StatUtils.Plo -rm -f ./$(DEPDIR)/StorableMultivariateFunctor.Plo -rm -f ./$(DEPDIR)/StorableMultivariateFunctorReader.Plo -rm -f ./$(DEPDIR)/SymbetaParams1D.Plo -rm -f ./$(DEPDIR)/TransformedDistribution1D.Plo -rm -f ./$(DEPDIR)/TruncatedDistribution1D.Plo -rm -f ./$(DEPDIR)/UGaussConvolution1D.Plo -rm -f ./$(DEPDIR)/UnbinnedGOFTest1DFactory.Plo -rm -f ./$(DEPDIR)/UnbinnedGOFTests1D.Plo -rm -f ./$(DEPDIR)/UnfoldingBandwidthScanner1D.Plo -rm -f ./$(DEPDIR)/UnfoldingBandwidthScannerND.Plo -rm -f ./$(DEPDIR)/UnfoldingFilterNDReader.Plo -rm -f ./$(DEPDIR)/UnitMapInterpolationND.Plo -rm -f ./$(DEPDIR)/VariableBandwidthSmoother1D.Plo -rm -f ./$(DEPDIR)/VerticallyInterpolatedDistribution1D.Plo -rm -f ./$(DEPDIR)/WeightTableFilter1DBuilder.Plo -rm -f ./$(DEPDIR)/WeightedStatAccumulator.Plo -rm -f ./$(DEPDIR)/WeightedStatAccumulatorPair.Plo -rm -f ./$(DEPDIR)/amiseOptimalBandwidth.Plo -rm -f ./$(DEPDIR)/buildInterpolatedHelpers.Plo -rm -f ./$(DEPDIR)/continuousDegreeTaper.Plo -rm -f ./$(DEPDIR)/convertAxis.Plo -rm -f ./$(DEPDIR)/correctDensityEstimateGHU.Plo -rm -f ./$(DEPDIR)/distributionReadError.Plo -rm -f ./$(DEPDIR)/distro1DStats.Plo -rm -f ./$(DEPDIR)/fitSbParameters.Plo -rm -f ./$(DEPDIR)/gaussianResponseMatrix.Plo -rm -f ./$(DEPDIR)/likelihoodStatisticCumulants.Plo -rm -f ./$(DEPDIR)/logLikelihoodPeak.Plo -rm -f ./$(DEPDIR)/lorpeMise1D.Plo -rm -f ./$(DEPDIR)/multinomialCovariance1D.Plo -rm -f ./$(DEPDIR)/neymanPearsonWindow1D.Plo -rm -f ./$(DEPDIR)/saddlepointDistribution1D.Plo -rm -f ./$(DEPDIR)/scanMultivariateDensityAsWeight.Plo -rm -f ./$(DEPDIR)/scanSymmetricDensityAsWeight.Plo -rm -f ./$(DEPDIR)/scannedKSDistance.Plo -rm -f ./$(DEPDIR)/statUncertainties.Plo -rm -f ./$(DEPDIR)/volumeDensityFromBinnedRadial.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)/AbsBinnedComparison1D.Plo -rm -f ./$(DEPDIR)/AbsCGF1D.Plo -rm -f ./$(DEPDIR)/AbsCVCopulaSmoother.Plo -rm -f ./$(DEPDIR)/AbsCopulaSmootherBase.Plo -rm -f ./$(DEPDIR)/AbsDiscreteDistribution1D.Plo -rm -f ./$(DEPDIR)/AbsDistribution1D.Plo -rm -f ./$(DEPDIR)/AbsDistributionND.Plo -rm -f ./$(DEPDIR)/AbsDistributionTransform1D.Plo -rm -f ./$(DEPDIR)/AbsFilter1DBuilder.Plo -rm -f ./$(DEPDIR)/AbsKDE1DKernel.Plo -rm -f ./$(DEPDIR)/AbsMarginalSmootherBase.Plo -rm -f ./$(DEPDIR)/AbsNtuple.Plo -rm -f ./$(DEPDIR)/AbsUnbinnedGOFTest1D.Plo -rm -f ./$(DEPDIR)/AbsUnfold1D.Plo -rm -f ./$(DEPDIR)/AbsUnfoldND.Plo -rm -f ./$(DEPDIR)/AbsUnfoldingFilterND.Plo -rm -f ./$(DEPDIR)/AllSymbetaParams1D.Plo -rm -f ./$(DEPDIR)/AsinhTransform1D.Plo -rm -f ./$(DEPDIR)/BernsteinCopulaSmoother.Plo -rm -f ./$(DEPDIR)/BernsteinFilter1DBuilder.Plo -rm -f ./$(DEPDIR)/BetaFilter1DBuilder.Plo -rm -f ./$(DEPDIR)/BinSummary.Plo -rm -f ./$(DEPDIR)/BinnedADTest1D.Plo -rm -f ./$(DEPDIR)/BinnedKSTest1D.Plo -rm -f ./$(DEPDIR)/BoundaryHandling.Plo -rm -f ./$(DEPDIR)/ComparisonDistribution1D.Plo -rm -f ./$(DEPDIR)/CompositeDistribution1D.Plo -rm -f ./$(DEPDIR)/CompositeDistributionND.Plo -rm -f ./$(DEPDIR)/ConstantBandwidthSmoother1D.Plo -rm -f ./$(DEPDIR)/CopulaInterpolationND.Plo -rm -f ./$(DEPDIR)/Copulas.Plo -rm -f ./$(DEPDIR)/CrossCovarianceAccumulator.Plo -rm -f ./$(DEPDIR)/DeltaMixture1D.Plo -rm -f ./$(DEPDIR)/DensityOrthoPoly1D.Plo -rm -f ./$(DEPDIR)/DensityScan1D.Plo -rm -f ./$(DEPDIR)/DiscreteDistribution1DReader.Plo -rm -f ./$(DEPDIR)/DiscreteDistributions1D.Plo -rm -f ./$(DEPDIR)/DiscreteGauss1DBuilder.Plo -rm -f ./$(DEPDIR)/DiscreteGaussCopulaSmoother.Plo -rm -f ./$(DEPDIR)/Distribution1DFactory.Plo -rm -f ./$(DEPDIR)/Distribution1DReader.Plo -rm -f ./$(DEPDIR)/DistributionMix1D.Plo -rm -f ./$(DEPDIR)/DistributionMixND.Plo -rm -f ./$(DEPDIR)/DistributionNDReader.Plo -rm -f ./$(DEPDIR)/DistributionTransform1DReader.Plo -rm -f ./$(DEPDIR)/Distributions1D.Plo -rm -f ./$(DEPDIR)/DistributionsND.Plo -rm -f ./$(DEPDIR)/DualHistoAxis.Plo -rm -f ./$(DEPDIR)/EdgeworthSeries1D.Plo -rm -f ./$(DEPDIR)/EdgeworthSeriesMethod.Plo -rm -f ./$(DEPDIR)/ExpTiltedDistribution1D.Plo -rm -f ./$(DEPDIR)/Filter1DBuilders.Plo -rm -f ./$(DEPDIR)/FoldedDistribution1D.Plo -rm -f ./$(DEPDIR)/GaussianMixture1D.Plo -rm -f ./$(DEPDIR)/GaussianMixtureEntry.Plo -rm -f ./$(DEPDIR)/GridInterpolatedDistribution.Plo -rm -f ./$(DEPDIR)/GridRandomizer.Plo -rm -f ./$(DEPDIR)/HistoAxis.Plo -rm -f ./$(DEPDIR)/HistoNDCdf.Plo -rm -f ./$(DEPDIR)/IdentityTransform1D.Plo -rm -f ./$(DEPDIR)/InterpolatedDistribution1D.Plo -rm -f ./$(DEPDIR)/InterpolatedDistro1D1P.Plo -rm -f ./$(DEPDIR)/InterpolatedDistro1DNP.Plo -rm -f ./$(DEPDIR)/JohnsonCurves.Plo -rm -f ./$(DEPDIR)/JohnsonKDESmoother.Plo -rm -f ./$(DEPDIR)/KDE1DHOSymbetaKernel.Plo -rm -f ./$(DEPDIR)/LOrPE1DSymbetaKernel.Plo -rm -f ./$(DEPDIR)/LOrPEMarginalSmoother.Plo -rm -f ./$(DEPDIR)/LeftCensoredDistribution.Plo -rm -f ./$(DEPDIR)/LikelihoodStatisticType.Plo -rm -f ./$(DEPDIR)/LocalMultiFilter1D.Plo -rm -f ./$(DEPDIR)/LocalPolyFilter1D.Plo -rm -f ./$(DEPDIR)/LocalPolyFilter1DReader.Plo -rm -f ./$(DEPDIR)/LocationScaleFamily1D.Plo -rm -f ./$(DEPDIR)/LogRatioTransform1D.Plo -rm -f ./$(DEPDIR)/LogTransform1D.Plo -rm -f ./$(DEPDIR)/MatrixFilter1DBuilder.Plo -rm -f ./$(DEPDIR)/MemoizingSymbetaFilterProvider.Plo -rm -f ./$(DEPDIR)/MultiscaleEMUnfold1D.Plo -rm -f ./$(DEPDIR)/NMCombinationSequencer.Plo -rm -f ./$(DEPDIR)/NUHistoAxis.Plo -rm -f ./$(DEPDIR)/OSDE1D.Plo -rm -f ./$(DEPDIR)/OrthoPolyGOFTest1D.Plo -rm -f ./$(DEPDIR)/PearsonsChiSquared.Plo -rm -f ./$(DEPDIR)/PolyFilterCollection1D.Plo -rm -f ./$(DEPDIR)/PolynomialDistro1D.Plo -rm -f ./$(DEPDIR)/ProductSymmetricBetaNDCdf.Plo -rm -f ./$(DEPDIR)/QuadraticOrthoPolyND.Plo -rm -f ./$(DEPDIR)/QuantileTable1D.Plo -rm -f ./$(DEPDIR)/RatioOfNormals.Plo -rm -f ./$(DEPDIR)/ResponseMatrix.Plo -rm -f ./$(DEPDIR)/RightCensoredDistribution.Plo -rm -f ./$(DEPDIR)/SbMomentsBigGamma.Plo -rm -f ./$(DEPDIR)/SbMomentsCalculator.Plo -rm -f ./$(DEPDIR)/ScalableGaussND.Plo -rm -f ./$(DEPDIR)/SequentialCopulaSmoother.Plo -rm -f ./$(DEPDIR)/SequentialGroupedCopulaSmoother.Plo -rm -f ./$(DEPDIR)/SequentialPolyFilterND.Plo -rm -f ./$(DEPDIR)/SeriesCGF1D.Plo -rm -f ./$(DEPDIR)/SinhAsinhTransform1D.Plo -rm -f ./$(DEPDIR)/SmoothGOFTest1D.Plo -rm -f ./$(DEPDIR)/SmoothedEMUnfold1D.Plo -rm -f ./$(DEPDIR)/SmoothedEMUnfoldND.Plo -rm -f ./$(DEPDIR)/StatAccumulator.Plo -rm -f ./$(DEPDIR)/StatAccumulatorArr.Plo -rm -f ./$(DEPDIR)/StatAccumulatorPair.Plo -rm -f ./$(DEPDIR)/StatUtils.Plo -rm -f ./$(DEPDIR)/StorableMultivariateFunctor.Plo -rm -f ./$(DEPDIR)/StorableMultivariateFunctorReader.Plo -rm -f ./$(DEPDIR)/SymbetaParams1D.Plo -rm -f ./$(DEPDIR)/TransformedDistribution1D.Plo -rm -f ./$(DEPDIR)/TruncatedDistribution1D.Plo -rm -f ./$(DEPDIR)/UGaussConvolution1D.Plo -rm -f ./$(DEPDIR)/UnbinnedGOFTest1DFactory.Plo -rm -f ./$(DEPDIR)/UnbinnedGOFTests1D.Plo -rm -f ./$(DEPDIR)/UnfoldingBandwidthScanner1D.Plo -rm -f ./$(DEPDIR)/UnfoldingBandwidthScannerND.Plo -rm -f ./$(DEPDIR)/UnfoldingFilterNDReader.Plo -rm -f ./$(DEPDIR)/UnitMapInterpolationND.Plo -rm -f ./$(DEPDIR)/VariableBandwidthSmoother1D.Plo -rm -f ./$(DEPDIR)/VerticallyInterpolatedDistribution1D.Plo -rm -f ./$(DEPDIR)/WeightTableFilter1DBuilder.Plo -rm -f ./$(DEPDIR)/WeightedStatAccumulator.Plo -rm -f ./$(DEPDIR)/WeightedStatAccumulatorPair.Plo -rm -f ./$(DEPDIR)/amiseOptimalBandwidth.Plo -rm -f ./$(DEPDIR)/buildInterpolatedHelpers.Plo -rm -f ./$(DEPDIR)/continuousDegreeTaper.Plo -rm -f ./$(DEPDIR)/convertAxis.Plo -rm -f ./$(DEPDIR)/correctDensityEstimateGHU.Plo -rm -f ./$(DEPDIR)/distributionReadError.Plo -rm -f ./$(DEPDIR)/distro1DStats.Plo -rm -f ./$(DEPDIR)/fitSbParameters.Plo -rm -f ./$(DEPDIR)/gaussianResponseMatrix.Plo -rm -f ./$(DEPDIR)/likelihoodStatisticCumulants.Plo -rm -f ./$(DEPDIR)/logLikelihoodPeak.Plo -rm -f ./$(DEPDIR)/lorpeMise1D.Plo -rm -f ./$(DEPDIR)/multinomialCovariance1D.Plo -rm -f ./$(DEPDIR)/neymanPearsonWindow1D.Plo -rm -f ./$(DEPDIR)/saddlepointDistribution1D.Plo -rm -f ./$(DEPDIR)/scanMultivariateDensityAsWeight.Plo -rm -f ./$(DEPDIR)/scanSymmetricDensityAsWeight.Plo -rm -f ./$(DEPDIR)/scannedKSDistance.Plo -rm -f ./$(DEPDIR)/statUncertainties.Plo -rm -f ./$(DEPDIR)/volumeDensityFromBinnedRadial.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/stat/NtRectangularCut.icc =================================================================== --- trunk/npstat/stat/NtRectangularCut.icc (revision 791) +++ trunk/npstat/stat/NtRectangularCut.icc (revision 792) @@ -1,451 +1,451 @@ #include #include #include "geners/IOException.hh" namespace npstat { template unsigned long NtRectangularCut::nUniqueColumns() const { unsigned long unique(0); if (nCuts_) { const RCut* cuts = &cutData_[0]; unique = 1UL; for (unsigned long i=1; i bool NtRectangularCut::operator()( - const Numeric* row, const unsigned long nCols) const + unsigned long, const Numeric* row, const unsigned long nCols) const { if (nCuts_) { const RCut* cuts = &cutData_[0]; for (unsigned long i=0; i= nCols) throw std::out_of_range( "In npstat::NtRectangularCut::operator(): " "column number out of range"); bool pass = cuts[i].min <= row[col] && row[col] < cuts[i].max; if (cuts[i].inverted) pass = !pass; if (!pass) return false; } } return true; } template template NtRectangularCut& NtRectangularCut::addCut( const unsigned long c0, const T& min0, const T& max0, const bool inverted) { cutData_.emplace_back(c0, min0, max0, inverted); ++nCuts_; return *this; } template template NtRectangularCut& NtRectangularCut::addCut( const NtRectangularCut& r) { cutData_.reserve(nCuts_ + r.nCuts_); for (unsigned long i=0; i::RCut& cut(r.cutData_[i]); cutData_.emplace_back(cut.col, cut.min, cut.max, cut.inverted); } nCuts_ += r.nCuts_; return *this; } template std::vector NtRectangularCut::ntupleColumns() const { std::vector result(nCuts_); for (unsigned long i=0; i BoxND NtRectangularCut::acceptedBox() const { BoxND result; result.reserve(nCuts_); for (unsigned long i=0; i= minval ? maxval : minval); } return result; } template template NtRectangularCut::NtRectangularCut( const unsigned long c0, const T& min0, const T& max0) : nCuts_(1) { cutData_.reserve(nCuts_); cutData_.emplace_back(c0, min0, max0, false); assert(cutData_.size() == nCuts_); } template template NtRectangularCut::NtRectangularCut( const unsigned long c0, const T& min0, const T& max0, const unsigned long c1, const T& min1, const T& max1) : nCuts_(2) { cutData_.reserve(nCuts_); cutData_.emplace_back(c0, min0, max0, false); cutData_.emplace_back(c1, min1, max1, false); assert(cutData_.size() == nCuts_); } template template NtRectangularCut::NtRectangularCut( const unsigned long c0, const T& min0, const T& max0, const unsigned long c1, const T& min1, const T& max1, const unsigned long c2, const T& min2, const T& max2) : nCuts_(3) { cutData_.reserve(nCuts_); cutData_.emplace_back(c0, min0, max0, false); cutData_.emplace_back(c1, min1, max1, false); cutData_.emplace_back(c2, min2, max2, false); assert(cutData_.size() == nCuts_); } template template NtRectangularCut::NtRectangularCut( const unsigned long c0, const T& min0, const T& max0, const unsigned long c1, const T& min1, const T& max1, const unsigned long c2, const T& min2, const T& max2, const unsigned long c3, const T& min3, const T& max3) : nCuts_(4) { cutData_.reserve(nCuts_); cutData_.emplace_back(c0, min0, max0, false); cutData_.emplace_back(c1, min1, max1, false); cutData_.emplace_back(c2, min2, max2, false); cutData_.emplace_back(c3, min3, max3, false); assert(cutData_.size() == nCuts_); } template template NtRectangularCut::NtRectangularCut( const unsigned long c0, const T& min0, const T& max0, const unsigned long c1, const T& min1, const T& max1, const unsigned long c2, const T& min2, const T& max2, const unsigned long c3, const T& min3, const T& max3, const unsigned long c4, const T& min4, const T& max4) : nCuts_(5) { cutData_.reserve(nCuts_); cutData_.emplace_back(c0, min0, max0, false); cutData_.emplace_back(c1, min1, max1, false); cutData_.emplace_back(c2, min2, max2, false); cutData_.emplace_back(c3, min3, max3, false); cutData_.emplace_back(c4, min4, max4, false); assert(cutData_.size() == nCuts_); } template template NtRectangularCut::NtRectangularCut( const unsigned long c0, const T& min0, const T& max0, const unsigned long c1, const T& min1, const T& max1, const unsigned long c2, const T& min2, const T& max2, const unsigned long c3, const T& min3, const T& max3, const unsigned long c4, const T& min4, const T& max4, const unsigned long c5, const T& min5, const T& max5) : nCuts_(6) { cutData_.reserve(nCuts_); cutData_.emplace_back(c0, min0, max0, false); cutData_.emplace_back(c1, min1, max1, false); cutData_.emplace_back(c2, min2, max2, false); cutData_.emplace_back(c3, min3, max3, false); cutData_.emplace_back(c4, min4, max4, false); cutData_.emplace_back(c5, min5, max5, false); assert(cutData_.size() == nCuts_); } template template NtRectangularCut::NtRectangularCut( const unsigned long c0, const T& min0, const T& max0, const unsigned long c1, const T& min1, const T& max1, const unsigned long c2, const T& min2, const T& max2, const unsigned long c3, const T& min3, const T& max3, const unsigned long c4, const T& min4, const T& max4, const unsigned long c5, const T& min5, const T& max5, const unsigned long c6, const T& min6, const T& max6) : nCuts_(7) { cutData_.reserve(nCuts_); cutData_.emplace_back(c0, min0, max0, false); cutData_.emplace_back(c1, min1, max1, false); cutData_.emplace_back(c2, min2, max2, false); cutData_.emplace_back(c3, min3, max3, false); cutData_.emplace_back(c4, min4, max4, false); cutData_.emplace_back(c5, min5, max5, false); cutData_.emplace_back(c6, min6, max6, false); assert(cutData_.size() == nCuts_); } template template NtRectangularCut::NtRectangularCut( const unsigned long c0, const T& min0, const T& max0, const unsigned long c1, const T& min1, const T& max1, const unsigned long c2, const T& min2, const T& max2, const unsigned long c3, const T& min3, const T& max3, const unsigned long c4, const T& min4, const T& max4, const unsigned long c5, const T& min5, const T& max5, const unsigned long c6, const T& min6, const T& max6, const unsigned long c7, const T& min7, const T& max7) : nCuts_(8) { cutData_.reserve(nCuts_); cutData_.emplace_back(c0, min0, max0, false); cutData_.emplace_back(c1, min1, max1, false); cutData_.emplace_back(c2, min2, max2, false); cutData_.emplace_back(c3, min3, max3, false); cutData_.emplace_back(c4, min4, max4, false); cutData_.emplace_back(c5, min5, max5, false); cutData_.emplace_back(c6, min6, max6, false); cutData_.emplace_back(c7, min7, max7, false); assert(cutData_.size() == nCuts_); } template template NtRectangularCut::NtRectangularCut( const unsigned long c0, const T& min0, const T& max0, const unsigned long c1, const T& min1, const T& max1, const unsigned long c2, const T& min2, const T& max2, const unsigned long c3, const T& min3, const T& max3, const unsigned long c4, const T& min4, const T& max4, const unsigned long c5, const T& min5, const T& max5, const unsigned long c6, const T& min6, const T& max6, const unsigned long c7, const T& min7, const T& max7, const unsigned long c8, const T& min8, const T& max8) : nCuts_(9) { cutData_.reserve(nCuts_); cutData_.emplace_back(c0, min0, max0, false); cutData_.emplace_back(c1, min1, max1, false); cutData_.emplace_back(c2, min2, max2, false); cutData_.emplace_back(c3, min3, max3, false); cutData_.emplace_back(c4, min4, max4, false); cutData_.emplace_back(c5, min5, max5, false); cutData_.emplace_back(c6, min6, max6, false); cutData_.emplace_back(c7, min7, max7, false); cutData_.emplace_back(c8, min8, max8, false); assert(cutData_.size() == nCuts_); } template template NtRectangularCut::NtRectangularCut( const unsigned long c0, const T& min0, const T& max0, const unsigned long c1, const T& min1, const T& max1, const unsigned long c2, const T& min2, const T& max2, const unsigned long c3, const T& min3, const T& max3, const unsigned long c4, const T& min4, const T& max4, const unsigned long c5, const T& min5, const T& max5, const unsigned long c6, const T& min6, const T& max6, const unsigned long c7, const T& min7, const T& max7, const unsigned long c8, const T& min8, const T& max8, const unsigned long c9, const T& min9, const T& max9) : nCuts_(10) { cutData_.reserve(nCuts_); cutData_.emplace_back(c0, min0, max0, false); cutData_.emplace_back(c1, min1, max1, false); cutData_.emplace_back(c2, min2, max2, false); cutData_.emplace_back(c3, min3, max3, false); cutData_.emplace_back(c4, min4, max4, false); cutData_.emplace_back(c5, min5, max5, false); cutData_.emplace_back(c6, min6, max6, false); cutData_.emplace_back(c7, min7, max7, false); cutData_.emplace_back(c8, min8, max8, false); cutData_.emplace_back(c9, min9, max9, false); assert(cutData_.size() == nCuts_); } template template NtRectangularCut::NtRectangularCut( const std::vector& ntupleColumns, const BoxND& acceptedBox) : nCuts_(ntupleColumns.size()) { if (acceptedBox.dim() != nCuts_) throw std::invalid_argument( "In npstat::NtRectangularCut constructor: " "incompatible acceptance box dimensionality"); cutData_.reserve(nCuts_); for (unsigned long i=0; i inline void NtRectangularCut::cutInterval( const unsigned long cutNumber, Numeric* minValue, Numeric* maxValue) const { const RCut& cut(cutData_.at(cutNumber)); assert(minValue); *minValue = cut.min; assert(maxValue); *maxValue = cut.max; } template inline bool NtRectangularCut::isInverted( const unsigned long cutNumber) const { return cutData_.at(cutNumber).inverted; } template inline void NtRectangularCut::invert() { const unsigned long siz = cutData_.size(); for (unsigned long n = 0; n < siz; ++n) { RCut& cut(cutData_[n]); cut.inverted = !cut.inverted; } } template inline bool NtRectangularCut::operator==( const NtRectangularCut& r) const { return nCuts_ == r.nCuts_ && cutData_ == r.cutData_; } template const char* NtRectangularCut::classname() { static const std::string name( gs::template_class_name("npstat::NtRectangularCut")); return name.c_str(); } template bool NtRectangularCut::write(std::ostream& of) const { const unsigned char trueC = 1; const unsigned char falseC = 0; const unsigned long mydim = cutData_.size(); assert(mydim == nCuts_); gs::write_pod(of, mydim); bool status = !of.fail(); if (mydim && status) { std::vector columns; columns.reserve(mydim); std::vector limits; limits.reserve(2UL*mydim); std::vector inv; inv.reserve(mydim); for (unsigned long i=0; i void NtRectangularCut::restore( const gs::ClassId& id, std::istream& in, NtRectangularCut* cut) { static const gs::ClassId current( gs::ClassId::makeId >()); current.ensureSameId(id); assert(cut); unsigned long mydim = 0; gs::read_pod(in, &mydim); cut->nCuts_ = mydim; cut->cutData_.clear(); if (mydim) { std::vector columns(mydim); gs::read_pod_array(in, &columns[0], mydim); std::vector inv(mydim); gs::read_pod_array(in, &inv[0], mydim); std::vector limits; gs::restore_item(in, &limits); if (limits.size() != 2UL*mydim) throw gs::IOInvalidData( "In npstat::NtRectangularCut::restore: record is corrupted"); cut->cutData_.reserve(mydim); for (unsigned long i=0; icutData_.emplace_back(columns[i], limits[2U*i], limits[2U*i+1U], inv[i]); } if (in.fail()) throw gs::IOReadFailure("In npstat::NtRectangularCut::restore: " "input stream failure"); } } Index: trunk/npstat/stat/ModulatedDistribution1D.hh =================================================================== --- trunk/npstat/stat/ModulatedDistribution1D.hh (revision 0) +++ trunk/npstat/stat/ModulatedDistribution1D.hh (revision 792) @@ -0,0 +1,210 @@ +#ifndef NPSTAT_MODULATEDDISTRIBUTION1D_HH_ +#define NPSTAT_MODULATEDDISTRIBUTION1D_HH_ + +/*! +// \file ModulatedDistribution1D.hh +// +// \brief 1-d continuous statistical distributions multiplied +// by an arbitrary smooth non-negative function +// +// Author: I. Volobouev +// +// June 2022 +*/ + +#include +#include + +#include "npstat/stat/AbsDistribution1D.hh" + +#include "npstat/nm/GaussLegendreQuadrature.hh" +#include "npstat/nm/findRootUsingBisections.hh" + +namespace npstat { + template + class ModulatedDistribution1D : public AbsDistribution1D + { + public: + /** + // Constructor arguments are as follows: + // + // distro -- distribution whose density we want to + // modulate + // + // fcn -- functor that will be multiplied by + // the density + // + // fcnXmin, fcnXmax -- limits for the functor support + // + // nIntegPoints -- number of points to use for various + // integrations. Should be supported by + // the GaussLegendreQuadrature class. + // + // nIntegIntervals -- number of intervals to use for various + // integrations. The support will be + // split into this number of intervals + // and then the quadrature with nIntegPoints + // points will be used on each interval. + */ + inline ModulatedDistribution1D(const AbsDistribution1D& distro, + const Functor& fcn, + const double fcnXmin = -DBL_MAX, + const double fcnXmax = DBL_MAX, + const unsigned nIntegPoints = 1024, + const unsigned nIntegIntervals = 1) + : distro_(0), fcn_(fcn), norm_(1.0), + nIntegPoints_(nIntegPoints), nIntegIntervals_(nIntegIntervals) + { + if (!(fcnXmin < fcnXmax)) throw std::invalid_argument( + "In npstat::ModulatedDistribution1D constructor: " + "invalid support specification for the modulating function"); + xmin_ = std::max(distro.quantile(0.0), fcnXmin); + xmax_ = std::min(distro.quantile(1.0), fcnXmax); + if (!(xmin_ < xmax_)) throw std::invalid_argument( + "In npstat::ModulatedDistribution1D constructor: " + "supports of the density and of the modulating function " + "do not overlap"); + GaussLegendreQuadrature glq(nIntegPoints); + if (!nIntegIntervals_) throw std::invalid_argument( + "In npstat::ModulatedDistribution1D constructor: " + "number of integration intervals must be positive"); + distro_ = distro.clone(); + norm_ = glq.integrate(DensityFunctor1D(*this), + xmin_, xmax_, nIntegIntervals_); + assert(norm_ > 0.0); + } + + inline ModulatedDistribution1D(const ModulatedDistribution1D& r) + : distro_(r.distro_->clone()), fcn_(r.fcn_), + xmin_(r.xmin_), xmax_(r.xmax_), norm_(r.norm_), + nIntegPoints_(r.nIntegPoints_), + nIntegIntervals_(r.nIntegIntervals_) {} + + inline ModulatedDistribution1D& operator=(const ModulatedDistribution1D& r) + { + if (&r != this) + { + AbsDistribution1D* p = r.distro_->clone(); + delete distro_; + distro_ = p; + fcn_ = r.fcn_; + xmin_ = r.xmin_; + xmax_ = r.xmax_; + norm_ = r.norm_; + nIntegPoints_ = r.nIntegPoints_; + nIntegIntervals_ = r.nIntegIntervals_; + } + return *this; + } + + inline virtual ModulatedDistribution1D* clone() const + {return new ModulatedDistribution1D(*this);} + + inline virtual ~ModulatedDistribution1D() {delete distro_;} + + /** Distribution density */ + inline virtual double density(const double x) const + { + if (x >= xmin_ && x <= xmax_) + { + const double d = distro_->density(x)*fcn_(x)/norm_; + assert(d >= 0.0); + return d; + } + else + return 0.0; + } + + /** Cumulative distribution function */ + inline virtual double cdf(const double x) const + { + if (x <= xmin_) + return 0.0; + else if (x >= xmax_) + return 1.0; + else + { + GaussLegendreQuadrature glq(nIntegPoints_); + return glq.integrate(DensityFunctor1D(*this), + xmin_, x, nIntegIntervals_); + } + } + + /** 1 - cdf, avoiding subtractive cancellation */ + inline virtual double exceedance(const double x) const + { + if (x <= xmin_) + return 1.0; + else if (x >= xmax_) + return 0.0; + else + { + GaussLegendreQuadrature glq(nIntegPoints_); + return glq.integrate(DensityFunctor1D(*this), + x, xmax_, nIntegIntervals_); + } + } + + /** The quantile function */ + inline virtual double quantile(const double r1) const + { + if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error( + "In npstat::ModulatedDistribution1D::quantile: " + "cdf argument outside of [0, 1] interval"); + if (r1 == 0.0) + return xmin_; + else if (r1 == 1.0) + return xmax_; + else + { + const double tol = 2.0*std::numeric_limits::epsilon(); + double q; + const bool status = findRootUsingBisections( + CdfFunctor1D(*this), r1, xmin_, xmax_, tol, &q); + assert(status); + return q; + } + } + + /** + // Read/write functions are not implemented so that we can + // use this class with functors that do not support I/O + */ + inline virtual gs::ClassId classId() const {return gs::ClassId(*this);} + + static inline const char* classname() + {return "npstat::ModulatedDistribution1D";} + static inline unsigned version() {return 1;} + + protected: + inline virtual bool isEqual(const AbsDistribution1D& other) const + {return false; /* Can't compare functors for equality */} + + private: + ModulatedDistribution1D(); + + AbsDistribution1D* distro_; + Functor fcn_; + double xmin_; + double xmax_; + double norm_; + unsigned nIntegPoints_; + unsigned nIntegIntervals_; + }; + + /** Convenience function for creating ModulatedDistribution1D objects */ + template + inline ModulatedDistribution1D + make_ModulatedDistribution1D(const AbsDistribution1D& distro, + const Functor& fcn, + const double fcnXmin = -DBL_MAX, + const double fcnXmax = DBL_MAX, + const unsigned nIntegPoints = 1024, + const unsigned nIntegIntervals = 1) + { + return ModulatedDistribution1D( + distro, fcn, fcnXmin, fcnXmax, nIntegPoints, nIntegIntervals); + } +} + +#endif // NPSTAT_MODULATEDDISTRIBUTION1D_HH_ Index: trunk/npstat/stat/AbsNtuple.hh =================================================================== --- trunk/npstat/stat/AbsNtuple.hh (revision 791) +++ trunk/npstat/stat/AbsNtuple.hh (revision 792) @@ -1,569 +1,571 @@ #ifndef NPSTAT_ABSNTUPLE_HH_ #define NPSTAT_ABSNTUPLE_HH_ /*! // \file AbsNtuple.hh // // \brief Interface definition for homogeneous ntuples (point clouds) // // Author: I. Volobouev // // November 2010 */ #include #include #include #include #include #include "geners/ClassId.hh" #include "geners/binaryIO.hh" #include "geners/allUnique.hh" #include "npstat/stat/Column.hh" #ifdef SWIG #include "npstat/stat/NtRectangularCut.hh" #endif // SWIG namespace npstat { /** // Interface class for ntuples. Here, ntuples are homogeneous 2-d tables // in which the number of columns is fixed while the number of rows can // grow dynamically. */ template class AbsNtuple { public: typedef T value_type; /** // The constructor arguments are a vector of column names // and an ntuple title c-string (which can be NULL) */ inline AbsNtuple(const std::vector& columnNames, const char* ntTitle) : colNames_(columnNames), title_(ntTitle ? ntTitle : "") { if (columnNames.empty()) throw std::invalid_argument("In npstat::AbsNtuple constructor:" " no column labels provided"); if (!gs::allUnique(columnNames)) throw std::invalid_argument("In npstat::AbsNtuple constructor:" " column labels are not unique"); } inline virtual ~AbsNtuple() {} /** Retrieve the ntuple title */ inline const std::string& title() const {return title_;} /** Set the ntuple title */ inline virtual void setTitle(const char* newtitle) {title_ = newtitle ? newtitle : "";} /** Retrieve the number of columns */ inline unsigned long nColumns() const {return colNames_.size();} /** Retrieve the name for the given column */ inline const std::string& columnName(const unsigned long i) const {return colNames_.at(i);} /** Retrieve all column names */ inline const std::vector& columnNames() const {return colNames_;} /** // The code will refuse to set the column name (and false will be // returned in this case) if the provided name duplicates an existing // column name. False will also be returned if the column index // is out of range. Derived classes can also refuse to change the // column name if their implementation relies in some way on the // permanence of these names. */ virtual bool setColumnName(unsigned long i, const char* newname); /** // This method returns nColumns() in case the // given column name is not valid */ unsigned long columnNumber(const char* columnName) const; /** // This method works just like columnNumber but // generates a dynamic fault in case the given // column name is invalid */ unsigned long validColumn(const char* columnName) const; /** Retrieve the number of rows */ virtual unsigned long nRows() const = 0; /** Retrieve the total number of ntuple elements */ inline unsigned long length() const {return nRows()*colNames_.size();} /** // The number of values provided, "lenValues", should be // divisible by the number of columns. If it is not, the // function should throw "std::invalid_argument" exception. */ virtual void fill(const T* values, unsigned long lenValues) = 0; //@{ /** // Convenience method which works if the number of arguments equals // the number if colums (otherwise an exception will be thrown) */ virtual void fill(const T& v0) = 0; virtual void fill(const T& v0, const T& v1) = 0; virtual void fill(const T& v0, const T& v1, const T& v2) = 0; virtual void fill(const T& v0, const T& v1, const T& v2, const T& v3)=0; virtual void fill(const T& v0, const T& v1, const T& v2, const T& v3, const T& v4) = 0; virtual void fill(const T& v0, const T& v1, const T& v2, const T& v3, const T& v4, const T& v5) = 0; virtual void fill(const T& v0, const T& v1, const T& v2, const T& v3, const T& v4, const T& v5, const T& v6) = 0; virtual void fill(const T& v0, const T& v1, const T& v2, const T& v3, const T& v4, const T& v5, const T& v6, const T& v7)=0; virtual void fill(const T& v0, const T& v1, const T& v2, const T& v3, const T& v4, const T& v5, const T& v6, const T& v7, const T& v8) = 0; virtual void fill(const T& v0, const T& v1, const T& v2, const T& v3, const T& v4, const T& v5, const T& v6, const T& v7, const T& v8, const T& v9) = 0; //@} /** // Append contents of another ntuple. That ntuple must have // the same number of columns. The copy constructor must exist // which builds elements of this ntuple from the elements of // another ntuple. */ template void append(const AbsNtuple& another); /** // Access individual elements (no bounds checking). // Note that access is by value, so it involves a fair // amount of copying. The other alternative, return by // reference, could lead to subtle bugs with references // invalidated by fill operations and buffer swapping. */ virtual T operator()(unsigned long r, unsigned long c) const=0; /** Access individual elements with bounds checking */ virtual T at(unsigned long r, unsigned long c) const = 0; /** // Access with flexible column argument. The "Column" class has // converting constructors from unsigned long, const char*, and // std::string&. All these can now be used as the second argument. // Note that this type of access will be slower than access by // simple indices, so don't use this method in tight loops. */ T element(unsigned long r, const Column& c) const; /** Similar method with bounds checking */ T elementAt(unsigned long r, const Column& c) const; //@{ /** // Fetch copies of rows/columns. The buffer should be at least // as large as the number of elements expected in return. */ virtual void rowContents(unsigned long row, T* buf, unsigned long lenBuf) const = 0; virtual void columnContents(const Column& c, T* buf, unsigned long lenBuf) const = 0; //@} /** // Clear the data (if possible). Note that certain disk-based // implementations may ignore this. Check the number of rows // to make sure that the data was indeed cleared. */ virtual void clear() = 0; /** // Iteration over column contents (cycles row numbers). // Note that rowContents/columnContents methods to access // the data are going to work faster than these iterators. */ class column_iterator { public: typedef T value_type; typedef std::forward_iterator_tag iterator_category; column_iterator(); T operator*() const; column_iterator& operator++(); column_iterator operator++(int); bool operator==(const column_iterator&) const; bool operator!=(const column_iterator&) const; bool operator<(const column_iterator&) const; private: friend class AbsNtuple; const AbsNtuple* nt_; unsigned long column_; unsigned long row_; }; /** Iteration over row contents (cycles column numbers) */ class row_iterator { public: typedef T value_type; typedef std::forward_iterator_tag iterator_category; row_iterator(); T operator*() const; row_iterator& operator++(); row_iterator operator++(int); bool operator==(const row_iterator&) const; bool operator!=(const row_iterator&) const; bool operator<(const row_iterator&) const; private: friend class AbsNtuple; const AbsNtuple* nt_; unsigned long column_; unsigned long row_; }; //@{ /** // Methods which return begin/end positions for // the row/column iterators */ row_iterator row_begin(unsigned long rowNumber) const; row_iterator row_end() const; column_iterator column_begin(const Column& column) const; column_iterator column_end() const; //@} /** // Function for cycling over all rows. The accumulator class // must implement the following function: // // void accumulate(T* rowContents, unsigned long nColumns) */ template void cycleOverRows(Accumulator& acc) const; /** // Same as cycleOverRows, but the accumulator will be called // only if the filter returns "true". The filter must be // a functor which implements // - // bool operator()(const T* rowContents, unsigned long nColumns) const + // bool operator()(unsigned long rowNumber, + // const T* rowContents, unsigned long nColumns) const // // The function returns the number of rows passing the filter. */ template unsigned long conditionalCycleOverRows( const Filter& f, Accumulator& acc) const; /** Cycle over rows counting how many rows pass the filter */ template unsigned long conditionalRowCount(const Filter& f) const; /** - // Another row cycling function which also use a functor that + // Another row cycling function which employs a functor that // calculates a weight. The weight functor must implement // - // double operator()(const T* rowContents, unsigned long nCols) const + // double operator()(unsigned long rowNumber, + // const T* rowContents, unsigned long nCols) const // // The returned weights must be non-negative. The accumulator must // implement // // void accumulate(T* rowContents, unsigned long nColumns, double w) // // The option "skipZeroWeights" allows the user not to call the // accumulator if the calculated weight is 0. */ template void weightedCycleOverRows(Accumulator& acc, const WeightCalc& wcalc, bool skipZeroWeights = false) const; /** // This method returns the sum of weights for rows // that pass the filter and call the accumulator as appropriate */ template double weightedConditionalCycleOverRows( const Filter& f, Accumulator& acc, const WeightCalc& wcalc, bool skipZeroWeights = false) const; /** // This method just returns the sum of weights for rows // that pass the filter */ template double weightedConditionalRowCount( const Filter& f, const WeightCalc& wcalc) const; //@{ /** // Convenience method which returns a collection of column // indices using a set of inhomogeneous column descriptions as // an argument. Exception will be thrown if the column // does not exist. */ std::vector columnIndices(const Column& c0) const; std::vector columnIndices(const Column& c0, const Column& c1) const; std::vector columnIndices(const Column& c0, const Column& c1, const Column& c2) const; std::vector columnIndices(const Column& c0, const Column& c1, const Column& c2, const Column& c3) const; std::vector columnIndices(const Column& c0, const Column& c1, const Column& c2, const Column& c3, const Column& c4) const; std::vector columnIndices(const Column& c0, const Column& c1, const Column& c2, const Column& c3, const Column& c4, const Column& c5) const; std::vector columnIndices(const Column& c0, const Column& c1, const Column& c2, const Column& c3, const Column& c4, const Column& c5, const Column& c6) const; std::vector columnIndices(const Column& c0, const Column& c1, const Column& c2, const Column& c3, const Column& c4, const Column& c5, const Column& c6, const Column& c7) const; std::vector columnIndices(const Column& c0, const Column& c1, const Column& c2, const Column& c3, const Column& c4, const Column& c5, const Column& c6, const Column& c7, const Column& c8) const; std::vector columnIndices(const Column& c0, const Column& c1, const Column& c2, const Column& c3, const Column& c4, const Column& c5, const Column& c6, const Column& c7, const Column& c8, const Column& c9) const; //@} /** // Convenience method which returns a collection of column // indices using a vector of column names as an argument. */ std::vector columnIndices( const std::vector& colNames) const; /** Prototype needed for I/O */ virtual gs::ClassId classId() const = 0; /** // Comparison for equality. Do not override in derived classes // (override "isEqual" method instead) */ inline bool operator==(const AbsNtuple& r) const {return (typeid(*this) == typeid(r)) && this->isEqual(r);} /** Logical negation of operator== */ inline bool operator!=(const AbsNtuple& r) const {return !(*this == r);} protected: /** // Comparison for equality to be overriden by the derived // classes. Don't forget to call "isEqual" method of the // base class. */ virtual bool isEqual(const AbsNtuple& r) const; private: std::vector colNames_; std::string title_; // Before using "AppendNTuple", check compatibility // of the number of columns template struct AppendNTuple { static inline void append(AbsNtuple* nt, const AbsNtuple& other) { const unsigned long nRows = other.nRows(); if (nRows) { // We need to create buffers carefully, so that this code // can work for objects without default constructors const unsigned long nCols = other.nColumns(); std::vector bufVec; bufVec.reserve(nCols); std::vector myBufVec; myBufVec.reserve(nCols); for (unsigned long col=0; colfill(myBuf, nCols); for (unsigned long row=1UL; rowfill(myBuf, nCols); } } } }; // Faster version of "AppendNTuple" which will be called // when T and T2 types are the same template struct AppendNTuple<1, T2> { static inline void append(AbsNtuple* nt, const AbsNtuple& other) { const unsigned long nRows = other.nRows(); if (nRows) { const unsigned long nCols = other.nColumns(); std::vector bufVec; bufVec.reserve(nCols); for (unsigned long col=0; colfill(buf, nCols); for (unsigned long row=1UL; rowfill(buf, nCols); } } } }; #ifdef SWIG public: template inline unsigned long cutCycleOverRows( const NtRectangularCut& f, Accumulator& acc) const { return conditionalCycleOverRows(f, acc); } inline void append2(const AbsNtuple& other) { append(other); } #endif // SWIG }; /** // Function for dumping ntuples into text files, one row per line. // By default, column values will be separated by a single white // space. If "insertCommasBetweenValues" is "true" then column // values will be separated by ", ". Only the data is dumped, not // the info about the ntuple structure. // // This function will only work with T objects that have default // constructors. "true" is returned on success, "false" on failure. */ template bool dumpNtupleAsText(const AbsNtuple& ntuple, std::ostream& asciiStream, bool insertCommasBetweenValues=false, unsigned long firstRowToDump=0, unsigned long maxRowsToDump=ULONG_MAX); /** // Function for filling ntuples from text files, one row per line. // Will work with T objects that have default constructors. // "true" is returned on success, "false" on failure. // // There may be more columns (but not less) in the file than // in the ntuple. In this case extra columns are ignored. // // Empty lines, lines which consist of pure white space, and lines // which start with an arbitrary amount of white space (including // none) followed by '#' are ignored (considered comments). */ template bool fillNtupleFromText(std::istream& asciiStream, AbsNtuple* ntuple, bool hasCommasBetweenValues=false, unsigned long maxRowsToFill=ULONG_MAX); //@{ /** // Convenience function for creating vectors of std::string // using variable number of arguments (from 1 to 10 here) */ std::vector ntupleColumns(const char* v0); std::vector ntupleColumns(const char* v0, const char* v1); std::vector ntupleColumns(const char* v0, const char* v1, const char* v2); std::vector ntupleColumns(const char* v0, const char* v1, const char* v2, const char* v3); std::vector ntupleColumns(const char* v0, const char* v1, const char* v2, const char* v3, const char* v4); std::vector ntupleColumns(const char* v0, const char* v1, const char* v2, const char* v3, const char* v4, const char* v5); std::vector ntupleColumns(const char* v0, const char* v1, const char* v2, const char* v3, const char* v4, const char* v5, const char* v6); std::vector ntupleColumns(const char* v0, const char* v1, const char* v2, const char* v3, const char* v4, const char* v5, const char* v6, const char* v7); std::vector ntupleColumns(const char* v0, const char* v1, const char* v2, const char* v3, const char* v4, const char* v5, const char* v6, const char* v7, const char* v8); std::vector ntupleColumns(const char* v0, const char* v1, const char* v2, const char* v3, const char* v4, const char* v5, const char* v6, const char* v7, const char* v8, const char* v9); std::vector ntupleColumns(const char** names, unsigned len); //@} /** Generate column names "c0", "c1", ..., "cM", where M = ncols - 1 */ std::vector simpleColumnNames(unsigned ncols); } #include "npstat/stat/Column.icc" #include "npstat/stat/AbsNtuple.icc" #endif // NPSTAT_ABSNTUPLE_HH_ Index: trunk/NEWS =================================================================== --- trunk/NEWS (revision 791) +++ trunk/NEWS (revision 792) @@ -1,901 +1,906 @@ Version 5.7.0 - development * Added method "weightedPointsAverages" to the AbsClassicalOrthoPoly1D and ContOrthoPoly1D classes. * Added methods "sumOfSquaredWeights" to classes WeightedStatAccumulator and WeightedSampleAccumulator. * Added method "sigmaRange" to WeightedSampleAccumulator class. * Added header file LOrPE1DCV.hh with various cross-validation faclities for unbinned LOrPE in one dimension. * Added function "sampleDistro1DWithWeight". * Added class "GaussianDip". * Added functions "findScanMinimum1D" and "findScanMaximum1D", mainly for use in Python code. * Interfaced class DeltaMixture1D to python. DeltaMixture1D can now deal with coordinate ties. * Added classes AcceptanceFunctor1D and InverseAcceptanceFunctor1D. +* Changed signature of filter and weight functors used with ntuples + (added row number argument to all calls). + +* Added class ModulatedDistribution1D. + Version 5.6.0 - May 31 2022, by I. Volobouev * Changed AbsKDE1DKernel, KDE1DDensityKernel, KDE1DHOSymbetaKernel, and KDE1D classes to accept a normalization factor. In certain situations, this allows for a simple boundary correction by data mirroring. Note, however, that cross-validation does not work with mirroring. * Added "resampleWithReplacement" templated function. * Added class FoldedDistribution1D. * Added class LOrPE1DSymbetaKernel, enabling unbinned LOrPE. * Fixed a bug in the support determination of TruncatedDistribution1D. * Added class LOrPE1D, with intended use similar to KDE1D. * Improved some Python wrappers. Version 5.5.1 - May 8 2022, by I. Volobouev * Changed the SWIG interface so that one can now use references to abstract classes for restoring objects from Geners archives. * Added "subrange" function to the SWIG interface of the Matrix class. Version 5.5.0 - April 15 2022, by I. Volobouev * Added method "extWeightAverages" to the ContOrthoPoly1D class. * Added method "getNull" to the AbsUnbinnedGOFTest1D class. * Added class UnbinnedGOFTest1DFactory. Version 5.4.0 - March 7 2022, by I. Volobouev * Added method "extWeightAverages" to the AbsClassicalOrthoPoly1D class. * Bug fix in the "random" method of DistributionMix1D class. Version 5.3.0 - July 29 2021, by I. Volobouev * Added some facilities for quadruple precision calculations. They mostly rely on the __float128 type (gcc extension, libquadmath) and on compiling the LAPACK/BLAS libraries with the "-freal-8-real-16" switch. * Added the "GaussLegendreQuadratureQ" class capable of performing Gauss-Legendre quadratures in quadruple precision. * Added the "GaussLegendreQuadrature2D" class capable of performing tensor-product Gauss-Legendre quadratures in two dimensions. * Added OrthoPoly1DDeg functor. * Added class ScalableClassicalOrthoPoly1D. * Added class ClassicalOrthoPoly1DFromWeight. This also necessitated refactoring of the class DensityOrthoPoly1D. * Added classes AbsIntervalQuadrature1D and RectangleQuadrature1D. * Added function "kernelSensitivityMatrix". * Added function "sumOfSquares". * Added a number of .i files. * Added classes AbsUnbinnedGOFTest1D and OrthoPolyGOFTest1D. * Added class PolynomialDistro1D. * Added a number of unbinned goodness-of-fit tests. * Added class Gauss1DQuadrature. * Added class SmoothGOFTest1D. * Added class Poly1D". Version 5.2.0 - July 20 2020, by I. Volobouev * Added a number of .i files. * Added classes "DiscreteGauss1DBuilder" and "DiscreteGaussCopulaSmoother". * Added class "MatrixFilter1DBuilder". * Added facilities for saddlepoint approximations: classes AbsCGF1D and SeriesCGF1D, function saddlepointDistribution1D, as well as class ExpTiltedDistribution1D which can be useful in saddlepoint approximation precision studies. * Added class "DensityOrthoPoly1D" for building orthonormal polynomial systems using (almost) arbitrary 1-d densities as weights. * Added "empiricalMoment" method to the AbsDistribution1D class. * Added class "HeatEq1DNeumannBoundary". * Added methods "sampleAverages" and "sampleProductAverages" to the ContOrthoPoly1D class. * Added method "expectation" to the AbsDistribution1D class. Version 5.1.0 - Nov 17 2019, by I. Volobouev * Started using python-specific features (pythonprepend, etc) in the SWIG .i files. * Added function "scannedKSDistance". * Added Python API for persistence of several classes. Version 5.0.0 - Oct 17 2019, by I. Volobouev * C++11 support is now mandatory. * Added more classes and functions to Python API. Overhauled some of the existing interfaces. Updated everything to python3. * Increased the maximum order of "classical" Edgeworth expansions to 14. * Increased the maximum order of conversions between 1-d central moments and cumulants to 20. * Added "histoQuantiles" function. * Added "correctDensityEstimateGHU" function. * Added "randomHistoFill1D" utility function. * Added ComparisonDistribution1D class. * Added classes GaussND, LinTransformedDistroND, and DistributionMixND. * Added a lot of SWIG .i files Version 4.11.0 - July 22 2019, by I. Volobouev * Added support for cumulant calculations for various Wald statistics in the Poisson process model. * Added functions convertCumulantsToCentralMoments and convertCentralMomentsToCumulants (header file cumulantConversion.hh). * Added function "cumulantUncertainties". Version 4.10.0 - July 11 2019, by I. Volobouev * Added SemiInfGaussianQuadrature class. * Added functions arrayMoment, arrayMoments, and arrayCentralMoments. * Added enum EdgeworthSeriesMethod and class EdgeworthSeries1D. * Added DeltaMixture1D class. * Added enum LikelihoodStatisticType. * Added functions "mixtureModelCumulants" and "poissonProcessCumulants" in the header likelihoodStatisticCumulants.hh. Version 4.9.0 - Dec 18 2018, by I. Volobouev * Added "integratePoly" and "jointIntegral" methods to the AbsClassicalOrthoPoly1D class. * Added utility functions "truncatedInverseSqrt" and "matrixIndexPairs". * Added a number of functions to "orthoPoly1DVProducts.hh". * Added classes ChebyshevOrthoPoly1st and ChebyshevOrthoPoly2nd inheriting from AbsClassicalOrthoPoly1D. * Added class HermiteProbOrthoPoly1D. * Added FejerQuadrature class. * Added classe IsoscelesTriangle1D and Logistic1D. * Added classes AbsKDE1DKernel and KDE1DHOSymbetaKernel. * Added static function "optimalDegreeHart" to OSDE1D class. Version 4.8.0 - Jul 9 2018, by I. Volobouev * Added ShiftedLegendreOrthoPoly1D class. * Added Lanczos method to generate recurrence coefficients for the ContOrthoPoly1D class. * Added npstat/stat/orthoPoly1DVProducts.hh file with various utilities for statistical analyis of chaos polynomials. Version 4.7.0 - Jan 13 2018, by I. Volobouev * Added "UniPareto1D" distribution (uniform with Pareto tail to the right). * More coordinate/weight cases for the GaussLegendreQuadrature class. * Added ContOrthoPoly1D class -- continuous orthogonal polynomials with discrete measure. * Added functions "linearLeastSquares" and "tdSymEigen" to the Matrix class. * Added OSDE1D class. * Added classes LocationScaleFamily1D and SinhAsinhTransform1D. * Added new functors (CdfFunctor1D, etc) as AbsDistribution1D helpers. * Small fix in StatAccumulatorArr.cc. Version 4.6.0 - Jan 23 2017, by I. Volobouev * Updated 1-d LOrPE cross validation code (classes AbsBandwidthCV, BandwidthCVLeastSquares1D, BandwidthCVPseudoLogli1D) for use with weighted samples in the case the sample itself is available at the point cross validation is run. Version 4.5.0 - Aug 01 2016, by I. Volobouev * A small fix in OrthoPolyND.icc (switched from cycling over unsigned to unsigned long in the scalar product function). * Implemented Gauss-Hermite quadrature with Gaussian density weight. * Changed the meaning of Quadratic1D and LogQuadratic1D parameters to be consistent with Legendre polynomial coefficients on [-1, 1] (new parameters are 1/2 of old). * Added class MinuitUnbinnedFitFcn1D (to interfaces). * Added function "findRootNewtonRaphson". * Added "statUncertainties" header with various functions. Version 4.4.0 - May 9 2016, by I. Volobouev * Added "timestamp" function. * Improved implementation of BinnedDensity1D::unscaledQuantile function. Certain problems caused by round-off errors are now fixed. * Added the capability to use the single closest parameter cells (thus disabling actual interpolation between parameter values, for speed) to "GridInterpolatedDistribution". Version 4.3.0 - March 19 2016, by I. Volobouev * Put additional assert statements inside OrthoPolyND.icc to prevent phony "array subscript is above array bounds" messages in g++ 4.9.2. * Improved CmdLine.hh. * Additional methods in CopulaInterpolationND and GridInterpolatedDistribution. * Added function "volumeDensityFromBinnedRadial". * Added convenience method "globalFilter" to the OrthoPoly1D class. * Initiated the transition of the Python API from Python 2 to Python 3. Version 4.2.0 - October 29 2015, by I. Volobouev * Added interpolation methods for the marginals to classes "CopulaInterpolationND" and "GridInterpolatedDistribution". * Removed assert on underflow in the "igamc" function. Now in such cases this function simply returns 0.0. Version 4.1.0 - July 27 2015, by I. Volobouev * Made a few additional methods virtual in AbsNtuple. * Declared methods "columnIndices" of AbsNtuple const (as they should be). * Added function "weightedCopulaHisto" to build copulas for samples of weighted points. * Added function "weightedVariableBandwidthSmooth1D" to use variable bandwidth smoothing with weighted histograms. * Added "AbsWeightedMarginalSmoother" interface class for smoothing samples of weighted points. Modified classes ConstantBandwidthSmoother1D, JohnsonKDESmoother, and LOrPEMarginalSmoother to support this interface. * Added class "VariableBandwidthSmoother1D" which implements both AbsMarginalSmoother and AbsWeightedMarginalSmoother interfaces. * Implemented cross-validation for weighted samples. * Implemented "buildInterpolatedCompositeDistroND" for generic construction of multivariate transfer functions. * Implemented "buildInterpolatedDistro1DNP" for generic construction of univariate transfer functions. Version 4.0.1 - June 17 2015, by I. Volobouev * Added "dump_qmc" example executable. Version 4.0.0 - June 10 2015, by I. Volobouev * Complete overhaul of 1-d filter-building code. Addition of new boundary methods is a lot easier now. The user API for choosing a LOrPE boundary method is encapsulated in the new "BoundaryHandling" class. * Implemented a number of new filter builders with different boundary treatments. * Updated the "LocalPolyFilter1D" class so that it holds the local bandwidth factors derived by the filter builders. Version 3.8.0 - June 1 2015, by I. Volobouev * Implemented class ConstSqFilter1DBuilder (declared in the header file npstat/stat/Filter1DBuilders.hh). The "BoundaryMethod" enum has been extended accordingly. Other files using this enum have been updated. * Implemented class FoldingSqFilter1DBuilder. Similar to ConstSqFilter1DBuilder but it also folds the kernel in addition to stretching it. * Added virtual destructors to a number of classes. * Added "externalMemArrayND" with various signatures to allow the use of ArrayND with memory not managed by ArrayND. * Added move constructors and move assignment operators to ArrayND and Matrix classes. Version 3.7.0 - May 10 2015, by I. Volobouev * Better numerical derivative calculation in InterpolatedDistribution1D.cc. * Added class "LocalMultiFilter1D" for fast generation of filters which correspond to each orthogonal polynomial separately. * Added a function calculating the area of n-dimensional sphere. * Added I/O capabilities to the RadialProfileND class. * Added class "LogRatioTransform1D". * Added utility function "multiFill1DHistoWithCDFWeights" (header file histoUtils.hh). * Avoiding underflow of the incomplete gamma in "convertToSphericalRandom". Version 3.6.0 - April 6 2015, by I. Volobouev * Fixed Marsaglia's code calculating the Anderson-Darling statistics (it was breaking down for large values of z). * Added high-level driver function "simpleVariableBandwidthSmooth1D" to automatically build the pilot estimate for "variableBandwidthSmooth1D". * Swithched to log of sigma as Minuit parameter in "minuitFitJohnsonCurves" instead of sigma (linear sigma would sometimes break the fit when Minuit would come up with 0 or negative trial value for it). * Extended "MinuitDensityFitFcn1D" class so that it could be used to fit non-uniformly binned histograms. * Adapted "minuitFitJohnsonCurves" function so that it could be used with histograms templated upon DualHistoAxis. * Added functions "fillArrayCentersPreservingAreas" and "canFillArrayCentersPreservingAreas". * Implemented an interface to monotonous coordinate transformations with the intent of using them in constructing densities. Implemented a number of transforms. * Implemented class "TransformedDistribution1D". * Added class "VerticallyInterpolatedDistro1D1P". * Added utility function "fill1DHistoWithCDFWeights". Version 3.5.0 - February 21 2015, by I. Volobouev * Added "symPDEigenInv" method to the Matrix class. * Added "variableCount" method to unfolding bandwidth scanner classes. * Increased the tolerance parameters in JohnsonSu::initialize and in JohnsonFit constructor. * Bug fix in function "fillHistoFromText". Version 3.4.4 - January 13 2015, by I. Volobouev * Corrected handling of some "assert" statements so that the code compiles correctly with the -DNDEBUG option. Version 3.4.3 - January 5 2015, by I. Volobouev * Implemented class MirroredGauss1D. * Added method "getOracleData" to class UnfoldingBandwidthScanner1D. * Bug fix in FoldingFilter1DBuilder::makeOrthoPoly. Version 3.4.2 - December 15 2014, by I. Volobouev * Implemented InterpolatedDistro1D1P class. Version 3.4.1 - November 07 2014, by I. Volobouev * Implemented "divideTransforms" function for deconvolutions. * Implemented the Moyal distribution. * Added "fillHistoFromText" utility function. * Added "apply_lorpe_1d" example. Version 3.4.0 - October 01 2014, by I. Volobouev * Implemented Hadamard product and Hadamard ratio for matrices. * Bug fix in the "solve_linear_system" lapack interface function. Version 3.3.1 - August 08 2014, by I. Volobouev * Terminate iterative refinement of the unfolding error propagation matrix early in case the solution does not seem to improve. Version 3.3.0 - August 05 2014, by I. Volobouev * Added correction factors to the determination of the number of fitted parameters in various unfolding procedures. Version 3.2.0 - July 25 2014, by I. Volobouev * Added "gaussianResponseMatrix" function for non-uniform binning. * Added Pareto distribution. * Implemented EMS unfolding with sparse matrices. * Added methods "getObservedShape" and "getUnfoldedShape" to the AbsUnfoldND class. * Bug fix in the assignment operator of ProductDistributionND class. Made class ProductDistributionND persistent. * Bug fix in the error propagation for unfolding, in the code which takes into account the extra normalization constant. * Added "productResponseMatrix" function to assist in making sparse response matrices. * Bug fix in the factory constructor of the Cauchy1D class. * Completed implementation of the "RatioOfNormals" class. Version 3.1.0 - June 29 2014, by I. Volobouev * Improved (again) random number generator for the 1-d Gaussian distribution. Something about expectation values of normalized Hermite polynomials over random numbers made by this generator is still not fully understood. The standard deviation of these expectations decreases with the polynomial order (while it should stay constant). It is possible that the numbers of points used are simply insufficient to sample the tails correctly. * Implemented smoothed expectation-maximization (a.k.a. D'Agostini) unfolding for 1-d distributions in classes SmoothedEMUnfold1D and MultiscaleEMUnfold1D. In certain usage scenarios, MultiscaleEMUnfold1D can be more efficient than SmoothedEMUnfold1D. * Implemented smoothed expectation-maximization unfolding for multivariate distributions in a class SmoothedEMUnfoldND. * Added class "UnfoldingBandwidthScanner1D" to study 1-d unfolding behavior as a function of filter bandwidth. * Added class "UnfoldingBandwidthScannerND" to study multivariate unfolding behavior as a function of provided bandwidth values. * Added DummyLocalPolyFilter1D class useful when a filter is needed which does not smooth anything. * Added function "poissonLogLikelihood" (header file npstat/stat/arrayStats.hh). * Added function "pooledDiscreteTabulated1D" (header file npstat/stat/DiscreteDistributions1D.hh). * Implemented class UGaussConvolution1D (convolution of uniform distribution with a Gaussian). * Implemented gamma distribution (class Gamma1D). * Defined interface for comparing binned distributions, AbsBinnedComparison1D. * Implemented several comparison classes for comparing binned distributions: PearsonsChiSquared, BinnedKSTest1D, BinnedADTest1D. Class BinnedKSTest1D pulled in dependence on the "kstest" package. * Made classes LocalPolyFilter1D, LocalPolyFilterND, and SequentialPolyFilterND persistent. * Added code generating dense filter matrices to LocalPolyFilterND and SequentialPolyFilterND (as needed for unfolding). * Made class MemoizingSymbetaFilterProvider persistent. * Implemented function goldenSectionSearchOnAGrid (header file npstat/nm/goldenSectionSearch.hh). * Implemented function parabolicExtremum (header npstat/nm/MathUtils.hh). * Added class DistributionMix1D (header npstat/stat/DistributionMix1D.hh). * Added interface to solving A*X = B, with matrices X and B, to the Matrix class (method "solveLinearSystems"). * Added "reshape" methods to the ArrayND class. * Added "gaussianResponseMatrix" function. * Added a section on unfolding to the documentation. * Added "ems_unfold_1d" example program. Version 3.0.0 - March 14 2014, by I. Volobouev * Added interface to the LAPACK SVD routines. * Added function "lorpeMise1D" to calculate MISE for arbitrary distributions. * Added FoldingFilter1DBuilder class. * Changed interfaces for several high-level functions to use FoldingFilter1DBuilder. The major version number got bumped up. * Split DensityScan1D.hh away from AbsDistribution1D.hh. Version 2.7.0 - March 10 2014, by I. Volobouev * Added code to optimize operations with diagonal matrices. * Added discretizedDistance.hh file for simple L1 and L2 distance calculations with numeric arrays. * Added base class for future unfolding code. * The "reset" method of the Matrix class was renamed into "uninitialize" in order to be consistent with ArrayND. * Added function "multinomialCovariance1D". * Added "polyTimesWeight" method to the OrthoPoly1D class. * Added methods "TtimesThis" and "timesT" to the Matrix class. These methods are more efficient than transpose followed by multiplication. Version 2.6.0 - January 30 2014, by I. Volobouev * Added function "lorpeBackgroundCVDensity1D" which linearizes calculation of the cross validation likelihood in semiparametric fits. Argument "linearizeCrossValidation" was added to MinuitSemiparametricFitFcn1D constructor, "lorpeBackground1D" function, etc. * Added the ability to build filters with center point removed to classes WeightTableFilter1DBuilder and StretchingFilter1DBuilder. The function "symbetaLOrPEFilter1D" now has an appropriate switch. * Added "removeRowAndColumn" method to the Matrix class. * Added CircularBuffer class. * Added various plugin bandwidth functions which work with non-integer polynomial degrees. * Switched to the Legendre polynomial basis for calculating all 1-d orthogonal polynomials (instead of monomial basis). * Added MemoizingSymbetaFilterProvider class. * Added "operator+=" method to the MultivariateSumAccumulator class. * Simplified implementation of the PolyFilterCollection1D class. File PolyFilterCollection1D.icc is removed. * Added "RatioOfNormals" 1-d distribution function. Only the density is currently implemented but not the CDF. * Added ExpMapper1d class. Version 2.5.0 - October 15 2013, by I. Volobouev * Added "getFilterMatrix" method to the LocalPolyFilter1D class. * Added "genEigen" method to the Matrix class (for determination of eigenvalues and eigenvectors of general real matrices). * Refactored the LAPACK interface so that interface functions to floats are automatically generated from interface functions to doubles. See the comment at the end of the "lapack_interface.icc" file for the shell commands to do this. Version 2.4.0 - October 6 2013, by I. Volobouev * Added functions "lorpeBackground1D", "lorpeBgCVPseudoLogli1D", and "lorpeBgLogli1D". * Added minuit interface classes "MinuitLOrPEBgCVFcn1D" and "MinuitSemiparametricFitFcn1D". * Added "ScalableDensityConstructor1D" class for use with Minuit interface functions. * Added classes AbsSymbetaFilterProvider and SymbetaPolyCollection1D. Version 2.3.0 - October 1 2013, by I. Volobouev * Allowed point dimensionality to be larger than the histogram dimensionality in the "empiricalCopulaHisto" function. * Added "keepAllFilters" method to AbsFilter1DBuilder and all derived classes. * Implemented exclusion regions for WeightTableFilter1DBuilder and StretchingFilter1DBuilder. * "symbetaLOrPEFilter1D" function (in the header LocalPolyFilter1D.hh) is updated to take the exclusion mask argument. * Added "continuousDegreeTaper" function which can do something meaningful with the continuous LOrPE degree parameter. Version 2.2.0 - June 30 2013, by I. Volobouev * Added classes DiscreteBernsteinPoly1D and BernsteinFilter1DBuilder. * Added classes DiscreteBeta1D and BetaFilter1DBuilder. * Added BifurcatedGauss1D class to model Gaussian-like distributions with different sigmas on the left and right sides. * Added virtual destructors to the classes declared in the Filter1DBuilders.hh header. * Added a method to the Matrix template to calculate Frobenius norm. * Added methods to the Matrix template to calculate row and column sums. * Added "directSum" method to the Matrix template. * Added constructor from a subrange of another matrix to the Matrix template. * Added code to the LocalPolyFilter1D class that generates a doubly stochastic filter out of an arbitrary filter. * Added "npstat/nm/definiteIntegrals.hh" header and corresponding .cc file for various infrequently used integrals. * Added "betaKernelsBandwidth" function. Version 2.1.0 - June 20 2013, by I. Volobouev * Fixed couple problems which showed up in the robust regression code due to compiler update. * Fixed CensoredQuantileRegressionOnKDTree::process method (needed this-> dereference for some member). Version 2.0.0 - June 15 2013, by I. Volobouev * Updated to use "Geners" version 1.3.0. A few interfaces were changed (API for the string archives was removed because Geners own string archive facilities are now adequate) so the major version number was bumped up. Version 1.6.0 - June 12 2013, by I. Volobouev * Updated some documentation. * Updated fitCompositeJohnson.icc to use simplified histogram constructors. * Bug fix in the "minuitLocalQuantileRegression1D" function. * Changed the "quantileBinFromCdf" function to use unsigned long type for array indices. * Added "weightedLocalQuantileRegression1D" function (namespace npsi) for local regression with single predictor on weighted points. Version 1.5.0 - May 23 2013, by I. Volobouev * Added interfaces to LAPACK routines DSYEVD, DSYEVR, and corresponding single precision versions. * Added the "symPSDefEffectiveRank" method to the Matrix class for calculating effective ranks of symmetric positive semidefinite matrices. * Added converting constructor and assignment operator to the Matrix class. * Run the Gram-Schmidt procedure twice when orthogonal polynomials are derived in order to improve orthogonality. Version 1.4.0 - May 20 2013, by I. Volobouev * Added the "append" method to the AbsNtuple class. Version 1.3.0 - May 10 2013, by I. Volobouev * Added the code for Hermite polynomial series. * Improved random number generator for the 1-d Gaussian distribution. * Added a framework for discrete 1-d distributions as well as two concrete distribution classes (Poisson1D, DiscreteTabulated1D). * Added functions "readCompressedStringArchiveExt" and "writeCompressedStringArchiveExt" which can read/write either compressed or uncompressed string archives, distinguished by file extension. Version 1.2.1 - March 22 2013, by I. Volobouev * Improved CmdLine.hh in the "examples/C++" directory. * Added class QuantileTable1D. * Added classes LeftCensoredDistribution and RightCensoredDistribution. Version 1.2.0 - March 13 2013, by I. Volobouev * Added convenience "fill" methods to work with the ntuples which have small number of columns (up to 10). * Fixed a bug in AbsRandomGenerator for univariate generators making multivariate points. * Added LOrPEMarginalSmoother class. Version 1.1.1 - March 11 2013, by I. Volobouev * Added utility function "symbetaLOrPEFilter1D" which creates 1-d LOrPE filters using kernels from the symmetric beta family (and the Gaussian). * Added high level driver function "lorpeSmooth1D". * Allowed variables with zero variances for calculation of correlation coefficients in "MultivariateSumsqAccumulator". Such variables will have zero correlation coefficients with all other variables. * Added rebinning constructor to the HistoND class. Version 1.1.0 - March 8 2013, by I. Volobouev * Changed NUHistoAxis::fltBinNumber method to produce correct results with interpolation degree 0. It is not yet obvious which method would work best for higher interpolation degrees. * Added functions for converting between StringArchive and python bytearray. They have been placed in a new header: wrap/stringArchiveToBinary.hh. * Added methods "exportMemSlice" and "importMemSlice" to ArrayND. These methods allow for filling array slices from unstructured memory buffers and for exporting array slices to such memory buffers. * Added "simpleColumnNames" function (header file AbsNtuple.hh) to generate trivial column names when ntuple column names are not important. * Added functions "neymanPearsonWindow1D" and "signalToBgMaximum1D". They are declared in a new header npstat/neymanPearsonWindow1D.hh. Version 1.0.5 - December 17 2012, by I. Volobouev * Flush string archives before writing them out in stringArchiveIO.cc. * Added class TruncatedDistribution1D. Version 1.0.4 - November 14 2012, by I. Volobouev * Added utilities for reading/writing Geners string archives to files. * Added BinSummary class. * Doxygen documentation improved. Every header file in stat, nm, rng, and interfaces now has a brief description. Version 1.0.3 - September 27 2012, by I. Volobouev * Fixed some bugs related to moving StorableMultivariateFunctor code from "nm" to "stat". Version 1.0.2 - August 6 2012, by I. Volobouev * Added converting copy constructor to the "LinInterpolatedTableND" class. * Added StorableMultivariateFunctor class (together with the corresponding reader class). * Added StorableInterpolationFunctor class which inherits from the above and can be used with interpolation tables. * Added StorableHistoNDFunctor class which inherits from StorableMultivariateFunctor and can be used to interpolate histogram bins. * Added "transpose" method to HistoND class. * Created DualAxis class. * Created DualHistoAxis class. * Added conversion functions between histogram and grid axes. * Added "mergeTwoHistos" function for smooth merging of two histograms. * Added "ProductSymmetricBetaNDCdf" functor to be used as weight in merging histograms. * Added CoordinateSelector class. Version 1.0.1 - June 29 2012, by I. Volobouev * Implemented class LinInterpolatedTableND with related supporting code.