Page MenuHomeHEPForge

No OneTemporary

Index: trunk/config.log
===================================================================
--- trunk/config.log (revision 682)
+++ trunk/config.log (revision 683)
@@ -1,943 +1,943 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by npstat configure 5.2.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ ./configure --disable-static --with-pic
## --------- ##
## Platform. ##
## --------- ##
hostname = dawn
uname -m = x86_64
uname -r = 4.15.0-72-generic
uname -s = Linux
uname -v = #81-Ubuntu SMP Tue Nov 26 12:20:02 UTC 2019
/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: /usr/local/anaconda3/bin
PATH: /usr/local/bin
PATH: /usr/local/root/bin
PATH: /usr/local/bin
PATH: /bin
PATH: /usr/bin
PATH: /sbin
PATH: /usr/sbin
PATH: .
## ----------- ##
## Core tests. ##
## ----------- ##
configure:2421: checking for a BSD-compatible install
configure:2489: result: /usr/bin/install -c
configure:2500: checking whether build environment is sane
configure:2555: result: yes
configure:2706: checking for a thread-safe mkdir -p
configure:2745: result: /bin/mkdir -p
configure:2752: checking for gawk
configure:2768: found /usr/bin/gawk
configure:2779: result: gawk
configure:2790: checking whether make sets $(MAKE)
configure:2812: result: yes
configure:2841: checking whether make supports nested variables
configure:2858: result: yes
configure:3042: checking for pkg-config
configure:3060: found /usr/bin/pkg-config
configure:3072: result: /usr/bin/pkg-config
configure:3097: checking pkg-config is at least version 0.9.0
configure:3100: result: yes
configure:3110: checking for DEPS
configure:3117: $PKG_CONFIG --exists --print-errors "fftw3 >= 3.1.2 geners >= 1.3.0 kstest >= 2.0.0"
configure:3120: $? = 0
configure:3134: $PKG_CONFIG --exists --print-errors "fftw3 >= 3.1.2 geners >= 1.3.0 kstest >= 2.0.0"
configure:3137: $? = 0
configure:3195: result: yes
configure:3258: checking for g++
configure:3274: found /usr/bin/g++
configure:3285: result: g++
configure:3312: checking for C++ compiler version
configure:3321: g++ --version >&5
g++ (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
configure:3332: $? = 0
configure:3321: g++ -v >&5
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.4.0-1ubuntu1~18.04.1' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
configure:3332: $? = 0
configure:3321: g++ -V >&5
g++: error: unrecognized command line option '-V'
g++: fatal error: no input files
compilation terminated.
configure:3332: $? = 1
configure:3321: g++ -qversion >&5
g++: error: unrecognized command line option '-qversion'; did you mean '--version'?
g++: fatal error: no input files
compilation terminated.
configure:3332: $? = 1
configure:3352: checking whether the C++ compiler works
configure:3374: g++ -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5
configure:3378: $? = 0
configure:3426: result: yes
configure:3429: checking for C++ compiler default output file name
configure:3431: result: a.out
configure:3437: checking for suffix of executables
configure:3444: g++ -o conftest -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5
configure:3448: $? = 0
configure:3470: result:
configure:3492: checking whether we are cross compiling
configure:3500: g++ -o conftest -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5
configure:3504: $? = 0
configure:3511: ./conftest
configure:3515: $? = 0
configure:3530: result: no
configure:3535: checking for suffix of object files
configure:3557: g++ -c -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5
configure:3561: $? = 0
configure:3582: result: o
configure:3586: checking whether we are using the GNU C++ compiler
configure:3605: g++ -c -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5
configure:3605: $? = 0
configure:3614: result: yes
configure:3623: checking whether g++ accepts -g
configure:3643: g++ -c -g conftest.cpp >&5
configure:3643: $? = 0
configure:3684: result: yes
configure:3718: checking for style of include used by make
configure:3746: result: GNU
configure:3772: checking dependency style of g++
configure:3883: result: gcc3
configure:3952: checking for g77
configure:3968: found /home/igv/bin/g77
configure:3979: result: g77
configure:4005: checking for Fortran 77 compiler version
configure:4014: g77 --version >&5
GNU Fortran (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
configure:4025: $? = 0
configure:4014: g77 -v >&5
Using built-in specs.
COLLECT_GCC=g77
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.4.0-1ubuntu1~18.04.1' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
configure:4025: $? = 0
configure:4014: g77 -V >&5
g77: error: unrecognized command line option '-V'
g77: fatal error: no input files
compilation terminated.
configure:4025: $? = 1
configure:4014: g77 -qversion >&5
g77: error: unrecognized command line option '-qversion'; did you mean '--version'?
g77: fatal error: no input files
compilation terminated.
configure:4025: $? = 1
configure:4034: checking whether we are using the GNU Fortran 77 compiler
configure:4047: g77 -c conftest.F >&5
configure:4047: $? = 0
configure:4056: result: yes
configure:4062: checking whether g77 accepts -g
configure:4073: g77 -c -g conftest.f >&5
configure:4073: $? = 0
configure:4081: result: yes
configure:4114: checking build system type
configure:4128: result: x86_64-pc-linux-gnu
configure:4148: checking host system type
configure:4161: result: x86_64-pc-linux-gnu
configure:4186: checking how to get verbose linking output from g77
configure:4196: g77 -c -g -O2 conftest.f >&5
configure:4196: $? = 0
configure:4214: g77 -o conftest -g -O2 -v conftest.f
Using built-in specs.
Target: x86_64-linux-gnu
Thread model: posix
gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
- /usr/lib/gcc/x86_64-linux-gnu/7/f951 conftest.f -ffixed-form -quiet -dumpbase conftest.f -mtune=generic -march=x86-64 -auxbase conftest -g -O2 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/7/finclude -o /tmp/ccqGrBsw.s
+ /usr/lib/gcc/x86_64-linux-gnu/7/f951 conftest.f -ffixed-form -quiet -dumpbase conftest.f -mtune=generic -march=x86-64 -auxbase conftest -g -O2 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/7/finclude -o /tmp/cc2ilFM8.s
GNU Fortran (Ubuntu 7.4.0-1ubuntu1~18.04.1) version 7.4.0 (x86_64-linux-gnu)
compiled by GNU C version 7.4.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version isl-0.19-GMP
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
GNU Fortran2008 (Ubuntu 7.4.0-1ubuntu1~18.04.1) version 7.4.0 (x86_64-linux-gnu)
compiled by GNU C version 7.4.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version isl-0.19-GMP
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
- as -v --64 -o /tmp/ccQZ0fOL.o /tmp/ccqGrBsw.s
+ as -v --64 -o /tmp/cc5gAblW.o /tmp/cc2ilFM8.s
GNU assembler version 2.30 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.30
Reading specs from /usr/lib/gcc/x86_64-linux-gnu/7/libgfortran.spec
rename spec lib to liborig
- /usr/lib/gcc/x86_64-linux-gnu/7/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper -plugin-opt=-fresolution=/tmp/ccPQXGa1.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 --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o conftest /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. /tmp/ccQZ0fOL.o -lgfortran -lm -lgcc_s -lgcc -lquadmath -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o
+ /usr/lib/gcc/x86_64-linux-gnu/7/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper -plugin-opt=-fresolution=/tmp/cceCptUJ.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 --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o conftest /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. /tmp/cc5gAblW.o -lgfortran -lm -lgcc_s -lgcc -lquadmath -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o
configure:4297: result: -v
configure:4299: checking for Fortran 77 libraries of g77
configure:4322: g77 -o conftest -g -O2 -v conftest.f
Using built-in specs.
Target: x86_64-linux-gnu
Thread model: posix
gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
- /usr/lib/gcc/x86_64-linux-gnu/7/f951 conftest.f -ffixed-form -quiet -dumpbase conftest.f -mtune=generic -march=x86-64 -auxbase conftest -g -O2 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/7/finclude -o /tmp/ccUCdJ1w.s
+ /usr/lib/gcc/x86_64-linux-gnu/7/f951 conftest.f -ffixed-form -quiet -dumpbase conftest.f -mtune=generic -march=x86-64 -auxbase conftest -g -O2 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/7/finclude -o /tmp/ccvi7nCb.s
GNU Fortran (Ubuntu 7.4.0-1ubuntu1~18.04.1) version 7.4.0 (x86_64-linux-gnu)
compiled by GNU C version 7.4.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version isl-0.19-GMP
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
GNU Fortran2008 (Ubuntu 7.4.0-1ubuntu1~18.04.1) version 7.4.0 (x86_64-linux-gnu)
compiled by GNU C version 7.4.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version isl-0.19-GMP
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
- as -v --64 -o /tmp/ccLb74vM.o /tmp/ccUCdJ1w.s
+ as -v --64 -o /tmp/ccol5xjZ.o /tmp/ccvi7nCb.s
GNU assembler version 2.30 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.30
Reading specs from /usr/lib/gcc/x86_64-linux-gnu/7/libgfortran.spec
rename spec lib to liborig
- /usr/lib/gcc/x86_64-linux-gnu/7/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper -plugin-opt=-fresolution=/tmp/ccX89c11.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 --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o conftest /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. /tmp/ccLb74vM.o -lgfortran -lm -lgcc_s -lgcc -lquadmath -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o
+ /usr/lib/gcc/x86_64-linux-gnu/7/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper -plugin-opt=-fresolution=/tmp/ccQcss1M.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 --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o conftest /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. /tmp/ccol5xjZ.o -lgfortran -lm -lgcc_s -lgcc -lquadmath -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o
configure:4518: result: -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. -lgfortran -lm -lquadmath
configure:4580: checking how to print strings
configure:4607: result: printf
configure:4676: checking for gcc
configure:4692: found /usr/bin/gcc
configure:4703: result: gcc
configure:4932: checking for C compiler version
configure:4941: gcc --version >&5
gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
configure:4952: $? = 0
configure:4941: gcc -v >&5
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.4.0-1ubuntu1~18.04.1' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
configure:4952: $? = 0
configure:4941: gcc -V >&5
gcc: error: unrecognized command line option '-V'
gcc: fatal error: no input files
compilation terminated.
configure:4952: $? = 1
configure:4941: gcc -qversion >&5
gcc: error: unrecognized command line option '-qversion'; did you mean '--version'?
gcc: fatal error: no input files
compilation terminated.
configure:4952: $? = 1
configure:4956: checking whether we are using the GNU C compiler
configure:4975: gcc -c conftest.c >&5
configure:4975: $? = 0
configure:4984: result: yes
configure:4993: checking whether gcc accepts -g
configure:5013: gcc -c -g conftest.c >&5
configure:5013: $? = 0
configure:5054: result: yes
configure:5071: checking for gcc option to accept ISO C89
configure:5134: gcc -c -g -O2 conftest.c >&5
configure:5134: $? = 0
configure:5147: result: none needed
configure:5172: checking whether gcc understands -c and -o together
configure:5194: gcc -c conftest.c -o conftest2.o
configure:5197: $? = 0
configure:5194: gcc -c conftest.c -o conftest2.o
configure:5197: $? = 0
configure:5209: result: yes
configure:5228: checking dependency style of gcc
configure:5339: result: gcc3
configure:5354: checking for a sed that does not truncate output
configure:5418: result: /bin/sed
configure:5436: checking for grep that handles long lines and -e
configure:5494: result: /bin/grep
configure:5499: checking for egrep
configure:5561: result: /bin/grep -E
configure:5566: checking for fgrep
configure:5628: result: /bin/grep -F
configure:5663: checking for ld used by gcc
configure:5730: result: /usr/bin/ld
configure:5737: checking if the linker (/usr/bin/ld) is GNU ld
configure:5752: result: yes
configure:5764: checking for BSD- or MS-compatible name lister (nm)
configure:5818: result: /usr/bin/nm -B
configure:5948: checking the name lister (/usr/bin/nm -B) interface
configure:5955: gcc -c -g -O2 conftest.c >&5
configure:5958: /usr/bin/nm -B "conftest.o"
configure:5961: output
0000000000000000 B some_variable
configure:5968: result: BSD nm
configure:5971: checking whether ln -s works
configure:5975: result: yes
configure:5983: checking the maximum length of command line arguments
configure:6114: result: 1572864
configure:6162: checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format
configure:6202: result: func_convert_file_noop
configure:6209: checking how to convert x86_64-pc-linux-gnu file names to toolchain format
configure:6229: result: func_convert_file_noop
configure:6236: checking for /usr/bin/ld option to reload object files
configure:6243: result: -r
configure:6317: checking for objdump
configure:6333: found /usr/bin/objdump
configure:6344: result: objdump
configure:6376: checking how to recognize dependent libraries
configure:6576: result: pass_all
configure:6661: checking for dlltool
configure:6691: result: no
configure:6721: checking how to associate runtime and link libraries
configure:6748: result: printf %s\n
configure:6809: checking for ar
configure:6825: found /usr/bin/ar
configure:6836: result: ar
configure:6873: checking for archiver @FILE support
configure:6890: gcc -c -g -O2 conftest.c >&5
configure:6890: $? = 0
configure:6893: ar cru libconftest.a @conftest.lst >&5
ar: `u' modifier ignored since `D' is the default (see `U')
configure:6896: $? = 0
configure:6901: ar cru libconftest.a @conftest.lst >&5
ar: `u' modifier ignored since `D' is the default (see `U')
ar: conftest.o: No such file or directory
configure:6904: $? = 1
configure:6916: result: @
configure:6974: checking for strip
configure:6990: found /usr/bin/strip
configure:7001: result: strip
configure:7073: checking for ranlib
configure:7089: found /usr/bin/ranlib
configure:7100: result: ranlib
configure:7202: checking command to parse /usr/bin/nm -B output from gcc object
configure:7355: gcc -c -g -O2 conftest.c >&5
configure:7358: $? = 0
configure:7362: /usr/bin/nm -B conftest.o \| sed -n -e 's/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | sed '/ __gnu_lto/d' \> conftest.nm
configure:7365: $? = 0
configure:7431: gcc -o conftest -g -O2 conftest.c conftstm.o >&5
configure:7434: $? = 0
configure:7472: result: ok
configure:7519: checking for sysroot
configure:7549: result: no
configure:7556: checking for a working dd
configure:7594: result: /bin/dd
configure:7598: checking how to truncate binary pipes
configure:7613: result: /bin/dd bs=4096 count=1
configure:7749: gcc -c -g -O2 conftest.c >&5
configure:7752: $? = 0
configure:7942: checking for mt
configure:7958: found /bin/mt
configure:7969: result: mt
configure:7992: checking if mt is a manifest tool
configure:7998: mt '-?'
configure:8006: result: no
configure:8683: checking how to run the C preprocessor
configure:8714: gcc -E conftest.c
configure:8714: $? = 0
configure:8728: gcc -E conftest.c
conftest.c:11:10: fatal error: ac_nonexistent.h: No such file or directory
#include <ac_nonexistent.h>
^~~~~~~~~~~~~~~~~~
compilation terminated.
configure:8728: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "npstat"
| #define PACKAGE_TARNAME "npstat"
| #define PACKAGE_VERSION "5.2.0"
| #define PACKAGE_STRING "npstat 5.2.0"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "npstat"
| #define VERSION "5.2.0"
| /* end confdefs.h. */
| #include <ac_nonexistent.h>
configure:8753: result: gcc -E
configure:8773: gcc -E conftest.c
configure:8773: $? = 0
configure:8787: gcc -E conftest.c
conftest.c:11:10: fatal error: ac_nonexistent.h: No such file or directory
#include <ac_nonexistent.h>
^~~~~~~~~~~~~~~~~~
compilation terminated.
configure:8787: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "npstat"
| #define PACKAGE_TARNAME "npstat"
| #define PACKAGE_VERSION "5.2.0"
| #define PACKAGE_STRING "npstat 5.2.0"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "npstat"
| #define VERSION "5.2.0"
| /* end confdefs.h. */
| #include <ac_nonexistent.h>
configure:8816: checking for ANSI C header files
configure:8836: gcc -c -g -O2 conftest.c >&5
configure:8836: $? = 0
configure:8909: gcc -o conftest -g -O2 conftest.c >&5
configure:8909: $? = 0
configure:8909: ./conftest
configure:8909: $? = 0
configure:8920: result: yes
configure:8933: checking for sys/types.h
configure:8933: gcc -c -g -O2 conftest.c >&5
configure:8933: $? = 0
configure:8933: result: yes
configure:8933: checking for sys/stat.h
configure:8933: gcc -c -g -O2 conftest.c >&5
configure:8933: $? = 0
configure:8933: result: yes
configure:8933: checking for stdlib.h
configure:8933: gcc -c -g -O2 conftest.c >&5
configure:8933: $? = 0
configure:8933: result: yes
configure:8933: checking for string.h
configure:8933: gcc -c -g -O2 conftest.c >&5
configure:8933: $? = 0
configure:8933: result: yes
configure:8933: checking for memory.h
configure:8933: gcc -c -g -O2 conftest.c >&5
configure:8933: $? = 0
configure:8933: result: yes
configure:8933: checking for strings.h
configure:8933: gcc -c -g -O2 conftest.c >&5
configure:8933: $? = 0
configure:8933: result: yes
configure:8933: checking for inttypes.h
configure:8933: gcc -c -g -O2 conftest.c >&5
configure:8933: $? = 0
configure:8933: result: yes
configure:8933: checking for stdint.h
configure:8933: gcc -c -g -O2 conftest.c >&5
configure:8933: $? = 0
configure:8933: result: yes
configure:8933: checking for unistd.h
configure:8933: gcc -c -g -O2 conftest.c >&5
configure:8933: $? = 0
configure:8933: result: yes
configure:8947: checking for dlfcn.h
configure:8947: gcc -c -g -O2 conftest.c >&5
configure:8947: $? = 0
configure:8947: result: yes
configure:9214: checking for objdir
configure:9229: result: .libs
configure:9493: checking if gcc supports -fno-rtti -fno-exceptions
configure:9511: gcc -c -g -O2 -fno-rtti -fno-exceptions conftest.c >&5
cc1: warning: command line option '-fno-rtti' is valid for C++/ObjC++ but not for C
configure:9515: $? = 0
configure:9528: result: no
configure:9886: checking for gcc option to produce PIC
configure:9893: result: -fPIC -DPIC
configure:9901: checking if gcc PIC flag -fPIC -DPIC works
configure:9919: gcc -c -g -O2 -fPIC -DPIC -DPIC conftest.c >&5
configure:9923: $? = 0
configure:9936: result: yes
configure:9965: checking if gcc static flag -static works
configure:9993: result: yes
configure:10008: checking if gcc supports -c -o file.o
configure:10029: gcc -c -g -O2 -o out/conftest2.o conftest.c >&5
configure:10033: $? = 0
configure:10055: result: yes
configure:10063: checking if gcc supports -c -o file.o
configure:10110: result: yes
configure:10143: checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries
configure:11402: result: yes
configure:11439: checking whether -lc should be explicitly linked in
configure:11447: gcc -c -g -O2 conftest.c >&5
configure:11450: $? = 0
configure:11465: gcc -shared -fPIC -DPIC conftest.o -v -Wl,-soname -Wl,conftest -o conftest 2\>\&1 \| /bin/grep -lc \>/dev/null 2\>\&1
configure:11468: $? = 0
configure:11482: result: no
configure:11642: checking dynamic linker characteristics
configure:12223: gcc -o conftest -g -O2 -Wl,-rpath -Wl,/foo conftest.c >&5
configure:12223: $? = 0
configure:12460: result: GNU/Linux ld.so
configure:12582: checking how to hardcode library paths into programs
configure:12607: result: immediate
configure:13155: checking whether stripping libraries is possible
configure:13160: result: yes
configure:13195: checking if libtool supports shared libraries
configure:13197: result: yes
configure:13200: checking whether to build shared libraries
configure:13225: result: yes
configure:13228: checking whether to build static libraries
configure:13232: result: no
configure:13255: checking how to run the C++ preprocessor
configure:13282: g++ -E conftest.cpp
configure:13282: $? = 0
configure:13296: g++ -E conftest.cpp
conftest.cpp:23:10: fatal error: ac_nonexistent.h: No such file or directory
#include <ac_nonexistent.h>
^~~~~~~~~~~~~~~~~~
compilation terminated.
configure:13296: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "npstat"
| #define PACKAGE_TARNAME "npstat"
| #define PACKAGE_VERSION "5.2.0"
| #define PACKAGE_STRING "npstat 5.2.0"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "npstat"
| #define VERSION "5.2.0"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| /* end confdefs.h. */
| #include <ac_nonexistent.h>
configure:13321: result: g++ -E
configure:13341: g++ -E conftest.cpp
configure:13341: $? = 0
configure:13355: g++ -E conftest.cpp
conftest.cpp:23:10: fatal error: ac_nonexistent.h: No such file or directory
#include <ac_nonexistent.h>
^~~~~~~~~~~~~~~~~~
compilation terminated.
configure:13355: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "npstat"
| #define PACKAGE_TARNAME "npstat"
| #define PACKAGE_VERSION "5.2.0"
| #define PACKAGE_STRING "npstat 5.2.0"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "npstat"
| #define VERSION "5.2.0"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| /* end confdefs.h. */
| #include <ac_nonexistent.h>
configure:13517: checking for ld used by g++
configure:13584: result: /usr/bin/ld -m elf_x86_64
configure:13591: checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld
configure:13606: result: yes
configure:13661: checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries
configure:14734: result: yes
configure:14770: g++ -c -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5
configure:14773: $? = 0
configure:15254: checking for g++ option to produce PIC
configure:15261: result: -fPIC -DPIC
configure:15269: checking if g++ PIC flag -fPIC -DPIC works
configure:15287: g++ -c -std=c++11 -O3 -Wall -W -Werror -fPIC -DPIC -DPIC conftest.cpp >&5
configure:15291: $? = 0
configure:15304: result: yes
configure:15327: checking if g++ static flag -static works
configure:15355: result: yes
configure:15367: checking if g++ supports -c -o file.o
configure:15388: g++ -c -std=c++11 -O3 -Wall -W -Werror -o out/conftest2.o conftest.cpp >&5
configure:15392: $? = 0
configure:15414: result: yes
configure:15419: checking if g++ supports -c -o file.o
configure:15466: result: yes
configure:15496: checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries
configure:15536: result: yes
configure:15677: checking dynamic linker characteristics
configure:16422: result: GNU/Linux ld.so
configure:16487: checking how to hardcode library paths into programs
configure:16512: result: immediate
configure:16653: checking if libtool supports shared libraries
configure:16655: result: yes
configure:16658: checking whether to build shared libraries
configure:16682: result: yes
configure:16685: checking whether to build static libraries
configure:16689: result: no
configure:17041: checking for g77 option to produce PIC
configure:17048: result: -fPIC
configure:17056: checking if g77 PIC flag -fPIC works
configure:17074: g77 -c -g -O2 -fPIC conftest.f >&5
configure:17078: $? = 0
configure:17091: result: yes
configure:17114: checking if g77 static flag -static works
configure:17142: result: yes
configure:17154: checking if g77 supports -c -o file.o
configure:17175: g77 -c -g -O2 -o out/conftest2.o conftest.f >&5
configure:17179: $? = 0
configure:17201: result: yes
configure:17206: checking if g77 supports -c -o file.o
configure:17253: result: yes
configure:17283: checking whether the g77 linker (/usr/bin/ld -m elf_x86_64) supports shared libraries
configure:18492: result: yes
configure:18633: checking dynamic linker characteristics
configure:19372: result: GNU/Linux ld.so
configure:19437: checking how to hardcode library paths into programs
configure:19462: result: immediate
configure:19662: checking that generated files are newer than configure
configure:19668: result: done
configure:19695: creating ./config.status
## ---------------------- ##
## Running config.status. ##
## ---------------------- ##
This file was extended by npstat config.status 5.2.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES =
CONFIG_HEADERS =
CONFIG_LINKS =
CONFIG_COMMANDS =
$ ./config.status
on dawn
config.status:1143: creating Makefile
config.status:1143: creating npstat/nm/Makefile
config.status:1143: creating npstat/rng/Makefile
config.status:1143: creating npstat/stat/Makefile
config.status:1143: creating npstat/wrap/Makefile
config.status:1143: creating npstat/interfaces/Makefile
config.status:1143: creating npstat/emsunfold/Makefile
config.status:1143: creating npstat/Makefile
config.status:1143: creating examples/C++/Makefile
config.status:1143: creating npstat/swig/Makefile
config.status:1143: creating npstat.pc
config.status:1315: executing depfiles commands
config.status:1315: executing libtool commands
## ---------------- ##
## Cache variables. ##
## ---------------- ##
ac_cv_build=x86_64-pc-linux-gnu
ac_cv_c_compiler_gnu=yes
ac_cv_cxx_compiler_gnu=yes
ac_cv_env_CCC_set=
ac_cv_env_CCC_value=
ac_cv_env_CC_set=
ac_cv_env_CC_value=
ac_cv_env_CFLAGS_set=
ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set=
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_CXXCPP_set=
ac_cv_env_CXXCPP_value=
ac_cv_env_CXXFLAGS_set=set
ac_cv_env_CXXFLAGS_value='-std=c++11 -O3 -Wall -W -Werror'
ac_cv_env_CXX_set=
ac_cv_env_CXX_value=
ac_cv_env_DEPS_CFLAGS_set=
ac_cv_env_DEPS_CFLAGS_value=
ac_cv_env_DEPS_LIBS_set=
ac_cv_env_DEPS_LIBS_value=
ac_cv_env_F77_set=
ac_cv_env_F77_value=
ac_cv_env_FFLAGS_set=
ac_cv_env_FFLAGS_value=
ac_cv_env_LDFLAGS_set=
ac_cv_env_LDFLAGS_value=
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_LT_SYS_LIBRARY_PATH_set=
ac_cv_env_LT_SYS_LIBRARY_PATH_value=
ac_cv_env_PKG_CONFIG_LIBDIR_set=
ac_cv_env_PKG_CONFIG_LIBDIR_value=
ac_cv_env_PKG_CONFIG_PATH_set=set
ac_cv_env_PKG_CONFIG_PATH_value=/usr/local/lib/pkgconfig
ac_cv_env_PKG_CONFIG_set=
ac_cv_env_PKG_CONFIG_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set=
ac_cv_env_host_alias_value=
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_f77_compiler_gnu=yes
ac_cv_f77_libs=' -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. -lgfortran -lm -lquadmath'
ac_cv_header_dlfcn_h=yes
ac_cv_header_inttypes_h=yes
ac_cv_header_memory_h=yes
ac_cv_header_stdc=yes
ac_cv_header_stdint_h=yes
ac_cv_header_stdlib_h=yes
ac_cv_header_string_h=yes
ac_cv_header_strings_h=yes
ac_cv_header_sys_stat_h=yes
ac_cv_header_sys_types_h=yes
ac_cv_header_unistd_h=yes
ac_cv_host=x86_64-pc-linux-gnu
ac_cv_objext=o
ac_cv_path_EGREP='/bin/grep -E'
ac_cv_path_FGREP='/bin/grep -F'
ac_cv_path_GREP=/bin/grep
ac_cv_path_SED=/bin/sed
ac_cv_path_ac_pt_PKG_CONFIG=/usr/bin/pkg-config
ac_cv_path_install='/usr/bin/install -c'
ac_cv_path_lt_DD=/bin/dd
ac_cv_path_mkdir=/bin/mkdir
ac_cv_prog_AWK=gawk
ac_cv_prog_CPP='gcc -E'
ac_cv_prog_CXXCPP='g++ -E'
ac_cv_prog_ac_ct_AR=ar
ac_cv_prog_ac_ct_CC=gcc
ac_cv_prog_ac_ct_CXX=g++
ac_cv_prog_ac_ct_F77=g77
ac_cv_prog_ac_ct_MANIFEST_TOOL=mt
ac_cv_prog_ac_ct_OBJDUMP=objdump
ac_cv_prog_ac_ct_RANLIB=ranlib
ac_cv_prog_ac_ct_STRIP=strip
ac_cv_prog_cc_c89=
ac_cv_prog_cc_g=yes
ac_cv_prog_cxx_g=yes
ac_cv_prog_f77_g=yes
ac_cv_prog_f77_v=-v
ac_cv_prog_make_make_set=yes
am_cv_CC_dependencies_compiler_type=gcc3
am_cv_CXX_dependencies_compiler_type=gcc3
am_cv_make_support_nested_variables=yes
am_cv_prog_cc_c_o=yes
lt_cv_ar_at_file=@
lt_cv_archive_cmds_need_lc=no
lt_cv_deplibs_check_method=pass_all
lt_cv_file_magic_cmd='$MAGIC_CMD'
lt_cv_file_magic_test_file=
lt_cv_ld_reload_flag=-r
lt_cv_nm_interface='BSD nm'
lt_cv_objdir=.libs
lt_cv_path_LD=/usr/bin/ld
lt_cv_path_LDCXX='/usr/bin/ld -m elf_x86_64'
lt_cv_path_NM='/usr/bin/nm -B'
lt_cv_path_mainfest_tool=no
lt_cv_prog_compiler_c_o=yes
lt_cv_prog_compiler_c_o_CXX=yes
lt_cv_prog_compiler_c_o_F77=yes
lt_cv_prog_compiler_pic='-fPIC -DPIC'
lt_cv_prog_compiler_pic_CXX='-fPIC -DPIC'
lt_cv_prog_compiler_pic_F77=-fPIC
lt_cv_prog_compiler_pic_works=yes
lt_cv_prog_compiler_pic_works_CXX=yes
lt_cv_prog_compiler_pic_works_F77=yes
lt_cv_prog_compiler_rtti_exceptions=no
lt_cv_prog_compiler_static_works=yes
lt_cv_prog_compiler_static_works_CXX=yes
lt_cv_prog_compiler_static_works_F77=yes
lt_cv_prog_gnu_ld=yes
lt_cv_prog_gnu_ldcxx=yes
lt_cv_sharedlib_from_linklib_cmd='printf %s\n'
lt_cv_shlibpath_overrides_runpath=yes
lt_cv_sys_global_symbol_pipe='sed -n -e '\''s/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p'\'' | sed '\''/ __gnu_lto/d'\'''
lt_cv_sys_global_symbol_to_c_name_address='sed -n -e '\''s/^: \(.*\) .*$/ {"\1", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/ {"\1", (void *) \&\1},/p'\'''
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='sed -n -e '\''s/^: \(.*\) .*$/ {"\1", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(lib.*\)$/ {"\1", (void *) \&\1},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/ {"lib\1", (void *) \&\1},/p'\'''
lt_cv_sys_global_symbol_to_cdecl='sed -n -e '\''s/^T .* \(.*\)$/extern int \1();/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/extern char \1;/p'\'''
lt_cv_sys_global_symbol_to_import=
lt_cv_sys_max_cmd_len=1572864
lt_cv_to_host_file_cmd=func_convert_file_noop
lt_cv_to_tool_file_cmd=func_convert_file_noop
lt_cv_truncate_bin='/bin/dd bs=4096 count=1'
pkg_cv_DEPS_CFLAGS=-I/usr/local/include
pkg_cv_DEPS_LIBS='-L/usr/local/lib -lfftw3 -lgeners -lkstest'
## ----------------- ##
## Output variables. ##
## ----------------- ##
ACLOCAL='${SHELL} /home/igv/Hepforge/npstat/trunk/missing aclocal-1.15'
AMDEPBACKSLASH='\'
AMDEP_FALSE='#'
AMDEP_TRUE=''
AMTAR='$${TAR-tar}'
AM_BACKSLASH='\'
AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
AM_DEFAULT_VERBOSITY='1'
AM_V='$(V)'
AR='ar'
AUTOCONF='${SHELL} /home/igv/Hepforge/npstat/trunk/missing autoconf'
AUTOHEADER='${SHELL} /home/igv/Hepforge/npstat/trunk/missing autoheader'
AUTOMAKE='${SHELL} /home/igv/Hepforge/npstat/trunk/missing automake-1.15'
AWK='gawk'
CC='gcc'
CCDEPMODE='depmode=gcc3'
CFLAGS='-g -O2'
CPP='gcc -E'
CPPFLAGS=''
CXX='g++'
CXXCPP='g++ -E'
CXXDEPMODE='depmode=gcc3'
CXXFLAGS='-std=c++11 -O3 -Wall -W -Werror'
CYGPATH_W='echo'
DEFS='-DPACKAGE_NAME=\"npstat\" -DPACKAGE_TARNAME=\"npstat\" -DPACKAGE_VERSION=\"5.2.0\" -DPACKAGE_STRING=\"npstat\ 5.2.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"npstat\" -DVERSION=\"5.2.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\"'
DEPDIR='.deps'
DEPS_CFLAGS='-I/usr/local/include'
DEPS_LIBS='-L/usr/local/lib -lfftw3 -lgeners -lkstest'
DLLTOOL='false'
DSYMUTIL=''
DUMPBIN=''
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP='/bin/grep -E'
EXEEXT=''
F77='g77'
FFLAGS='-g -O2'
FGREP='/bin/grep -F'
FLIBS=' -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. -lgfortran -lm -lquadmath'
GREP='/bin/grep'
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
INSTALL_STRIP_PROGRAM='$(install_sh) -c -s'
LD='/usr/bin/ld -m elf_x86_64'
LDFLAGS=''
LIBOBJS=''
LIBS=''
LIBTOOL='$(SHELL) $(top_builddir)/libtool'
LIPO=''
LN_S='ln -s'
LTLIBOBJS=''
LT_SYS_LIBRARY_PATH=''
MAKEINFO='${SHELL} /home/igv/Hepforge/npstat/trunk/missing makeinfo'
MANIFEST_TOOL=':'
MKDIR_P='/bin/mkdir -p'
NM='/usr/bin/nm -B'
NMEDIT=''
OBJDUMP='objdump'
OBJEXT='o'
OTOOL64=''
OTOOL=''
PACKAGE='npstat'
PACKAGE_BUGREPORT=''
PACKAGE_NAME='npstat'
PACKAGE_STRING='npstat 5.2.0'
PACKAGE_TARNAME='npstat'
PACKAGE_URL=''
PACKAGE_VERSION='5.2.0'
PATH_SEPARATOR=':'
PKG_CONFIG='/usr/bin/pkg-config'
PKG_CONFIG_LIBDIR=''
PKG_CONFIG_PATH='/usr/local/lib/pkgconfig'
RANLIB='ranlib'
SED='/bin/sed'
SET_MAKE=''
SHELL='/bin/bash'
STRIP='strip'
VERSION='5.2.0'
ac_ct_AR='ar'
ac_ct_CC='gcc'
ac_ct_CXX='g++'
ac_ct_DUMPBIN=''
ac_ct_F77='g77'
am__EXEEXT_FALSE=''
am__EXEEXT_TRUE='#'
am__fastdepCC_FALSE='#'
am__fastdepCC_TRUE=''
am__fastdepCXX_FALSE='#'
am__fastdepCXX_TRUE=''
am__include='include'
am__isrc=''
am__leading_dot='.'
am__nodep='_no'
am__quote=''
am__tar='$${TAR-tar} chof - "$$tardir"'
am__untar='$${TAR-tar} xf -'
bindir='${exec_prefix}/bin'
build='x86_64-pc-linux-gnu'
build_alias=''
build_cpu='x86_64'
build_os='linux-gnu'
build_vendor='pc'
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
dvidir='${docdir}'
exec_prefix='${prefix}'
host='x86_64-pc-linux-gnu'
host_alias=''
host_cpu='x86_64'
host_os='linux-gnu'
host_vendor='pc'
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
install_sh='${SHELL} /home/igv/Hepforge/npstat/trunk/install-sh'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
mandir='${datarootdir}/man'
mkdir_p='$(MKDIR_P)'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='/usr/local'
program_transform_name='s,x,x,'
psdir='${docdir}'
runstatedir='${localstatedir}/run'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
sysconfdir='${prefix}/etc'
target_alias=''
## ----------- ##
## confdefs.h. ##
## ----------- ##
/* confdefs.h */
#define PACKAGE_NAME "npstat"
#define PACKAGE_TARNAME "npstat"
#define PACKAGE_VERSION "5.2.0"
#define PACKAGE_STRING "npstat 5.2.0"
#define PACKAGE_BUGREPORT ""
#define PACKAGE_URL ""
#define PACKAGE "npstat"
#define VERSION "5.2.0"
#define STDC_HEADERS 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_MEMORY_H 1
#define HAVE_STRINGS_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_STDINT_H 1
#define HAVE_UNISTD_H 1
#define HAVE_DLFCN_H 1
#define LT_OBJDIR ".libs/"
configure: exit 0
Index: trunk/autom4te.cache/requests
===================================================================
--- trunk/autom4te.cache/requests (revision 682)
+++ trunk/autom4te.cache/requests (revision 683)
@@ -1,739 +1,739 @@
# This file was generated by Autom4te Sun Aug 20 23:09:08 UTC 2017.
# It contains the lists of macros which have been traced.
# It can be safely removed.
@request = (
bless( [
'0',
1,
[
'/usr/share/autoconf'
],
[
'/usr/share/autoconf/autoconf/autoconf.m4f',
'-',
'/usr/share/aclocal-1.15/internal/ac-config-macro-dirs.m4',
'/usr/share/aclocal/pkg.m4',
'/usr/share/aclocal-1.15/amversion.m4',
'/usr/share/aclocal-1.15/auxdir.m4',
'/usr/share/aclocal-1.15/cond.m4',
'/usr/share/aclocal-1.15/depend.m4',
'/usr/share/aclocal-1.15/depout.m4',
'/usr/share/aclocal-1.15/init.m4',
'/usr/share/aclocal-1.15/install-sh.m4',
'/usr/share/aclocal-1.15/lead-dot.m4',
'/usr/share/aclocal-1.15/make.m4',
'/usr/share/aclocal-1.15/missing.m4',
'/usr/share/aclocal-1.15/options.m4',
'/usr/share/aclocal-1.15/prog-cc-c-o.m4',
'/usr/share/aclocal-1.15/runlog.m4',
'/usr/share/aclocal-1.15/sanity.m4',
'/usr/share/aclocal-1.15/silent.m4',
'/usr/share/aclocal-1.15/strip.m4',
'/usr/share/aclocal-1.15/substnot.m4',
'/usr/share/aclocal-1.15/tar.m4',
'm4/libtool.m4',
'm4/ltoptions.m4',
'm4/ltsugar.m4',
'm4/ltversion.m4',
'm4/lt~obsolete.m4',
'configure.ac'
],
{
- 'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
- 'LTOPTIONS_VERSION' => 1,
- '_m4_warn' => 1,
- 'AC_LIBTOOL_GCJ' => 1,
- 'AC_LIBTOOL_LANG_C_CONFIG' => 1,
+ 'm4_pattern_allow' => 1,
+ 'AC_PROG_LD' => 1,
+ 'AC_PROG_EGREP' => 1,
+ 'AM_MAKE_INCLUDE' => 1,
+ 'LTSUGAR_VERSION' => 1,
+ 'AC_LIBTOOL_PICMODE' => 1,
+ 'AC_DEPLIBS_CHECK_METHOD' => 1,
+ 'AC_PROG_LD_GNU' => 1,
'AM_MISSING_PROG' => 1,
- 'AM_PROG_CC_C_O' => 1,
- '_LT_AC_LANG_F77' => 1,
- 'LT_PATH_NM' => 1,
- 'AC_LIBTOOL_COMPILER_OPTION' => 1,
- 'AM_SUBST_NOTMAKE' => 1,
- 'AC_ENABLE_FAST_INSTALL' => 1,
- 'AC_LIBTOOL_DLOPEN_SELF' => 1,
- 'LT_LIB_M' => 1,
- '_LT_PATH_TOOL_PREFIX' => 1,
- 'AC_LIBTOOL_WIN32_DLL' => 1,
'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
- 'AM_SANITY_CHECK' => 1,
- '_LT_AC_LANG_CXX_CONFIG' => 1,
- '_LT_CC_BASENAME' => 1,
+ '_LT_LINKER_OPTION' => 1,
+ '_LT_AC_SYS_COMPILER' => 1,
+ 'LT_LIB_M' => 1,
+ '_AC_PROG_LIBTOOL' => 1,
'AC_ENABLE_SHARED' => 1,
- '_LT_DLL_DEF_P' => 1,
- 'PKG_NOARCH_INSTALLDIR' => 1,
- 'AC_LIBTOOL_PICMODE' => 1,
- 'm4_include' => 1,
- 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
- 'AC_LIBTOOL_DLOPEN' => 1,
- 'AC_DEFUN' => 1,
- '_LT_WITH_SYSROOT' => 1,
- 'AM_DISABLE_STATIC' => 1,
- 'AM_DEP_TRACK' => 1,
- 'LT_AC_PROG_GCJ' => 1,
- 'LT_OUTPUT' => 1,
- 'AC_LIBTOOL_F77' => 1,
- 'AC_LIBTOOL_OBJDIR' => 1,
- '_AM_SET_OPTIONS' => 1,
+ '_LT_AC_LANG_GCJ' => 1,
+ 'AC_PATH_TOOL_PREFIX' => 1,
+ '_LT_AC_PROG_ECHO_BACKSLASH' => 1,
+ 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
+ '_LT_CC_BASENAME' => 1,
+ 'AC_LIBTOOL_COMPILER_OPTION' => 1,
+ 'AM_AUTOMAKE_VERSION' => 1,
+ 'AM_CONDITIONAL' => 1,
+ 'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
+ 'PKG_PROG_PKG_CONFIG' => 1,
+ '_LT_PATH_TOOL_PREFIX' => 1,
+ 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
+ 'AM_AUX_DIR_EXPAND' => 1,
+ 'LT_AC_PROG_SED' => 1,
+ '_LT_AC_FILE_LTDLL_C' => 1,
'_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
- 'AC_CONFIG_MACRO_DIR' => 1,
- 'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
+ 'LT_SUPPORTED_TAG' => 1,
'_AM_CONFIG_MACRO_DIRS' => 1,
- 'AC_CHECK_LIBM' => 1,
- 'LT_AC_PROG_EGREP' => 1,
- '_AM_IF_OPTION' => 1,
- '_LT_PROG_CXX' => 1,
- '_LT_AC_SYS_LIBPATH_AIX' => 1,
- 'AM_RUN_LOG' => 1,
+ 'AC_LTDL_PREOPEN' => 1,
+ 'AC_LTDL_OBJDIR' => 1,
+ '_LT_LINKER_BOILERPLATE' => 1,
+ 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
+ 'AM_SET_LEADING_DOT' => 1,
+ 'AC_DISABLE_STATIC' => 1,
+ 'AM_SILENT_RULES' => 1,
+ 'AM_ENABLE_STATIC' => 1,
+ 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
'AC_DISABLE_SHARED' => 1,
- 'AM_AUX_DIR_EXPAND' => 1,
- '_AM_AUTOCONF_VERSION' => 1,
+ 'LTVERSION_VERSION' => 1,
+ 'AM_PROG_NM' => 1,
+ 'AC_PROG_LIBTOOL' => 1,
+ '_LT_COMPILER_OPTION' => 1,
+ 'PKG_CHECK_VAR' => 1,
+ 'AC_DISABLE_FAST_INSTALL' => 1,
+ '_LT_PROG_F77' => 1,
+ '_LT_AC_CHECK_DLFCN' => 1,
+ 'AC_LTDL_ENABLE_INSTALL' => 1,
+ 'AC_LIBTOOL_OBJDIR' => 1,
+ 'AC_LIBTOOL_RC' => 1,
'AM_SET_DEPDIR' => 1,
- 'AM_AUTOMAKE_VERSION' => 1,
+ 'AM_PROG_LIBTOOL' => 1,
+ '_LT_AC_PROG_CXXCPP' => 1,
+ 'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
+ 'AM_SUBST_NOTMAKE' => 1,
+ 'PKG_NOARCH_INSTALLDIR' => 1,
+ 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
+ 'AC_LIBTOOL_FC' => 1,
+ 'AM_PROG_INSTALL_STRIP' => 1,
+ 'LT_AC_PROG_EGREP' => 1,
+ 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
+ 'LT_CMD_MAX_LEN' => 1,
+ '_AM_PROG_CC_C_O' => 1,
+ 'LT_SYS_DLOPEN_SELF' => 1,
+ 'm4_include' => 1,
+ 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
+ 'AM_INIT_AUTOMAKE' => 1,
+ '_AM_IF_OPTION' => 1,
+ '_LT_AC_LANG_CXX' => 1,
+ 'AC_LIBTOOL_DLOPEN' => 1,
+ '_LT_COMPILER_BOILERPLATE' => 1,
+ 'PKG_CHECK_MODULES_STATIC' => 1,
'_LT_REQUIRED_DARWIN_CHECKS' => 1,
- 'PKG_INSTALLDIR' => 1,
- '_LT_PROG_ECHO_BACKSLASH' => 1,
- 'AM_PROG_NM' => 1,
- '_LT_AC_LANG_C_CONFIG' => 1,
- '_AC_PROG_LIBTOOL' => 1,
- '_LT_AC_LANG_GCJ_CONFIG' => 1,
- 'AC_LIBTOOL_CONFIG' => 1,
+ '_LT_PREPARE_SED_QUOTE_VARS' => 1,
+ 'AC_ENABLE_FAST_INSTALL' => 1,
+ 'AC_LIBTOOL_F77' => 1,
+ '_LT_PROG_LTMAIN' => 1,
+ 'AC_LIBTOOL_PROG_CC_C_O' => 1,
'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1,
- '_LT_AC_LANG_CXX' => 1,
- 'PKG_CHECK_MODULES' => 1,
+ 'include' => 1,
+ '_LT_DLL_DEF_P' => 1,
+ 'AU_DEFUN' => 1,
+ '_LT_AC_SHELL_INIT' => 1,
+ 'LT_PATH_LD' => 1,
+ '_AM_PROG_TAR' => 1,
+ 'AM_DEP_TRACK' => 1,
+ 'AC_CONFIG_MACRO_DIR' => 1,
+ 'AM_DISABLE_STATIC' => 1,
'AC_PATH_MAGIC' => 1,
- 'AM_ENABLE_STATIC' => 1,
- 'AC_LIBTOOL_RC' => 1,
- 'AM_PROG_INSTALL_STRIP' => 1,
- 'AC_LTDL_ENABLE_INSTALL' => 1,
- '_AM_DEPENDENCIES' => 1,
- 'AC_PROG_EGREP' => 1,
- 'AC_LTDL_OBJDIR' => 1,
- 'AM_PROG_LD' => 1,
- '_LT_PROG_F77' => 1,
+ '_LT_AC_TAGCONFIG' => 1,
'AC_ENABLE_STATIC' => 1,
- 'AC_DEFUN_ONCE' => 1,
- 'AC_PROG_LD_GNU' => 1,
- 'AC_PATH_TOOL_PREFIX' => 1,
- 'LT_INIT' => 1,
'_LT_AC_TRY_DLOPEN_SELF' => 1,
- 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
- 'LTOBSOLETE_VERSION' => 1,
- 'LT_SUPPORTED_TAG' => 1,
- 'PKG_PROG_PKG_CONFIG' => 1,
- '_LT_LINKER_OPTION' => 1,
- 'AM_PROG_LIBTOOL' => 1,
- 'PKG_CHECK_EXISTS' => 1,
- '_LT_LINKER_BOILERPLATE' => 1,
+ 'AC_LIBTOOL_SETUP' => 1,
+ '_PKG_SHORT_ERRORS_SUPPORTED' => 1,
+ 'LT_AC_PROG_GCJ' => 1,
+ 'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
+ 'AC_LIBTOOL_CXX' => 1,
'AM_PROG_INSTALL_SH' => 1,
- 'LT_LANG' => 1,
- 'AM_MAKE_INCLUDE' => 1,
+ 'PKG_CHECK_MODULES' => 1,
+ 'AM_PROG_LD' => 1,
+ '_LT_AC_LANG_CXX_CONFIG' => 1,
+ '_LT_AC_SYS_LIBPATH_AIX' => 1,
+ 'AM_SANITY_CHECK' => 1,
+ 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
+ '_LT_AC_LANG_GCJ_CONFIG' => 1,
+ 'AM_DISABLE_SHARED' => 1,
+ 'AC_CONFIG_MACRO_DIR_TRACE' => 1,
+ 'AM_RUN_LOG' => 1,
+ 'AM_PROG_CC_C_O' => 1,
+ 'LT_PROG_GO' => 1,
+ 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
+ 'PKG_CHECK_EXISTS' => 1,
+ '_LT_AC_LANG_RC_CONFIG' => 1,
'_LT_PROG_FC' => 1,
- '_LT_COMPILER_OPTION' => 1,
- 'AC_PROG_LD_RELOAD_FLAG' => 1,
- 'AC_DISABLE_FAST_INSTALL' => 1,
- '_LT_AC_LANG_GCJ' => 1,
- '_LT_AC_PROG_ECHO_BACKSLASH' => 1,
- '_AM_SUBST_NOTMAKE' => 1,
+ '_AM_AUTOCONF_VERSION' => 1,
+ '_AM_SET_OPTIONS' => 1,
+ 'LT_LANG' => 1,
+ '_LT_AC_LANG_F77_CONFIG' => 1,
+ 'AC_CHECK_LIBM' => 1,
+ 'AM_ENABLE_SHARED' => 1,
+ 'AC_LIBTOOL_CONFIG' => 1,
+ '_AM_DEPENDENCIES' => 1,
+ 'LT_OUTPUT' => 1,
+ 'AC_DEFUN_ONCE' => 1,
+ 'AC_PROG_NM' => 1,
+ 'AC_LIBTOOL_LANG_C_CONFIG' => 1,
+ 'LT_PROG_RC' => 1,
+ '_LT_AC_TAGVAR' => 1,
+ 'LT_PROG_GCJ' => 1,
+ '_LT_PROG_CXX' => 1,
'_AM_MANGLE_OPTION' => 1,
- 'LTVERSION_VERSION' => 1,
- 'LT_CMD_MAX_LEN' => 1,
- '_LT_AC_SHELL_INIT' => 1,
- '_LT_AC_TAGCONFIG' => 1,
- 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
- '_LT_COMPILER_BOILERPLATE' => 1,
- 'AC_DEPLIBS_CHECK_METHOD' => 1,
- 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
- 'AC_PROG_LIBTOOL' => 1,
- 'AC_DISABLE_STATIC' => 1,
- 'AC_CONFIG_MACRO_DIR_TRACE' => 1,
- 'AM_DISABLE_SHARED' => 1,
- 'AU_DEFUN' => 1,
- 'AC_LIBTOOL_CXX' => 1,
- 'PKG_CHECK_VAR' => 1,
- '_AM_SET_OPTION' => 1,
- 'LTSUGAR_VERSION' => 1,
- '_PKG_SHORT_ERRORS_SUPPORTED' => 1,
- '_LT_PREPARE_SED_QUOTE_VARS' => 1,
- 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
- 'LT_AC_PROG_SED' => 1,
- '_LT_AC_PROG_CXXCPP' => 1,
- 'AM_SET_LEADING_DOT' => 1,
- 'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
+ '_AM_SUBST_NOTMAKE' => 1,
+ '_m4_warn' => 1,
+ '_LT_AC_LANG_C_CONFIG' => 1,
+ 'LTOBSOLETE_VERSION' => 1,
+ 'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
'AC_LIBTOOL_LINKER_OPTION' => 1,
- 'include' => 1,
- 'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
- 'AM_MISSING_HAS_RUN' => 1,
+ 'AC_PROG_LD_RELOAD_FLAG' => 1,
+ 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
+ '_LT_WITH_SYSROOT' => 1,
+ 'AC_LIBTOOL_WIN32_DLL' => 1,
+ 'AC_LIBTOOL_DLOPEN_SELF' => 1,
'm4_pattern_forbid' => 1,
+ 'LT_PATH_NM' => 1,
+ 'AC_LIBTOOL_GCJ' => 1,
+ '_AM_SET_OPTION' => 1,
'LT_AC_PROG_RC' => 1,
+ 'AC_DEFUN' => 1,
+ '_LT_AC_LANG_F77' => 1,
'_AC_AM_CONFIG_HEADER_HOOK' => 1,
- 'LT_PROG_RC' => 1,
- 'LT_PROG_GCJ' => 1,
- '_LT_AC_FILE_LTDLL_C' => 1,
- 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
- 'AC_PROG_NM' => 1,
- 'AM_INIT_AUTOMAKE' => 1,
- 'AC_LIBTOOL_SETUP' => 1,
- '_LT_AC_LANG_RC_CONFIG' => 1,
- 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
- 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
- '_LT_AC_CHECK_DLFCN' => 1,
- 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
- 'AC_LIBTOOL_PROG_CC_C_O' => 1,
- 'AM_SILENT_RULES' => 1,
- 'AC_PROG_LD' => 1,
- '_LT_AC_LOCK' => 1,
- 'LT_SYS_DLOPEN_SELF' => 1,
- '_LT_AC_TAGVAR' => 1,
- 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
- '_AM_PROG_TAR' => 1,
- 'LT_PATH_LD' => 1,
- '_AM_PROG_CC_C_O' => 1,
- 'AM_CONDITIONAL' => 1,
- 'AC_LTDL_PREOPEN' => 1,
- 'LT_PROG_GO' => 1,
- 'AC_LIBTOOL_FC' => 1,
- 'm4_pattern_allow' => 1,
- 'AM_ENABLE_SHARED' => 1,
- 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
- 'PKG_CHECK_MODULES_STATIC' => 1,
- '_LT_AC_LANG_F77_CONFIG' => 1,
- '_LT_AC_SYS_COMPILER' => 1,
- '_LT_PROG_LTMAIN' => 1
+ 'LT_INIT' => 1,
+ '_LT_PROG_ECHO_BACKSLASH' => 1,
+ 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
+ 'AM_MISSING_HAS_RUN' => 1,
+ 'LTOPTIONS_VERSION' => 1,
+ 'PKG_INSTALLDIR' => 1,
+ '_LT_AC_LOCK' => 1
}
], 'Autom4te::Request' ),
bless( [
'1',
1,
[
'/usr/share/autoconf'
],
[
'/usr/share/autoconf/autoconf/autoconf.m4f',
'aclocal.m4',
'configure.ac'
],
{
+ 'AC_CONFIG_SUBDIRS' => 1,
'AM_SILENT_RULES' => 1,
- '_AM_MAKEFILE_INCLUDE' => 1,
- 'AC_LIBSOURCE' => 1,
- 'AC_PROG_LIBTOOL' => 1,
- '_AM_COND_ELSE' => 1,
+ 'AM_INIT_AUTOMAKE' => 1,
+ 'AM_PROG_CXX_C_O' => 1,
+ '_AM_COND_IF' => 1,
+ 'LT_INIT' => 1,
+ 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
+ 'AC_SUBST_TRACE' => 1,
+ 'AC_CONFIG_AUX_DIR' => 1,
+ 'AC_FC_FREEFORM' => 1,
+ 'AC_CONFIG_LINKS' => 1,
+ 'm4_include' => 1,
'AC_CONFIG_LIBOBJ_DIR' => 1,
- 'AC_CANONICAL_BUILD' => 1,
+ 'AM_PROG_MKDIR_P' => 1,
+ 'm4_pattern_forbid' => 1,
+ 'LT_CONFIG_LTDL_DIR' => 1,
'AC_FC_SRCEXT' => 1,
- 'AC_REQUIRE_AUX_FILE' => 1,
- 'AC_SUBST' => 1,
- 'm4_sinclude' => 1,
+ 'AC_CANONICAL_SYSTEM' => 1,
+ 'AM_ENABLE_MULTILIB' => 1,
'AM_MAINTAINER_MODE' => 1,
- 'AC_CANONICAL_HOST' => 1,
- 'AM_PROG_FC_C_O' => 1,
- 'AC_FC_PP_SRCEXT' => 1,
- 'AC_SUBST_TRACE' => 1,
- 'LT_INIT' => 1,
+ 'AM_GNU_GETTEXT' => 1,
'LT_SUPPORTED_TAG' => 1,
- 'AC_CONFIG_FILES' => 1,
- 'AC_INIT' => 1,
+ 'AM_PROG_FC_C_O' => 1,
+ 'AC_SUBST' => 1,
+ 'AM_PROG_F77_C_O' => 1,
+ '_AM_MAKEFILE_INCLUDE' => 1,
+ 'AM_PATH_GUILE' => 1,
'AM_PROG_MOC' => 1,
- 'AM_CONDITIONAL' => 1,
- 'AC_CONFIG_HEADERS' => 1,
- 'AC_FC_PP_DEFINE' => 1,
- 'AM_PROG_MKDIR_P' => 1,
- 'AM_NLS' => 1,
- 'AM_AUTOMAKE_VERSION' => 1,
- 'm4_pattern_allow' => 1,
+ 'AC_CANONICAL_BUILD' => 1,
+ '_LT_AC_TAGCONFIG' => 1,
+ 'AC_CANONICAL_TARGET' => 1,
+ '_AM_COND_ELSE' => 1,
+ 'AM_POT_TOOLS' => 1,
'AM_PROG_LIBTOOL' => 1,
- 'AM_PATH_GUILE' => 1,
- 'AC_CONFIG_LINKS' => 1,
- 'AC_CANONICAL_SYSTEM' => 1,
- 'include' => 1,
+ 'm4_sinclude' => 1,
+ 'AM_PROG_AR' => 1,
'_m4_warn' => 1,
- 'AC_CONFIG_SUBDIRS' => 1,
+ 'AM_CONDITIONAL' => 1,
+ 'AM_AUTOMAKE_VERSION' => 1,
+ '_AM_SUBST_NOTMAKE' => 1,
'AC_DEFINE_TRACE_LITERAL' => 1,
- '_AM_COND_IF' => 1,
- 'AM_XGETTEXT_OPTION' => 1,
- 'AM_PROG_F77_C_O' => 1,
- 'AM_PROG_CC_C_O' => 1,
+ 'AH_OUTPUT' => 1,
+ 'AC_FC_PP_SRCEXT' => 1,
'AM_MAKEFILE_INCLUDE' => 1,
- 'm4_pattern_forbid' => 1,
+ 'AC_FC_PP_DEFINE' => 1,
+ 'AC_CONFIG_FILES' => 1,
'_AM_COND_ENDIF' => 1,
- 'AM_EXTRA_RECURSIVE_TARGETS' => 1,
- 'AH_OUTPUT' => 1,
- 'AM_PROG_CXX_C_O' => 1,
- 'AC_CONFIG_AUX_DIR' => 1,
- '_AM_SUBST_NOTMAKE' => 1,
- 'AM_ENABLE_MULTILIB' => 1,
- 'AM_GNU_GETTEXT' => 1,
+ 'AM_XGETTEXT_OPTION' => 1,
+ 'AC_LIBSOURCE' => 1,
+ 'AC_CONFIG_HEADERS' => 1,
+ 'AC_PROG_LIBTOOL' => 1,
+ 'AM_NLS' => 1,
+ 'AC_CANONICAL_HOST' => 1,
'sinclude' => 1,
- 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
- 'm4_include' => 1,
- '_LT_AC_TAGCONFIG' => 1,
- 'AM_POT_TOOLS' => 1,
- 'AC_CANONICAL_TARGET' => 1,
- 'AM_INIT_AUTOMAKE' => 1,
- 'LT_CONFIG_LTDL_DIR' => 1,
- 'AM_PROG_AR' => 1,
- 'AC_FC_FREEFORM' => 1
+ 'include' => 1,
+ 'AC_INIT' => 1,
+ 'AM_PROG_CC_C_O' => 1,
+ 'AM_EXTRA_RECURSIVE_TARGETS' => 1,
+ 'm4_pattern_allow' => 1,
+ 'AC_REQUIRE_AUX_FILE' => 1
}
], 'Autom4te::Request' ),
bless( [
'2',
1,
[
'/usr/share/autoconf'
],
[
'/usr/share/autoconf/autoconf/autoconf.m4f',
'-',
'/usr/share/aclocal-1.15/internal/ac-config-macro-dirs.m4',
'/usr/share/aclocal/ltargz.m4',
'/usr/share/aclocal/ltdl.m4',
'/usr/share/aclocal/pkg.m4',
'/usr/share/aclocal-1.15/amversion.m4',
'/usr/share/aclocal-1.15/auxdir.m4',
'/usr/share/aclocal-1.15/cond.m4',
'/usr/share/aclocal-1.15/depend.m4',
'/usr/share/aclocal-1.15/depout.m4',
'/usr/share/aclocal-1.15/init.m4',
'/usr/share/aclocal-1.15/install-sh.m4',
'/usr/share/aclocal-1.15/lead-dot.m4',
'/usr/share/aclocal-1.15/make.m4',
'/usr/share/aclocal-1.15/missing.m4',
'/usr/share/aclocal-1.15/options.m4',
'/usr/share/aclocal-1.15/prog-cc-c-o.m4',
'/usr/share/aclocal-1.15/runlog.m4',
'/usr/share/aclocal-1.15/sanity.m4',
'/usr/share/aclocal-1.15/silent.m4',
'/usr/share/aclocal-1.15/strip.m4',
'/usr/share/aclocal-1.15/substnot.m4',
'/usr/share/aclocal-1.15/tar.m4',
'm4/libtool.m4',
'm4/ltoptions.m4',
'm4/ltsugar.m4',
'm4/ltversion.m4',
'm4/lt~obsolete.m4',
'configure.ac'
],
{
- 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
- 'LT_SYS_MODULE_PATH' => 1,
- 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
- '_LT_AC_LANG_RC_CONFIG' => 1,
- 'AC_LIBTOOL_SETUP' => 1,
- 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1,
- '_LT_AC_CHECK_DLFCN' => 1,
- 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
- 'AC_PROG_NM' => 1,
- 'AM_INIT_AUTOMAKE' => 1,
- '_LT_AC_FILE_LTDLL_C' => 1,
- 'LT_FUNC_ARGZ' => 1,
- 'LT_PROG_GCJ' => 1,
- 'LT_PROG_RC' => 1,
- 'm4_pattern_forbid' => 1,
- 'LT_AC_PROG_RC' => 1,
- '_AC_AM_CONFIG_HEADER_HOOK' => 1,
- 'AM_MISSING_HAS_RUN' => 1,
- 'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
- 'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
- 'include' => 1,
- 'AC_LIBTOOL_LINKER_OPTION' => 1,
- 'PKG_CHECK_MODULES_STATIC' => 1,
- '_LT_AC_SYS_COMPILER' => 1,
+ 'AC_LIB_LTDL' => 1,
+ '_LT_CC_BASENAME' => 1,
'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
- '_LT_AC_LANG_F77_CONFIG' => 1,
- '_LT_PROG_LTMAIN' => 1,
- 'AC_LIBTOOL_FC' => 1,
- 'AM_ENABLE_SHARED' => 1,
- 'm4_pattern_allow' => 1,
- 'AC_LTDL_PREOPEN' => 1,
- 'LT_PROG_GO' => 1,
- 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
+ '_LT_AC_PROG_ECHO_BACKSLASH' => 1,
+ 'AC_LTDL_SYSSEARCHPATH' => 1,
+ 'AC_PATH_TOOL_PREFIX' => 1,
+ 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
+ '_LT_PATH_TOOL_PREFIX' => 1,
+ 'PKG_PROG_PKG_CONFIG' => 1,
+ 'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
'AM_CONDITIONAL' => 1,
- '_AM_PROG_CC_C_O' => 1,
- 'LT_PATH_LD' => 1,
- '_AM_PROG_TAR' => 1,
- 'AC_LTDL_SYMBOL_USCORE' => 1,
- '_LT_AC_LOCK' => 1,
- 'LT_SYS_DLOPEN_SELF' => 1,
- '_LT_AC_TAGVAR' => 1,
- 'LT_SYS_MODULE_EXT' => 1,
+ 'LT_SYS_SYMBOL_USCORE' => 1,
+ 'AM_AUTOMAKE_VERSION' => 1,
+ 'AC_LIBTOOL_COMPILER_OPTION' => 1,
+ 'LTSUGAR_VERSION' => 1,
+ 'AM_MAKE_INCLUDE' => 1,
+ 'AC_LIBLTDL_CONVENIENCE' => 1,
+ 'AC_PROG_EGREP' => 1,
+ 'AC_LTDL_DLLIB' => 1,
'AC_PROG_LD' => 1,
- 'AC_LIBTOOL_PROG_CC_C_O' => 1,
+ 'm4_pattern_allow' => 1,
+ '_LT_AC_LANG_GCJ' => 1,
+ 'AC_ENABLE_SHARED' => 1,
+ '_AC_PROG_LIBTOOL' => 1,
+ '_LT_AC_SYS_COMPILER' => 1,
+ 'LT_LIB_M' => 1,
+ 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
+ '_LT_LINKER_OPTION' => 1,
+ 'AM_MISSING_PROG' => 1,
+ 'AC_DEPLIBS_CHECK_METHOD' => 1,
+ 'AC_PROG_LD_GNU' => 1,
+ 'AC_LIBTOOL_PICMODE' => 1,
+ 'AM_SET_LEADING_DOT' => 1,
+ 'LT_SYS_MODULE_EXT' => 1,
+ 'LT_SYS_DLOPEN_DEPLIBS' => 1,
+ 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
+ 'AC_DISABLE_STATIC' => 1,
'AM_SILENT_RULES' => 1,
- 'LTDL_INSTALLABLE' => 1,
- 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
- '_LT_AC_TAGCONFIG' => 1,
- '_LT_LIBOBJ' => 1,
- 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
- '_LT_COMPILER_BOILERPLATE' => 1,
- 'LT_SYS_DLSEARCH_PATH' => 1,
- 'LT_CMD_MAX_LEN' => 1,
+ '_AM_CONFIG_MACRO_DIRS' => 1,
+ 'LT_FUNC_DLSYM_USCORE' => 1,
+ 'LT_SUPPORTED_TAG' => 1,
+ '_LT_AC_FILE_LTDLL_C' => 1,
+ 'LTDL_CONVENIENCE' => 1,
+ 'LT_AC_PROG_SED' => 1,
+ '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+ 'AM_AUX_DIR_EXPAND' => 1,
+ '_LT_LINKER_BOILERPLATE' => 1,
+ 'AC_LTDL_OBJDIR' => 1,
'LT_CONFIG_LTDL_DIR' => 1,
- '_LT_AC_SHELL_INIT' => 1,
- '_AM_MANGLE_OPTION' => 1,
- '_LT_AC_PROG_ECHO_BACKSLASH' => 1,
- '_AM_SUBST_NOTMAKE' => 1,
- '_LT_AC_LANG_GCJ' => 1,
- 'AC_LIBLTDL_CONVENIENCE' => 1,
+ 'AC_LTDL_PREOPEN' => 1,
+ '_LTDL_SETUP' => 1,
+ 'AC_LIBTOOL_OBJDIR' => 1,
+ 'LT_SYS_DLSEARCH_PATH' => 1,
+ 'AC_LTDL_ENABLE_INSTALL' => 1,
+ '_LT_AC_CHECK_DLFCN' => 1,
+ '_LT_PROG_F77' => 1,
+ 'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
+ '_LT_AC_PROG_CXXCPP' => 1,
+ 'AM_PROG_LIBTOOL' => 1,
+ 'AM_SET_DEPDIR' => 1,
+ 'AC_LIBTOOL_RC' => 1,
+ 'AC_LTDL_DLSYM_USCORE' => 1,
+ 'AM_PROG_NM' => 1,
'LTVERSION_VERSION' => 1,
- 'AC_LTDL_SYSSEARCHPATH' => 1,
+ 'AC_DISABLE_SHARED' => 1,
+ 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+ 'AM_ENABLE_STATIC' => 1,
'AC_DISABLE_FAST_INSTALL' => 1,
+ 'PKG_CHECK_VAR' => 1,
'_LT_COMPILER_OPTION' => 1,
- 'AC_PROG_LD_RELOAD_FLAG' => 1,
- '_LT_PROG_FC' => 1,
- 'AM_MAKE_INCLUDE' => 1,
- 'LT_LANG' => 1,
- 'AM_PROG_INSTALL_SH' => 1,
- 'AC_WITH_LTDL' => 1,
- '_LT_LINKER_BOILERPLATE' => 1,
- 'AC_LTDL_SHLIBPATH' => 1,
- 'PKG_CHECK_EXISTS' => 1,
- '_LTDL_SETUP' => 1,
- 'AM_SET_LEADING_DOT' => 1,
- 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
+ 'AC_PROG_LIBTOOL' => 1,
+ 'AM_INIT_AUTOMAKE' => 1,
'LTDL_INIT' => 1,
- '_LT_AC_PROG_CXXCPP' => 1,
- 'LT_AC_PROG_SED' => 1,
- '_AM_SET_OPTION' => 1,
+ 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
+ 'AC_LIBTOOL_F77' => 1,
'_LT_PREPARE_SED_QUOTE_VARS' => 1,
- '_PKG_SHORT_ERRORS_SUPPORTED' => 1,
- 'LTSUGAR_VERSION' => 1,
- 'AC_LIB_LTDL' => 1,
- 'AC_LIBTOOL_CXX' => 1,
- 'AU_DEFUN' => 1,
- 'AM_DISABLE_SHARED' => 1,
- 'AC_CONFIG_MACRO_DIR_TRACE' => 1,
- 'PKG_CHECK_VAR' => 1,
- 'LT_SYS_SYMBOL_USCORE' => 1,
- 'LT_FUNC_DLSYM_USCORE' => 1,
- 'AC_PROG_LIBTOOL' => 1,
- 'AC_DISABLE_STATIC' => 1,
- 'AC_DEPLIBS_CHECK_METHOD' => 1,
- 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
- 'AM_PROG_INSTALL_STRIP' => 1,
- 'AC_LTDL_ENABLE_INSTALL' => 1,
- '_AM_DEPENDENCIES' => 1,
- 'AC_LIBTOOL_RC' => 1,
+ 'AC_LTDL_SYMBOL_USCORE' => 1,
+ 'AC_ENABLE_FAST_INSTALL' => 1,
+ 'PKG_CHECK_MODULES_STATIC' => 1,
+ '_LT_REQUIRED_DARWIN_CHECKS' => 1,
+ '_LT_COMPILER_BOILERPLATE' => 1,
+ 'AC_LIBTOOL_DLOPEN' => 1,
+ '_AM_IF_OPTION' => 1,
'_LT_AC_LANG_CXX' => 1,
+ 'AC_LIBTOOL_FC' => 1,
+ 'AM_PROG_INSTALL_STRIP' => 1,
+ 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
+ 'PKG_NOARCH_INSTALLDIR' => 1,
+ 'LT_WITH_LTDL' => 1,
+ 'AM_SUBST_NOTMAKE' => 1,
+ 'm4_include' => 1,
+ 'LT_SYS_DLOPEN_SELF' => 1,
+ '_AM_PROG_CC_C_O' => 1,
+ 'LT_CMD_MAX_LEN' => 1,
+ 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
+ 'LT_AC_PROG_EGREP' => 1,
+ 'AC_CONFIG_MACRO_DIR' => 1,
+ 'AC_LIBLTDL_INSTALLABLE' => 1,
+ 'AM_DEP_TRACK' => 1,
+ '_AM_PROG_TAR' => 1,
+ 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1,
+ 'LT_PATH_LD' => 1,
+ '_LT_AC_TAGCONFIG' => 1,
+ 'LTDL_INSTALLABLE' => 1,
'AC_PATH_MAGIC' => 1,
+ 'AM_DISABLE_STATIC' => 1,
+ '_LT_DLL_DEF_P' => 1,
+ 'include' => 1,
'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1,
+ 'AC_LIBTOOL_PROG_CC_C_O' => 1,
+ '_LT_PROG_LTMAIN' => 1,
+ '_LT_AC_SHELL_INIT' => 1,
+ 'AU_DEFUN' => 1,
+ '_LT_AC_SYS_LIBPATH_AIX' => 1,
+ 'AM_SANITY_CHECK' => 1,
+ '_LT_AC_LANG_CXX_CONFIG' => 1,
+ 'AM_PROG_LD' => 1,
'PKG_CHECK_MODULES' => 1,
- 'AM_ENABLE_STATIC' => 1,
+ 'AM_PROG_INSTALL_SH' => 1,
+ 'AC_LIBTOOL_CXX' => 1,
+ 'LT_LIB_DLLOAD' => 1,
+ 'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
+ 'AM_RUN_LOG' => 1,
+ 'AM_DISABLE_SHARED' => 1,
+ 'AC_CONFIG_MACRO_DIR_TRACE' => 1,
+ 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
'_LT_AC_LANG_GCJ_CONFIG' => 1,
+ 'LT_SYS_MODULE_PATH' => 1,
+ 'AC_ENABLE_STATIC' => 1,
+ 'LT_AC_PROG_GCJ' => 1,
+ '_PKG_SHORT_ERRORS_SUPPORTED' => 1,
+ 'AC_LIBTOOL_SETUP' => 1,
+ '_LT_AC_TRY_DLOPEN_SELF' => 1,
+ '_LT_PROG_CXX' => 1,
+ 'LT_PROG_GCJ' => 1,
+ 'LT_PROG_RC' => 1,
+ '_LT_AC_TAGVAR' => 1,
+ 'AC_LIBTOOL_LANG_C_CONFIG' => 1,
+ 'AC_PROG_NM' => 1,
+ 'AC_DEFUN_ONCE' => 1,
+ 'LT_OUTPUT' => 1,
'AC_LIBTOOL_CONFIG' => 1,
- '_AC_PROG_LIBTOOL' => 1,
+ '_AM_DEPENDENCIES' => 1,
+ 'AC_LIBTOOL_LINKER_OPTION' => 1,
+ 'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
'_LT_AC_LANG_C_CONFIG' => 1,
- 'AM_PROG_NM' => 1,
- 'AM_PROG_LIBTOOL' => 1,
- 'PKG_PROG_PKG_CONFIG' => 1,
- '_LT_LINKER_OPTION' => 1,
- 'LT_SUPPORTED_TAG' => 1,
'LTOBSOLETE_VERSION' => 1,
- 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
- '_LT_AC_TRY_DLOPEN_SELF' => 1,
- 'LT_INIT' => 1,
- 'AC_PATH_TOOL_PREFIX' => 1,
- 'AC_DEFUN_ONCE' => 1,
- 'AC_PROG_LD_GNU' => 1,
- 'LTDL_CONVENIENCE' => 1,
- 'AM_PROG_LD' => 1,
- 'AC_LTDL_OBJDIR' => 1,
- 'AC_ENABLE_STATIC' => 1,
- 'LT_SYS_DLOPEN_DEPLIBS' => 1,
- '_LT_PROG_F77' => 1,
- 'AC_LTDL_SHLIBEXT' => 1,
- 'AC_PROG_EGREP' => 1,
- 'AC_LTDL_DLLIB' => 1,
- 'm4_include' => 1,
- 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
- 'AC_LIBTOOL_PICMODE' => 1,
- 'AC_LIBTOOL_DLOPEN' => 1,
- '_LT_DLL_DEF_P' => 1,
- '_LT_AC_LANG_CXX_CONFIG' => 1,
- 'AC_ENABLE_SHARED' => 1,
- '_LT_CC_BASENAME' => 1,
- 'PKG_NOARCH_INSTALLDIR' => 1,
- '_LT_PATH_TOOL_PREFIX' => 1,
- 'AM_SANITY_CHECK' => 1,
- 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
- 'AC_LIBTOOL_WIN32_DLL' => 1,
- 'AC_ENABLE_FAST_INSTALL' => 1,
- 'LT_LIB_M' => 1,
- 'AC_LIBTOOL_DLOPEN_SELF' => 1,
- 'AC_LIBTOOL_COMPILER_OPTION' => 1,
- 'LT_PATH_NM' => 1,
- 'AM_SUBST_NOTMAKE' => 1,
- 'LT_LIB_DLLOAD' => 1,
- 'AM_MISSING_PROG' => 1,
- '_LT_AC_LANG_F77' => 1,
- 'AM_PROG_CC_C_O' => 1,
- 'LTOPTIONS_VERSION' => 1,
+ 'AC_LTDL_SHLIBPATH' => 1,
+ '_LT_LIBOBJ' => 1,
'_m4_warn' => 1,
- 'LT_WITH_LTDL' => 1,
- 'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
- 'AC_LIBTOOL_LANG_C_CONFIG' => 1,
- 'AC_LIBTOOL_GCJ' => 1,
- 'AM_AUTOMAKE_VERSION' => 1,
- '_LT_REQUIRED_DARWIN_CHECKS' => 1,
- 'PKG_INSTALLDIR' => 1,
- '_LT_PROG_ECHO_BACKSLASH' => 1,
- 'AM_AUX_DIR_EXPAND' => 1,
+ '_AM_SUBST_NOTMAKE' => 1,
+ '_AM_MANGLE_OPTION' => 1,
'_AM_AUTOCONF_VERSION' => 1,
- 'AM_SET_DEPDIR' => 1,
- 'AC_LTDL_DLSYM_USCORE' => 1,
- '_LT_AC_SYS_LIBPATH_AIX' => 1,
- '_AM_IF_OPTION' => 1,
- '_LT_PROG_CXX' => 1,
- 'AC_DISABLE_SHARED' => 1,
- 'AC_LIBLTDL_INSTALLABLE' => 1,
- 'AM_RUN_LOG' => 1,
- 'AC_CHECK_LIBM' => 1,
- 'LT_AC_PROG_EGREP' => 1,
- '_AM_CONFIG_MACRO_DIRS' => 1,
- '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
'_AM_SET_OPTIONS' => 1,
- 'AC_CONFIG_MACRO_DIR' => 1,
- 'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
+ '_LT_PROG_FC' => 1,
+ '_LT_AC_LANG_RC_CONFIG' => 1,
+ 'PKG_CHECK_EXISTS' => 1,
+ 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
+ 'LT_PROG_GO' => 1,
+ 'AM_PROG_CC_C_O' => 1,
+ 'AC_WITH_LTDL' => 1,
+ 'AM_ENABLE_SHARED' => 1,
+ 'AC_CHECK_LIBM' => 1,
+ '_LT_AC_LANG_F77_CONFIG' => 1,
+ 'LT_LANG' => 1,
+ 'AC_LTDL_SHLIBEXT' => 1,
+ 'LT_INIT' => 1,
+ '_AC_AM_CONFIG_HEADER_HOOK' => 1,
+ '_LT_AC_LANG_F77' => 1,
'AC_DEFUN' => 1,
- 'LT_AC_PROG_GCJ' => 1,
- 'LT_OUTPUT' => 1,
- 'AC_LIBTOOL_OBJDIR' => 1,
- 'AC_LIBTOOL_F77' => 1,
- 'AM_DEP_TRACK' => 1,
+ 'LT_AC_PROG_RC' => 1,
+ '_LT_AC_LOCK' => 1,
+ 'PKG_INSTALLDIR' => 1,
+ 'LTOPTIONS_VERSION' => 1,
+ 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
+ 'AM_MISSING_HAS_RUN' => 1,
+ '_LT_PROG_ECHO_BACKSLASH' => 1,
'_LT_WITH_SYSROOT' => 1,
- 'AM_DISABLE_STATIC' => 1
+ 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
+ 'AC_PROG_LD_RELOAD_FLAG' => 1,
+ '_AM_SET_OPTION' => 1,
+ 'AC_LIBTOOL_GCJ' => 1,
+ 'LT_PATH_NM' => 1,
+ 'm4_pattern_forbid' => 1,
+ 'AC_LIBTOOL_DLOPEN_SELF' => 1,
+ 'AC_LIBTOOL_WIN32_DLL' => 1,
+ 'LT_FUNC_ARGZ' => 1
}
], 'Autom4te::Request' ),
bless( [
'3',
1,
[
'/usr/share/autoconf'
],
[
'/usr/share/autoconf/autoconf/autoconf.m4f',
'-',
'/usr/share/aclocal-1.15/internal/ac-config-macro-dirs.m4',
'/usr/share/aclocal/ltargz.m4',
'/usr/share/aclocal/ltdl.m4',
'/usr/share/aclocal/pkg.m4',
'/usr/share/aclocal-1.15/amversion.m4',
'/usr/share/aclocal-1.15/auxdir.m4',
'/usr/share/aclocal-1.15/cond.m4',
'/usr/share/aclocal-1.15/depend.m4',
'/usr/share/aclocal-1.15/depout.m4',
'/usr/share/aclocal-1.15/extra-recurs.m4',
'/usr/share/aclocal-1.15/init.m4',
'/usr/share/aclocal-1.15/install-sh.m4',
'/usr/share/aclocal-1.15/lead-dot.m4',
'/usr/share/aclocal-1.15/make.m4',
'/usr/share/aclocal-1.15/missing.m4',
'/usr/share/aclocal-1.15/options.m4',
'/usr/share/aclocal-1.15/prog-cc-c-o.m4',
'/usr/share/aclocal-1.15/runlog.m4',
'/usr/share/aclocal-1.15/sanity.m4',
'/usr/share/aclocal-1.15/silent.m4',
'/usr/share/aclocal-1.15/strip.m4',
'/usr/share/aclocal-1.15/substnot.m4',
'/usr/share/aclocal-1.15/tar.m4',
'm4/libtool.m4',
'm4/ltoptions.m4',
'm4/ltsugar.m4',
'm4/ltversion.m4',
'm4/lt~obsolete.m4',
'configure.ac'
],
{
- 'AM_PROG_LIBTOOL' => 1,
- '_LT_AC_TRY_DLOPEN_SELF' => 1,
- 'LT_INIT' => 1,
- 'AC_PATH_TOOL_PREFIX' => 1,
- 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
- 'LT_SUPPORTED_TAG' => 1,
- 'LTOBSOLETE_VERSION' => 1,
- '_LT_LINKER_OPTION' => 1,
- 'PKG_PROG_PKG_CONFIG' => 1,
- '_LT_PROG_F77' => 1,
- 'LT_SYS_DLOPEN_DEPLIBS' => 1,
'AC_ENABLE_STATIC' => 1,
- 'AM_PROG_LD' => 1,
- 'AC_LTDL_OBJDIR' => 1,
- 'LTDL_CONVENIENCE' => 1,
- 'AC_PROG_LD_GNU' => 1,
- 'AC_DEFUN_ONCE' => 1,
- 'AC_PROG_EGREP' => 1,
- 'AC_LTDL_SHLIBEXT' => 1,
- 'AM_ENABLE_STATIC' => 1,
+ 'LT_SYS_MODULE_PATH' => 1,
+ 'AC_LIBTOOL_SETUP' => 1,
+ '_LT_AC_TRY_DLOPEN_SELF' => 1,
+ 'LT_AC_PROG_GCJ' => 1,
+ '_PKG_SHORT_ERRORS_SUPPORTED' => 1,
'PKG_CHECK_MODULES' => 1,
- 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1,
- 'AC_PATH_MAGIC' => 1,
- '_LT_AC_LANG_CXX' => 1,
- '_AM_DEPENDENCIES' => 1,
- 'AM_PROG_INSTALL_STRIP' => 1,
- 'AC_LIBTOOL_RC' => 1,
- 'AC_LTDL_ENABLE_INSTALL' => 1,
- 'AC_LIBTOOL_CONFIG' => 1,
+ 'AM_PROG_LD' => 1,
+ 'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
+ 'LT_LIB_DLLOAD' => 1,
+ 'AC_LIBTOOL_CXX' => 1,
+ 'AM_PROG_INSTALL_SH' => 1,
+ 'AM_SANITY_CHECK' => 1,
+ '_LT_AC_SYS_LIBPATH_AIX' => 1,
+ '_LT_AC_LANG_CXX_CONFIG' => 1,
+ 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
'_LT_AC_LANG_GCJ_CONFIG' => 1,
- '_LT_AC_LANG_C_CONFIG' => 1,
- '_AC_PROG_LIBTOOL' => 1,
- 'AM_PROG_NM' => 1,
- 'AM_SET_DEPDIR' => 1,
- 'AM_AUX_DIR_EXPAND' => 1,
- '_AM_AUTOCONF_VERSION' => 1,
- 'PKG_INSTALLDIR' => 1,
- '_LT_PROG_ECHO_BACKSLASH' => 1,
- 'AM_AUTOMAKE_VERSION' => 1,
- '_LT_REQUIRED_DARWIN_CHECKS' => 1,
'AM_RUN_LOG' => 1,
+ 'AC_CONFIG_MACRO_DIR_TRACE' => 1,
+ 'AM_DISABLE_SHARED' => 1,
+ '_LT_PROG_LTMAIN' => 1,
+ 'AC_LIBTOOL_PROG_CC_C_O' => 1,
+ '_LT_DLL_DEF_P' => 1,
+ 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1,
+ 'include' => 1,
+ 'AU_DEFUN' => 1,
+ '_LT_AC_SHELL_INIT' => 1,
+ '_AM_PROG_TAR' => 1,
+ 'LT_PATH_LD' => 1,
+ 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1,
'AC_LIBLTDL_INSTALLABLE' => 1,
- 'AC_DISABLE_SHARED' => 1,
- '_LT_PROG_CXX' => 1,
- '_AM_IF_OPTION' => 1,
- '_LT_AC_SYS_LIBPATH_AIX' => 1,
- 'AC_LTDL_DLSYM_USCORE' => 1,
- '_AM_CONFIG_MACRO_DIRS' => 1,
- 'LT_AC_PROG_EGREP' => 1,
- 'AC_CHECK_LIBM' => 1,
+ 'AC_CONFIG_MACRO_DIR' => 1,
'AM_DEP_TRACK' => 1,
'AM_DISABLE_STATIC' => 1,
- '_LT_WITH_SYSROOT' => 1,
- 'LT_AC_PROG_GCJ' => 1,
- 'AC_LIBTOOL_OBJDIR' => 1,
- 'LT_OUTPUT' => 1,
- 'AC_LIBTOOL_F77' => 1,
- 'AC_DEFUN' => 1,
- 'AC_CONFIG_MACRO_DIR' => 1,
- 'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
- '_AM_SET_OPTIONS' => 1,
- '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
- 'PKG_NOARCH_INSTALLDIR' => 1,
- '_LT_AC_LANG_CXX_CONFIG' => 1,
- '_LT_CC_BASENAME' => 1,
- 'AC_ENABLE_SHARED' => 1,
- '_LT_DLL_DEF_P' => 1,
- 'AC_LIBTOOL_DLOPEN' => 1,
- 'AC_LIBTOOL_PICMODE' => 1,
- 'm4_include' => 1,
+ 'LTDL_INSTALLABLE' => 1,
+ '_LT_AC_TAGCONFIG' => 1,
+ 'AC_PATH_MAGIC' => 1,
'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
- 'AC_LTDL_DLLIB' => 1,
- 'LT_LIB_M' => 1,
+ 'AC_PROG_LD_RELOAD_FLAG' => 1,
+ '_LT_WITH_SYSROOT' => 1,
'AC_LIBTOOL_DLOPEN_SELF' => 1,
- 'AC_ENABLE_FAST_INSTALL' => 1,
+ 'LT_FUNC_ARGZ' => 1,
'AC_LIBTOOL_WIN32_DLL' => 1,
- 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
- 'AM_SANITY_CHECK' => 1,
- '_LT_PATH_TOOL_PREFIX' => 1,
- 'AM_PROG_CC_C_O' => 1,
- '_LT_AC_LANG_F77' => 1,
- 'AM_MISSING_PROG' => 1,
- 'LT_LIB_DLLOAD' => 1,
- 'AM_SUBST_NOTMAKE' => 1,
- 'LT_PATH_NM' => 1,
- 'AC_LIBTOOL_COMPILER_OPTION' => 1,
+ '_AM_SET_OPTION' => 1,
+ 'm4_pattern_forbid' => 1,
'AC_LIBTOOL_GCJ' => 1,
- 'AC_LIBTOOL_LANG_C_CONFIG' => 1,
- 'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
- '_m4_warn' => 1,
- 'LT_WITH_LTDL' => 1,
+ 'LT_PATH_NM' => 1,
+ 'AC_DEFUN' => 1,
+ '_AC_AM_CONFIG_HEADER_HOOK' => 1,
+ '_LT_AC_LANG_F77' => 1,
+ 'LT_AC_PROG_RC' => 1,
+ 'LT_INIT' => 1,
+ '_LT_PROG_ECHO_BACKSLASH' => 1,
+ 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
'LTOPTIONS_VERSION' => 1,
- 'm4_pattern_allow' => 1,
- 'AM_ENABLE_SHARED' => 1,
- 'AC_LIBTOOL_FC' => 1,
- '_LT_PROG_LTMAIN' => 1,
- 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
- '_LT_AC_SYS_COMPILER' => 1,
- 'PKG_CHECK_MODULES_STATIC' => 1,
- '_LT_AC_LANG_F77_CONFIG' => 1,
- '_AM_PROG_TAR' => 1,
- 'LT_PATH_LD' => 1,
- 'AM_CONDITIONAL' => 1,
- '_AM_PROG_CC_C_O' => 1,
- 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
- 'LT_PROG_GO' => 1,
- 'AC_LTDL_PREOPEN' => 1,
- 'AC_PROG_LD' => 1,
- 'LT_SYS_MODULE_EXT' => 1,
- '_LT_AC_TAGVAR' => 1,
- 'LT_SYS_DLOPEN_SELF' => 1,
- 'AC_LTDL_SYMBOL_USCORE' => 1,
+ 'AM_MISSING_HAS_RUN' => 1,
+ 'PKG_INSTALLDIR' => 1,
'_LT_AC_LOCK' => 1,
+ 'AM_EXTRA_RECURSIVE_TARGETS' => 1,
'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
- 'LTDL_INSTALLABLE' => 1,
- 'AM_SILENT_RULES' => 1,
- 'AC_LIBTOOL_PROG_CC_C_O' => 1,
- 'AC_PROG_NM' => 1,
- 'AM_INIT_AUTOMAKE' => 1,
- 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
- 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1,
- '_LT_AC_CHECK_DLFCN' => 1,
- 'AC_LIBTOOL_SETUP' => 1,
- 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
- 'LT_SYS_MODULE_PATH' => 1,
+ 'AM_PROG_CC_C_O' => 1,
+ 'LT_PROG_GO' => 1,
+ 'AC_WITH_LTDL' => 1,
+ '_AM_AUTOCONF_VERSION' => 1,
+ '_AM_SET_OPTIONS' => 1,
+ 'PKG_CHECK_EXISTS' => 1,
'_LT_AC_LANG_RC_CONFIG' => 1,
- 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
- 'LT_FUNC_ARGZ' => 1,
- '_LT_AC_FILE_LTDLL_C' => 1,
- 'LT_AC_PROG_RC' => 1,
- '_AC_AM_CONFIG_HEADER_HOOK' => 1,
- 'm4_pattern_forbid' => 1,
+ '_LT_PROG_FC' => 1,
+ 'LT_LANG' => 1,
+ 'AC_LTDL_SHLIBEXT' => 1,
+ 'AC_CHECK_LIBM' => 1,
+ 'AM_ENABLE_SHARED' => 1,
+ '_LT_AC_LANG_F77_CONFIG' => 1,
+ 'AC_DEFUN_ONCE' => 1,
+ 'LT_OUTPUT' => 1,
+ 'AC_PROG_NM' => 1,
+ '_AM_DEPENDENCIES' => 1,
+ 'AC_LIBTOOL_CONFIG' => 1,
'LT_PROG_GCJ' => 1,
+ '_LT_PROG_CXX' => 1,
+ 'AC_LIBTOOL_LANG_C_CONFIG' => 1,
'LT_PROG_RC' => 1,
+ '_LT_AC_TAGVAR' => 1,
+ '_m4_warn' => 1,
+ 'AC_LTDL_SHLIBPATH' => 1,
+ '_LT_LIBOBJ' => 1,
+ '_LT_AC_LANG_C_CONFIG' => 1,
+ 'LTOBSOLETE_VERSION' => 1,
+ '_AM_MANGLE_OPTION' => 1,
+ '_AM_SUBST_NOTMAKE' => 1,
'AC_LIBTOOL_LINKER_OPTION' => 1,
- 'include' => 1,
- 'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
- 'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
- 'AM_MISSING_HAS_RUN' => 1,
+ 'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
+ 'AM_AUX_DIR_EXPAND' => 1,
+ 'LT_FUNC_DLSYM_USCORE' => 1,
+ 'LT_SUPPORTED_TAG' => 1,
+ '_AM_CONFIG_MACRO_DIRS' => 1,
+ '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+ 'LTDL_CONVENIENCE' => 1,
+ '_LT_AC_FILE_LTDLL_C' => 1,
'LT_AC_PROG_SED' => 1,
- '_LT_AC_PROG_CXXCPP' => 1,
- 'LTDL_INIT' => 1,
- 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
+ 'AC_LTDL_PREOPEN' => 1,
+ 'LT_CONFIG_LTDL_DIR' => 1,
+ 'AC_LTDL_OBJDIR' => 1,
+ '_LT_LINKER_BOILERPLATE' => 1,
+ 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
'AM_SET_LEADING_DOT' => 1,
- '_LTDL_SETUP' => 1,
- 'PKG_CHECK_VAR' => 1,
- 'AU_DEFUN' => 1,
- 'AM_DISABLE_SHARED' => 1,
- 'AC_CONFIG_MACRO_DIR_TRACE' => 1,
- 'AC_LIBTOOL_CXX' => 1,
- 'AC_LIB_LTDL' => 1,
- '_LT_PREPARE_SED_QUOTE_VARS' => 1,
+ 'LT_SYS_MODULE_EXT' => 1,
+ 'LT_SYS_DLOPEN_DEPLIBS' => 1,
+ 'AM_SILENT_RULES' => 1,
+ 'AC_DISABLE_STATIC' => 1,
+ 'AC_LTDL_DLLIB' => 1,
+ 'AC_PROG_LD' => 1,
+ 'AC_PROG_EGREP' => 1,
+ 'm4_pattern_allow' => 1,
+ 'AM_MAKE_INCLUDE' => 1,
'LTSUGAR_VERSION' => 1,
- '_PKG_SHORT_ERRORS_SUPPORTED' => 1,
- '_AM_SET_OPTION' => 1,
- 'LT_FUNC_DLSYM_USCORE' => 1,
- 'LT_SYS_SYMBOL_USCORE' => 1,
- 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+ 'AC_LIBLTDL_CONVENIENCE' => 1,
'AC_DEPLIBS_CHECK_METHOD' => 1,
- 'AC_DISABLE_STATIC' => 1,
- 'AC_PROG_LIBTOOL' => 1,
- 'LT_CONFIG_LTDL_DIR' => 1,
- '_LT_AC_SHELL_INIT' => 1,
+ 'AC_PROG_LD_GNU' => 1,
+ 'AM_MISSING_PROG' => 1,
+ 'AC_LIBTOOL_PICMODE' => 1,
+ '_AC_PROG_LIBTOOL' => 1,
+ 'AC_ENABLE_SHARED' => 1,
+ '_LT_AC_LANG_GCJ' => 1,
+ '_LT_LINKER_OPTION' => 1,
+ 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
+ 'LT_LIB_M' => 1,
+ '_LT_AC_SYS_COMPILER' => 1,
+ 'AC_LTDL_SYSSEARCHPATH' => 1,
+ 'AC_PATH_TOOL_PREFIX' => 1,
+ '_LT_AC_PROG_ECHO_BACKSLASH' => 1,
+ 'AC_LIB_LTDL' => 1,
+ '_LT_CC_BASENAME' => 1,
+ 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
+ 'AM_CONDITIONAL' => 1,
+ 'AC_LIBTOOL_COMPILER_OPTION' => 1,
+ 'LT_SYS_SYMBOL_USCORE' => 1,
+ 'AM_AUTOMAKE_VERSION' => 1,
+ '_LT_PATH_TOOL_PREFIX' => 1,
+ 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
+ 'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
+ 'PKG_PROG_PKG_CONFIG' => 1,
+ 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
+ 'PKG_NOARCH_INSTALLDIR' => 1,
+ 'AM_SUBST_NOTMAKE' => 1,
+ 'LT_WITH_LTDL' => 1,
+ 'AC_LIBTOOL_FC' => 1,
+ 'AM_PROG_INSTALL_STRIP' => 1,
+ 'LT_AC_PROG_EGREP' => 1,
+ 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
+ 'LT_SYS_DLOPEN_SELF' => 1,
+ 'm4_include' => 1,
'LT_CMD_MAX_LEN' => 1,
+ '_AM_PROG_CC_C_O' => 1,
+ 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
+ 'LTDL_INIT' => 1,
+ 'AM_INIT_AUTOMAKE' => 1,
+ 'AC_LIBTOOL_DLOPEN' => 1,
'_LT_COMPILER_BOILERPLATE' => 1,
- 'LT_SYS_DLSEARCH_PATH' => 1,
- 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
- '_LT_LIBOBJ' => 1,
- '_LT_AC_TAGCONFIG' => 1,
- 'AC_PROG_LD_RELOAD_FLAG' => 1,
+ 'PKG_CHECK_MODULES_STATIC' => 1,
+ '_LT_REQUIRED_DARWIN_CHECKS' => 1,
+ '_AM_IF_OPTION' => 1,
+ '_LT_AC_LANG_CXX' => 1,
+ 'AC_LIBTOOL_F77' => 1,
+ '_LT_PREPARE_SED_QUOTE_VARS' => 1,
+ 'AC_LTDL_SYMBOL_USCORE' => 1,
+ 'AC_ENABLE_FAST_INSTALL' => 1,
+ 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+ 'AM_ENABLE_STATIC' => 1,
+ 'AC_LTDL_DLSYM_USCORE' => 1,
+ 'AM_PROG_NM' => 1,
+ 'LTVERSION_VERSION' => 1,
+ 'AC_DISABLE_SHARED' => 1,
+ 'PKG_CHECK_VAR' => 1,
'_LT_COMPILER_OPTION' => 1,
+ 'AC_PROG_LIBTOOL' => 1,
'AC_DISABLE_FAST_INSTALL' => 1,
- 'AC_LTDL_SYSSEARCHPATH' => 1,
- 'LTVERSION_VERSION' => 1,
- 'AM_EXTRA_RECURSIVE_TARGETS' => 1,
- 'AC_LIBLTDL_CONVENIENCE' => 1,
- '_LT_AC_LANG_GCJ' => 1,
- '_AM_MANGLE_OPTION' => 1,
- '_AM_SUBST_NOTMAKE' => 1,
- '_LT_AC_PROG_ECHO_BACKSLASH' => 1,
- 'AM_PROG_INSTALL_SH' => 1,
- 'LT_LANG' => 1,
- 'AM_MAKE_INCLUDE' => 1,
- '_LT_PROG_FC' => 1,
- 'PKG_CHECK_EXISTS' => 1,
- 'AC_LTDL_SHLIBPATH' => 1,
- 'AC_WITH_LTDL' => 1,
- '_LT_LINKER_BOILERPLATE' => 1
+ 'AC_LTDL_ENABLE_INSTALL' => 1,
+ 'LT_SYS_DLSEARCH_PATH' => 1,
+ '_LT_AC_CHECK_DLFCN' => 1,
+ '_LT_PROG_F77' => 1,
+ 'AC_LIBTOOL_OBJDIR' => 1,
+ '_LTDL_SETUP' => 1,
+ 'AM_SET_DEPDIR' => 1,
+ 'AM_PROG_LIBTOOL' => 1,
+ 'AC_LIBTOOL_RC' => 1,
+ 'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
+ '_LT_AC_PROG_CXXCPP' => 1
}
], 'Autom4te::Request' )
);
Index: trunk/npstat/stat/Distributions1D.hh
===================================================================
--- trunk/npstat/stat/Distributions1D.hh (revision 682)
+++ trunk/npstat/stat/Distributions1D.hh (revision 683)
@@ -1,1066 +1,1065 @@
#ifndef NPSTAT_DISTRIBUTIONS1D_HH_
#define NPSTAT_DISTRIBUTIONS1D_HH_
/*!
// \file Distributions1D.hh
//
// \brief A number of useful 1-d continuous statistical distributions
//
// Author: I. Volobouev
//
// November 2009
*/
#include "npstat/stat/Distribution1DFactory.hh"
namespace npstat {
/**
// The uniform distribution is defined here by a constant density
// equal to 1 between 0 and 1 and equal to 0 everywhere else
*/
class Uniform1D : public AbsScalableDistribution1D
{
public:
inline Uniform1D(const double location, const double scale)
: AbsScalableDistribution1D(location, scale) {}
inline virtual Uniform1D* clone() const {return new Uniform1D(*this);}
inline virtual ~Uniform1D() {}
// Methods needed for I/O
virtual gs::ClassId classId() const {return gs::ClassId(*this);}
virtual bool write(std::ostream& os) const;
static inline const char* classname() {return "npstat::Uniform1D";}
static inline unsigned version() {return 1;}
static Uniform1D* read(const gs::ClassId& id, std::istream& in);
protected:
virtual bool isEqual(const AbsDistribution1D& r) const
{return AbsScalableDistribution1D::isEqual(r);}
private:
friend class ScalableDistribution1DFactory<Uniform1D>;
inline Uniform1D(const double location, const double scale,
const std::vector<double>& /* params */)
: AbsScalableDistribution1D(location, scale) {}
inline static int nParameters() {return 0;}
double unscaledDensity(double x) const;
double unscaledCdf(double x) const;
double unscaledQuantile(double x) const;
inline double unscaledExceedance(const double x) const
{return 1.0 - unscaledCdf(x);}
};
/** Isosceles triangle distribution: 1 - |x| supported on [-1, 1] */
class IsoscelesTriangle1D : public AbsScalableDistribution1D
{
public:
inline IsoscelesTriangle1D(const double location, const double scale)
: AbsScalableDistribution1D(location, scale) {}
inline virtual IsoscelesTriangle1D* clone() const
{return new IsoscelesTriangle1D(*this);}
inline virtual ~IsoscelesTriangle1D() {}
// Methods needed for I/O
virtual gs::ClassId classId() const {return gs::ClassId(*this);}
virtual bool write(std::ostream& os) const;
static inline const char* classname()
{return "npstat::IsoscelesTriangle1D";}
static inline unsigned version() {return 1;}
static IsoscelesTriangle1D* read(const gs::ClassId& id, std::istream& in);
protected:
virtual bool isEqual(const AbsDistribution1D& r) const
{return AbsScalableDistribution1D::isEqual(r);}
private:
friend class ScalableDistribution1DFactory<IsoscelesTriangle1D>;
inline IsoscelesTriangle1D(const double location, const double scale,
const std::vector<double>& /* params */)
: AbsScalableDistribution1D(location, scale) {}
inline static int nParameters() {return 0;}
double unscaledDensity(double x) const;
double unscaledCdf(double x) const;
double unscaledQuantile(double x) const;
inline double unscaledExceedance(const double x) const
{return 1.0 - unscaledCdf(x);}
};
/** Exponential distribution. "scale" is the decay time. */
class Exponential1D : public AbsScalableDistribution1D
{
public:
inline Exponential1D(const double location, const double scale)
: AbsScalableDistribution1D(location, scale) {}
inline virtual Exponential1D* clone() const
{return new Exponential1D(*this);}
inline virtual ~Exponential1D() {}
// Methods needed for I/O
virtual gs::ClassId classId() const {return gs::ClassId(*this);}
virtual bool write(std::ostream& os) const;
static inline const char* classname() {return "npstat::Exponential1D";}
static inline unsigned version() {return 1;}
static Exponential1D* read(const gs::ClassId& id, std::istream& in);
protected:
virtual bool isEqual(const AbsDistribution1D& r) const
{return AbsScalableDistribution1D::isEqual(r);}
private:
friend class ScalableDistribution1DFactory<Exponential1D>;
inline Exponential1D(const double location, const double scale,
const std::vector<double>& /* params */)
: AbsScalableDistribution1D(location, scale) {}
inline static int nParameters() {return 0;}
double unscaledDensity(double x) const;
double unscaledCdf(double x) const;
double unscaledQuantile(double x) const;
double unscaledExceedance(double x) const;
};
/** Logistic distribution */
class Logistic1D : public AbsScalableDistribution1D
{
public:
inline Logistic1D(const double location, const double scale)
: AbsScalableDistribution1D(location, scale) {}
inline virtual Logistic1D* clone() const
{return new Logistic1D(*this);}
inline virtual ~Logistic1D() {}
// Methods needed for I/O
virtual gs::ClassId classId() const {return gs::ClassId(*this);}
virtual bool write(std::ostream& os) const;
static inline const char* classname() {return "npstat::Logistic1D";}
static inline unsigned version() {return 1;}
static Logistic1D* read(const gs::ClassId& id, std::istream& in);
protected:
virtual bool isEqual(const AbsDistribution1D& r) const
{return AbsScalableDistribution1D::isEqual(r);}
private:
friend class ScalableDistribution1DFactory<Logistic1D>;
inline Logistic1D(const double location, const double scale,
const std::vector<double>& /* params */)
: AbsScalableDistribution1D(location, scale) {}
inline static int nParameters() {return 0;}
double unscaledDensity(double x) const;
double unscaledCdf(double x) const;
double unscaledQuantile(double x) const;
double unscaledExceedance(double x) const;
};
/**
// A distribution whose density has a simple quadratic shape.
// The support is from 0 to 1, and the coefficients "a" and "b"
// are the coefficients for the Legendre polynomials of 1st
// and 2nd degree translated to the support region. Note that
// only those values of "a" and "b" that guarantee non-negativity
// of the density are allowed, otherwise the code will generate
// a run-time error.
*/
class Quadratic1D : public AbsScalableDistribution1D
{
public:
Quadratic1D(double location, double scale, double a, double b);
inline virtual Quadratic1D* clone() const
{return new Quadratic1D(*this);}
inline virtual ~Quadratic1D() {}
inline double a() const {return a_;}
inline double b() const {return b_;}
// Methods needed for I/O
virtual gs::ClassId classId() const {return gs::ClassId(*this);}
virtual bool write(std::ostream& os) const;
static inline const char* classname() {return "npstat::Quadratic1D";}
static inline unsigned version() {return 2;}
static Quadratic1D* read(const gs::ClassId& id, std::istream& in);
protected:
virtual bool isEqual(const AbsDistribution1D&) const;
private:
friend class ScalableDistribution1DFactory<Quadratic1D>;
Quadratic1D(double location, double scale,
const std::vector<double>& params);
inline static int nParameters() {return 2;}
void verifyNonNegative();
double unscaledDensity(double x) const;
double unscaledCdf(double x) const;
double unscaledQuantile(double x) const;
inline double unscaledExceedance(const double x) const
{return 1.0 - unscaledCdf(x);}
double a_;
double b_;
};
/**
// A distribution whose density logarithm has a simple quadratic
// shape. The support is from 0 to 1, and the coefficients "a" and "b"
// are the coefficients for the Legendre polynomials of 1st and 2nd
// degree translated to the support region.
*/
class LogQuadratic1D : public AbsScalableDistribution1D
{
public:
LogQuadratic1D(double location, double scale, double a, double b);
inline virtual LogQuadratic1D* clone() const
{return new LogQuadratic1D(*this);}
inline virtual ~LogQuadratic1D() {}
inline double a() const {return a_;}
inline double b() const {return b_;}
// Methods needed for I/O
virtual gs::ClassId classId() const {return gs::ClassId(*this);}
virtual bool write(std::ostream& os) const;
static inline const char* classname() {return "npstat::LogQuadratic1D";}
static inline unsigned version() {return 2;}
static LogQuadratic1D* read(const gs::ClassId& id, std::istream& in);
protected:
virtual bool isEqual(const AbsDistribution1D&) const;
private:
friend class ScalableDistribution1DFactory<LogQuadratic1D>;
LogQuadratic1D(double location, double scale,
const std::vector<double>& params);
inline static int nParameters() {return 2;}
void normalize();
long double quadInteg(long double x) const;
double unscaledDensity(double x) const;
double unscaledCdf(double x) const;
double unscaledQuantile(double x) const;
inline double unscaledExceedance(const double x) const
{return 1.0 - unscaledCdf(x);}
long double ref_;
long double range_;
double a_;
double b_;
double k_;
double s_;
double norm_;
};
/** The Gaussian (or Normal) distribution */
class Gauss1D : public AbsScalableDistribution1D
{
public:
Gauss1D(double location, double scale);
inline virtual Gauss1D* clone() const {return new Gauss1D(*this);}
inline virtual ~Gauss1D() {}
// Higher quality generator than the one provided by
// the quantile function
virtual unsigned random(AbsRandomGenerator& g,
double* generatedRandom) const;
// Methods needed for I/O
virtual gs::ClassId classId() const {return gs::ClassId(*this);}
virtual bool write(std::ostream& os) const;
static inline const char* classname() {return "npstat::Gauss1D";}
static inline unsigned version() {return 1;}
static Gauss1D* read(const gs::ClassId& id, std::istream& in);
protected:
virtual bool isEqual(const AbsDistribution1D& r) const
{return AbsScalableDistribution1D::isEqual(r);}
private:
friend class ScalableDistribution1DFactory<Gauss1D>;
- inline Gauss1D(const double location, const double scale,
- const std::vector<double>& /* params */)
- : AbsScalableDistribution1D(location, scale) {}
+ Gauss1D(const double location, const double scale,
+ const std::vector<double>& params);
inline static int nParameters() {return 0;}
double unscaledDensity(double x) const;
double unscaledCdf(double x) const;
double unscaledQuantile(double x) const;
double unscaledExceedance(double x) const;
double xmin_;
double xmax_;
};
/** Gaussian distribution truncated at some number of sigmas */
class TruncatedGauss1D : public AbsScalableDistribution1D
{
public:
TruncatedGauss1D(double location, double scale, double nsigma);
inline virtual TruncatedGauss1D* clone() const
{return new TruncatedGauss1D(*this);}
inline virtual ~TruncatedGauss1D() {}
inline double nsigma() const {return nsigma_;}
// Higher quality generator than the one provided by
// the quantile function
virtual unsigned random(AbsRandomGenerator& g,
double* generatedRandom) const;
// Methods needed for I/O
virtual gs::ClassId classId() const {return gs::ClassId(*this);}
virtual bool write(std::ostream& os) const;
static inline const char* classname() {return "npstat::TruncatedGauss1D";}
static inline unsigned version() {return 1;}
static TruncatedGauss1D* read(const gs::ClassId& id, std::istream& in);
protected:
virtual bool isEqual(const AbsDistribution1D&) const;
private:
friend class ScalableDistribution1DFactory<TruncatedGauss1D>;
TruncatedGauss1D(double location, double scale,
const std::vector<double>& params);
inline static int nParameters() {return 1;}
void initialize();
double unscaledDensity(double x) const;
double unscaledCdf(double x) const;
double unscaledQuantile(double x) const;
inline double unscaledExceedance(const double x) const
{return unscaledCdf(-x);}
double nsigma_;
double norm_;
double cdf0_;
};
/**
// Gaussian distribution on the [0, 1] interval, mirrored at the boundaries.
// This is the Green's function of the diffusion equation on [0, 1]. The
// interval can be shifted and scaled as for the uniform distribution.
*/
class MirroredGauss1D : public AbsScalableDistribution1D
{
public:
MirroredGauss1D(double location, double scale,
double meanOn0_1, double sigmaOn0_1);
inline virtual MirroredGauss1D* clone() const
{return new MirroredGauss1D(*this);}
inline virtual ~MirroredGauss1D() {}
inline double meanOn0_1() const {return mu0_;}
inline double sigmaOn0_1() const {return sigma0_;}
// Methods needed for I/O
virtual gs::ClassId classId() const {return gs::ClassId(*this);}
virtual bool write(std::ostream& os) const;
static inline const char* classname() {return "npstat::MirroredGauss1D";}
static inline unsigned version() {return 1;}
static MirroredGauss1D* read(const gs::ClassId& id, std::istream& in);
protected:
virtual bool isEqual(const AbsDistribution1D&) const;
private:
friend class ScalableDistribution1DFactory<MirroredGauss1D>;
MirroredGauss1D(double location, double scale,
const std::vector<double>& params);
inline static int nParameters() {return 2;}
void validate();
double unscaledDensity(double x) const;
double unscaledCdf(double x) const;
double unscaledQuantile(double x) const;
double unscaledExceedance(double x) const;
long double ldCdf(double x) const;
double mu0_;
double sigma0_;
};
/**
// Bifurcated Gaussian distribution. Different sigmas
// can be used on the left and on the right, with constructor
// parameter "leftSigmaFraction" specifying the ratio of
// the left sigma to the sum of sigmas (this ratio must be
// between 0 and 1). Different truncations in terms of the
// number of sigmas can be used as well.
*/
class BifurcatedGauss1D : public AbsScalableDistribution1D
{
public:
BifurcatedGauss1D(double location, double scale,
double leftSigmaFraction,
double nSigmasLeft, double nSigmasRight);
inline virtual BifurcatedGauss1D* clone() const
{return new BifurcatedGauss1D(*this);}
inline virtual ~BifurcatedGauss1D() {}
inline double leftSigmaFraction() const
{return leftSigma_/(leftSigma_ + rightSigma_);}
inline double nSigmasLeft() const
{return nSigmasLeft_;}
inline double nSigmasRight() const
{return nSigmasRight_;}
// Methods needed for I/O
virtual gs::ClassId classId() const {return gs::ClassId(*this);}
virtual bool write(std::ostream& os) const;
static inline const char* classname() {return "npstat::BifurcatedGauss1D";}
static inline unsigned version() {return 1;}
static BifurcatedGauss1D* read(const gs::ClassId& id, std::istream& in);
protected:
virtual bool isEqual(const AbsDistribution1D&) const;
private:
BifurcatedGauss1D(double location, double scale);
friend class ScalableDistribution1DFactory<BifurcatedGauss1D>;
BifurcatedGauss1D(double location, double scale,
const std::vector<double>& params);
inline static int nParameters() {return 3;}
void initialize();
double unscaledDensity(double x) const;
double unscaledCdf(double x) const;
double unscaledQuantile(double x) const;
double unscaledExceedance(double x) const;
double leftSigma_;
double rightSigma_;
double nSigmasLeft_;
double nSigmasRight_;
double norm_;
double leftCdfFrac_;
double cdf0Left_;
double cdf0Right_;
};
/** Symmetric beta distribution */
class SymmetricBeta1D : public AbsScalableDistribution1D
{
public:
SymmetricBeta1D(double location, double scale, double power);
inline virtual SymmetricBeta1D* clone() const
{return new SymmetricBeta1D(*this);}
inline virtual ~SymmetricBeta1D() {}
inline double power() const {return n_;}
// Methods needed for I/O
virtual gs::ClassId classId() const {return gs::ClassId(*this);}
virtual bool write(std::ostream& os) const;
static inline const char* classname() {return "npstat::SymmetricBeta1D";}
static inline unsigned version() {return 1;}
static SymmetricBeta1D* read(const gs::ClassId& id, std::istream& in);
protected:
virtual bool isEqual(const AbsDistribution1D&) const;
private:
friend class ScalableDistribution1DFactory<SymmetricBeta1D>;
SymmetricBeta1D(double location, double scale,
const std::vector<double>& params);
inline static int nParameters() {return 1;}
double unscaledDensity(double x) const;
double unscaledCdf(double x) const;
double unscaledQuantile(double x) const;
inline double unscaledExceedance(const double x) const
{return unscaledCdf(-x);}
double calculateNorm() const;
double n_;
double norm_;
};
/** Beta1D density is proportional to x^(apha-1) * (1-x)^(beta-1) */
class Beta1D : public AbsScalableDistribution1D
{
public:
Beta1D(double location, double scale, double alpha, double beta);
inline virtual Beta1D* clone() const
{return new Beta1D(*this);}
inline virtual ~Beta1D() {}
inline double alpha() const {return alpha_;}
inline double beta() const {return beta_;}
// Methods needed for I/O
virtual gs::ClassId classId() const {return gs::ClassId(*this);}
virtual bool write(std::ostream& os) const;
static inline const char* classname() {return "npstat::Beta1D";}
static inline unsigned version() {return 1;}
static Beta1D* read(const gs::ClassId& id, std::istream& in);
protected:
virtual bool isEqual(const AbsDistribution1D&) const;
private:
friend class ScalableDistribution1DFactory<Beta1D>;
Beta1D(double location, double scale,
const std::vector<double>& params);
inline static int nParameters() {return 2;}
double unscaledDensity(double x) const;
double unscaledCdf(double x) const;
double unscaledExceedance(double x) const;
double unscaledQuantile(double x) const;
double calculateNorm() const;
double alpha_;
double beta_;
double norm_;
};
/** Shiftable gamma distribution */
class Gamma1D : public AbsScalableDistribution1D
{
public:
Gamma1D(double location, double scale, double alpha);
inline virtual Gamma1D* clone() const
{return new Gamma1D(*this);}
inline virtual ~Gamma1D() {}
inline double alpha() const {return alpha_;}
// Methods needed for I/O
virtual gs::ClassId classId() const {return gs::ClassId(*this);}
virtual bool write(std::ostream& os) const;
static inline const char* classname() {return "npstat::Gamma1D";}
static inline unsigned version() {return 1;}
static Gamma1D* read(const gs::ClassId& id, std::istream& in);
protected:
virtual bool isEqual(const AbsDistribution1D&) const;
private:
friend class ScalableDistribution1DFactory<Gamma1D>;
Gamma1D(double location, double scale,
const std::vector<double>& params);
inline static int nParameters() {return 1;}
double unscaledDensity(double x) const;
double unscaledCdf(double x) const;
double unscaledExceedance(double x) const;
double unscaledQuantile(double x) const;
void initialize();
double alpha_;
double norm_;
};
/**
// Pareto distribution. Location parameter is location of 0, scale
// parameter is the distance between 0 and the start of the density
// (like the normal Pareto distribution location parameter).
*/
class Pareto1D : public AbsScalableDistribution1D
{
public:
Pareto1D(double location, double scale, double powerParameter);
inline virtual Pareto1D* clone() const {return new Pareto1D(*this);}
inline virtual ~Pareto1D() {}
inline double powerParameter() const {return c_;}
// Methods needed for I/O
virtual gs::ClassId classId() const {return gs::ClassId(*this);}
virtual bool write(std::ostream& os) const;
static inline const char* classname() {return "npstat::Pareto1D";}
static inline unsigned version() {return 1;}
static Pareto1D* read(const gs::ClassId& id, std::istream& in);
protected:
virtual bool isEqual(const AbsDistribution1D&) const;
private:
friend class ScalableDistribution1DFactory<Pareto1D>;
Pareto1D(double location, double scale,
const std::vector<double>& params);
inline static int nParameters() {return 1;}
void initialize();
double unscaledDensity(double x) const;
double unscaledCdf(double x) const;
double unscaledQuantile(double x) const;
double unscaledExceedance(double x) const;
double c_;
double support_;
};
/**
// Uniform distribution with Pareto tail attached to the right, where
// the support of the uniform would normally end. Location parameter
// is location of 0, scale parameter is the width of the uniform part
// (like the normal Pareto distribution location parameter).
*/
class UniPareto1D : public AbsScalableDistribution1D
{
public:
UniPareto1D(double location, double scale, double powerParameter);
inline virtual UniPareto1D* clone() const {return new UniPareto1D(*this);}
inline virtual ~UniPareto1D() {}
inline double powerParameter() const {return c_;}
// Methods needed for I/O
virtual gs::ClassId classId() const {return gs::ClassId(*this);}
virtual bool write(std::ostream& os) const;
static inline const char* classname() {return "npstat::UniPareto1D";}
static inline unsigned version() {return 1;}
static UniPareto1D* read(const gs::ClassId& id, std::istream& in);
protected:
virtual bool isEqual(const AbsDistribution1D&) const;
private:
friend class ScalableDistribution1DFactory<UniPareto1D>;
UniPareto1D(double location, double scale,
const std::vector<double>& params);
inline static int nParameters() {return 1;}
void initialize();
double unscaledDensity(double x) const;
double unscaledCdf(double x) const;
double unscaledQuantile(double x) const;
double unscaledExceedance(double x) const;
double c_;
double support_;
double amplitude_;
};
/** "Huber" distribution */
class Huber1D : public AbsScalableDistribution1D
{
public:
Huber1D(double location, double scale, double tailWeight);
inline virtual Huber1D* clone() const {return new Huber1D(*this);}
inline virtual ~Huber1D() {}
inline double tailWeight() const {return tailWeight_;}
inline double tailStart() const {return a_;}
// Methods needed for I/O
virtual gs::ClassId classId() const {return gs::ClassId(*this);}
virtual bool write(std::ostream& os) const;
static inline const char* classname() {return "npstat::Huber1D";}
static inline unsigned version() {return 1;}
static Huber1D* read(const gs::ClassId& id, std::istream& in);
protected:
virtual bool isEqual(const AbsDistribution1D&) const;
private:
friend class ScalableDistribution1DFactory<Huber1D>;
Huber1D(double location, double scale,
const std::vector<double>& params);
inline static int nParameters() {return 1;}
void initialize();
double unscaledDensity(double x) const;
double unscaledCdf(double x) const;
double unscaledQuantile(double x) const;
inline double unscaledExceedance(const double x) const
{return unscaledCdf(-x);}
double weight(double a) const;
double tailWeight_;
double a_;
double normfactor_;
double support_;
double cdf0_;
};
/** Cauchy (or Breit-Wigner) distribution */
class Cauchy1D : public AbsScalableDistribution1D
{
public:
Cauchy1D(double location, double scale);
inline virtual Cauchy1D* clone() const {return new Cauchy1D(*this);}
inline virtual ~Cauchy1D() {}
// Methods needed for I/O
virtual gs::ClassId classId() const {return gs::ClassId(*this);}
virtual bool write(std::ostream& os) const;
static inline const char* classname() {return "npstat::Cauchy1D";}
static inline unsigned version() {return 1;}
static Cauchy1D* read(const gs::ClassId& id, std::istream& in);
protected:
virtual bool isEqual(const AbsDistribution1D& r) const
{return AbsScalableDistribution1D::isEqual(r);}
private:
friend class ScalableDistribution1DFactory<Cauchy1D>;
Cauchy1D(const double location, const double scale,
const std::vector<double>& params);
inline static int nParameters() {return 0;}
double unscaledDensity(double x) const;
double unscaledCdf(double x) const;
double unscaledQuantile(double x) const;
inline double unscaledExceedance(const double x) const
{return unscaledCdf(-x);}
double support_;
};
/**
// Log-normal distribution represented by its mean, standard
// deviation, and skewness. This representation is more useful
// than other representations encountered in statistical literature.
*/
class LogNormal : public AbsScalableDistribution1D
{
public:
LogNormal(double mean, double stdev, double skewness);
inline virtual LogNormal* clone() const {return new LogNormal(*this);}
inline virtual ~LogNormal() {}
inline double skewness() const {return skew_;}
// Methods needed for I/O
virtual gs::ClassId classId() const {return gs::ClassId(*this);}
virtual bool write(std::ostream& os) const;
static inline const char* classname() {return "npstat::LogNormal";}
static inline unsigned version() {return 1;}
static LogNormal* read(const gs::ClassId& id, std::istream& in);
protected:
virtual bool isEqual(const AbsDistribution1D&) const;
private:
friend class ScalableDistribution1DFactory<LogNormal>;
LogNormal(double location, double scale,
const std::vector<double>& params);
inline static int nParameters() {return 1;}
void initialize();
double unscaledDensity(double x) const;
double unscaledCdf(double x) const;
double unscaledExceedance(double x) const;
double unscaledQuantile(double x) const;
double skew_;
double logw_;
double s_;
double xi_;
double emgamovd_;
};
/**
// Moyal Distribution (originally derived by Moyal as an approximation
// to the Landau distribution)
*/
class Moyal1D : public AbsScalableDistribution1D
{
public:
Moyal1D(double location, double scale);
inline virtual Moyal1D* clone() const {return new Moyal1D(*this);}
inline virtual ~Moyal1D() {}
// Methods needed for I/O
virtual gs::ClassId classId() const {return gs::ClassId(*this);}
virtual bool write(std::ostream& os) const;
static inline const char* classname() {return "npstat::Moyal1D";}
static inline unsigned version() {return 1;}
static Moyal1D* read(const gs::ClassId& id, std::istream& in);
protected:
virtual bool isEqual(const AbsDistribution1D& r) const
{return AbsScalableDistribution1D::isEqual(r);}
private:
friend class ScalableDistribution1DFactory<Moyal1D>;
Moyal1D(double location, double scale,
const std::vector<double>& params);
inline static int nParameters() {return 0;}
double unscaledDensity(double x) const;
double unscaledCdf(double x) const;
double unscaledQuantile(double x) const;
double unscaledExceedance(double x) const;
double xmax_;
double xmin_;
};
/** Student's t-distribution */
class StudentsT1D : public AbsScalableDistribution1D
{
public:
StudentsT1D(double location, double scale, double nDegreesOfFreedom);
inline virtual StudentsT1D* clone() const
{return new StudentsT1D(*this);}
inline virtual ~StudentsT1D() {}
inline double nDegreesOfFreedom() const {return nDoF_;}
// Methods needed for I/O
virtual gs::ClassId classId() const {return gs::ClassId(*this);}
virtual bool write(std::ostream& os) const;
static inline const char* classname() {return "npstat::StudentsT1D";}
static inline unsigned version() {return 1;}
static StudentsT1D* read(const gs::ClassId& id, std::istream& in);
protected:
virtual bool isEqual(const AbsDistribution1D&) const;
private:
friend class ScalableDistribution1DFactory<StudentsT1D>;
StudentsT1D(double location, double scale,
const std::vector<double>& params);
inline static int nParameters() {return 1;}
void initialize();
double effectiveSupport() const;
double unscaledDensity(double x) const;
double unscaledCdf(double x) const;
double unscaledExceedance(double x) const;
double unscaledQuantile(double x) const;
double nDoF_;
double normfactor_;
double power_;
double bignum_;
};
/** Distribution defined by an interpolation table */
class Tabulated1D : public AbsScalableDistribution1D
{
public:
// The "data" array gives (unnormalized) density values at
// equidistant intervals. data[0] is density at 0.0, and
// data[dataLen-1] is density at 1.0. If "dataLen" is less
// than 2, uniform distribution will be created. Internally,
// the data is kept in double precision.
//
// "interpolationDegree" must be less than 4 and less than "dataLen".
//
template <typename Real>
Tabulated1D(double location, double scale,
const Real* data, unsigned dataLen,
unsigned interpolationDegree);
inline Tabulated1D(const double location, const double scale,
const std::vector<double>& table,
const unsigned interpolationDegree)
: AbsScalableDistribution1D(location, scale)
{
const unsigned long sz = table.size();
initialize(sz ? &table[0] : (double*)0, sz, interpolationDegree);
}
inline virtual Tabulated1D* clone() const
{return new Tabulated1D(*this);}
inline virtual ~Tabulated1D() {}
inline unsigned interpolationDegree() const {return deg_;}
inline unsigned tableLength() const {return len_;}
inline const double* tableData() const {return &table_[0];}
// Methods needed for I/O
virtual gs::ClassId classId() const {return gs::ClassId(*this);}
virtual bool write(std::ostream& os) const;
static inline const char* classname() {return "npstat::Tabulated1D";}
static inline unsigned version() {return 1;}
static Tabulated1D* read(const gs::ClassId& id, std::istream& in);
protected:
virtual bool isEqual(const AbsDistribution1D&) const;
private:
friend class ScalableDistribution1DFactory<Tabulated1D>;
// The following constructor creates interpolator
// of maximum degree possible
Tabulated1D(double location, double scale,
const std::vector<double>& params);
inline static int nParameters() {return -1;}
double unscaledDensity(double x) const;
double unscaledCdf(double x) const;
double unscaledQuantile(double x) const;
double unscaledExceedance(double x) const;
template <typename Real> void initialize(
const Real* data, unsigned dataLen, unsigned interpolationDegree);
void normalize();
double interpolate(double x) const;
double intervalInteg(unsigned intervalNumber) const;
double interpIntegral(double x0, double x1) const;
std::vector<double> table_;
std::vector<double> cdf_;
std::vector<double> exceed_;
double step_;
unsigned len_;
unsigned deg_;
};
/**
// Another interpolated distribution. For this one, we will assume
// that the coordinates correspond to 1-d histogram bin centers.
*/
class BinnedDensity1D : public AbsScalableDistribution1D
{
public:
// The "data" array gives density values at equidistant intervals.
// data[0] is density at 0.5/dataLen, and data[dataLen-1] is density
// at 1.0 - 0.5/dataLen.
//
// "interpolationDegree" must be less than 2.
//
template <typename Real>
BinnedDensity1D(double location, double scale,
const Real* data, unsigned dataLen,
unsigned interpolationDegree);
inline BinnedDensity1D(const double location, const double scale,
const std::vector<double>& table,
const unsigned interpolationDegree)
: AbsScalableDistribution1D(location, scale)
{
const unsigned long sz = table.size();
initialize(sz ? &table[0] : (double*)0, sz, interpolationDegree);
}
inline virtual BinnedDensity1D* clone() const
{return new BinnedDensity1D(*this);}
inline virtual ~BinnedDensity1D() {}
inline unsigned interpolationDegree() const {return deg_;}
inline unsigned tableLength() const {return len_;}
inline const double* tableData() const {return &table_[0];}
// Methods needed for I/O
virtual gs::ClassId classId() const {return gs::ClassId(*this);}
virtual bool write(std::ostream& os) const;
static inline const char* classname() {return "npstat::BinnedDensity1D";}
static inline unsigned version() {return 1;}
static BinnedDensity1D* read(const gs::ClassId& id, std::istream& in);
protected:
virtual bool isEqual(const AbsDistribution1D&) const;
private:
friend class ScalableDistribution1DFactory<BinnedDensity1D>;
// The following constructor creates interpolator
// of maximum degree possible
BinnedDensity1D(double location, double scale,
const std::vector<double>& params);
inline static int nParameters() {return -1;}
double unscaledDensity(double x) const;
double unscaledCdf(double x) const;
double unscaledQuantile(double x) const;
inline double unscaledExceedance(const double x) const
{return 1.0 - unscaledCdf(x);}
template <typename Real> void initialize(
const Real* data, unsigned dataLen, unsigned interpolationDegree);
void normalize();
double interpolate(double x) const;
std::vector<double> table_;
std::vector<double> cdf_;
double step_;
unsigned len_;
unsigned deg_;
unsigned firstNonZeroBin_;
unsigned lastNonZeroBin_;
};
}
#include "npstat/stat/Distributions1D.icc"
#endif // NPSTAT_DISTRIBUTIONS1D_HH_
Index: trunk/npstat/stat/Distributions1D.cc
===================================================================
--- trunk/npstat/stat/Distributions1D.cc (revision 682)
+++ trunk/npstat/stat/Distributions1D.cc (revision 683)
@@ -1,2771 +1,2778 @@
#include <cmath>
#include <cfloat>
#include <algorithm>
#include <stdexcept>
#include "geners/binaryIO.hh"
#include "npstat/nm/MathUtils.hh"
#include "npstat/nm/SpecialFunctions.hh"
#include "npstat/nm/interpolate.hh"
#include "npstat/stat/Distributions1D.hh"
#include "npstat/stat/StatUtils.hh"
#include "npstat/stat/distributionReadError.hh"
#define SQR2PI 2.5066282746310005
#define SQRT2 1.41421356237309505
#define SQRPI 1.77245385090551603
#define SQRT2L 1.414213562373095048801689L
#define SQRPIL 1.77245385090551602729816748L
#define TWOPIL 6.28318530717958647692528676656L
static long double inverseErf(const long double fval)
{
long double x = npstat::inverseGaussCdf((fval + 1.0L)/2.0L)/SQRT2L;
for (unsigned i=0; i<2; ++i)
{
const long double guessed = erfl(x);
const long double deri = 2.0L/SQRPIL*expl(-x*x);
x += (fval - guessed)/deri;
}
return x;
}
static unsigned improved_random(npstat::AbsRandomGenerator& g,
long double* generatedRandom)
{
const long double extra = sqrt(DBL_EPSILON);
long double u = 0.0L;
unsigned callcount = 0;
while (u <= 0.0L || u >= 1.0L)
{
u = g()*(1.0L + extra) - extra/2.0L;
u += (g() - 0.5L)*extra;
callcount += 2U;
}
*generatedRandom = u;
return callcount;
}
static unsigned gauss_random(const double mean, const double sigma,
npstat::AbsRandomGenerator& g,
double* generatedRandom)
{
assert(generatedRandom);
long double r1 = 0.0L, r2 = 0.0L;
const unsigned calls = improved_random(g, &r1) + improved_random(g, &r2);
*generatedRandom = mean + sigma*sqrtl(-2.0L*logl(r1))*sinl(TWOPIL*(r2-0.5L));
return calls;
}
// static unsigned gauss_random(const double mean, const double sigma,
// npstat::AbsRandomGenerator& g,
// double* generatedRandom)
// {
// assert(generatedRandom);
// long double r1 = 0.0L;
// const unsigned count = improved_random(g, &r1);
// *generatedRandom = mean + sigma*SQRT2*inverseErf(2.0L*r1 - 1.0L);
// return count;
// }
namespace npstat {
bool SymmetricBeta1D::write(std::ostream& os) const
{
AbsScalableDistribution1D::write(os);
gs::write_pod(os, n_);
return !os.fail();
}
SymmetricBeta1D* SymmetricBeta1D::read(const gs::ClassId& id, std::istream& in)
{
static const gs::ClassId current(
gs::ClassId::makeId<SymmetricBeta1D>());
current.ensureSameId(id);
double location, scale;
if (AbsScalableDistribution1D::read(in, &location, &scale))
{
double n;
gs::read_pod(in, &n);
if (!in.fail())
return new SymmetricBeta1D(location, scale, n);
}
distributionReadError(in, classname());
return 0;
}
bool SymmetricBeta1D::isEqual(const AbsDistribution1D& otherBase) const
{
const SymmetricBeta1D& r =
static_cast<const SymmetricBeta1D&>(otherBase);
return AbsScalableDistribution1D::isEqual(r) && n_ == r.n_;
}
SymmetricBeta1D::SymmetricBeta1D(const double location,
const double scale,
const double power)
: AbsScalableDistribution1D(location, scale),
n_(power)
{
norm_ = calculateNorm();
}
SymmetricBeta1D::SymmetricBeta1D(const double location,
const double scale,
const std::vector<double>& params)
: AbsScalableDistribution1D(location, scale),
n_(params[0])
{
norm_ = calculateNorm();
}
double SymmetricBeta1D::calculateNorm() const
{
static const double normcoeffs[11] = {
0.5, 0.75, 0.9375, 1.09375, 1.23046875, 1.353515625,
1.46630859375, 1.571044921875, 1.6692352294921875,
1.76197052001953125, 1.85006904602050781};
if (n_ <= -1.0) throw std::invalid_argument(
"In npstat::SymmetricBeta1D::calculateNorm: "
"invalid power parameter");
const int intpow = static_cast<int>(floor(n_));
if (static_cast<double>(intpow) == n_ &&
intpow >= 0 && intpow <= 10)
return normcoeffs[intpow];
else
return Gamma(1.5 + n_)/sqrt(M_PI)/Gamma(1.0 + n_);
}
double SymmetricBeta1D::unscaledDensity(const double x) const
{
const double oneminusrsq = 1.0 - x*x;
if (oneminusrsq <= 0.0)
return 0.0;
else
return norm_*pow(oneminusrsq, n_);
}
double SymmetricBeta1D::unscaledCdf(const double x) const
{
if (x >= 1.0)
return 1.0;
else if (x <= -1.0)
return 0.0;
else if (n_ == 0.0)
return (x + 1.0)/2.0;
else
return incompleteBeta(n_+1.0, n_+1.0, (x + 1.0)/2.0);
}
double SymmetricBeta1D::unscaledQuantile(const double r1) const
{
if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error(
"In npstat::SymmetricBeta1D::unscaledQuantile: "
"cdf argument outside of [0, 1] interval");
if (r1 == 0.0)
return -1.0;
else if (r1 == 1.0)
return 1.0;
else
{
double r;
if (n_ == 0.0)
r = r1*2.0 - 1.0;
else
r = 2.0*inverseIncompleteBeta(n_+1.0, n_+1.0, r1) - 1.0;
if (r < -1.0)
r = -1.0;
else if (r > 1.0)
r = 1.0;
return r;
}
}
bool Beta1D::write(std::ostream& os) const
{
AbsScalableDistribution1D::write(os);
gs::write_pod(os, alpha_);
gs::write_pod(os, beta_);
return !os.fail();
}
Beta1D* Beta1D::read(const gs::ClassId& id, std::istream& in)
{
static const gs::ClassId current(gs::ClassId::makeId<Beta1D>());
current.ensureSameId(id);
double location, scale, a, b;
if (AbsScalableDistribution1D::read(in, &location, &scale))
{
gs::read_pod(in, &a);
gs::read_pod(in, &b);
if (!in.fail())
return new Beta1D(location, scale, a, b);
}
distributionReadError(in, classname());
return 0;
}
bool Beta1D::isEqual(const AbsDistribution1D& otherBase) const
{
const Beta1D& r = static_cast<const Beta1D&>(otherBase);
return AbsScalableDistribution1D::isEqual(r) &&
alpha_ == r.alpha_ && beta_ == r.beta_;
}
Beta1D::Beta1D(const double location, const double scale,
const double pa, const double pb)
: AbsScalableDistribution1D(location, scale),
alpha_(pa),
beta_(pb)
{
norm_ = calculateNorm();
}
Beta1D::Beta1D(const double location,
const double scale,
const std::vector<double>& params)
: AbsScalableDistribution1D(location, scale),
alpha_(params[0]),
beta_(params[1])
{
norm_ = calculateNorm();
}
double Beta1D::calculateNorm() const
{
if (!(alpha_ > 0.0 && beta_ > 0.0)) throw std::invalid_argument(
"In npstat::Beta1D::calculateNorm: invalid power parameters");
return Gamma(alpha_ + beta_)/Gamma(alpha_)/Gamma(beta_);
}
double Beta1D::unscaledDensity(const double x) const
{
if (x <= 0.0 || x >= 1.0)
return 0.0;
else if (alpha_ == 1.0 && beta_ == 1.0)
return 1.0;
else
return norm_*pow(x, alpha_-1.0)*pow(1.0-x, beta_-1.0);
}
double Beta1D::unscaledCdf(const double x) const
{
if (x >= 1.0)
return 1.0;
else if (x <= 0.0)
return 0.0;
else if (alpha_ == 1.0 && beta_ == 1.0)
return x;
else
return incompleteBeta(alpha_, beta_, x);
}
double Beta1D::unscaledExceedance(const double x) const
{
return 1.0 - unscaledCdf(x);
}
double Beta1D::unscaledQuantile(const double r1) const
{
if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error(
"In npstat::Beta1D::unscaledQuantile: "
"cdf argument outside of [0, 1] interval");
if (r1 == 0.0)
return 0.0;
else if (r1 == 1.0)
return 1.0;
else if (alpha_ == 1.0 && beta_ == 1.0)
return r1;
else
return inverseIncompleteBeta(alpha_, beta_, r1);
}
Gamma1D::Gamma1D(const double location, const double scale,
const double a)
: AbsScalableDistribution1D(location, scale),
alpha_(a)
{
initialize();
}
Gamma1D::Gamma1D(double location, double scale,
const std::vector<double>& params)
: AbsScalableDistribution1D(location, scale),
alpha_(params[0])
{
initialize();
}
void Gamma1D::initialize()
{
if (!(alpha_ > 0.0)) throw std::invalid_argument(
"In npstat::Gamma1D::initialize: invalid power parameter");
norm_ = 1.0/Gamma(alpha_);
}
bool Gamma1D::isEqual(const AbsDistribution1D& otherBase) const
{
const Gamma1D& r = static_cast<const Gamma1D&>(otherBase);
return AbsScalableDistribution1D::isEqual(r) && alpha_ == r.alpha_;
}
double Gamma1D::unscaledDensity(const double x) const
{
if (x > 0.0)
return norm_*pow(x, alpha_-1.0)*exp(-x);
else
return 0.0;
}
double Gamma1D::unscaledCdf(const double x) const
{
if (x > 0.0)
return incompleteGamma(alpha_, x);
else
return 0.0;
}
double Gamma1D::unscaledExceedance(const double x) const
{
if (x > 0.0)
return incompleteGammaC(alpha_, x);
else
return 1.0;
}
double Gamma1D::unscaledQuantile(const double r1) const
{
if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error(
"In npstat::Gamma1D::unscaledQuantile: "
"cdf argument outside of [0, 1] interval");
return inverseIncompleteGamma(alpha_, r1);
}
bool Gamma1D::write(std::ostream& os) const
{
AbsScalableDistribution1D::write(os);
gs::write_pod(os, alpha_);
return !os.fail();
}
Gamma1D* Gamma1D::read(const gs::ClassId& id, std::istream& in)
{
static const gs::ClassId current(gs::ClassId::makeId<Gamma1D>());
current.ensureSameId(id);
double location, scale, a;
if (AbsScalableDistribution1D::read(in, &location, &scale))
{
gs::read_pod(in, &a);
if (!in.fail())
return new Gamma1D(location, scale, a);
}
distributionReadError(in, classname());
return 0;
}
Gauss1D::Gauss1D(const double location, const double scale)
: AbsScalableDistribution1D(location, scale),
xmin_(inverseGaussCdf(0.0)), xmax_(inverseGaussCdf(1.0))
{
}
+ Gauss1D::Gauss1D(const double location, const double scale,
+ const std::vector<double>& /* params */)
+ : AbsScalableDistribution1D(location, scale),
+ xmin_(inverseGaussCdf(0.0)), xmax_(inverseGaussCdf(1.0))
+ {
+ }
+
double Gauss1D::unscaledDensity(const double x) const
{
if (x < xmin_ || x > xmax_)
return 0.0;
else
return exp(-x*x/2.0)/SQR2PI;
}
unsigned Gauss1D::random(AbsRandomGenerator& g,
double* generatedRandom) const
{
return gauss_random(location(), scale(), g, generatedRandom);
}
bool Gauss1D::write(std::ostream& os) const
{
return AbsScalableDistribution1D::write(os);
}
Gauss1D* Gauss1D::read(const gs::ClassId& id, std::istream& in)
{
static const gs::ClassId current(gs::ClassId::makeId<Gauss1D>());
current.ensureSameId(id);
double location, scale;
if (!AbsScalableDistribution1D::read(in, &location, &scale))
{
distributionReadError(in, classname());
return 0;
}
return new Gauss1D(location, scale);
}
double Gauss1D::unscaledCdf(const double x) const
{
if (x <= xmin_)
return 0.0;
if (x >= xmax_)
return 1.0;
if (x < 0.0)
return erfc(-x/SQRT2)/2.0;
else
return (1.0 + erf(x/SQRT2))/2.0;
}
double Gauss1D::unscaledExceedance(const double x) const
{
if (x <= xmin_)
return 1.0;
if (x >= xmax_)
return 0.0;
if (x > 0.0)
return erfc(x/SQRT2)/2.0;
else
return (1.0 - erf(x/SQRT2))/2.0;
}
double Gauss1D::unscaledQuantile(const double r1) const
{
if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error(
"In npstat::Gauss1D::unscaledQuantile: "
"cdf argument outside of [0, 1] interval");
return inverseGaussCdf(r1);
}
double Uniform1D::unscaledDensity(const double x) const
{
if (x >= 0.0 && x <= 1.0)
return 1.0;
else
return 0.0;
}
bool Uniform1D::write(std::ostream& os) const
{
return AbsScalableDistribution1D::write(os);
}
Uniform1D* Uniform1D::read(const gs::ClassId& id, std::istream& in)
{
static const gs::ClassId current(gs::ClassId::makeId<Uniform1D>());
current.ensureSameId(id);
double location, scale;
if (!AbsScalableDistribution1D::read(in, &location, &scale))
{
distributionReadError(in, classname());
return 0;
}
return new Uniform1D(location, scale);
}
double Uniform1D::unscaledCdf(const double x) const
{
if (x <= 0.0)
return 0.0;
else if (x >= 1.0)
return 1.0;
else
return x;
}
double Uniform1D::unscaledQuantile(const double r1) const
{
if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error(
"In npstat::Uniform1D::unscaledQuantile: "
"cdf argument outside of [0, 1] interval");
return r1;
}
double IsoscelesTriangle1D::unscaledDensity(const double x) const
{
if (x > -1.0 && x < 1.0)
return 1.0 - fabs(x);
else
return 0.0;
}
bool IsoscelesTriangle1D::write(std::ostream& os) const
{
return AbsScalableDistribution1D::write(os);
}
IsoscelesTriangle1D* IsoscelesTriangle1D::read(
const gs::ClassId& id, std::istream& in)
{
static const gs::ClassId current(
gs::ClassId::makeId<IsoscelesTriangle1D>());
current.ensureSameId(id);
double location, scale;
if (!AbsScalableDistribution1D::read(in, &location, &scale))
{
distributionReadError(in, classname());
return 0;
}
return new IsoscelesTriangle1D(location, scale);
}
double IsoscelesTriangle1D::unscaledCdf(const double x) const
{
if (x <= -1.0)
return 0.0;
else if (x >= 1.0)
return 1.0;
else if (x <= 0.0)
{
const double tmp = 1.0 + x;
return 0.5*tmp*tmp;
}
else
{
const double tmp = 1.0 - x;
return 1.0 - 0.5*tmp*tmp;
}
}
double IsoscelesTriangle1D::unscaledQuantile(const double r1) const
{
if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error(
"In npstat::IsoscelesTriangle1D::unscaledQuantile: "
"cdf argument outside of [0, 1] interval");
if (r1 == 0.0)
return -1.0;
else if (r1 == 1.0)
return 1.0;
else if (r1 <= 0.5)
return sqrt(2.0*r1) - 1.0;
else
return 1.0 - sqrt((1.0 - r1)*2.0);
}
bool Exponential1D::write(std::ostream& os) const
{
return AbsScalableDistribution1D::write(os);
}
Exponential1D* Exponential1D::read(const gs::ClassId& id, std::istream& in)
{
static const gs::ClassId current(gs::ClassId::makeId<Exponential1D>());
current.ensureSameId(id);
double location, scale;
if (!AbsScalableDistribution1D::read(in, &location, &scale))
{
distributionReadError(in, classname());
return 0;
}
return new Exponential1D(location, scale);
}
double Exponential1D::unscaledDensity(const double x) const
{
if (x < 0.0)
return 0.0;
const double eval = exp(-x);
return eval < DBL_MIN ? 0.0 : eval;
}
double Exponential1D::unscaledCdf(const double x) const
{
return x > 0.0 ? 1.0 - exp(-x) : 0.0;
}
double Exponential1D::unscaledQuantile(const double r1) const
{
if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error(
"In npstat::Exponential1D::unscaledQuantile: "
"cdf argument outside of [0, 1] interval");
if (r1 == 1.0)
return -log(DBL_MIN);
else
return -log(1.0 - r1);
}
double Exponential1D::unscaledExceedance(const double x) const
{
if (x < 0.0)
return 1.0;
const double eval = exp(-x);
return eval < DBL_MIN ? 0.0 : eval;
}
bool Logistic1D::write(std::ostream& os) const
{
return AbsScalableDistribution1D::write(os);
}
Logistic1D* Logistic1D::read(const gs::ClassId& id, std::istream& in)
{
static const gs::ClassId current(gs::ClassId::makeId<Logistic1D>());
current.ensureSameId(id);
double location, scale;
if (!AbsScalableDistribution1D::read(in, &location, &scale))
{
distributionReadError(in, classname());
return 0;
}
return new Logistic1D(location, scale);
}
double Logistic1D::unscaledDensity(const double x) const
{
const double eval = exp(-x);
if (eval < DBL_MIN)
return 0.0;
else
{
const double tmp = 1.0 + eval;
return eval/tmp/tmp;
}
}
double Logistic1D::unscaledCdf(const double x) const
{
const double lmax = -log(DBL_MIN);
if (x <= -lmax)
return 0.0;
else if (x >= lmax)
return 1.0;
else
return 1.0/(1.0 + exp(-x));
}
double Logistic1D::unscaledQuantile(const double r1) const
{
if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error(
"In npstat::Logistic1D::unscaledQuantile: "
"cdf argument outside of [0, 1] interval");
const double lmax = -log(DBL_MIN);
if (r1 == 0.0)
return -lmax;
else if (r1 == 1.0)
return lmax;
else
return log(r1/(1.0 - r1));
}
double Logistic1D::unscaledExceedance(const double x) const
{
const double lmax = -log(DBL_MIN);
if (x >= lmax)
return 0.0;
else if (x <= -lmax)
return 1.0;
else
{
const double eval = exp(-x);
return eval/(1.0 + eval);
}
}
bool Quadratic1D::write(std::ostream& os) const
{
AbsScalableDistribution1D::write(os);
gs::write_pod(os, a_);
gs::write_pod(os, b_);
return !os.fail();
}
Quadratic1D* Quadratic1D::read(const gs::ClassId& id, std::istream& in)
{
static const gs::ClassId current(gs::ClassId::makeId<Quadratic1D>());
current.ensureSameId(id);
double location, scale;
if (AbsScalableDistribution1D::read(in, &location, &scale))
{
double a, b;
gs::read_pod(in, &a);
gs::read_pod(in, &b);
if (!in.fail())
return new Quadratic1D(location, scale, a, b);
}
distributionReadError(in, classname());
return 0;
}
bool Quadratic1D::isEqual(const AbsDistribution1D& otherBase) const
{
const Quadratic1D& r = static_cast<const Quadratic1D&>(otherBase);
return AbsScalableDistribution1D::isEqual(r) &&
a_ == r.a_ && b_ == r.b_;
}
Quadratic1D::Quadratic1D(const double location, const double scale,
const double a, const double b)
: AbsScalableDistribution1D(location, scale), a_(a), b_(b)
{
verifyNonNegative();
}
Quadratic1D::Quadratic1D(const double location, const double scale,
const std::vector<double>& params)
: AbsScalableDistribution1D(location, scale),
a_(params[0]),
b_(params[1])
{
verifyNonNegative();
}
void Quadratic1D::verifyNonNegative()
{
const double a = 2.0*a_;
const double b = 2.0*b_;
if (b == 0.0)
{
if (fabs(a) > 1.0)
throw std::invalid_argument(
"In npstat::Quadratic1D::verifyNonNegative:"
" invalid distribution parameters");
}
else
{
double x1 = 0.0, x2 = 0.0;
const double sixb = 6*b;
if (solveQuadratic((2*a-sixb)/sixb, (1-a+b)/sixb, &x1, &x2))
{
if (!(fabs(x1 - 0.5) >= 0.5 && fabs(x2 - 0.5) >= 0.5))
throw std::invalid_argument(
"In npstat::Quadratic1D::verifyNonNegative:"
" invalid distribution parameters");
}
}
}
double Quadratic1D::unscaledDensity(const double x) const
{
if (x < 0.0 || x > 1.0)
return 0.0;
else
return 1.0 + 2.0*(b_ - a_ + x*(2.0*a_ + 6.0*b_*(x - 1.0)));
}
double Quadratic1D::unscaledCdf(const double x) const
{
if (x <= 0.0)
return 0.0;
else if (x >= 1.0)
return 1.0;
else
return x*(1.0 + 2.0*(b_ - a_ + x*(a_ - 3.0*b_ + 2.0*b_*x)));
}
double Quadratic1D::unscaledQuantile(const double r1) const
{
if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error(
"In npstat::Quadratic1D::unscaledQuantile: "
"cdf argument outside of [0, 1] interval");
if (r1 == 0.0)
return 0.0;
else if (r1 == 1.0)
return 1.0;
else
{
const double a = 2.0*a_;
const double b = 2.0*b_;
if (b == 0.0)
{
if (a == 0.0)
return r1;
else
{
double x0 = 0.0, x1 = 0.0;
const unsigned n = solveQuadratic(
(1.0 - a)/a, -r1/a, &x0, &x1);
if (!n) throw std::runtime_error(
"In npstat::Quadratic1D::unscaledQuantile: "
"no solutions");
if (fabs(x0 - 0.5) < fabs(x1 - 0.5))
return x0;
else
return x1;
}
}
else
{
const double twob = 2*b;
double x[3] = {0.0};
const unsigned n = solveCubic(
(a - 3*b)/twob, (1 - a + b)/twob, -r1/twob, x);
if (n == 1U)
return x[0];
else
{
unsigned ibest = 0;
double dbest = fabs(x[0] - 0.5);
for (unsigned i=1; i<n; ++i)
if (fabs(x[i] - 0.5) < dbest)
{
ibest = i;
dbest = fabs(x[i] - 0.5);
}
return x[ibest];
}
}
}
}
bool LogQuadratic1D::write(std::ostream& os) const
{
AbsScalableDistribution1D::write(os);
gs::write_pod(os, a_);
gs::write_pod(os, b_);
return !os.fail();
}
LogQuadratic1D* LogQuadratic1D::read(const gs::ClassId& id, std::istream& in)
{
static const gs::ClassId current(gs::ClassId::makeId<LogQuadratic1D>());
current.ensureSameId(id);
double location, scale, a, b;
if (AbsScalableDistribution1D::read(in, &location, &scale))
{
gs::read_pod(in, &a);
gs::read_pod(in, &b);
if (!in.fail())
return new LogQuadratic1D(location, scale, a, b);
}
distributionReadError(in, classname());
return 0;
}
bool LogQuadratic1D::isEqual(const AbsDistribution1D& otherBase) const
{
const LogQuadratic1D& r = static_cast<const LogQuadratic1D&>(
otherBase);
return AbsScalableDistribution1D::isEqual(r) &&
a_ == r.a_ && b_ == r.b_;
}
LogQuadratic1D::LogQuadratic1D(const double location, const double scale,
const double a, const double b)
: AbsScalableDistribution1D(location, scale), a_(a), b_(b)
{
normalize();
}
LogQuadratic1D::LogQuadratic1D(const double location, const double scale,
const std::vector<double>& params)
: AbsScalableDistribution1D(location, scale),
a_(params[0]),
b_(params[1])
{
normalize();
}
inline long double LogQuadratic1D::quadInteg(const long double x) const
{
return dawsonIntegral(x)*expl(x*x);
}
void LogQuadratic1D::normalize()
{
ref_ = 0.0L;
range_ = 1.0L;
k_ = 0.0;
s_ = 0.0;
norm_ = 1.0;
const double b = 2.0*b_;
const double a = 2.0*a_;
if (b > DBL_EPSILON)
{
k_ = sqrt(6.0*b);
s_ = 0.5 - a/(6.0*b);
ref_ = quadInteg(k_*s_);
range_ = ref_ - quadInteg(k_*(s_ - 1.0));
norm_ = k_/range_;
}
else if (b < -DBL_EPSILON)
{
k_ = sqrt(-6.0*b);
s_ = 0.5 - a/(6.0*b);
ref_ = erfl(k_*s_);
range_ = ref_ - erfl(k_*(s_ - 1.0));
norm_ = 2.0*k_/SQRPI/range_;
}
else if (fabs(a) > DBL_EPSILON)
{
range_ = expl(2.0L*a) - 1.0L;
if (fabs(a) > 1.e-10)
norm_ = a/sinh(a);
}
}
double LogQuadratic1D::unscaledDensity(const double x) const
{
if (x < 0.0 || x > 1.0)
return 0.0;
const double b = 2.0*b_;
if (fabs(b) > DBL_EPSILON)
{
const double delta = x - s_;
return norm_*exp(6.0*b*delta*delta);
}
const double a = 2.0*a_;
if (fabs(a) > DBL_EPSILON)
return norm_*exp((2.0*x - 1.0)*a);
else
return 1.0;
}
double LogQuadratic1D::unscaledCdf(const double x) const
{
if (x <= 0.0)
return 0.0;
else if (x >= 1.0)
return 1.0;
else
{
const double b = 2.0*b_;
const double a = 2.0*a_;
if (b > DBL_EPSILON)
return (ref_ - quadInteg(k_*(s_ - x)))/range_;
else if (b < -DBL_EPSILON)
return (ref_ - erfl(k_*(s_ - x)))/range_;
else if (fabs(a) > DBL_EPSILON)
return (expl(2.0L*a*x) - 1.0L)/range_;
else
return x;
}
}
double LogQuadratic1D::unscaledQuantile(const double r1) const
{
if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error(
"In npstat::LogQuadratic1D::unscaledQuantile: "
"cdf argument outside of [0, 1] interval");
if (r1 == 0.0)
return 0.0;
else if (r1 == 1.0)
return 1.0;
else
{
const double b = 2.0*b_;
const double a = 2.0*a_;
double q = 0.0;
if (b > DBL_EPSILON)
q = s_ - inverseExpsqIntegral(ref_ - r1*range_)/k_;
else if (b < -DBL_EPSILON)
q = s_ - inverseErf(ref_ - r1*range_)/k_;
else if (fabs(a) > DBL_EPSILON)
q = logl(r1*range_ + 1.0L)/2.0/a;
else
q = r1;
if (q < 0.0)
q = 0.0;
else if (q > 1.0)
q = 1.0;
return q;
}
}
bool TruncatedGauss1D::write(std::ostream& os) const
{
AbsScalableDistribution1D::write(os);
gs::write_pod(os, nsigma_);
return !os.fail();
}
TruncatedGauss1D* TruncatedGauss1D::read(
const gs::ClassId& id, std::istream& in)
{
static const gs::ClassId current(
gs::ClassId::makeId<TruncatedGauss1D>());
current.ensureSameId(id);
double location, scale, nsig;
if (AbsScalableDistribution1D::read(in, &location, &scale))
{
gs::read_pod(in, &nsig);
if (!in.fail())
return new TruncatedGauss1D(location, scale, nsig);
}
distributionReadError(in, classname());
return 0;
}
bool TruncatedGauss1D::isEqual(const AbsDistribution1D& otherBase) const
{
const TruncatedGauss1D& r =
static_cast<const TruncatedGauss1D&>(otherBase);
return AbsScalableDistribution1D::isEqual(r) && nsigma_ == r.nsigma_;
}
void TruncatedGauss1D::initialize()
{
if (nsigma_ <= 0.0) throw std::invalid_argument(
"In npstat::TruncatedGauss1D::initialize: "
"invalid truncation parameter");
const double maxSig = inverseGaussCdf(1.0);
if (nsigma_ >= maxSig)
{
nsigma_ = maxSig;
cdf0_ = 0.0;
norm_ = 1.0;
}
else
{
cdf0_ = erfc(nsigma_/SQRT2)/2.0;
const double u = (1.0 + erf(nsigma_/SQRT2))/2.0;
norm_ = 1.0/(u - cdf0_);
}
}
TruncatedGauss1D::TruncatedGauss1D(const double location,
const double scale,
const double i_nsigma)
: AbsScalableDistribution1D(location, scale),
nsigma_(i_nsigma)
{
initialize();
}
TruncatedGauss1D::TruncatedGauss1D(const double location,
const double scale,
const std::vector<double>& params)
: AbsScalableDistribution1D(location, scale),
nsigma_(params[0])
{
initialize();
}
double TruncatedGauss1D::unscaledDensity(const double x) const
{
if (fabs(x) > nsigma_)
return 0.0;
else
return norm_*exp(-x*x/2.0)/SQR2PI;
}
unsigned TruncatedGauss1D::random(AbsRandomGenerator& g,
double* generatedRandom) const
{
const double m = location();
const double s = scale();
unsigned cnt = gauss_random(m, s, g, generatedRandom);
while (fabs(*generatedRandom - m) > nsigma_*s)
cnt += gauss_random(m, s, g, generatedRandom);
return cnt;
}
double TruncatedGauss1D::unscaledCdf(const double x) const
{
if (x <= -nsigma_)
return 0.0;
else if (x >= nsigma_)
return 1.0;
else if (x < 0.0)
return (erfc(-x/SQRT2)/2.0 - cdf0_)*norm_;
else
return ((1.0 + erf(x/SQRT2))/2.0 - cdf0_)*norm_;
}
double TruncatedGauss1D::unscaledQuantile(const double r1) const
{
if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error(
"In npstat::TruncatedGauss1D::unscaledQuantile: "
"cdf argument outside of [0, 1] interval");
if (r1 == 0.0)
return -nsigma_;
else if (r1 == 1.0)
return nsigma_;
else
return inverseGaussCdf(r1/norm_ + cdf0_);
}
bool MirroredGauss1D::isEqual(const AbsDistribution1D& otherBase) const
{
const MirroredGauss1D& r =
static_cast<const MirroredGauss1D&>(otherBase);
return AbsScalableDistribution1D::isEqual(r) &&
mu0_ == r.mu0_ && sigma0_ == r.sigma0_;
}
MirroredGauss1D::MirroredGauss1D(const double location, const double scale,
const double mean, double const sigma)
: AbsScalableDistribution1D(location, scale),
mu0_(mean),
sigma0_(sigma)
{
validate();
}
MirroredGauss1D::MirroredGauss1D(const double location,
const double scale,
const std::vector<double>& params)
: AbsScalableDistribution1D(location, scale),
mu0_(params[0]),
sigma0_(params[1])
{
validate();
}
bool MirroredGauss1D::write(std::ostream& os) const
{
AbsScalableDistribution1D::write(os);
gs::write_pod(os, mu0_);
gs::write_pod(os, sigma0_);
return !os.fail();
}
MirroredGauss1D* MirroredGauss1D::read(
const gs::ClassId& id, std::istream& in)
{
static const gs::ClassId current(
gs::ClassId::makeId<MirroredGauss1D>());
current.ensureSameId(id);
double location, scale, mu, sig;
if (AbsScalableDistribution1D::read(in, &location, &scale))
{
gs::read_pod(in, &mu);
gs::read_pod(in, &sig);
if (!in.fail())
return new MirroredGauss1D(location, scale, mu, sig);
}
distributionReadError(in, classname());
return 0;
}
double MirroredGauss1D::unscaledDensity(const double x) const
{
if (x < 0.0 || x > 1.0)
return 0.0;
Gauss1D g(x, sigma0_);
long double acc = g.density(mu0_)*1.0L + g.density(-mu0_);
for (unsigned k=1; ; ++k)
{
const long double old = acc;
acc += g.density(2.0*k + mu0_);
acc += g.density(2.0*k - mu0_);
acc += g.density(-2.0*k + mu0_);
acc += g.density(-2.0*k - mu0_);
if (old == acc)
break;
}
return acc;
}
long double MirroredGauss1D::ldCdf(const double x) const
{
if (x <= 0.0)
return 0.0L;
else if (x >= 1.0)
return 1.0L;
else
{
long double acc = 0.0L;
{
Gauss1D g(mu0_, sigma0_);
acc += (g.cdf(x) - g.cdf(0.0));
}
{
Gauss1D g(-mu0_, sigma0_);
acc += (g.cdf(x) - g.cdf(0.0));
}
for (unsigned k=1; ; ++k)
{
const long double old = acc;
{
Gauss1D g(2.0*k + mu0_, sigma0_);
acc += (g.cdf(x) - g.cdf(0.0));
}
{
Gauss1D g(2.0*k - mu0_, sigma0_);
acc += (g.cdf(x) - g.cdf(0.0));
}
{
Gauss1D g(-2.0*k + mu0_, sigma0_);
acc -= (g.exceedance(x) - g.exceedance(0.0));
}
{
Gauss1D g(-2.0*k - mu0_, sigma0_);
acc -= (g.exceedance(x) - g.exceedance(0.0));
}
if (old == acc)
break;
}
return acc;
}
}
double MirroredGauss1D::unscaledCdf(const double x) const
{
return ldCdf(x);
}
double MirroredGauss1D::unscaledExceedance(const double x) const
{
return 1.0L - ldCdf(x);
}
double MirroredGauss1D::unscaledQuantile(const double r1) const
{
if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error(
"In npstat::MirroredGauss1D::unscaledQuantile: "
"cdf argument outside of [0, 1] interval");
if (r1 == 0.0)
return 0.0;
else if (r1 == 1.0)
return 1.0;
else
{
const long double ldr1 = r1;
double xmin = 0.0;
double xmax = 1.0;
for (unsigned i=0; i<1000; ++i)
{
if ((xmax - xmin)/xmax <= 2.0*DBL_EPSILON)
break;
const double xtry = (xmin + xmax)/2.0;
const long double ld = ldCdf(xtry);
if (ld == ldr1)
return xtry;
else if (ld > ldr1)
xmax = xtry;
else
xmin = xtry;
}
return (xmin + xmax)/2.0;
}
}
void MirroredGauss1D::validate()
{
if (mu0_ < 0.0 || mu0_ > 1.0) throw std::invalid_argument(
"In MirroredGauss1D::validate: interval mean must be within [0, 1]");
if (sigma0_ <= 0.0) throw std::invalid_argument(
"In MirroredGauss1D::validate: interval sigma must be positive");
}
BifurcatedGauss1D::BifurcatedGauss1D(
const double location, const double scale,
const double i_leftSigmaFraction,
const double i_nSigmasLeft, const double i_nSigmasRight)
: AbsScalableDistribution1D(location, scale),
leftSigma_(i_leftSigmaFraction*2.0),
rightSigma_(2.0 - leftSigma_),
nSigmasLeft_(i_nSigmasLeft),
nSigmasRight_(i_nSigmasRight)
{
initialize();
}
BifurcatedGauss1D::BifurcatedGauss1D(const double location,
const double scale,
const std::vector<double>& params)
: AbsScalableDistribution1D(location, scale),
leftSigma_(params[0]*2.0),
rightSigma_(2.0 - leftSigma_),
nSigmasLeft_(params[1]),
nSigmasRight_(params[2])
{
initialize();
}
void BifurcatedGauss1D::initialize()
{
if (leftSigma_ < 0.0 || rightSigma_ < 0.0)
throw std::invalid_argument(
"In npstat::BifurcatedGauss1D::initialize: "
"invalid left sigma fraction");
if (nSigmasLeft_ < 0.0) throw std::invalid_argument(
"In npstat::BifurcatedGauss1D::initialize: "
"invalid left truncation parameter");
if (nSigmasRight_ < 0.0) throw std::invalid_argument(
"In npstat::BifurcatedGauss1D::initialize: "
"invalid right truncation parameter");
if (nSigmasLeft_ + nSigmasRight_ == 0.0) throw std::invalid_argument(
"In npstat::BifurcatedGauss1D::initialize: "
"both truncation parameters can not be 0");
const double maxNSigma = inverseGaussCdf(1.0);
if (nSigmasRight_ > maxNSigma)
nSigmasRight_ = maxNSigma;
if (nSigmasLeft_ > maxNSigma)
nSigmasLeft_ = maxNSigma;
cdf0Left_ = erfc(nSigmasLeft_/SQRT2)/2.0;
cdf0Right_ = (1.0 + erf(nSigmasRight_/SQRT2))/2.0;
assert(cdf0Right_ > cdf0Left_);
const double leftArea = (0.5 - cdf0Left_)*leftSigma_;
const double rightArea = (cdf0Right_ - 0.5)*rightSigma_;
norm_ = 1.0/(leftArea + rightArea);
leftCdfFrac_ = leftArea/(leftArea + rightArea);
}
double BifurcatedGauss1D::unscaledDensity(const double x) const
{
if (x == 0.0)
return norm_/SQR2PI;
else if (x > 0.0)
{
if (x > rightSigma_*nSigmasRight_)
return 0.0;
else
{
const double dx = x/rightSigma_;
return norm_*exp(-dx*dx/2.0)/SQR2PI;
}
}
else
{
if (x < -leftSigma_*nSigmasLeft_)
return 0.0;
else
{
const double dx = x/leftSigma_;
return norm_*exp(-dx*dx/2.0)/SQR2PI;
}
}
}
double BifurcatedGauss1D::unscaledCdf(const double x) const
{
if (x == 0.0)
return leftCdfFrac_;
else if (x > 0.0)
{
if (x > rightSigma_*nSigmasRight_)
return 1.0;
else
{
const double dx = x/rightSigma_;
const double cdfDelta = (1.0 + erf(dx/SQRT2))/2.0 - cdf0Right_;
return 1.0 + cdfDelta*(1.0 - leftCdfFrac_)/(cdf0Right_ - 0.5);
}
}
else
{
if (x < -leftSigma_*nSigmasLeft_)
return 0.0;
else
{
const double dx = x/leftSigma_;
const double cdfDelta = erfc(-dx/SQRT2)/2.0 - cdf0Left_;
return cdfDelta*leftCdfFrac_/(0.5 - cdf0Left_);
}
}
}
double BifurcatedGauss1D::unscaledExceedance(const double x) const
{
return 1.0 - unscaledCdf(x);
}
double BifurcatedGauss1D::unscaledQuantile(const double r1) const
{
if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error(
"In npstat::BifurcatedGauss1D::unscaledQuantile: "
"cdf argument outside of [0, 1] interval");
if (r1 == 0.0)
return -nSigmasLeft_*leftSigma_;
else if (r1 == 1.0)
return nSigmasRight_*rightSigma_;
else
{
if (r1 == leftCdfFrac_)
return 0.0;
else if (r1 < leftCdfFrac_)
{
// Map 0 into cdf0Left_ and leftCdfFrac_ into 0.5
const double arg = r1/leftCdfFrac_*(0.5-cdf0Left_) + cdf0Left_;
return leftSigma_*inverseGaussCdf(arg);
}
else
{
// Map leftCdfFrac_ into 0.5 and 1.0 into cdf0Right_
const double d = (r1 - leftCdfFrac_)/(1.0 - leftCdfFrac_);
const double arg = 0.5 + d*(cdf0Right_ - 0.5);
return rightSigma_*inverseGaussCdf(arg);
}
}
}
bool BifurcatedGauss1D::isEqual(const AbsDistribution1D& otherBase) const
{
const BifurcatedGauss1D& r =
static_cast<const BifurcatedGauss1D&>(otherBase);
return AbsScalableDistribution1D::isEqual(r) &&
leftSigma_ == r.leftSigma_ &&
rightSigma_ == r.rightSigma_ &&
nSigmasLeft_ == r.nSigmasLeft_ &&
nSigmasRight_ == r.nSigmasRight_ &&
norm_ == r.norm_ &&
leftCdfFrac_ == r.leftCdfFrac_ &&
cdf0Left_ == r.cdf0Left_ &&
cdf0Right_ == r.cdf0Right_;
}
bool BifurcatedGauss1D::write(std::ostream& os) const
{
AbsScalableDistribution1D::write(os);
gs::write_pod(os, leftSigma_);
gs::write_pod(os, rightSigma_);
gs::write_pod(os, nSigmasLeft_);
gs::write_pod(os, nSigmasRight_);
gs::write_pod(os, norm_);
gs::write_pod(os, leftCdfFrac_);
gs::write_pod(os, cdf0Left_);
gs::write_pod(os, cdf0Right_);
return !os.fail();
}
BifurcatedGauss1D::BifurcatedGauss1D(const double location,
const double scale)
: AbsScalableDistribution1D(location, scale)
{
}
BifurcatedGauss1D* BifurcatedGauss1D::read(
const gs::ClassId& id, std::istream& in)
{
static const gs::ClassId current(
gs::ClassId::makeId<BifurcatedGauss1D>());
current.ensureSameId(id);
double location, scale;
if (AbsScalableDistribution1D::read(in, &location, &scale))
{
BifurcatedGauss1D* ptr = new BifurcatedGauss1D(location, scale);
gs::read_pod(in, &ptr->leftSigma_);
gs::read_pod(in, &ptr->rightSigma_);
gs::read_pod(in, &ptr->nSigmasLeft_);
gs::read_pod(in, &ptr->nSigmasRight_);
gs::read_pod(in, &ptr->norm_);
gs::read_pod(in, &ptr->leftCdfFrac_);
gs::read_pod(in, &ptr->cdf0Left_);
gs::read_pod(in, &ptr->cdf0Right_);
if (!in.fail() &&
ptr->leftSigma_ >= 0.0 &&
ptr->rightSigma_ >= 0.0 &&
ptr->leftSigma_ + ptr->rightSigma_ > 0.0 &&
ptr->nSigmasLeft_ >= 0.0 &&
ptr->nSigmasRight_ >= 0.0 &&
ptr->nSigmasLeft_ + ptr->nSigmasRight_ > 0.0 &&
ptr->norm_ > 0.0 &&
ptr->leftCdfFrac_ >= 0.0 &&
ptr->cdf0Left_ >= 0.0 &&
ptr->cdf0Right_ > ptr->cdf0Left_)
return ptr;
else
delete ptr;
}
distributionReadError(in, classname());
return 0;
}
Cauchy1D::Cauchy1D(const double location, const double scale,
const std::vector<double>& /* params */)
: AbsScalableDistribution1D(location, scale),
support_(sqrt(DBL_MAX/M_PI))
{
}
Cauchy1D::Cauchy1D(const double location, const double scale)
: AbsScalableDistribution1D(location, scale),
support_(sqrt(DBL_MAX/M_PI))
{
}
bool Cauchy1D::write(std::ostream& os) const
{
return AbsScalableDistribution1D::write(os);
}
Cauchy1D* Cauchy1D::read(const gs::ClassId& id, std::istream& in)
{
static const gs::ClassId current(gs::ClassId::makeId<Cauchy1D>());
current.ensureSameId(id);
double location, scale;
if (!AbsScalableDistribution1D::read(in, &location, &scale))
{
distributionReadError(in, classname());
return 0;
}
return new Cauchy1D(location, scale);
}
double Cauchy1D::unscaledDensity(const double x) const
{
if (fabs(x) < support_)
return 1.0/M_PI/(1.0 + x*x);
else
return 0.0;
}
double Cauchy1D::unscaledCdf(const double x) const
{
if (x < -support_)
return 0.0;
else if (x > support_)
return 1.0;
else
return atan(x)/M_PI + 0.5;
}
double Cauchy1D::unscaledQuantile(const double x) const
{
if (!(x >= 0.0 && x <= 1.0)) throw std::domain_error(
"In npstat::Cauchy1D::unscaledQuantile: "
"cdf argument outside of [0, 1] interval");
if (x == 0.0)
return -support_;
else if (x == 1.0)
return support_;
else
return tan(M_PI*(x - 0.5));
}
bool LogNormal::isEqual(const AbsDistribution1D& otherBase) const
{
const LogNormal& r = static_cast<const LogNormal&>(otherBase);
return AbsScalableDistribution1D::isEqual(r) &&
skew_ == r.skew_;
}
bool LogNormal::write(std::ostream& os) const
{
AbsScalableDistribution1D::write(os);
gs::write_pod(os, skew_);
return !os.fail();
}
LogNormal* LogNormal::read(const gs::ClassId& id, std::istream& in)
{
static const gs::ClassId current(gs::ClassId::makeId<LogNormal>());
current.ensureSameId(id);
double location, scale, skew;
if (AbsScalableDistribution1D::read(in, &location, &scale))
{
gs::read_pod(in, &skew);
if (!in.fail())
return new LogNormal(location, scale, skew);
}
distributionReadError(in, classname());
return 0;
}
void LogNormal::initialize()
{
logw_ = 0.0;
s_ = 0.0;
xi_ = 0.0;
emgamovd_ = 0.0;
if (skew_)
{
const double b1 = skew_*skew_;
const double tmp = pow((2.0+b1+sqrt(b1*(4.0+b1)))/2.0, 1.0/3.0);
const double w = tmp + 1.0/tmp - 1.0;
logw_ = log(w);
if (logw_ > 0.0)
{
s_ = sqrt(logw_);
emgamovd_ = 1.0/sqrt(w*(w-1.0));
xi_ = -emgamovd_*sqrt(w);
}
else
{
// This is not different from a Gaussian within
// the numerical precision of our calculations
logw_ = 0.0;
skew_ = 0.0;
}
}
}
LogNormal::LogNormal(const double mean, const double stdev,
const double skewness)
: AbsScalableDistribution1D(mean, stdev),
skew_(skewness)
{
initialize();
}
LogNormal::LogNormal(const double mean, const double stdev,
const std::vector<double>& params)
: AbsScalableDistribution1D(mean, stdev),
skew_(params[0])
{
initialize();
}
double LogNormal::unscaledDensity(const double x) const
{
if (skew_)
{
const double diff = skew_ > 0.0 ? x - xi_ : -x - xi_;
if (diff <= 0.0)
return 0.0;
else
{
const double lg = log(diff/emgamovd_);
return exp(-lg*lg/2.0/logw_)/s_/SQR2PI/diff;
}
}
else
{
// This is a Gaussian
return exp(-x*x/2.0)/SQR2PI;
}
}
double LogNormal::unscaledCdf(const double x) const
{
if (skew_)
{
const double diff = skew_ > 0.0 ? x - xi_ : -x - xi_;
double posCdf = 0.0;
if (diff > 0.0)
posCdf = (1.0 + erf(log(diff/emgamovd_)/s_/SQRT2))/2.0;
return skew_ > 0.0 ? posCdf : 1.0 - posCdf;
}
else
return (1.0 + erf(x/SQRT2))/2.0;
}
double LogNormal::unscaledExceedance(const double x) const
{
return 1.0 - unscaledCdf(x);
}
double LogNormal::unscaledQuantile(const double r1) const
{
if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error(
"In npstat::LogNormal::unscaledQuantile: "
"cdf argument outside of [0, 1] interval");
const double g = inverseGaussCdf(skew_ >= 0.0 ? r1 : 1.0 - r1);
if (skew_)
{
const double v = emgamovd_*exp(s_*g) + xi_;
return skew_ > 0.0 ? v : -v;
}
else
return g;
}
Moyal1D::Moyal1D(const double location, const double scale)
: AbsScalableDistribution1D(location, scale),
xmax_(-2.0*log(DBL_MIN*SQR2PI)),
xmin_(-log(xmax_))
{
}
Moyal1D::Moyal1D(const double location, const double scale,
const std::vector<double>& /* params */)
: AbsScalableDistribution1D(location, scale),
xmax_(-2.0*log(DBL_MIN*SQR2PI)),
xmin_(-log(xmax_))
{
}
double Moyal1D::unscaledDensity(const double x) const
{
if (x <= xmin_ || x >= xmax_)
return 0.0;
else
return exp(-0.5*(x + exp(-x)))/SQR2PI;
}
double Moyal1D::unscaledCdf(const double x) const
{
if (x <= xmin_)
return 0.0;
else if (x >= xmax_)
return 1.0;
else
return incompleteGammaC(0.5, 0.5*exp(-x));
}
double Moyal1D::unscaledExceedance(const double x) const
{
if (x <= xmin_)
return 1.0;
else if (x >= xmax_)
return 0.0;
else
return incompleteGamma(0.5, 0.5*exp(-x));
}
double Moyal1D::unscaledQuantile(const double r1) const
{
if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error(
"In npstat::Moyal1D::unscaledQuantile: "
"cdf argument outside of [0, 1] interval");
if (r1 == 0.0)
return xmin_;
else if (r1 == 1.0)
return xmax_;
else
{
const double d = inverseIncompleteGammaC(0.5, r1);
return -log(2.0*d);
}
}
bool Moyal1D::write(std::ostream& os) const
{
return AbsScalableDistribution1D::write(os);
}
Moyal1D* Moyal1D::read(const gs::ClassId& id, std::istream& in)
{
static const gs::ClassId current(gs::ClassId::makeId<Moyal1D>());
current.ensureSameId(id);
double location, scale;
if (!AbsScalableDistribution1D::read(in, &location, &scale))
{
distributionReadError(in, classname());
return 0;
}
return new Moyal1D(location, scale);
}
bool Pareto1D::write(std::ostream& os) const
{
AbsScalableDistribution1D::write(os);
gs::write_pod(os, c_);
return !os.fail();
}
Pareto1D* Pareto1D::read(const gs::ClassId& id, std::istream& in)
{
static const gs::ClassId current(gs::ClassId::makeId<Pareto1D>());
current.ensureSameId(id);
double location, scale, c;
if (AbsScalableDistribution1D::read(in, &location, &scale))
{
gs::read_pod(in, &c);
if (!in.fail())
return new Pareto1D(location, scale, c);
}
distributionReadError(in, classname());
return 0;
}
bool Pareto1D::isEqual(const AbsDistribution1D& otherBase) const
{
const Pareto1D& r = static_cast<const Pareto1D&>(otherBase);
return AbsScalableDistribution1D::isEqual(r) &&
c_ == r.c_;
}
void Pareto1D::initialize()
{
if (c_ <= 0.0) throw std::invalid_argument(
"In npstat::Pareto1D::initialize: power parameter must be positive");
if (c_ > 1.0)
support_ = pow(1.0/DBL_MIN, 1.0/c_);
else
support_ = 1.0/DBL_MIN;
}
Pareto1D::Pareto1D(const double location, const double scale,
const double powerParam)
: AbsScalableDistribution1D(location, scale),
c_(powerParam)
{
initialize();
}
Pareto1D::Pareto1D(const double location, const double scale,
const std::vector<double>& params)
: AbsScalableDistribution1D(location, scale),
c_(params[0])
{
initialize();
}
double Pareto1D::unscaledDensity(const double x) const
{
if (x < 1.0 || x > support_)
return 0.0;
else
return c_/pow(x, c_ + 1.0);
}
double Pareto1D::unscaledCdf(const double x) const
{
if (x <= 1.0)
return 0.0;
else if (x >= support_)
return 1.0;
else
return 1.0 - 1.0/pow(x, c_);
}
double Pareto1D::unscaledQuantile(const double r1) const
{
if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error(
"In npstat::Pareto1D::unscaledQuantile: "
"cdf argument outside of [0, 1] interval");
if (r1 == 0.0)
return 1.0;
else if (r1 == 1.0)
return support_;
else
return pow(1.0 - r1, -1.0/c_);
}
double Pareto1D::unscaledExceedance(const double x) const
{
if (x <= 1.0)
return 1.0;
else if (x >= support_)
return 0.0;
else
return 1.0/pow(x, c_);
}
bool UniPareto1D::write(std::ostream& os) const
{
AbsScalableDistribution1D::write(os);
gs::write_pod(os, c_);
return !os.fail();
}
UniPareto1D* UniPareto1D::read(const gs::ClassId& id, std::istream& in)
{
static const gs::ClassId current(gs::ClassId::makeId<UniPareto1D>());
current.ensureSameId(id);
double location, scale, c;
if (AbsScalableDistribution1D::read(in, &location, &scale))
{
gs::read_pod(in, &c);
if (!in.fail())
return new UniPareto1D(location, scale, c);
}
distributionReadError(in, classname());
return 0;
}
bool UniPareto1D::isEqual(const AbsDistribution1D& otherBase) const
{
const UniPareto1D& r = static_cast<const UniPareto1D&>(otherBase);
return AbsScalableDistribution1D::isEqual(r) &&
c_ == r.c_;
}
void UniPareto1D::initialize()
{
if (c_ <= 0.0) throw std::invalid_argument(
"In npstat::UniPareto1D::initialize: power parameter must be positive");
if (c_ > 1.0)
support_ = pow(1.0/DBL_MIN, 1.0/c_);
else
support_ = 1.0/DBL_MIN;
amplitude_ = c_/(c_ + 1.0);
}
UniPareto1D::UniPareto1D(const double location, const double scale,
const double powerParam)
: AbsScalableDistribution1D(location, scale),
c_(powerParam)
{
initialize();
}
UniPareto1D::UniPareto1D(const double location, const double scale,
const std::vector<double>& params)
: AbsScalableDistribution1D(location, scale),
c_(params[0])
{
initialize();
}
double UniPareto1D::unscaledDensity(const double x) const
{
if (x < 0.0 || x > support_)
return 0.0;
else if (x <= 1.0)
return amplitude_;
else
return amplitude_/pow(x, c_ + 1.0);
}
double UniPareto1D::unscaledCdf(const double x) const
{
if (x <= 0.0)
return 0.0;
else if (x >= support_)
return 1.0;
else if (x <= 1.0)
return x*amplitude_;
else
return amplitude_ + (1.0 - amplitude_)*(1.0 - 1.0/pow(x, c_));
}
double UniPareto1D::unscaledQuantile(const double r1) const
{
if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error(
"In npstat::UniPareto1D::unscaledQuantile: "
"cdf argument outside of [0, 1] interval");
if (r1 <= amplitude_)
return r1/amplitude_;
else if (r1 == 1.0)
return support_;
else
return pow(1.0 - (r1 - amplitude_)/(1.0 - amplitude_), -1.0/c_);
}
double UniPareto1D::unscaledExceedance(const double x) const
{
if (x > 1.0)
return (1.0 - amplitude_)/pow(x, c_);
else
return 1.0 - unscaledCdf(x);
}
bool Huber1D::write(std::ostream& os) const
{
AbsScalableDistribution1D::write(os);
gs::write_pod(os, tailWeight_);
return !os.fail();
}
Huber1D* Huber1D::read(const gs::ClassId& id, std::istream& in)
{
static const gs::ClassId current(gs::ClassId::makeId<Huber1D>());
current.ensureSameId(id);
double location, scale, tailWeight;
if (AbsScalableDistribution1D::read(in, &location, &scale))
{
gs::read_pod(in, &tailWeight);
if (!in.fail())
return new Huber1D(location, scale, tailWeight);
}
distributionReadError(in, classname());
return 0;
}
bool Huber1D::isEqual(const AbsDistribution1D& otherBase) const
{
const Huber1D& r = static_cast<const Huber1D&>(otherBase);
return AbsScalableDistribution1D::isEqual(r) &&
tailWeight_ == r.tailWeight_;
}
void Huber1D::initialize()
{
if (!(tailWeight_ >= 0.0 && tailWeight_ < 1.0))
throw std::invalid_argument(
"In npstat::Huber1D::initialize: "
"tail weight not inside [0, 1) interval");
if (tailWeight_ == 0.0)
{
// Pure Gaussian
a_ = DBL_MAX;
normfactor_ = 1.0/sqrt(2.0*M_PI);
support_ = inverseGaussCdf(1.0);
cdf0_ = 0.0;
}
else
{
// Solve the equation for "a" by bisection
const double eps = 2.0*DBL_EPSILON;
double c = -2.0*log(tailWeight_);
assert(c > 0.0);
assert(weight(c) <= tailWeight_);
double b = 0.0;
while ((c - b)/(c + b) > eps)
{
const double half = (c + b)/2.0;
if (weight(half) >= tailWeight_)
b = half;
else
c = half;
}
a_ = (c + b)/2.0;
normfactor_ = 0.5/(exp(-a_*a_/2.0)/a_ +
sqrt(M_PI/2.0)*erf(a_/SQRT2));
support_ = a_/2.0 - log(DBL_MIN)/a_;
cdf0_ = (1.0 + erf(-a_/SQRT2))/2.0;
}
}
Huber1D::Huber1D(const double location, const double scale,
const double tailWeight)
: AbsScalableDistribution1D(location, scale),
tailWeight_(tailWeight)
{
initialize();
}
Huber1D::Huber1D(const double location, const double scale,
const std::vector<double>& params)
: AbsScalableDistribution1D(location, scale),
tailWeight_(params[0])
{
initialize();
}
double Huber1D::unscaledDensity(const double x) const
{
const double absx = fabs(x);
if (absx <= a_)
return normfactor_*exp(-x*x/2.0);
else
return normfactor_*exp(a_*(a_/2.0 - absx));
}
double Huber1D::unscaledCdf(const double x) const
{
if (tailWeight_ == 0.0)
return (1.0 + erf(x/SQRT2))/2.0;
if (x < -a_)
return normfactor_*exp((a_*(a_ + 2*x))/2.0)/a_;
else if (x <= a_)
{
static const double sq1 = sqrt(M_PI/2.0);
static const double sq2 = sqrt(2.0);
return normfactor_*sq1*(erf(a_/sq2) + erf(x/sq2)) + tailWeight_/2;
}
else
return 1.0 - normfactor_*exp((a_*(a_ - 2*x))/2.0)/a_;
}
double Huber1D::unscaledQuantile(const double r1) const
{
if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error(
"In npstat::Huber1D::unscaledQuantile: "
"cdf argument outside of [0, 1] interval");
if (tailWeight_ == 0.0)
return inverseGaussCdf(r1);
if (r1 == 0.0)
return -support_;
else if (r1 == 1.0)
return support_;
else if (r1 <= tailWeight_/2.0)
return log(r1*a_/normfactor_)/a_ - 0.5*a_;
else if (r1 < 1.0 - tailWeight_/2.0)
{
const double t = (r1 - tailWeight_/2.0)/normfactor_/SQR2PI + cdf0_;
return inverseGaussCdf(t);
}
else
return 0.5*a_ - log((1.0 - r1)*a_/normfactor_)/a_;
}
double Huber1D::weight(const double a) const
{
static const double sq1 = sqrt(M_PI/2.0);
return 1.0/(1.0 + a*exp(a*a/2.0)*sq1*erf(a/SQRT2));
}
bool Tabulated1D::write(std::ostream& os) const
{
AbsScalableDistribution1D::write(os);
gs::write_pod(os, deg_);
gs::write_pod_vector(os, table_);
return !os.fail();
}
Tabulated1D* Tabulated1D::read(const gs::ClassId& id, std::istream& in)
{
static const gs::ClassId current(gs::ClassId::makeId<Tabulated1D>());
current.ensureSameId(id);
double location, scale;
if (AbsScalableDistribution1D::read(in, &location, &scale))
{
unsigned deg = 0;
gs::read_pod(in, &deg);
std::vector<double> table;
gs::read_pod_vector(in, &table);
if (!in.fail() && table.size())
return new Tabulated1D(location, scale,
&table[0], table.size(), deg);
}
distributionReadError(in, classname());
return 0;
}
bool Tabulated1D::isEqual(const AbsDistribution1D& otherBase) const
{
const Tabulated1D& r = static_cast<const Tabulated1D&>(otherBase);
return AbsScalableDistribution1D::isEqual(r) &&
table_ == r.table_ && deg_ == r.deg_;
}
Tabulated1D::Tabulated1D(const double location, const double scale,
const std::vector<double>& params)
: AbsScalableDistribution1D(location, scale)
{
const unsigned npara = params.size();
if (npara)
initialize(&params[0], npara, std::min(3U, npara-1U));
else
initialize(static_cast<double*>(0), 0U, 0U);
}
void Tabulated1D::normalize()
{
cdf_.clear();
cdf_.reserve(len_);
cdf_.push_back(0.0);
long double sum = 0.0L;
for (unsigned i=0; i<len_-1; ++i)
{
sum += intervalInteg(i);
cdf_.push_back(static_cast<double>(sum));
}
double norm = cdf_[len_ - 1];
assert(norm > 0.0);
for (unsigned i=0; i<len_; ++i)
{
table_[i] /= norm;
cdf_[i] /= norm;
}
exceed_.resize(len_);
exceed_[len_ - 1U] = 0.0;
sum = 0.0L;
for (unsigned i=len_-1; i>0; --i)
{
sum += intervalInteg(i-1);
exceed_[i-1] = static_cast<double>(sum);
}
norm = exceed_[0];
for (unsigned i=0; i<len_; ++i)
exceed_[i] /= norm;
}
double Tabulated1D::intervalInteg(const unsigned i) const
{
// The formula used here is exact for cubic polynomials
static const double legendreRootOver2 = 0.5/sqrt(3.0);
const double x0 = step_*(i + 0.5);
const double v0 = unscaledDensity(x0 - legendreRootOver2*step_);
const double v1 = unscaledDensity(x0 + legendreRootOver2*step_);
return step_*(v0 + v1)/2.0;
}
double Tabulated1D::interpolate(const double x) const
{
if (x < 0.0 || x > 1.0)
return 0.0;
if (x == 0.0)
return table_[0];
if (x == 1.0)
return table_[len_ - 1];
unsigned idx = static_cast<unsigned>(x/step_);
if (idx >= len_ - 1)
idx = len_ - 2;
const double dx = x/step_ - idx;
switch (deg_)
{
case 0:
if (dx < 0.5)
return table_[idx];
else
return table_[idx + 1];
case 1:
return interpolate_linear(dx, table_[idx], table_[idx + 1]);
case 2:
if (idx == 0)
return interpolate_quadratic(dx, table_[idx], table_[idx + 1],
table_[idx + 2]);
else if (idx == len_ - 2)
return interpolate_quadratic(dx+1.0, table_[idx - 1],
table_[idx], table_[idx + 1]);
else
{
const double v0 = interpolate_quadratic(
dx, table_[idx], table_[idx + 1], table_[idx + 2]);
const double v1 = interpolate_quadratic(
dx+1.0, table_[idx - 1], table_[idx], table_[idx + 1]);
return (v0 + v1)/2.0;
}
case 3:
if (idx == 0)
return interpolate_cubic(dx, table_[idx], table_[idx + 1],
table_[idx + 2], table_[idx + 3]);
else if (idx == len_ - 2)
return interpolate_cubic(dx+2.0, table_[idx-2], table_[idx-1],
table_[idx], table_[idx + 1]);
else
return interpolate_cubic(dx+1.0, table_[idx - 1], table_[idx],
table_[idx + 1], table_[idx + 2]);
default:
assert(0);
return 0.0;
}
}
double Tabulated1D::unscaledDensity(const double x) const
{
const double v = this->interpolate(x);
if (v >= 0.0)
return v;
else
return 0.0;
}
double Tabulated1D::unscaledCdf(double x) const
{
if (x <= 0.0)
return 0.0;
if (x >= 1.0)
return 1.0;
unsigned idx = static_cast<unsigned>(x/step_);
if (idx >= len_ - 1)
idx = len_ - 2;
double v;
switch (deg_)
{
case 0:
{
const double dx = x/step_ - idx;
if (dx < 0.5)
v = table_[idx]*dx*step_;
else
v = (table_[idx]*0.5 + table_[idx + 1]*(dx - 0.5))*step_;
}
break;
default:
v = interpIntegral(step_*idx, x);
}
return cdf_[idx] + v;
}
double Tabulated1D::unscaledExceedance(double x) const
{
if (x <= 0.0)
return 1.0;
if (x >= 1.0)
return 0.0;
unsigned idx = static_cast<unsigned>(x/step_);
if (idx >= len_ - 1)
idx = len_ - 2;
double v;
switch (deg_)
{
case 0:
{
const double dx = x/step_ - idx;
if (dx < 0.5)
v = table_[idx]*dx*step_;
else
v = (table_[idx]*0.5 + table_[idx + 1]*(dx - 0.5))*step_;
}
break;
default:
v = interpIntegral(step_*idx, x);
}
return exceed_[idx] - v;
}
double Tabulated1D::interpIntegral(const double a, const double b) const
{
static const double legendreRootOver2 = 0.5/sqrt(3.0);
const double x0 = (b + a)/2.0;
const double step = b - a;
const double v0 = unscaledDensity(x0 - legendreRootOver2*step);
const double v1 = unscaledDensity(x0 + legendreRootOver2*step);
return step*(v0 + v1)/2.0;
}
double Tabulated1D::unscaledQuantile(const double r1) const
{
if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error(
"In npstat::Tabulated1D::unscaledQuantile: "
"cdf argument outside of [0, 1] interval");
if (r1 == 0.0)
return 0.0;
if (r1 == 1.0)
return 1.0;
unsigned idx = std::lower_bound(cdf_.begin(), cdf_.end(), r1) -
cdf_.begin() - 1U;
double xlo = step_*idx;
const double dcdf = r1 - cdf_[idx];
assert(dcdf > 0.0);
switch (deg_)
{
case 0:
{
const double c1 = table_[idx]*0.5*step_;
if (dcdf <= c1)
{
assert(table_[idx] > 0.0);
return xlo + dcdf/table_[idx];
}
else
{
assert(table_[idx+1] > 0.0);
return xlo + 0.5*step_ + (dcdf - c1)/table_[idx+1];
}
}
case 1:
{
const double a = (table_[idx+1] - table_[idx])/step_/2.0;
if (a == 0.0)
{
assert(table_[idx] > 0.0);
return xlo + dcdf/table_[idx];
}
else
{
double x1, x2;
const unsigned nroots = solveQuadratic(
table_[idx]/a, -dcdf/a, &x1, &x2);
if (nroots != 2U) throw std::runtime_error(
"In npstat::Tabulated1D::unscaledQuantile: "
"unexpected number of solutions");
if (fabs(x1 - 0.5*step_) < fabs(x2 - 0.5*step_))
return xlo + x1;
else
return xlo + x2;
}
}
default:
{
double xhi = xlo + step_;
const double eps = 2.0*DBL_EPSILON;
while ((xhi - xlo)/(xhi + xlo) > eps)
{
const double med = (xhi + xlo)/2.0;
if (unscaledCdf(med) >= r1)
xhi = med;
else
xlo = med;
}
return (xhi + xlo)/2.0;
}
}
}
bool BinnedDensity1D::isEqual(const AbsDistribution1D& otherBase) const
{
const double eps = 1.0e-12;
const BinnedDensity1D& r =
static_cast<const BinnedDensity1D&>(otherBase);
if (!AbsScalableDistribution1D::isEqual(r))
return false;
if (!(deg_ == r.deg_))
return false;
const unsigned long n = table_.size();
if (!(n == r.table_.size()))
return false;
for (unsigned long i=0; i<n; ++i)
if (fabs(table_[i] - r.table_[i])/
((fabs(table_[i]) + fabs(r.table_[i]))/2.0 + 1.0) > eps)
return false;
return true;
}
BinnedDensity1D::BinnedDensity1D(const double location, const double scale,
const std::vector<double>& params)
: AbsScalableDistribution1D(location, scale)
{
const unsigned npara = params.size();
if (npara)
initialize(&params[0], npara, std::min(1U, npara-1U));
else
initialize(static_cast<double*>(0), 0U, 0U);
}
void BinnedDensity1D::normalize()
{
cdf_.clear();
cdf_.reserve(len_);
long double sum = 0.0L;
switch (deg_)
{
case 0U:
for (unsigned i=0; i<len_; ++i)
{
sum += table_[i];
cdf_.push_back(static_cast<double>(sum));
}
break;
case 1U:
{
double oldval = 0.0;
double* data = &table_[0];
for (unsigned i=0; i<len_; ++i)
{
sum += (data[i] + oldval)*0.5;
oldval = data[i];
cdf_.push_back(static_cast<double>(sum));
}
sum += oldval*0.5;
}
break;
default:
assert(0);
}
const double norm = static_cast<double>(sum);
assert(norm > 0.0);
const double integ = norm*step_;
for (unsigned i=0; i<len_; ++i)
{
table_[i] /= integ;
cdf_[i] /= norm;
}
}
double BinnedDensity1D::unscaledDensity(const double x) const
{
double v = interpolate(x);
if (v < 0.0)
v = 0.0;
return v;
}
double BinnedDensity1D::interpolate(const double x) const
{
if (x < 0.0 || x > 1.0)
return 0.0;
switch (deg_)
{
case 0:
{
unsigned idx = static_cast<unsigned>(x/step_);
if (idx > len_ - 1)
idx = len_ - 1;
return table_[idx];
}
case 1:
{
const double xs = x - step_/2.0;
if (xs <= 0.0)
return table_[0];
const unsigned idx = static_cast<unsigned>(xs/step_);
if (idx > len_ - 2)
return table_[len_ - 1];
const double dx = xs/step_ - idx;
return interpolate_linear(dx, table_[idx], table_[idx + 1]);
}
default:
assert(0);
return 0.0;
}
}
double BinnedDensity1D::unscaledCdf(double x) const
{
if (x <= 0.0)
return 0.0;
if (x >= 1.0)
return 1.0;
double v = 0.0;
switch (deg_)
{
case 0:
{
unsigned idx = static_cast<unsigned>(x/step_);
if (idx > len_ - 1)
idx = len_ - 1;
v = (idx ? cdf_[idx - 1] : 0.0) + table_[idx]*(x - idx*step_);
}
break;
case 1:
{
const double xs = x - step_/2.0;
if (xs <= 0.0)
v = table_[0]*x;
else
{
const unsigned idx = static_cast<unsigned>(xs/step_);
if (idx > len_ - 2)
v = 1.0 - table_[len_ - 1]*(1.0 - x);
else
{
const double dx = xs - idx*step_;
const double slope = (table_[idx+1] - table_[idx])/step_;
v = cdf_[idx] + table_[idx]*dx + slope*dx*dx/2.0;
}
}
}
break;
default:
assert(0);
break;
}
if (v < 0.0)
v = 0.0;
else if (v > 1.0)
v = 1.0;
return v;
}
double BinnedDensity1D::unscaledQuantile(const double r1) const
{
if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error(
"In npstat::BinnedDensity1D::unscaledQuantile: "
"cdf argument outside of [0, 1] interval");
if (r1 == 0.0 && deg_)
return 0.0;
if (r1 == 1.0 && deg_)
return 1.0;
double v = 0.0;
switch (deg_)
{
case 0:
{
if (r1 == 0)
v = firstNonZeroBin_;
else if (r1 == 1.0)
v = lastNonZeroBin_ + 1U;
else if (r1 <= cdf_[0])
v = r1/cdf_[0];
else
{
double rem;
const unsigned bin = quantileBinFromCdf(&cdf_[0],len_,r1,&rem) + 1U;
assert(bin < len_);
v = bin + rem;
}
}
break;
case 1:
{
if (r1 <= cdf_[0])
v = 0.5*r1/cdf_[0];
else if (r1 >= cdf_[len_ - 1])
v = (len_-0.5+0.5*(r1-cdf_[len_-1])/(1.0-cdf_[len_-1]));
else
{
const unsigned idx = std::lower_bound(cdf_.begin(),cdf_.end(),r1) -
cdf_.begin() - 1U;
assert(idx < len_ - 1);
const double k = (table_[idx+1] - table_[idx])/step_;
const double y = r1 - cdf_[idx];
double x;
if (fabs(k) < 1.e-10*table_[idx])
x = y/table_[idx];
else
{
const double b = 2.0*table_[idx]/k;
const double c = -2.0*y/k;
double x1, x2;
if (solveQuadratic(b, c, &x1, &x2))
{
if (fabs(x1 - step_*0.5) < fabs(x2 - step_*0.5))
x = x1;
else
x = x2;
}
else
{
// This can happen due to various round-off problems.
// Assume that the quadratic equation determinant
// should have been 0 instead of negative.
x = -b/2.0;
}
}
if (x < 0.0)
x = 0.0;
else if (x > step_)
x = step_;
v = x/step_ + idx + 0.5;
}
}
break;
default:
assert(0);
return 0.0;
}
v *= step_;
if (v < 0.0)
v = 0.0;
else if (v > 1.0)
v = 1.0;
return v;
}
bool BinnedDensity1D::write(std::ostream& os) const
{
AbsScalableDistribution1D::write(os);
gs::write_pod(os, deg_);
gs::write_pod_vector(os, table_);
return !os.fail();
}
BinnedDensity1D* BinnedDensity1D::read(const gs::ClassId& id,
std::istream& in)
{
static const gs::ClassId current(
gs::ClassId::makeId<BinnedDensity1D>());
current.ensureSameId(id);
double location, scale;
if (AbsScalableDistribution1D::read(in, &location, &scale))
{
unsigned deg = 0;
gs::read_pod(in, &deg);
std::vector<double> table;
gs::read_pod_vector(in, &table);
if (!in.fail() && table.size())
return new BinnedDensity1D(location, scale,
&table[0], table.size(), deg);
}
distributionReadError(in, classname());
return 0;
}
bool StudentsT1D::write(std::ostream& os) const
{
AbsScalableDistribution1D::write(os);
gs::write_pod(os, nDoF_);
return !os.fail();
}
StudentsT1D* StudentsT1D::read(const gs::ClassId& id, std::istream& in)
{
static const gs::ClassId current(gs::ClassId::makeId<StudentsT1D>());
current.ensureSameId(id);
double location, scale;
if (AbsScalableDistribution1D::read(in, &location, &scale))
{
double nDoF;
gs::read_pod(in, &nDoF);
if (!in.fail())
return new StudentsT1D(location, scale, nDoF);
}
distributionReadError(in, classname());
return 0;
}
bool StudentsT1D::isEqual(const AbsDistribution1D& otherBase) const
{
const StudentsT1D& r = static_cast<const StudentsT1D&>(otherBase);
return AbsScalableDistribution1D::isEqual(r) &&
nDoF_ == r.nDoF_;
}
StudentsT1D::StudentsT1D(const double location, const double scale,
const double degreesOfFreedom)
: AbsScalableDistribution1D(location, scale),
nDoF_(degreesOfFreedom)
{
initialize();
}
StudentsT1D::StudentsT1D(const double location, const double scale,
const std::vector<double>& params)
: AbsScalableDistribution1D(location, scale),
nDoF_(params[0])
{
initialize();
}
void StudentsT1D::initialize()
{
if (nDoF_ <= 0.0) throw std::invalid_argument(
"In npstat::StudentsT1D::initialize: invalid number "
"of degrees of freedom");
power_ = (nDoF_ + 1.0)/2.0;
bignum_ = 0.0;
normfactor_ = Gamma(power_)/Gamma(nDoF_/2.0)/sqrt(nDoF_)/SQRPI;
}
double StudentsT1D::unscaledDensity(const double x) const
{
return normfactor_*pow(1.0 + x*x/nDoF_, -power_);
}
double StudentsT1D::unscaledCdf(const double t) const
{
const double s = sqrt(t*t + nDoF_);
return incompleteBeta(nDoF_/2.0, nDoF_/2.0, (t + s)/(2.0*s));
}
double StudentsT1D::unscaledExceedance(const double x) const
{
return 1.0 - unscaledCdf(x);
}
double StudentsT1D::unscaledQuantile(const double r1) const
{
if (r1 == 0.5)
return 0.0;
const double c = inverseIncompleteBeta(nDoF_/2.0, nDoF_/2.0, r1);
const double tmp = 2.0*c - 1.0;
const double a = tmp*tmp;
const double denom = 1.0 - a;
if (denom > 0.0)
{
const double sqroot = sqrt(nDoF_*a/denom);
return r1 > 0.5 ? sqroot : -sqroot;
}
else
{
if (bignum_ == 0.0)
(const_cast<StudentsT1D*>(this))->bignum_ = effectiveSupport();
return r1 > 0.5 ? bignum_ : -bignum_;
}
}
double StudentsT1D::effectiveSupport() const
{
// Figure out at which (positive) values of the argument
// the density becomes effectively indistinguishable from 0
const double biglog = (log(normfactor_) - log(DBL_MIN) +
power_*log(nDoF_))/(2.0*power_);
if (biglog >= log(DBL_MAX))
return DBL_MAX;
else
return exp(biglog);
}
}

File Metadata

Mime Type
text/x-diff
Expires
Sat, May 3, 6:15 AM (1 d, 9 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4982962
Default Alt Text
(228 KB)

Event Timeline