Page Menu
Home
HEPForge
Search
Configure Global Search
Log In
Files
F10881362
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
228 KB
Subscribers
None
View Options
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, °);
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(¶ms[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(¶ms[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, °);
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
Details
Attached
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)
Attached To
rNPSTATSVN npstatsvn
Event Timeline
Log In to Comment