Page MenuHomeHEPForge

No OneTemporary

This file is larger than 256 KB, so syntax highlighting was skipped.
Index: trunk/config.log
===================================================================
--- trunk/config.log (revision 919)
+++ trunk/config.log (revision 920)
@@ -1,1181 +1,1181 @@
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.10.0, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ ./configure --disable-static --with-pic
## --------- ##
## Platform. ##
## --------- ##
hostname = dawn
uname -m = x86_64
-uname -r = 5.15.0-73-generic
+uname -r = 5.15.0-76-generic
uname -s = Linux
-uname -v = #80-Ubuntu SMP Mon May 15 15:18:26 UTC 2023
+uname -v = #83-Ubuntu SMP Thu Jun 15 19:16:32 UTC 2023
/usr/bin/uname -p = x86_64
/bin/uname -X = unknown
/bin/arch = x86_64
/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:2816: looking for aux files: compile ltmain.sh config.guess config.sub missing install-sh
configure:2829: trying ./
configure:2858: ./compile found
configure:2858: ./ltmain.sh found
configure:2858: ./config.guess found
configure:2858: ./config.sub found
configure:2858: ./missing found
configure:2840: ./install-sh found
configure:2988: checking for a BSD-compatible install
configure:3061: result: /bin/install -c
configure:3072: checking whether build environment is sane
configure:3127: result: yes
configure:3286: checking for a race-free mkdir -p
configure:3330: result: /bin/mkdir -p
configure:3337: checking for gawk
configure:3372: result: no
configure:3337: checking for mawk
configure:3358: found /bin/mawk
configure:3369: result: mawk
configure:3380: checking whether make sets $(MAKE)
configure:3403: result: yes
configure:3433: checking whether make supports nested variables
configure:3451: result: yes
configure:3650: checking for pkg-config
configure:3673: found /bin/pkg-config
configure:3685: result: /bin/pkg-config
configure:3710: checking pkg-config is at least version 0.9.0
configure:3713: result: yes
configure:3723: checking for fftw3 >= 3.1.2 geners >= 1.3.0 kstest >= 2.0.0
configure:3730: $PKG_CONFIG --exists --print-errors "fftw3 >= 3.1.2 geners >= 1.3.0 kstest >= 2.0.0"
configure:3733: $? = 0
configure:3747: $PKG_CONFIG --exists --print-errors "fftw3 >= 3.1.2 geners >= 1.3.0 kstest >= 2.0.0"
configure:3750: $? = 0
configure:3808: result: yes
configure:3882: checking for g++
configure:3903: found /bin/g++
configure:3914: result: g++
configure:3941: checking for C++ compiler version
configure:3950: g++ --version >&5
g++ (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
configure:3961: $? = 0
configure:3950: g++ -v >&5
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.3.0-1ubuntu1~22.04.1' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-aYxV0E/gcc-11-11.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-aYxV0E/gcc-11-11.3.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04.1)
... rest of stderr output deleted ...
configure:3961: $? = 0
configure:3950: g++ -V >&5
g++: error: unrecognized command-line option '-V'
g++: fatal error: no input files
compilation terminated.
configure:3961: $? = 1
configure:3950: g++ -qversion >&5
g++: error: unrecognized command-line option '-qversion'; did you mean '--version'?
g++: fatal error: no input files
compilation terminated.
configure:3961: $? = 1
configure:3981: checking whether the C++ compiler works
configure:4003: g++ -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5
configure:4007: $? = 0
configure:4057: result: yes
configure:4060: checking for C++ compiler default output file name
configure:4062: result: a.out
configure:4068: checking for suffix of executables
configure:4075: g++ -o conftest -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5
configure:4079: $? = 0
configure:4102: result:
configure:4124: checking whether we are cross compiling
configure:4132: g++ -o conftest -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5
configure:4136: $? = 0
configure:4143: ./conftest
configure:4147: $? = 0
configure:4162: result: no
configure:4167: checking for suffix of object files
configure:4190: g++ -c -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5
configure:4194: $? = 0
configure:4216: result: o
configure:4220: checking whether the compiler supports GNU C++
configure:4240: g++ -c -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5
configure:4240: $? = 0
configure:4250: result: yes
configure:4261: checking whether g++ accepts -g
configure:4282: g++ -c -g conftest.cpp >&5
configure:4282: $? = 0
configure:4326: result: yes
configure:4346: checking for g++ option to enable C++11 features
configure:4361: g++ -c -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5
conftest.cpp: In function 'int main(int, char**)':
conftest.cpp:134:8: error: unused variable 'a1' [-Werror=unused-variable]
134 | auto a1 = 6538;
| ^~
conftest.cpp:141:16: error: unused variable 'a4' [-Werror=unused-variable]
141 | decltype(a2) a4 = 34895.034;
| ^~
conftest.cpp:145:9: error: unused variable 'sa' [-Werror=unused-variable]
145 | short sa[cxx11test::get_val()] = { 0 };
| ^~
conftest.cpp:149:23: error: unused variable 'il' [-Werror=unused-variable]
149 | cxx11test::testinit il = { 4323, 435234.23544 };
| ^~
conftest.cpp:170:8: error: unused variable 'a' [-Werror=unused-variable]
170 | auto a = sum(1);
| ^
conftest.cpp:171:8: error: unused variable 'b' [-Werror=unused-variable]
171 | auto b = sum(1, 2);
| ^
conftest.cpp:172:8: error: unused variable 'c' [-Werror=unused-variable]
172 | auto c = sum(1.0, 2.0, 3.0);
| ^
conftest.cpp:177:25: error: empty parentheses were disambiguated as a function declaration [-Werror=vexing-parse]
177 | cxx11test::delegate d2();
| ^~
conftest.cpp:177:25: note: remove parentheses to default-initialize a variable
177 | cxx11test::delegate d2();
| ^~
| --
conftest.cpp:177:25: note: or replace parentheses with braces to value-initialize a variable
conftest.cpp:186:9: error: unused variable 'c' [-Werror=unused-variable]
186 | char *c = nullptr;
| ^
conftest.cpp:194:15: error: unused variable 'utf8' [-Werror=unused-variable]
194 | char const *utf8 = u8"UTF-8 string \u2500";
| ^~~~
conftest.cpp:195:19: error: unused variable 'utf16' [-Werror=unused-variable]
195 | char16_t const *utf16 = u"UTF-8 string \u2500";
| ^~~~~
conftest.cpp:196:19: error: unused variable 'utf32' [-Werror=unused-variable]
196 | char32_t const *utf32 = U"UTF-32 string \u2500";
| ^~~~~
cc1plus: all warnings being treated as errors
configure:4361: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "npstat"
| #define PACKAGE_TARNAME "npstat"
| #define PACKAGE_VERSION "5.10.0"
| #define PACKAGE_STRING "npstat 5.10.0"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "npstat"
| #define VERSION "5.10.0"
| /* end confdefs.h. */
|
| // Does the compiler advertise C++98 conformance?
| #if !defined __cplusplus || __cplusplus < 199711L
| # error "Compiler does not advertise C++98 conformance"
| #endif
|
| // These inclusions are to reject old compilers that
| // lack the unsuffixed header files.
| #include <cstdlib>
| #include <exception>
|
| // <cassert> and <cstring> are *not* freestanding headers in C++98.
| extern void assert (int);
| namespace std {
| extern int strcmp (const char *, const char *);
| }
|
| // Namespaces, exceptions, and templates were all added after "C++ 2.0".
| using std::exception;
| using std::strcmp;
|
| namespace {
|
| void test_exception_syntax()
| {
| try {
| throw "test";
| } catch (const char *s) {
| // Extra parentheses suppress a warning when building autoconf itself,
| // due to lint rules shared with more typical C programs.
| assert (!(strcmp) (s, "test"));
| }
| }
|
| template <typename T> struct test_template
| {
| T const val;
| explicit test_template(T t) : val(t) {}
| template <typename U> T add(U u) { return static_cast<T>(u) + val; }
| };
|
| } // anonymous namespace
|
|
| // Does the compiler advertise C++ 2011 conformance?
| #if !defined __cplusplus || __cplusplus < 201103L
| # error "Compiler does not advertise C++11 conformance"
| #endif
|
| namespace cxx11test
| {
| constexpr int get_val() { return 20; }
|
| struct testinit
| {
| int i;
| double d;
| };
|
| class delegate
| {
| public:
| delegate(int n) : n(n) {}
| delegate(): delegate(2354) {}
|
| virtual int getval() { return this->n; };
| protected:
| int n;
| };
|
| class overridden : public delegate
| {
| public:
| overridden(int n): delegate(n) {}
| virtual int getval() override final { return this->n * 2; }
| };
|
| class nocopy
| {
| public:
| nocopy(int i): i(i) {}
| nocopy() = default;
| nocopy(const nocopy&) = delete;
| nocopy & operator=(const nocopy&) = delete;
| private:
| int i;
| };
|
| // for testing lambda expressions
| template <typename Ret, typename Fn> Ret eval(Fn f, Ret v)
| {
| return f(v);
| }
|
| // for testing variadic templates and trailing return types
| template <typename V> auto sum(V first) -> V
| {
| return first;
| }
| template <typename V, typename... Args> auto sum(V first, Args... rest) -> V
| {
| return first + sum(rest...);
| }
| }
|
|
| int
| main (int argc, char **argv)
| {
| int ok = 0;
|
| assert (argc);
| assert (! argv[0]);
| {
| test_exception_syntax ();
| test_template<double> tt (2.0);
| assert (tt.add (4) == 6.0);
| assert (true && !false);
| }
|
|
| {
| // Test auto and decltype
| auto a1 = 6538;
| auto a2 = 48573953.4;
| auto a3 = "String literal";
|
| int total = 0;
| for (auto i = a3; *i; ++i) { total += *i; }
|
| decltype(a2) a4 = 34895.034;
| }
| {
| // Test constexpr
| short sa[cxx11test::get_val()] = { 0 };
| }
| {
| // Test initializer lists
| cxx11test::testinit il = { 4323, 435234.23544 };
| }
| {
| // Test range-based for
| int array[] = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3,
| 14, 19, 17, 8, 6, 20, 16, 2, 11, 1};
| for (auto &x : array) { x += 23; }
| }
| {
| // Test lambda expressions
| using cxx11test::eval;
| assert (eval ([](int x) { return x*2; }, 21) == 42);
| double d = 2.0;
| assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0);
| assert (d == 5.0);
| assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0);
| assert (d == 5.0);
| }
| {
| // Test use of variadic templates
| using cxx11test::sum;
| auto a = sum(1);
| auto b = sum(1, 2);
| auto c = sum(1.0, 2.0, 3.0);
| }
| {
| // Test constructor delegation
| cxx11test::delegate d1;
| cxx11test::delegate d2();
| cxx11test::delegate d3(45);
| }
| {
| // Test override and final
| cxx11test::overridden o1(55464);
| }
| {
| // Test nullptr
| char *c = nullptr;
| }
| {
| // Test template brackets
| test_template<::test_template<int>> v(test_template<int>(12));
| }
| {
| // Unicode literals
| char const *utf8 = u8"UTF-8 string \u2500";
| char16_t const *utf16 = u"UTF-8 string \u2500";
| char32_t const *utf32 = U"UTF-32 string \u2500";
| }
|
| return ok;
| }
|
configure:4379: result: none needed
configure:4446: checking whether make supports the include directive
configure:4461: make -f confmf.GNU && cat confinc.out
this is the am__doit target
configure:4464: $? = 0
configure:4483: result: yes (GNU style)
configure:4509: checking dependency style of g++
configure:4621: result: gcc3
configure:4695: checking for g77
configure:4716: found /home/igv/bin/g77
configure:4727: result: g77
configure:4753: checking for Fortran 77 compiler version
configure:4762: g77 --version >&5
GNU Fortran (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
configure:4773: $? = 0
configure:4762: g77 -v >&5
Using built-in specs.
COLLECT_GCC=g77
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.3.0-1ubuntu1~22.04.1' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-aYxV0E/gcc-11-11.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-aYxV0E/gcc-11-11.3.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04.1)
... rest of stderr output deleted ...
configure:4773: $? = 0
configure:4762: g77 -V >&5
g77: error: unrecognized command-line option '-V'
g77: fatal error: no input files
compilation terminated.
configure:4773: $? = 1
configure:4762: g77 -qversion >&5
g77: error: unrecognized command-line option '-qversion'; did you mean '--version'?
g77: fatal error: no input files
compilation terminated.
configure:4773: $? = 1
configure:4782: checking whether the compiler supports GNU Fortran 77
configure:4796: g77 -c conftest.F >&5
configure:4796: $? = 0
configure:4806: result: yes
configure:4814: checking whether g77 accepts -g
configure:4826: g77 -c -g conftest.f >&5
configure:4826: $? = 0
configure:4835: result: yes
configure:4870: checking build system type
configure:4885: result: x86_64-pc-linux-gnu
configure:4905: checking host system type
configure:4919: result: x86_64-pc-linux-gnu
configure:4944: checking how to get verbose linking output from g77
configure:4955: g77 -c -g -O2 conftest.f >&5
configure:4955: $? = 0
configure:4974: g77 -o conftest -g -O2 -v conftest.f
Using built-in specs.
Target: x86_64-linux-gnu
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04.1)
- /usr/lib/gcc/x86_64-linux-gnu/11/f951 conftest.f -ffixed-form -quiet -dumpbase conftest.f -dumpbase-ext .f -mtune=generic -march=x86-64 -g -O2 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/11/finclude -fpre-include=/usr/include/finclude/math-vector-fortran.h -o /tmp/cclFYyTj.s
+ /usr/lib/gcc/x86_64-linux-gnu/11/f951 conftest.f -ffixed-form -quiet -dumpbase conftest.f -dumpbase-ext .f -mtune=generic -march=x86-64 -g -O2 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/11/finclude -fpre-include=/usr/include/finclude/math-vector-fortran.h -o /tmp/cc30hX7n.s
GNU Fortran (Ubuntu 11.3.0-1ubuntu1~22.04.1) version 11.3.0 (x86_64-linux-gnu)
compiled by GNU C version 11.3.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
GNU Fortran2008 (Ubuntu 11.3.0-1ubuntu1~22.04.1) version 11.3.0 (x86_64-linux-gnu)
compiled by GNU C version 11.3.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
- as -v --gdwarf-5 --64 -o /tmp/ccG3QpY1.o /tmp/cclFYyTj.s
+ as -v --gdwarf-5 --64 -o /tmp/ccAnpn8Q.o /tmp/cc30hX7n.s
GNU assembler version 2.38 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38
Reading specs from /usr/lib/gcc/x86_64-linux-gnu/11/libgfortran.spec
rename spec lib to liborig
- /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/cc3fy7N7.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lquadmath -plugin-opt=-pass-through=-lm -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o conftest /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. /tmp/ccG3QpY1.o -lgfortran -lm -lgcc_s -lgcc -lquadmath -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o
+ /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccELV0ww.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lquadmath -plugin-opt=-pass-through=-lm -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o conftest /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. /tmp/ccAnpn8Q.o -lgfortran -lm -lgcc_s -lgcc -lquadmath -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o
configure:5057: result: -v
configure:5059: checking for Fortran 77 libraries of g77
configure:5083: g77 -o conftest -g -O2 -v conftest.f
Using built-in specs.
Target: x86_64-linux-gnu
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04.1)
- /usr/lib/gcc/x86_64-linux-gnu/11/f951 conftest.f -ffixed-form -quiet -dumpbase conftest.f -dumpbase-ext .f -mtune=generic -march=x86-64 -g -O2 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/11/finclude -fpre-include=/usr/include/finclude/math-vector-fortran.h -o /tmp/ccLtyNwS.s
+ /usr/lib/gcc/x86_64-linux-gnu/11/f951 conftest.f -ffixed-form -quiet -dumpbase conftest.f -dumpbase-ext .f -mtune=generic -march=x86-64 -g -O2 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/11/finclude -fpre-include=/usr/include/finclude/math-vector-fortran.h -o /tmp/ccRLuKa0.s
GNU Fortran (Ubuntu 11.3.0-1ubuntu1~22.04.1) version 11.3.0 (x86_64-linux-gnu)
compiled by GNU C version 11.3.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
GNU Fortran2008 (Ubuntu 11.3.0-1ubuntu1~22.04.1) version 11.3.0 (x86_64-linux-gnu)
compiled by GNU C version 11.3.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
- as -v --gdwarf-5 --64 -o /tmp/ccuoex1U.o /tmp/ccLtyNwS.s
+ as -v --gdwarf-5 --64 -o /tmp/ccdpE9SV.o /tmp/ccRLuKa0.s
GNU assembler version 2.38 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38
Reading specs from /usr/lib/gcc/x86_64-linux-gnu/11/libgfortran.spec
rename spec lib to liborig
- /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccypH8sD.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lquadmath -plugin-opt=-pass-through=-lm -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o conftest /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. /tmp/ccuoex1U.o -lgfortran -lm -lgcc_s -lgcc -lquadmath -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o
+ /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccmIM11n.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lquadmath -plugin-opt=-pass-through=-lm -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o conftest /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. /tmp/ccdpE9SV.o -lgfortran -lm -lgcc_s -lgcc -lquadmath -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o
configure:5299: result: -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. -lgfortran -lm -lquadmath
configure:5362: checking how to print strings
configure:5389: result: printf
configure:5472: checking for gcc
configure:5493: found /bin/gcc
configure:5504: result: gcc
configure:5857: checking for C compiler version
configure:5866: gcc --version >&5
gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
configure:5877: $? = 0
configure:5866: gcc -v >&5
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.3.0-1ubuntu1~22.04.1' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-aYxV0E/gcc-11-11.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-aYxV0E/gcc-11-11.3.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04.1)
... rest of stderr output deleted ...
configure:5877: $? = 0
configure:5866: gcc -V >&5
gcc: error: unrecognized command-line option '-V'
gcc: fatal error: no input files
compilation terminated.
configure:5877: $? = 1
configure:5866: gcc -qversion >&5
gcc: error: unrecognized command-line option '-qversion'; did you mean '--version'?
gcc: fatal error: no input files
compilation terminated.
configure:5877: $? = 1
configure:5866: gcc -version >&5
gcc: error: unrecognized command-line option '-version'
gcc: fatal error: no input files
compilation terminated.
configure:5877: $? = 1
configure:5881: checking whether the compiler supports GNU C
configure:5901: gcc -c conftest.c >&5
configure:5901: $? = 0
configure:5911: result: yes
configure:5922: checking whether gcc accepts -g
configure:5943: gcc -c -g conftest.c >&5
configure:5943: $? = 0
configure:5987: result: yes
configure:6007: checking for gcc option to enable C11 features
configure:6022: gcc -c -g -O2 conftest.c >&5
configure:6022: $? = 0
configure:6040: result: none needed
configure:6156: checking whether gcc understands -c and -o together
configure:6179: gcc -c conftest.c -o conftest2.o
configure:6182: $? = 0
configure:6179: gcc -c conftest.c -o conftest2.o
configure:6182: $? = 0
configure:6194: result: yes
configure:6213: checking dependency style of gcc
configure:6325: result: gcc3
configure:6340: checking for a sed that does not truncate output
configure:6410: result: /bin/sed
configure:6428: checking for grep that handles long lines and -e
configure:6492: result: /bin/grep
configure:6497: checking for egrep
configure:6565: result: /bin/grep -E
configure:6570: checking for fgrep
configure:6638: result: /bin/grep -F
configure:6674: checking for ld used by gcc
configure:6742: result: /bin/ld
configure:6749: checking if the linker (/bin/ld) is GNU ld
configure:6765: result: yes
configure:6777: checking for BSD- or MS-compatible name lister (nm)
configure:6832: result: /bin/nm -B
configure:6972: checking the name lister (/bin/nm -B) interface
configure:6980: gcc -c -g -O2 conftest.c >&5
configure:6983: /bin/nm -B "conftest.o"
configure:6986: output
0000000000000000 B some_variable
configure:6993: result: BSD nm
configure:6996: checking whether ln -s works
configure:7000: result: yes
configure:7008: checking the maximum length of command line arguments
configure:7140: result: 1572864
configure:7188: checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format
configure:7229: result: func_convert_file_noop
configure:7236: checking how to convert x86_64-pc-linux-gnu file names to toolchain format
configure:7257: result: func_convert_file_noop
configure:7264: checking for /bin/ld option to reload object files
configure:7272: result: -r
configure:7351: checking for objdump
configure:7372: found /bin/objdump
configure:7383: result: objdump
configure:7415: checking how to recognize dependent libraries
configure:7616: result: pass_all
configure:7706: checking for dlltool
configure:7741: result: no
configure:7771: checking how to associate runtime and link libraries
configure:7799: result: printf %s\n
configure:7865: checking for ar
configure:7886: found /bin/ar
configure:7897: result: ar
configure:7934: checking for archiver @FILE support
configure:7952: gcc -c -g -O2 conftest.c >&5
configure:7952: $? = 0
configure:7956: ar cr libconftest.a @conftest.lst >&5
configure:7959: $? = 0
configure:7964: ar cr libconftest.a @conftest.lst >&5
ar: conftest.o: No such file or directory
configure:7967: $? = 1
configure:7979: result: @
configure:8042: checking for strip
configure:8063: found /bin/strip
configure:8074: result: strip
configure:8151: checking for ranlib
configure:8172: found /bin/ranlib
configure:8183: result: ranlib
configure:8285: checking command to parse /bin/nm -B output from gcc object
configure:8439: gcc -c -g -O2 conftest.c >&5
configure:8442: $? = 0
configure:8446: /bin/nm -B conftest.o | sed -n -e 's/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | sed '/ __gnu_lto/d' > conftest.nm
configure:8512: gcc -o conftest -g -O2 conftest.c conftstm.o >&5
configure:8515: $? = 0
configure:8553: result: ok
configure:8600: checking for sysroot
configure:8631: result: no
configure:8638: checking for a working dd
configure:8682: result: /bin/dd
configure:8686: checking how to truncate binary pipes
configure:8702: result: /bin/dd bs=4096 count=1
configure:8839: gcc -c -g -O2 conftest.c >&5
configure:8842: $? = 0
configure:9039: checking for mt
configure:9060: found /bin/mt
configure:9071: result: mt
configure:9094: checking if mt is a manifest tool
configure:9101: mt '-?'
configure:9109: result: no
configure:9839: checking for stdio.h
configure:9839: gcc -c -g -O2 conftest.c >&5
configure:9839: $? = 0
configure:9839: result: yes
configure:9839: checking for stdlib.h
configure:9839: gcc -c -g -O2 conftest.c >&5
configure:9839: $? = 0
configure:9839: result: yes
configure:9839: checking for string.h
configure:9839: gcc -c -g -O2 conftest.c >&5
configure:9839: $? = 0
configure:9839: result: yes
configure:9839: checking for inttypes.h
configure:9839: gcc -c -g -O2 conftest.c >&5
configure:9839: $? = 0
configure:9839: result: yes
configure:9839: checking for stdint.h
configure:9839: gcc -c -g -O2 conftest.c >&5
configure:9839: $? = 0
configure:9839: result: yes
configure:9839: checking for strings.h
configure:9839: gcc -c -g -O2 conftest.c >&5
configure:9839: $? = 0
configure:9839: result: yes
configure:9839: checking for sys/stat.h
configure:9839: gcc -c -g -O2 conftest.c >&5
configure:9839: $? = 0
configure:9839: result: yes
configure:9839: checking for sys/types.h
configure:9839: gcc -c -g -O2 conftest.c >&5
configure:9839: $? = 0
configure:9839: result: yes
configure:9839: checking for unistd.h
configure:9839: gcc -c -g -O2 conftest.c >&5
configure:9839: $? = 0
configure:9839: result: yes
configure:9864: checking for dlfcn.h
configure:9864: gcc -c -g -O2 conftest.c >&5
configure:9864: $? = 0
configure:9864: result: yes
configure:10134: checking for objdir
configure:10150: result: .libs
configure:10414: checking if gcc supports -fno-rtti -fno-exceptions
configure:10433: gcc -c -g -O2 -fno-rtti -fno-exceptions conftest.c >&5
cc1: warning: command-line option '-fno-rtti' is valid for C++/D/ObjC++ but not for C
configure:10437: $? = 0
configure:10450: result: no
configure:10814: checking for gcc option to produce PIC
configure:10822: result: -fPIC -DPIC
configure:10830: checking if gcc PIC flag -fPIC -DPIC works
configure:10849: gcc -c -g -O2 -fPIC -DPIC -DPIC conftest.c >&5
configure:10853: $? = 0
configure:10866: result: yes
configure:10895: checking if gcc static flag -static works
configure:10924: result: yes
configure:10939: checking if gcc supports -c -o file.o
configure:10961: gcc -c -g -O2 -o out/conftest2.o conftest.c >&5
configure:10965: $? = 0
configure:10987: result: yes
configure:10995: checking if gcc supports -c -o file.o
configure:11043: result: yes
configure:11076: checking whether the gcc linker (/bin/ld -m elf_x86_64) supports shared libraries
configure:12346: result: yes
configure:12383: checking whether -lc should be explicitly linked in
configure:12392: gcc -c -g -O2 conftest.c >&5
configure:12395: $? = 0
configure:12410: gcc -shared -fPIC -DPIC conftest.o -v -Wl,-soname -Wl,conftest -o conftest 2\>\&1 \| /bin/grep -lc \>/dev/null 2\>\&1
configure:12413: $? = 0
configure:12427: result: no
configure:12587: checking dynamic linker characteristics
configure:13169: gcc -o conftest -g -O2 -Wl,-rpath -Wl,/foo conftest.c >&5
configure:13169: $? = 0
configure:13420: result: GNU/Linux ld.so
configure:13542: checking how to hardcode library paths into programs
configure:13567: result: immediate
configure:14119: checking whether stripping libraries is possible
configure:14124: result: yes
configure:14159: checking if libtool supports shared libraries
configure:14161: result: yes
configure:14164: checking whether to build shared libraries
configure:14189: result: yes
configure:14192: checking whether to build static libraries
configure:14196: result: no
configure:14219: checking how to run the C++ preprocessor
configure:14241: g++ -E conftest.cpp
configure:14241: $? = 0
configure:14256: g++ -E conftest.cpp
conftest.cpp:23:10: fatal error: ac_nonexistent.h: No such file or directory
23 | #include <ac_nonexistent.h>
| ^~~~~~~~~~~~~~~~~~
compilation terminated.
configure:14256: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "npstat"
| #define PACKAGE_TARNAME "npstat"
| #define PACKAGE_VERSION "5.10.0"
| #define PACKAGE_STRING "npstat 5.10.0"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "npstat"
| #define VERSION "5.10.0"
| #define HAVE_STDIO_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| /* end confdefs.h. */
| #include <ac_nonexistent.h>
configure:14283: result: g++ -E
configure:14297: g++ -E conftest.cpp
configure:14297: $? = 0
configure:14312: g++ -E conftest.cpp
conftest.cpp:23:10: fatal error: ac_nonexistent.h: No such file or directory
23 | #include <ac_nonexistent.h>
| ^~~~~~~~~~~~~~~~~~
compilation terminated.
configure:14312: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "npstat"
| #define PACKAGE_TARNAME "npstat"
| #define PACKAGE_VERSION "5.10.0"
| #define PACKAGE_STRING "npstat 5.10.0"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "npstat"
| #define VERSION "5.10.0"
| #define HAVE_STDIO_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| /* end confdefs.h. */
| #include <ac_nonexistent.h>
configure:14477: checking for ld used by g++
configure:14545: result: /bin/ld -m elf_x86_64
configure:14552: checking if the linker (/bin/ld -m elf_x86_64) is GNU ld
configure:14568: result: yes
configure:14623: checking whether the g++ linker (/bin/ld -m elf_x86_64) supports shared libraries
configure:15700: result: yes
configure:15736: g++ -c -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5
configure:15739: $? = 0
configure:16220: checking for g++ option to produce PIC
configure:16228: result: -fPIC -DPIC
configure:16236: checking if g++ PIC flag -fPIC -DPIC works
configure:16255: g++ -c -std=c++11 -O3 -Wall -W -Werror -fPIC -DPIC -DPIC conftest.cpp >&5
configure:16259: $? = 0
configure:16272: result: yes
configure:16295: checking if g++ static flag -static works
configure:16324: result: yes
configure:16336: checking if g++ supports -c -o file.o
configure:16358: g++ -c -std=c++11 -O3 -Wall -W -Werror -o out/conftest2.o conftest.cpp >&5
configure:16362: $? = 0
configure:16384: result: yes
configure:16389: checking if g++ supports -c -o file.o
configure:16437: result: yes
configure:16467: checking whether the g++ linker (/bin/ld -m elf_x86_64) supports shared libraries
configure:16510: result: yes
configure:16652: checking dynamic linker characteristics
configure:17412: result: GNU/Linux ld.so
configure:17477: checking how to hardcode library paths into programs
configure:17502: result: immediate
configure:17643: checking if libtool supports shared libraries
configure:17645: result: yes
configure:17648: checking whether to build shared libraries
configure:17672: result: yes
configure:17675: checking whether to build static libraries
configure:17679: result: no
configure:18037: checking for g77 option to produce PIC
configure:18045: result: -fPIC
configure:18053: checking if g77 PIC flag -fPIC works
configure:18072: g77 -c -g -O2 -fPIC conftest.f >&5
configure:18076: $? = 0
configure:18089: result: yes
configure:18112: checking if g77 static flag -static works
configure:18141: result: yes
configure:18153: checking if g77 supports -c -o file.o
configure:18175: g77 -c -g -O2 -o out/conftest2.o conftest.f >&5
configure:18179: $? = 0
configure:18201: result: yes
configure:18206: checking if g77 supports -c -o file.o
configure:18254: result: yes
configure:18284: checking whether the g77 linker (/bin/ld -m elf_x86_64) supports shared libraries
configure:19503: result: yes
configure:19645: checking dynamic linker characteristics
configure:20399: result: GNU/Linux ld.so
configure:20464: checking how to hardcode library paths into programs
configure:20489: result: immediate
configure:20681: checking that generated files are newer than configure
configure:20687: result: done
configure:20714: creating ./config.status
## ---------------------- ##
## Running config.status. ##
## ---------------------- ##
This file was extended by npstat config.status 5.10.0, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES =
CONFIG_HEADERS =
CONFIG_LINKS =
CONFIG_COMMANDS =
$ ./config.status
on dawn
config.status:1138: creating Makefile
config.status:1138: creating npstat/nm/Makefile
config.status:1138: creating npstat/rng/Makefile
config.status:1138: creating npstat/stat/Makefile
config.status:1138: creating npstat/wrap/Makefile
config.status:1138: creating npstat/interfaces/Makefile
config.status:1138: creating npstat/emsunfold/Makefile
config.status:1138: creating npstat/Makefile
config.status:1138: creating examples/C++/Makefile
config.status:1138: creating npstat/swig/Makefile
config.status:1138: creating npstat.pc
config.status:1310: executing depfiles commands
config.status:1387: cd npstat/nm && sed -e '/# am--include-marker/d' Makefile | make -f - am--depfiles
make: Nothing to be done for 'am--depfiles'.
config.status:1392: $? = 0
config.status:1387: cd npstat/rng && sed -e '/# am--include-marker/d' Makefile | make -f - am--depfiles
make: Nothing to be done for 'am--depfiles'.
config.status:1392: $? = 0
config.status:1387: cd npstat/stat && sed -e '/# am--include-marker/d' Makefile | make -f - am--depfiles
make: Nothing to be done for 'am--depfiles'.
config.status:1392: $? = 0
config.status:1387: cd examples/C++ && sed -e '/# am--include-marker/d' Makefile | make -f - am--depfiles
make: Nothing to be done for 'am--depfiles'.
config.status:1392: $? = 0
config.status:1387: cd npstat/swig && sed -e '/# am--include-marker/d' Makefile | make -f - am--depfiles
make: Nothing to be done for 'am--depfiles'.
config.status:1392: $? = 0
config.status:1310: executing libtool commands
## ---------------- ##
## Cache variables. ##
## ---------------- ##
ac_cv_build=x86_64-pc-linux-gnu
ac_cv_c_compiler_gnu=yes
ac_cv_cxx_compiler_gnu=yes
ac_cv_env_CCC_set=
ac_cv_env_CCC_value=
ac_cv_env_CC_set=
ac_cv_env_CC_value=
ac_cv_env_CFLAGS_set=
ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set=
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CXXCPP_set=
ac_cv_env_CXXCPP_value=
ac_cv_env_CXXFLAGS_set=set
ac_cv_env_CXXFLAGS_value='-std=c++11 -O3 -Wall -W -Werror'
ac_cv_env_CXX_set=
ac_cv_env_CXX_value=
ac_cv_env_DEPS_CFLAGS_set=
ac_cv_env_DEPS_CFLAGS_value=
ac_cv_env_DEPS_LIBS_set=
ac_cv_env_DEPS_LIBS_value=
ac_cv_env_F77_set=
ac_cv_env_F77_value=
ac_cv_env_FFLAGS_set=
ac_cv_env_FFLAGS_value=
ac_cv_env_LDFLAGS_set=
ac_cv_env_LDFLAGS_value=
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_LT_SYS_LIBRARY_PATH_set=
ac_cv_env_LT_SYS_LIBRARY_PATH_value=
ac_cv_env_PKG_CONFIG_LIBDIR_set=
ac_cv_env_PKG_CONFIG_LIBDIR_value=
ac_cv_env_PKG_CONFIG_PATH_set=set
ac_cv_env_PKG_CONFIG_PATH_value=/usr/local/lib/pkgconfig
ac_cv_env_PKG_CONFIG_set=
ac_cv_env_PKG_CONFIG_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set=
ac_cv_env_host_alias_value=
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_f77_compiler_gnu=yes
ac_cv_f77_libs=' -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. -lgfortran -lm -lquadmath'
ac_cv_header_dlfcn_h=yes
ac_cv_header_inttypes_h=yes
ac_cv_header_stdint_h=yes
ac_cv_header_stdio_h=yes
ac_cv_header_stdlib_h=yes
ac_cv_header_string_h=yes
ac_cv_header_strings_h=yes
ac_cv_header_sys_stat_h=yes
ac_cv_header_sys_types_h=yes
ac_cv_header_unistd_h=yes
ac_cv_host=x86_64-pc-linux-gnu
ac_cv_objext=o
ac_cv_path_EGREP='/bin/grep -E'
ac_cv_path_FGREP='/bin/grep -F'
ac_cv_path_GREP=/bin/grep
ac_cv_path_SED=/bin/sed
ac_cv_path_ac_pt_PKG_CONFIG=/bin/pkg-config
ac_cv_path_install='/bin/install -c'
ac_cv_path_lt_DD=/bin/dd
ac_cv_path_mkdir=/bin/mkdir
ac_cv_prog_AWK=mawk
ac_cv_prog_CXXCPP='g++ -E'
ac_cv_prog_ac_ct_AR=ar
ac_cv_prog_ac_ct_CC=gcc
ac_cv_prog_ac_ct_CXX=g++
ac_cv_prog_ac_ct_F77=g77
ac_cv_prog_ac_ct_MANIFEST_TOOL=mt
ac_cv_prog_ac_ct_OBJDUMP=objdump
ac_cv_prog_ac_ct_RANLIB=ranlib
ac_cv_prog_ac_ct_STRIP=strip
ac_cv_prog_cc_c11=
ac_cv_prog_cc_g=yes
ac_cv_prog_cc_stdc=
ac_cv_prog_cxx_11=no
ac_cv_prog_cxx_g=yes
ac_cv_prog_cxx_stdcxx=
ac_cv_prog_f77_g=yes
ac_cv_prog_f77_v=-v
ac_cv_prog_make_make_set=yes
am_cv_CC_dependencies_compiler_type=gcc3
am_cv_CXX_dependencies_compiler_type=gcc3
am_cv_make_support_nested_variables=yes
am_cv_prog_cc_c_o=yes
lt_cv_ar_at_file=@
lt_cv_archive_cmds_need_lc=no
lt_cv_deplibs_check_method=pass_all
lt_cv_file_magic_cmd='$MAGIC_CMD'
lt_cv_file_magic_test_file=
lt_cv_ld_reload_flag=-r
lt_cv_nm_interface='BSD nm'
lt_cv_objdir=.libs
lt_cv_path_LD=/bin/ld
lt_cv_path_LDCXX='/bin/ld -m elf_x86_64'
lt_cv_path_NM='/bin/nm -B'
lt_cv_path_mainfest_tool=no
lt_cv_prog_compiler_c_o=yes
lt_cv_prog_compiler_c_o_CXX=yes
lt_cv_prog_compiler_c_o_F77=yes
lt_cv_prog_compiler_pic='-fPIC -DPIC'
lt_cv_prog_compiler_pic_CXX='-fPIC -DPIC'
lt_cv_prog_compiler_pic_F77=-fPIC
lt_cv_prog_compiler_pic_works=yes
lt_cv_prog_compiler_pic_works_CXX=yes
lt_cv_prog_compiler_pic_works_F77=yes
lt_cv_prog_compiler_rtti_exceptions=no
lt_cv_prog_compiler_static_works=yes
lt_cv_prog_compiler_static_works_CXX=yes
lt_cv_prog_compiler_static_works_F77=yes
lt_cv_prog_gnu_ld=yes
lt_cv_prog_gnu_ldcxx=yes
lt_cv_sharedlib_from_linklib_cmd='printf %s\n'
lt_cv_shlibpath_overrides_runpath=yes
lt_cv_sys_global_symbol_pipe='sed -n -e '\''s/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p'\'' | sed '\''/ __gnu_lto/d'\'''
lt_cv_sys_global_symbol_to_c_name_address='sed -n -e '\''s/^: \(.*\) .*$/ {"\1", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/ {"\1", (void *) \&\1},/p'\'''
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='sed -n -e '\''s/^: \(.*\) .*$/ {"\1", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(lib.*\)$/ {"\1", (void *) \&\1},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/ {"lib\1", (void *) \&\1},/p'\'''
lt_cv_sys_global_symbol_to_cdecl='sed -n -e '\''s/^T .* \(.*\)$/extern int \1();/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/extern char \1;/p'\'''
lt_cv_sys_global_symbol_to_import=
lt_cv_sys_max_cmd_len=1572864
lt_cv_to_host_file_cmd=func_convert_file_noop
lt_cv_to_tool_file_cmd=func_convert_file_noop
lt_cv_truncate_bin='/bin/dd bs=4096 count=1'
pkg_cv_DEPS_CFLAGS=-I/usr/local/include
pkg_cv_DEPS_LIBS='-L/usr/local/lib -lfftw3 -lgeners -lkstest'
## ----------------- ##
## Output variables. ##
## ----------------- ##
ACLOCAL='${SHELL} '\''/home/igv/Hepforge/npstat/trunk/missing'\'' aclocal-1.16'
AMDEPBACKSLASH='\'
AMDEP_FALSE='#'
AMDEP_TRUE=''
AMTAR='$${TAR-tar}'
AM_BACKSLASH='\'
AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
AM_DEFAULT_VERBOSITY='1'
AM_V='$(V)'
AR='ar'
AUTOCONF='${SHELL} '\''/home/igv/Hepforge/npstat/trunk/missing'\'' autoconf'
AUTOHEADER='${SHELL} '\''/home/igv/Hepforge/npstat/trunk/missing'\'' autoheader'
AUTOMAKE='${SHELL} '\''/home/igv/Hepforge/npstat/trunk/missing'\'' automake-1.16'
AWK='mawk'
CC='gcc'
CCDEPMODE='depmode=gcc3'
CFLAGS='-g -O2'
CPPFLAGS=''
CSCOPE='cscope'
CTAGS='ctags'
CXX='g++'
CXXCPP='g++ -E'
CXXDEPMODE='depmode=gcc3'
CXXFLAGS='-std=c++11 -O3 -Wall -W -Werror'
CYGPATH_W='echo'
DEFS='-DPACKAGE_NAME=\"npstat\" -DPACKAGE_TARNAME=\"npstat\" -DPACKAGE_VERSION=\"5.10.0\" -DPACKAGE_STRING=\"npstat\ 5.10.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"npstat\" -DVERSION=\"5.10.0\" -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\"'
DEPDIR='.deps'
DEPS_CFLAGS='-I/usr/local/include'
DEPS_LIBS='-L/usr/local/lib -lfftw3 -lgeners -lkstest'
DLLTOOL='false'
DSYMUTIL=''
DUMPBIN=''
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP='/bin/grep -E'
ETAGS='etags'
EXEEXT=''
F77='g77'
FFLAGS='-g -O2'
FGREP='/bin/grep -F'
FLIBS=' -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. -lgfortran -lm -lquadmath'
GREP='/bin/grep'
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
INSTALL_STRIP_PROGRAM='$(install_sh) -c -s'
LD='/bin/ld -m elf_x86_64'
LDFLAGS=''
LIBOBJS=''
LIBS=''
LIBTOOL='$(SHELL) $(top_builddir)/libtool'
LIPO=''
LN_S='ln -s'
LTLIBOBJS=''
LT_SYS_LIBRARY_PATH=''
MAKEINFO='${SHELL} '\''/home/igv/Hepforge/npstat/trunk/missing'\'' makeinfo'
MANIFEST_TOOL=':'
MKDIR_P='/bin/mkdir -p'
NM='/bin/nm -B'
NMEDIT=''
OBJDUMP='objdump'
OBJEXT='o'
OTOOL64=''
OTOOL=''
PACKAGE='npstat'
PACKAGE_BUGREPORT=''
PACKAGE_NAME='npstat'
PACKAGE_STRING='npstat 5.10.0'
PACKAGE_TARNAME='npstat'
PACKAGE_URL=''
PACKAGE_VERSION='5.10.0'
PATH_SEPARATOR=':'
PKG_CONFIG='/bin/pkg-config'
PKG_CONFIG_LIBDIR=''
PKG_CONFIG_PATH='/usr/local/lib/pkgconfig'
RANLIB='ranlib'
SED='/bin/sed'
SET_MAKE=''
SHELL='/bin/bash'
STRIP='strip'
VERSION='5.10.0'
ac_ct_AR='ar'
ac_ct_CC='gcc'
ac_ct_CXX='g++'
ac_ct_DUMPBIN=''
ac_ct_F77='g77'
am__EXEEXT_FALSE=''
am__EXEEXT_TRUE='#'
am__fastdepCC_FALSE='#'
am__fastdepCC_TRUE=''
am__fastdepCXX_FALSE='#'
am__fastdepCXX_TRUE=''
am__include='include'
am__isrc=''
am__leading_dot='.'
am__nodep='_no'
am__quote=''
am__tar='$${TAR-tar} chof - "$$tardir"'
am__untar='$${TAR-tar} xf -'
bindir='${exec_prefix}/bin'
build='x86_64-pc-linux-gnu'
build_alias=''
build_cpu='x86_64'
build_os='linux-gnu'
build_vendor='pc'
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
dvidir='${docdir}'
exec_prefix='${prefix}'
host='x86_64-pc-linux-gnu'
host_alias=''
host_cpu='x86_64'
host_os='linux-gnu'
host_vendor='pc'
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
install_sh='${SHELL} /home/igv/Hepforge/npstat/trunk/install-sh'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
mandir='${datarootdir}/man'
mkdir_p='$(MKDIR_P)'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='/usr/local'
program_transform_name='s,x,x,'
psdir='${docdir}'
runstatedir='${localstatedir}/run'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
sysconfdir='${prefix}/etc'
target_alias=''
## ----------- ##
## confdefs.h. ##
## ----------- ##
/* confdefs.h */
#define PACKAGE_NAME "npstat"
#define PACKAGE_TARNAME "npstat"
#define PACKAGE_VERSION "5.10.0"
#define PACKAGE_STRING "npstat 5.10.0"
#define PACKAGE_BUGREPORT ""
#define PACKAGE_URL ""
#define PACKAGE "npstat"
#define VERSION "5.10.0"
#define HAVE_STDIO_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_STDINT_H 1
#define HAVE_STRINGS_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_UNISTD_H 1
#define STDC_HEADERS 1
#define HAVE_DLFCN_H 1
#define LT_OBJDIR ".libs/"
configure: exit 0
Index: trunk/tests/test_shiftedLegendreIntegral.cc
===================================================================
--- trunk/tests/test_shiftedLegendreIntegral.cc (revision 0)
+++ trunk/tests/test_shiftedLegendreIntegral.cc (revision 920)
@@ -0,0 +1,64 @@
+#include "UnitTest++.h"
+#include "test_utils.hh"
+
+#include "npstat/nm/shiftedLegendreIntegral.hh"
+#include "npstat/nm/ClassicalOrthoPolys1D.hh"
+
+using namespace npstat;
+
+namespace {
+ TEST(shiftedLegendreIntegral_3)
+ {
+ const double eps = 1.0e-15;
+ const unsigned degmax = 10U;
+ ShiftedLegendreOrthoPoly1D poly;
+ unsigned degs[3];
+
+ for (unsigned i=0; i<=degmax; ++i)
+ {
+ degs[0] = i;
+ for (unsigned j=0; j<=degmax; ++j)
+ {
+ degs[1] = j;
+ for (unsigned k=0; k<=degmax; ++k)
+ {
+ degs[2] = k;
+ const double expect = poly.jointIntegral(degs, 3U);
+ const double value = shiftedLegendreIntegral(i, j, k);
+ CHECK_CLOSE(expect, value, eps);
+ }
+ }
+ }
+ }
+
+ TEST(shiftedLegendreIntegral_4)
+ {
+ const double eps = 1.0e-15;
+ const unsigned degmax = 10U;
+ ShiftedLegendreOrthoPoly1D poly;
+ unsigned degs[4];
+
+ for (unsigned itry=0; itry<2; ++itry)
+ {
+ for (unsigned i=0; i<=degmax; ++i)
+ {
+ degs[0] = i;
+ for (unsigned j=0; j<=degmax; ++j)
+ {
+ degs[1] = j;
+ for (unsigned k=0; k<=degmax; ++k)
+ {
+ degs[2] = k;
+ for (unsigned l=0; l<=degmax; ++l)
+ {
+ degs[3] = l;
+ const double expect = poly.jointIntegral(degs, 4U);
+ const double value = shiftedLegendreIntegral(i, j, k, l, true);
+ CHECK_CLOSE(expect, value, eps);
+ }
+ }
+ }
+ }
+ }
+ }
+}
Index: trunk/tests/Makefile
===================================================================
--- trunk/tests/Makefile (revision 919)
+++ trunk/tests/Makefile (revision 920)
@@ -1,131 +1,132 @@
# Set the following two variables correctly
UTESTPP_DIR = /home/igv/Code/UnitTest++
FFTW_LIBDIR = /usr/local/lib
OFILES_COMMON = test_utils.o print_submatrix.o
OTESTS_FAST = test_ArrayND.o test_OrthoPoly1D.o test_OrthoPolyND.o \
test_Functors.o test_interpolation.o test_LocalPolyFilterND.o \
test_Distributions1D.o test_InterpolatedDistribution1D.o \
test_EmpiricalCopula.o test_BoxNDScanner.o \
test_QuadraticOrthoPolyND.o test_LocalLogisticRegression.o \
test_randomPermutation.o test_gegenbauerSeriesSum.o \
test_GaussHermiteQuadrature.o test_SpecialFunctions.o \
test_GaussLegendreQuadrature.o test_WeightedStatAccumulator.o \
test_RandomSequenceRepeater.o test_logLikelihoodPeak.o \
test_legendreSeriesSum.o test_solveCubic.o test_HistoND.o \
test_SampleAccumulator.o test_GridInterpolatedDistribution.o \
test_GridAxis.o test_Matrix.o test_StatUtils.o \
test_amiseOptimalBandwidth.o test_OrderedPointND.o \
test_CompositeDistributionND.o test_CompositeBuilder.o \
test_ArchiveIO.o test_Ntuples.o test_LocalQuantileRegression.o \
test_rectangleQuadrature.o test_RegularSampler1D.o \
test_Instantiations.o test_chebyshevSeriesSum.o \
test_dawsonIntegral.o test_NMCombinationSequencer.o \
test_CrossCovarianceAccumulator.o test_StatAccumulatorPair.o \
test_findPeak2D.o test_StatAccumulatorArr.o test_SeriesCGF1D.o \
test_goldenSectionSearch.o test_empiricalQuantile.o \
test_StatAccumulator.o test_binomialCoefficient.o \
test_CircularMapper1d.o test_LinInterpolatedTableND.o \
test_StorableMultivariateFunctor.o test_NeymanPearsonWindow1D.o \
test_hermiteSeriesSum.o test_hermiteSeriesSumPhys.o \
test_DiscreteDistributions1D.o test_LocalPolyFilter1D.o \
test_definiteIntegrals.o test_ExpMapper1d.o test_MathUtils.o \
test_MemoizingSymbetaFilterProvider.o test_ResponseMatrix.o \
test_gaussianResponseMatrix.o test_RectangleQuadrature1D.o \
WeightedTestAccumulator.o TestAccumulator.o test_histoUtils.o \
test_LocalMultiFilter1D.o test_InterpolatedCompositeBuilder.o \
test_DensityAveScanND.o test_Distro1DBuilder.o \
test_findRootNewtonRaphson.o test_cumulantUncertainties.o \
test_ClassicalOrthoPolys1D.o test_ContOrthoPoly1D.o \
test_findRootUsingBisections.o test_orthoPoly1DVProducts.o \
test_truncatedInverseSqrt.o test_FejerQuadrature.o \
test_matrixIndexPairs.o test_KDE1DKernel.o test_Interval.o \
test_likelihoodStatisticCumulants.o test_Uncertainties.o \
test_DistributionsND.o EdgeworthSeries1DOld.o test_OSDE1D.o \
test_SequentialPolyFilterND.o test_HeatEq1DNeumannBoundary.o \
test_ScalableClassicalOrthoPoly1D.o LogLogQuadratic1D.o \
test_maxAbsValue.o test_LOrPE1DVariableDegreeCVRunner.o \
test_KDTree.o test_vectorAsText.o test_ChebyshevIntegral.o \
test_randomOrthogonalMatrix.o test_unitMatrixDeviations.o \
- test_TruncatedLog.o test_randomTukeyDepth.o test_Poly1D.o
+ test_TruncatedLog.o test_randomTukeyDepth.o test_Poly1D.o \
+ test_shiftedLegendreIntegral.o
OTESTS_COMPREHENSIVE = test_ArrayND_cmh.o test_DiscreteBernstein.o \
test_rescanArray_cmh.o test_LegendreCDTruncation.o \
test_LOrPE1DSymbetaKernel.o test_lorpeMise1D.o \
test_solveForLOrPEWeights.o test_LOrPE1DCV.o
# OPTIMIZE = -std=c++11 -g -ggdb -O0
OPTIMIZE = -std=c++11 -O3
INCLUDES = -I. -I.. -I$(UTESTPP_DIR)/src -I$(FFTW_LIBDIR)/../include
CPPFLAGS = $(OPTIMIZE) $(INCLUDES) -Wall -W -Werror -Wno-unused-parameter
LIBS = -L../npstat/.libs -lnpstat -L$(UTESTPP_DIR) -lUnitTest++ \
-L$(FFTW_LIBDIR) -lfftw3 -llapack -lblas \
-L/usr/local/lib -lrk -lgeners -lbz2 -lz -lkstest -lm
%.o : %.cc
g++ -c $(CPPFLAGS) -fPIC -MD $< -o $@
@sed -i 's,\($*\.o\)[:]*\(.*\),$@: $$\(wildcard\2\)\n\1:\2,g' $*.d
# Change the "all" target below to suit your development needs.
# Useful targets which can be included are:
#
# fast fast_run
# comprehensive comprehensive_run
# regression regression_run
#
# The tests inside the "fast" target are a subset of tests from the
# "comprehensive" target
all: fast fast_run
# all: fast regression fast_run regression_run
# all: comprehensive comprehensive_run regression regression_run
fast: test_main.o $(OTESTS_FAST) $(OFILES_COMMON)
rm -f $@
g++ $(OPTIMIZE) -fPIC -o $@ $^ $(LIBS)
fast_run: fast
./fast
comprehensive: test_main.o $(OTESTS_FAST) \
$(OTESTS_COMPREHENSIVE) $(OFILES_COMMON)
rm -f $@
g++ $(OPTIMIZE) -fPIC -o $@ $^ $(LIBS)
comprehensive_run: comprehensive
./comprehensive
regression:
regression_run: regression
@ echo Running regression tests.
PROGRAMS = kdtree_speed.cc quantileBinFromCdf.cc incompleteGamma.cc \
convertToSpherical.cc printPermutations.cc showIOTraits.cc \
hugeNtuple.cc hugeNtupleRead.cc histoStdev.cc effectiveDim.cc \
buildInterpolatedCheck.cc legendreRoots.cc jacobiPolyStats.cc \
jacobiVProducts.cc jacobiEpsTest.cc gauss2DRandom.cc besselK.cc \
runNeymanOSDE1D.cc runPLogliOSDE1D.cc
PROGRAMS += cpp11Random.cc
PROGRAMS += failingTest.cc
BINARIES = $(PROGRAMS:.cc=)
binaries: $(BINARIES)
$(BINARIES): % : %.o $(OFILES_COMMON); g++ $(OPTIMIZE) -fPIC -o $@ $^ $(LIBS)
clean:
rm -f fast comprehensive $(BINARIES) \
*.out core.* *.o *.d *~ *.gsbd *.gsbmf
-include test_main.d
-include $(OFILES_COMMON:.o=.d)
-include $(OTESTS_FAST:.o=.d)
-include $(OTESTS_COMPREHENSIVE:.o=.d)
-include $(PROGRAMS:.cc=.d)
Index: trunk/autom4te.cache/requests
===================================================================
--- trunk/autom4te.cache/requests (revision 919)
+++ trunk/autom4te.cache/requests (revision 920)
@@ -1,473 +1,473 @@
# This file was generated by Autom4te 2.71.
# It contains the lists of macros which have been traced.
# It can be safely removed.
@request = (
bless( [
'0',
1,
[
'/usr/share/autoconf'
],
[
'/usr/share/autoconf/m4sugar/m4sugar.m4',
'/usr/share/autoconf/m4sugar/m4sh.m4',
'/usr/share/autoconf/autoconf/autoconf.m4',
'aclocal.m4',
'/dev/null'
],
{
- 'AC_FC_FREEFORM' => 1,
- 'AC_CONFIG_LIBOBJ_DIR' => 1,
- 'AM_MAKEFILE_INCLUDE' => 1,
- 'AC_FC_PP_DEFINE' => 1,
- 'AH_OUTPUT' => 1,
- '_LT_AC_TAGCONFIG' => 1,
- 'AC_PROG_LIBTOOL' => 1,
- 'AM_XGETTEXT_OPTION' => 1,
- 'AC_CONFIG_LINKS' => 1,
- 'AM_CONDITIONAL' => 1,
- 'AM_PROG_MKDIR_P' => 1,
- 'AM_PROG_MOC' => 1,
- 'AC_SUBST' => 1,
- '_AM_MAKEFILE_INCLUDE' => 1,
- 'AM_PROG_LIBTOOL' => 1,
- 'AC_CONFIG_HEADERS' => 1,
- 'AC_CONFIG_MACRO_DIR_TRACE' => 1,
- 'AC_SUBST_TRACE' => 1,
'AC_CONFIG_SUBDIRS' => 1,
- 'm4_define' => 1,
- '_AM_COND_IF' => 1,
- 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
- '_m4_warn' => 1,
+ '_AM_COND_ENDIF' => 1,
+ 'm4_include' => 1,
'LT_SUPPORTED_TAG' => 1,
- 'AM_PROG_FC_C_O' => 1,
- 'AM_PATH_GUILE' => 1,
+ 'AM_PROG_AR' => 1,
+ 'AH_OUTPUT' => 1,
+ 'AM_PROG_CXX_C_O' => 1,
+ 'AC_FC_PP_DEFINE' => 1,
'm4_pattern_forbid' => 1,
- 'AC_CANONICAL_HOST' => 1,
- 'AC_FC_SRCEXT' => 1,
'AM_PROG_CC_C_O' => 1,
- 'AC_CONFIG_FILES' => 1,
+ 'AM_MAINTAINER_MODE' => 1,
+ 'AM_PROG_MOC' => 1,
+ '_AM_COND_IF' => 1,
+ 'AC_CANONICAL_TARGET' => 1,
+ 'AC_FC_PP_SRCEXT' => 1,
+ 'AM_CONDITIONAL' => 1,
'LT_INIT' => 1,
- 'AM_ENABLE_MULTILIB' => 1,
+ 'AC_FC_SRCEXT' => 1,
+ 'AM_PROG_LIBTOOL' => 1,
+ 'AC_CONFIG_FILES' => 1,
'_AM_COND_ELSE' => 1,
- 'AC_FC_PP_SRCEXT' => 1,
- 'm4_pattern_allow' => 1,
- 'AC_CANONICAL_TARGET' => 1,
- 'm4_sinclude' => 1,
- 'AM_MAINTAINER_MODE' => 1,
- 'sinclude' => 1,
- '_AM_COND_ENDIF' => 1,
- 'AU_DEFINE' => 1,
- 'AM_PROG_CXX_C_O' => 1,
- 'AM_GNU_GETTEXT' => 1,
- 'AM_SILENT_RULES' => 1,
- 'GTK_DOC_CHECK' => 1,
- 'AM_NLS' => 1,
+ 'AM_ENABLE_MULTILIB' => 1,
'AM_PROG_F77_C_O' => 1,
- 'AC_CANONICAL_BUILD' => 1,
- 'LT_CONFIG_LTDL_DIR' => 1,
- 'include' => 1,
- '_AM_SUBST_NOTMAKE' => 1,
- 'AC_INIT' => 1,
+ 'AM_AUTOMAKE_VERSION' => 1,
'AC_REQUIRE_AUX_FILE' => 1,
+ 'AC_PROG_LIBTOOL' => 1,
+ 'AC_CONFIG_MACRO_DIR_TRACE' => 1,
'AC_CANONICAL_SYSTEM' => 1,
+ 'define' => 1,
+ '_m4_warn' => 1,
+ 'AM_MAKEFILE_INCLUDE' => 1,
+ 'AM_GNU_GETTEXT' => 1,
+ 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
+ 'AM_PROG_MKDIR_P' => 1,
+ 'm4_pattern_allow' => 1,
+ 'AC_LIBSOURCE' => 1,
+ 'AM_PATH_GUILE' => 1,
+ '_LT_AC_TAGCONFIG' => 1,
+ 'AC_INIT' => 1,
+ 'AC_CONFIG_LIBOBJ_DIR' => 1,
+ 'IT_PROG_INTLTOOL' => 1,
+ 'AC_FC_FREEFORM' => 1,
+ 'LT_CONFIG_LTDL_DIR' => 1,
+ 'AM_SILENT_RULES' => 1,
+ 'AM_PROG_FC_C_O' => 1,
+ 'AM_NLS' => 1,
'AC_CONFIG_AUX_DIR' => 1,
- 'AM_PROG_AR' => 1,
+ 'AC_SUBST_TRACE' => 1,
+ 'GTK_DOC_CHECK' => 1,
+ 'sinclude' => 1,
+ 'AC_CANONICAL_BUILD' => 1,
+ 'AM_XGETTEXT_OPTION' => 1,
+ 'm4_sinclude' => 1,
+ 'AU_DEFINE' => 1,
'AM_INIT_AUTOMAKE' => 1,
- 'define' => 1,
- 'm4_include' => 1,
- 'AM_POT_TOOLS' => 1,
- 'AC_DEFINE_TRACE_LITERAL' => 1,
+ 'AC_CONFIG_LINKS' => 1,
+ 'AC_CANONICAL_HOST' => 1,
+ 'include' => 1,
'AM_EXTRA_RECURSIVE_TARGETS' => 1,
- 'AC_LIBSOURCE' => 1,
- 'AM_AUTOMAKE_VERSION' => 1,
- 'IT_PROG_INTLTOOL' => 1
+ '_AM_MAKEFILE_INCLUDE' => 1,
+ 'AC_SUBST' => 1,
+ 'm4_define' => 1,
+ 'AM_POT_TOOLS' => 1,
+ '_AM_SUBST_NOTMAKE' => 1,
+ 'AC_CONFIG_HEADERS' => 1,
+ 'AC_DEFINE_TRACE_LITERAL' => 1
}
], 'Autom4te::Request' ),
bless( [
'1',
1,
[
'/usr/share/autoconf'
],
[
'/usr/share/autoconf/autoconf/autoconf.m4f',
'/usr/share/aclocal-1.16/internal/ac-config-macro-dirs.m4',
'/usr/share/aclocal/ltargz.m4',
'/usr/share/aclocal/ltdl.m4',
'/usr/share/aclocal/pkg.m4',
'/usr/share/aclocal-1.16/amversion.m4',
'/usr/share/aclocal-1.16/auxdir.m4',
'/usr/share/aclocal-1.16/cond.m4',
'/usr/share/aclocal-1.16/depend.m4',
'/usr/share/aclocal-1.16/depout.m4',
'/usr/share/aclocal-1.16/extra-recurs.m4',
'/usr/share/aclocal-1.16/init.m4',
'/usr/share/aclocal-1.16/install-sh.m4',
'/usr/share/aclocal-1.16/lead-dot.m4',
'/usr/share/aclocal-1.16/make.m4',
'/usr/share/aclocal-1.16/missing.m4',
'/usr/share/aclocal-1.16/options.m4',
'/usr/share/aclocal-1.16/prog-cc-c-o.m4',
'/usr/share/aclocal-1.16/runlog.m4',
'/usr/share/aclocal-1.16/sanity.m4',
'/usr/share/aclocal-1.16/silent.m4',
'/usr/share/aclocal-1.16/strip.m4',
'/usr/share/aclocal-1.16/substnot.m4',
'/usr/share/aclocal-1.16/tar.m4',
'm4/libtool.m4',
'm4/ltoptions.m4',
'm4/ltsugar.m4',
'm4/ltversion.m4',
'm4/lt~obsolete.m4',
'configure.ac'
],
{
- 'AC_DEFUN_ONCE' => 1,
- 'AM_PROG_LIBTOOL' => 1,
- 'AC_CONFIG_MACRO_DIR_TRACE' => 1,
- '_LT_AC_PROG_CXXCPP' => 1,
- 'LT_SYS_DLOPEN_DEPLIBS' => 1,
- 'LT_AC_PROG_RC' => 1,
- 'LT_LANG' => 1,
- 'AC_WITH_LTDL' => 1,
- '_AM_PROG_CC_C_O' => 1,
- 'LTDL_CONVENIENCE' => 1,
- 'AM_MISSING_HAS_RUN' => 1,
- '_LTDL_SETUP' => 1,
- 'LT_AC_PROG_SED' => 1,
+ 'AM_INIT_AUTOMAKE' => 1,
+ 'LTOBSOLETE_VERSION' => 1,
+ '_AM_SET_OPTIONS' => 1,
+ 'AM_SET_LEADING_DOT' => 1,
+ '_LT_PROG_FC' => 1,
'AC_DEFUN' => 1,
- '_LT_AC_TAGCONFIG' => 1,
- '_AM_AUTOCONF_VERSION' => 1,
- 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
- 'AC_PROG_LD_RELOAD_FLAG' => 1,
- '_LT_AC_PROG_ECHO_BACKSLASH' => 1,
- 'AM_SUBST_NOTMAKE' => 1,
- 'AC_LIBLTDL_INSTALLABLE' => 1,
- 'AM_CONDITIONAL' => 1,
- '_LT_WITH_SYSROOT' => 1,
- 'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
+ 'AC_PATH_MAGIC' => 1,
+ 'AC_LTDL_DLLIB' => 1,
+ 'AC_PROG_EGREP' => 1,
'AC_DISABLE_STATIC' => 1,
- 'LT_AC_PROG_EGREP' => 1,
- 'AM_PROG_INSTALL_STRIP' => 1,
- 'AC_LIBTOOL_WIN32_DLL' => 1,
- 'AC_ENABLE_STATIC' => 1,
- '_LT_LINKER_OPTION' => 1,
- 'AM_RUN_LOG' => 1,
- 'AM_PROG_LD' => 1,
- 'm4_include' => 1,
- 'AM_EXTRA_RECURSIVE_TARGETS' => 1,
- 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
+ 'LT_CMD_MAX_LEN' => 1,
+ 'm4_pattern_allow' => 1,
+ '_m4_warn' => 1,
+ 'AM_AUX_DIR_EXPAND' => 1,
+ '_AC_PROG_LIBTOOL' => 1,
'_AM_CONFIG_MACRO_DIRS' => 1,
- 'AC_DISABLE_SHARED' => 1,
+ '_LT_LINKER_OPTION' => 1,
+ 'AM_SILENT_RULES' => 1,
+ 'AC_LIBTOOL_GCJ' => 1,
+ 'AC_LIB_LTDL' => 1,
+ 'AC_LIBLTDL_INSTALLABLE' => 1,
+ 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
+ 'AC_LIBTOOL_WIN32_DLL' => 1,
+ 'LT_AC_PROG_SED' => 1,
+ '_LT_WITH_SYSROOT' => 1,
+ '_LT_AC_SYS_LIBPATH_AIX' => 1,
'AC_LIBTOOL_DLOPEN_SELF' => 1,
- '_LT_AC_LANG_RC_CONFIG' => 1,
- '_LT_AC_LANG_F77' => 1,
- '_LT_PROG_CXX' => 1,
- 'AM_PROG_CC_C_O' => 1,
- 'AC_LTDL_SHLIBEXT' => 1,
- 'm4_pattern_allow' => 1,
- 'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
- 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
- 'LT_AC_PROG_GCJ' => 1,
'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
- 'AC_LIBTOOL_F77' => 1,
- 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
- 'LT_LIB_M' => 1,
- 'AC_LIBTOOL_FC' => 1,
- 'AC_LIB_LTDL' => 1,
- 'LT_PATH_NM' => 1,
- '_AM_DEPENDENCIES' => 1,
- '_LT_AC_LANG_GCJ_CONFIG' => 1,
- 'AC_LIBTOOL_RC' => 1,
- 'AC_LTDL_DLSYM_USCORE' => 1,
- 'LTVERSION_VERSION' => 1,
- '_LT_COMPILER_BOILERPLATE' => 1,
- 'AU_DEFUN' => 1,
- 'AC_LTDL_DLLIB' => 1,
- 'LT_SUPPORTED_TAG' => 1,
- 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
- 'AM_PROG_INSTALL_SH' => 1,
- 'AC_LTDL_PREOPEN' => 1,
- 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
- 'LT_PROG_GO' => 1,
- 'AC_LIBTOOL_SETUP' => 1,
- 'AC_LIBTOOL_CXX' => 1,
- 'AC_PROG_EGREP' => 1,
- 'LT_FUNC_DLSYM_USCORE' => 1,
+ '_LT_AC_TAGVAR' => 1,
+ 'AC_WITH_LTDL' => 1,
'AC_ENABLE_SHARED' => 1,
- '_LT_PROG_LTMAIN' => 1,
- 'PKG_CHECK_MODULES_STATIC' => 1,
- '_LT_LIBOBJ' => 1,
- '_LT_AC_LOCK' => 1,
+ 'AM_AUTOMAKE_VERSION' => 1,
+ 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
+ '_PKG_SHORT_ERRORS_SUPPORTED' => 1,
+ 'AM_PROG_LIBTOOL' => 1,
+ 'AC_ENABLE_STATIC' => 1,
+ 'PKG_PROG_PKG_CONFIG' => 1,
+ '_LT_REQUIRED_DARWIN_CHECKS' => 1,
+ 'AM_DEP_TRACK' => 1,
'_AC_AM_CONFIG_HEADER_HOOK' => 1,
- 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
- '_AM_SET_OPTION' => 1,
- 'AC_LTDL_SYMBOL_USCORE' => 1,
- '_LT_AC_FILE_LTDLL_C' => 1,
- '_LT_PROG_F77' => 1,
- 'AC_LTDL_SHLIBPATH' => 1,
- 'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
- 'AC_LIBTOOL_DLOPEN' => 1,
+ 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
+ '_LT_AC_PROG_ECHO_BACKSLASH' => 1,
+ 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
+ 'LT_FUNC_DLSYM_USCORE' => 1,
+ 'AM_SUBST_NOTMAKE' => 1,
+ 'LT_SUPPORTED_TAG' => 1,
+ '_LT_PROG_ECHO_BACKSLASH' => 1,
+ 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1,
+ '_LT_AC_LANG_F77_CONFIG' => 1,
+ '_AM_PROG_CC_C_O' => 1,
'_LT_AC_LANG_CXX_CONFIG' => 1,
- 'LT_CMD_MAX_LEN' => 1,
- 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
- 'LT_INIT' => 1,
- 'AC_LIBTOOL_GCJ' => 1,
- 'LT_SYS_DLOPEN_SELF' => 1,
- '_LT_CC_BASENAME' => 1,
+ 'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
+ 'LT_FUNC_ARGZ' => 1,
'LTDL_INSTALLABLE' => 1,
- 'AC_PROG_NM' => 1,
- 'LT_PROG_RC' => 1,
- 'LT_LIB_DLLOAD' => 1,
- 'PKG_PROG_PKG_CONFIG' => 1,
+ 'PKG_CHECK_MODULES' => 1,
+ '_LT_AC_LANG_GCJ_CONFIG' => 1,
'LTSUGAR_VERSION' => 1,
- 'AC_LIBTOOL_LANG_C_CONFIG' => 1,
- '_LT_PREPARE_SED_QUOTE_VARS' => 1,
- 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
- 'AC_DISABLE_FAST_INSTALL' => 1,
- 'LTDL_INIT' => 1,
- 'AC_LIBTOOL_PICMODE' => 1,
- '_AM_IF_OPTION' => 1,
- 'AC_LIBLTDL_CONVENIENCE' => 1,
- 'AM_ENABLE_SHARED' => 1,
- 'AC_LTDL_ENABLE_INSTALL' => 1,
- '_AC_PROG_LIBTOOL' => 1,
- 'AC_DEPLIBS_CHECK_METHOD' => 1,
- '_LT_DLL_DEF_P' => 1,
+ 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
'AC_CHECK_LIBM' => 1,
- 'LT_WITH_LTDL' => 1,
- '_AM_MANGLE_OPTION' => 1,
- '_LT_AC_LANG_C_CONFIG' => 1,
- 'PKG_INSTALLDIR' => 1,
- '_LT_AC_LANG_F77_CONFIG' => 1,
- 'PKG_CHECK_EXISTS' => 1,
- 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
- 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1,
- '_LT_AC_TRY_DLOPEN_SELF' => 1,
- '_LT_COMPILER_OPTION' => 1,
- '_LT_PATH_TOOL_PREFIX' => 1,
- '_AM_SUBST_NOTMAKE' => 1,
'AC_LTDL_SYSSEARCHPATH' => 1,
- 'AM_MISSING_PROG' => 1,
- 'AM_SET_DEPDIR' => 1,
- 'AM_INIT_AUTOMAKE' => 1,
- '_PKG_SHORT_ERRORS_SUPPORTED' => 1,
- 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
- 'LT_SYS_DLSEARCH_PATH' => 1,
- 'AM_PROG_NM' => 1,
- 'AM_MAKE_INCLUDE' => 1,
- '_LT_PROG_ECHO_BACKSLASH' => 1,
- 'AC_LTDL_OBJDIR' => 1,
+ 'LT_PROG_RC' => 1,
+ '_AM_IF_OPTION' => 1,
+ 'AM_EXTRA_RECURSIVE_TARGETS' => 1,
+ 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
+ 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1,
+ 'AC_LIBTOOL_FC' => 1,
+ 'AC_CONFIG_MACRO_DIR_TRACE' => 1,
+ 'AC_LTDL_DLSYM_USCORE' => 1,
'LT_PROG_GCJ' => 1,
- 'AM_AUTOMAKE_VERSION' => 1,
- '_LT_AC_CHECK_DLFCN' => 1,
- '_AM_SET_OPTIONS' => 1,
- 'LTOPTIONS_VERSION' => 1,
- 'AC_PATH_MAGIC' => 1,
- 'AC_LIBTOOL_COMPILER_OPTION' => 1,
'AC_PATH_TOOL_PREFIX' => 1,
- 'AC_LIBTOOL_CONFIG' => 1,
- 'AM_SILENT_RULES' => 1,
- 'LT_CONFIG_LTDL_DIR' => 1,
- '_LT_AC_SYS_COMPILER' => 1,
+ '_LT_COMPILER_BOILERPLATE' => 1,
+ 'AC_LIBTOOL_CXX' => 1,
+ 'AM_CONDITIONAL' => 1,
+ 'LT_LIB_DLLOAD' => 1,
+ 'AM_MISSING_HAS_RUN' => 1,
'LT_SYS_SYMBOL_USCORE' => 1,
- 'AC_LIBTOOL_PROG_CC_C_O' => 1,
+ 'AC_LTDL_SHLIBPATH' => 1,
+ '_LT_COMPILER_OPTION' => 1,
+ 'LTDL_CONVENIENCE' => 1,
+ 'AC_LTDL_OBJDIR' => 1,
+ '_AM_PROG_TAR' => 1,
+ 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
+ 'AC_DEFUN_ONCE' => 1,
+ 'AC_LIBTOOL_COMPILER_OPTION' => 1,
+ 'AC_LIBTOOL_DLOPEN' => 1,
+ 'AM_PROG_LD' => 1,
+ 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
+ 'LT_AC_PROG_GCJ' => 1,
'LT_PATH_LD' => 1,
- 'LT_OUTPUT' => 1,
- 'AM_DEP_TRACK' => 1,
- '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
- 'AM_DISABLE_STATIC' => 1,
- '_m4_warn' => 1,
+ 'AC_PROG_NM' => 1,
+ 'AC_LIBTOOL_LINKER_OPTION' => 1,
+ 'AM_PROG_INSTALL_SH' => 1,
+ 'AC_DISABLE_SHARED' => 1,
+ '_LT_AC_LOCK' => 1,
+ 'AM_PROG_CC_C_O' => 1,
'm4_pattern_forbid' => 1,
- '_LT_REQUIRED_DARWIN_CHECKS' => 1,
- '_LT_LINKER_BOILERPLATE' => 1,
+ '_LTDL_SETUP' => 1,
+ '_LT_PREPARE_SED_QUOTE_VARS' => 1,
'PKG_CHECK_VAR' => 1,
- '_LT_AC_TAGVAR' => 1,
+ 'm4_include' => 1,
+ 'include' => 1,
+ 'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
+ '_LT_AC_LANG_F77' => 1,
+ 'AC_LTDL_PREOPEN' => 1,
+ '_LT_CC_BASENAME' => 1,
+ '_LT_AC_PROG_CXXCPP' => 1,
+ '_AM_DEPENDENCIES' => 1,
+ '_AM_SUBST_NOTMAKE' => 1,
+ 'LT_AC_PROG_RC' => 1,
+ 'AC_LTDL_SYMBOL_USCORE' => 1,
+ '_LT_PROG_F77' => 1,
+ 'LT_AC_PROG_EGREP' => 1,
+ 'AC_LIBTOOL_SETUP' => 1,
+ 'PKG_INSTALLDIR' => 1,
+ 'LT_SYS_DLOPEN_DEPLIBS' => 1,
+ 'AM_DISABLE_STATIC' => 1,
+ 'AC_LTDL_SHLIBEXT' => 1,
+ 'LT_CONFIG_LTDL_DIR' => 1,
+ 'AM_MISSING_PROG' => 1,
+ '_LT_AC_SYS_COMPILER' => 1,
+ 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
+ '_LT_PATH_TOOL_PREFIX' => 1,
+ 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
+ '_LT_PROG_CXX' => 1,
+ '_AM_MANGLE_OPTION' => 1,
+ 'AM_ENABLE_STATIC' => 1,
'PKG_NOARCH_INSTALLDIR' => 1,
'AC_PROG_LIBTOOL' => 1,
- 'AC_LIBTOOL_OBJDIR' => 1,
- 'LTOBSOLETE_VERSION' => 1,
- 'LT_SYS_MODULE_PATH' => 1,
- '_LT_AC_SYS_LIBPATH_AIX' => 1,
- '_LT_PROG_FC' => 1,
- 'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
- '_LT_AC_LANG_CXX' => 1,
- 'include' => 1,
+ 'AM_ENABLE_SHARED' => 1,
+ 'AM_RUN_LOG' => 1,
+ '_LT_AC_FILE_LTDLL_C' => 1,
+ 'AC_LTDL_ENABLE_INSTALL' => 1,
+ 'AM_SET_DEPDIR' => 1,
+ '_LT_AC_LANG_C_CONFIG' => 1,
+ 'AC_LIBTOOL_F77' => 1,
+ '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+ '_LT_AC_TRY_DLOPEN_SELF' => 1,
'AC_ENABLE_FAST_INSTALL' => 1,
+ 'AC_LIBTOOL_PICMODE' => 1,
+ '_LT_DLL_DEF_P' => 1,
+ 'LTOPTIONS_VERSION' => 1,
+ 'LT_SYS_MODULE_EXT' => 1,
+ 'LT_SYS_MODULE_PATH' => 1,
+ '_LT_AC_SHELL_INIT' => 1,
+ 'AC_DEPLIBS_CHECK_METHOD' => 1,
+ 'AC_DISABLE_FAST_INSTALL' => 1,
+ 'LT_LANG' => 1,
'AM_SANITY_CHECK' => 1,
- 'LT_FUNC_ARGZ' => 1,
- 'AC_PROG_LD_GNU' => 1,
- '_AM_PROG_TAR' => 1,
+ 'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
+ 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
+ 'LT_WITH_LTDL' => 1,
+ '_LT_LINKER_BOILERPLATE' => 1,
+ '_LT_LIBOBJ' => 1,
'AC_CONFIG_MACRO_DIR' => 1,
+ 'AC_LIBTOOL_CONFIG' => 1,
+ 'AC_LIBTOOL_PROG_CC_C_O' => 1,
+ 'AC_LIBTOOL_OBJDIR' => 1,
+ '_AM_SET_OPTION' => 1,
+ '_LT_AC_TAGCONFIG' => 1,
+ 'LT_INIT' => 1,
+ 'AC_PROG_LD_GNU' => 1,
+ '_LT_PROG_LTMAIN' => 1,
+ 'AC_LIBTOOL_RC' => 1,
+ 'AC_PROG_LD' => 1,
+ 'LT_LIB_M' => 1,
+ 'LTDL_INIT' => 1,
+ 'LT_PATH_NM' => 1,
+ 'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
+ 'LT_SYS_DLOPEN_SELF' => 1,
+ 'AC_LIBLTDL_CONVENIENCE' => 1,
+ 'AM_MAKE_INCLUDE' => 1,
+ 'PKG_CHECK_EXISTS' => 1,
+ '_LT_AC_CHECK_DLFCN' => 1,
+ 'LT_PROG_GO' => 1,
+ 'AC_LIBTOOL_LANG_C_CONFIG' => 1,
'AM_DISABLE_SHARED' => 1,
- '_LT_AC_SHELL_INIT' => 1,
+ 'AM_PROG_INSTALL_STRIP' => 1,
+ 'AC_PROG_LD_RELOAD_FLAG' => 1,
+ 'AM_PROG_NM' => 1,
+ 'LT_OUTPUT' => 1,
+ '_LT_AC_LANG_RC_CONFIG' => 1,
'_LT_AC_LANG_GCJ' => 1,
- 'PKG_CHECK_MODULES' => 1,
- 'AM_AUX_DIR_EXPAND' => 1,
- 'AM_SET_LEADING_DOT' => 1,
- 'LT_SYS_MODULE_EXT' => 1,
- 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1,
- 'AC_LIBTOOL_LINKER_OPTION' => 1,
- 'AC_PROG_LD' => 1,
- 'AM_ENABLE_STATIC' => 1
+ 'AU_DEFUN' => 1,
+ '_AM_AUTOCONF_VERSION' => 1,
+ 'LTVERSION_VERSION' => 1,
+ 'LT_SYS_DLSEARCH_PATH' => 1,
+ 'PKG_CHECK_MODULES_STATIC' => 1,
+ '_LT_AC_LANG_CXX' => 1
}
], 'Autom4te::Request' ),
bless( [
'2',
1,
[
'/usr/share/autoconf'
],
[
'/usr/share/autoconf/autoconf/autoconf.m4f',
'aclocal.m4',
'configure.ac'
],
{
- '_LT_AC_TAGCONFIG' => 1,
+ 'AM_PROG_AR' => 1,
'AH_OUTPUT' => 1,
- 'AC_PROG_LIBTOOL' => 1,
- 'AM_MAKEFILE_INCLUDE' => 1,
- 'AC_FC_FREEFORM' => 1,
- 'AC_CONFIG_LIBOBJ_DIR' => 1,
- 'AC_FC_PP_DEFINE' => 1,
- 'AM_XGETTEXT_OPTION' => 1,
- 'AC_CONFIG_LINKS' => 1,
- 'AM_PROG_MKDIR_P' => 1,
- 'AM_CONDITIONAL' => 1,
- 'AM_PROG_MOC' => 1,
- 'AC_SUBST' => 1,
- '_AM_MAKEFILE_INCLUDE' => 1,
- 'AC_CONFIG_MACRO_DIR_TRACE' => 1,
- 'AC_CONFIG_HEADERS' => 1,
- 'AM_PROG_LIBTOOL' => 1,
- 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
- '_AM_COND_IF' => 1,
- 'AC_SUBST_TRACE' => 1,
- 'AC_CONFIG_SUBDIRS' => 1,
- 'm4_pattern_forbid' => 1,
- 'AM_PROG_FC_C_O' => 1,
+ 'AM_PROG_CXX_C_O' => 1,
+ 'm4_include' => 1,
'LT_SUPPORTED_TAG' => 1,
- '_m4_warn' => 1,
- 'AM_PATH_GUILE' => 1,
- 'AC_CONFIG_FILES' => 1,
'AM_PROG_CC_C_O' => 1,
- 'AC_CANONICAL_HOST' => 1,
- 'AC_FC_SRCEXT' => 1,
- 'AC_CANONICAL_TARGET' => 1,
- 'm4_sinclude' => 1,
- 'LT_INIT' => 1,
+ 'AC_FC_PP_DEFINE' => 1,
+ 'm4_pattern_forbid' => 1,
+ 'AC_CONFIG_SUBDIRS' => 1,
+ '_AM_COND_ENDIF' => 1,
'AM_ENABLE_MULTILIB' => 1,
'_AM_COND_ELSE' => 1,
- 'm4_pattern_allow' => 1,
- 'AC_FC_PP_SRCEXT' => 1,
- 'AM_MAINTAINER_MODE' => 1,
- 'sinclude' => 1,
- '_AM_COND_ENDIF' => 1,
+ 'AC_CONFIG_FILES' => 1,
'AM_PROG_F77_C_O' => 1,
- 'AM_NLS' => 1,
- 'LT_CONFIG_LTDL_DIR' => 1,
- 'AC_CANONICAL_BUILD' => 1,
- 'AM_SILENT_RULES' => 1,
- 'AM_GNU_GETTEXT' => 1,
- 'AM_PROG_CXX_C_O' => 1,
- 'GTK_DOC_CHECK' => 1,
- '_AM_SUBST_NOTMAKE' => 1,
+ 'AM_PROG_LIBTOOL' => 1,
+ 'AC_PROG_LIBTOOL' => 1,
+ 'AM_AUTOMAKE_VERSION' => 1,
'AC_REQUIRE_AUX_FILE' => 1,
- 'AC_CANONICAL_SYSTEM' => 1,
+ 'AM_PROG_MOC' => 1,
+ '_AM_COND_IF' => 1,
+ 'AM_MAINTAINER_MODE' => 1,
+ 'AC_FC_PP_SRCEXT' => 1,
+ 'AM_CONDITIONAL' => 1,
+ 'AC_CANONICAL_TARGET' => 1,
+ 'LT_INIT' => 1,
+ 'AC_FC_SRCEXT' => 1,
+ 'IT_PROG_INTLTOOL' => 1,
+ 'AC_FC_FREEFORM' => 1,
+ 'AM_SILENT_RULES' => 1,
+ 'LT_CONFIG_LTDL_DIR' => 1,
+ '_LT_AC_TAGCONFIG' => 1,
'AC_INIT' => 1,
- 'include' => 1,
+ 'AC_CONFIG_LIBOBJ_DIR' => 1,
+ 'AM_NLS' => 1,
+ 'AC_SUBST_TRACE' => 1,
'AC_CONFIG_AUX_DIR' => 1,
- 'AM_PROG_AR' => 1,
- 'm4_include' => 1,
+ 'AM_PROG_FC_C_O' => 1,
+ 'AC_CONFIG_MACRO_DIR_TRACE' => 1,
+ 'AC_CANONICAL_SYSTEM' => 1,
+ '_m4_warn' => 1,
+ 'AM_MAKEFILE_INCLUDE' => 1,
+ 'AM_GNU_GETTEXT' => 1,
+ 'AC_LIBSOURCE' => 1,
+ 'AM_PATH_GUILE' => 1,
+ 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
+ 'AM_PROG_MKDIR_P' => 1,
+ 'm4_pattern_allow' => 1,
+ 'AC_SUBST' => 1,
+ 'AM_EXTRA_RECURSIVE_TARGETS' => 1,
+ '_AM_MAKEFILE_INCLUDE' => 1,
'AM_POT_TOOLS' => 1,
- 'AM_INIT_AUTOMAKE' => 1,
- 'AM_AUTOMAKE_VERSION' => 1,
- 'IT_PROG_INTLTOOL' => 1,
+ 'AC_CONFIG_HEADERS' => 1,
+ '_AM_SUBST_NOTMAKE' => 1,
'AC_DEFINE_TRACE_LITERAL' => 1,
- 'AM_EXTRA_RECURSIVE_TARGETS' => 1,
- 'AC_LIBSOURCE' => 1
+ 'm4_sinclude' => 1,
+ 'AM_XGETTEXT_OPTION' => 1,
+ 'GTK_DOC_CHECK' => 1,
+ 'AC_CANONICAL_BUILD' => 1,
+ 'sinclude' => 1,
+ 'include' => 1,
+ 'AC_CANONICAL_HOST' => 1,
+ 'AC_CONFIG_LINKS' => 1,
+ 'AM_INIT_AUTOMAKE' => 1
}
], 'Autom4te::Request' ),
bless( [
'3',
1,
[
'/usr/share/autoconf'
],
[
'/usr/share/autoconf/autoconf/autoconf.m4f',
'aclocal.m4',
'/usr/share/autoconf/autoconf/trailer.m4',
'configure.ac'
],
{
- 'AM_MAINTAINER_MODE' => 1,
- 'sinclude' => 1,
- '_AM_COND_ENDIF' => 1,
+ 'm4_include' => 1,
+ 'LT_SUPPORTED_TAG' => 1,
+ 'AM_PROG_AR' => 1,
+ 'AH_OUTPUT' => 1,
'AM_PROG_CXX_C_O' => 1,
- 'AM_GNU_GETTEXT' => 1,
- 'AM_SILENT_RULES' => 1,
- 'GTK_DOC_CHECK' => 1,
- 'AM_NLS' => 1,
- 'AM_PROG_F77_C_O' => 1,
- 'AC_CANONICAL_BUILD' => 1,
- 'LT_CONFIG_LTDL_DIR' => 1,
- 'AC_CANONICAL_HOST' => 1,
- 'AC_FC_SRCEXT' => 1,
+ 'AC_FC_PP_DEFINE' => 1,
+ 'm4_pattern_forbid' => 1,
'AM_PROG_CC_C_O' => 1,
- 'AC_CONFIG_FILES' => 1,
- '_AM_COND_ELSE' => 1,
+ 'AC_CONFIG_SUBDIRS' => 1,
+ '_AM_COND_ENDIF' => 1,
+ 'AM_PROG_LIBTOOL' => 1,
'AM_ENABLE_MULTILIB' => 1,
- 'LT_INIT' => 1,
- 'AC_FC_PP_SRCEXT' => 1,
- 'm4_pattern_allow' => 1,
- 'AC_CANONICAL_TARGET' => 1,
- 'm4_sinclude' => 1,
- 'AM_INIT_AUTOMAKE' => 1,
- 'm4_include' => 1,
- 'AM_POT_TOOLS' => 1,
- 'AC_DEFINE_TRACE_LITERAL' => 1,
- 'AM_EXTRA_RECURSIVE_TARGETS' => 1,
- 'AC_LIBSOURCE' => 1,
+ '_AM_COND_ELSE' => 1,
+ 'AC_CONFIG_FILES' => 1,
+ 'AM_PROG_F77_C_O' => 1,
'AM_AUTOMAKE_VERSION' => 1,
- 'IT_PROG_INTLTOOL' => 1,
- 'include' => 1,
- 'AC_INIT' => 1,
'AC_REQUIRE_AUX_FILE' => 1,
- 'AC_CANONICAL_SYSTEM' => 1,
- '_AM_SUBST_NOTMAKE' => 1,
- 'AC_CONFIG_AUX_DIR' => 1,
- 'AM_PROG_AR' => 1,
- 'AM_CONDITIONAL' => 1,
- 'AM_PROG_MKDIR_P' => 1,
+ 'AC_PROG_LIBTOOL' => 1,
+ 'AM_MAINTAINER_MODE' => 1,
'AM_PROG_MOC' => 1,
- 'AC_FC_FREEFORM' => 1,
- 'AC_CONFIG_LIBOBJ_DIR' => 1,
- 'AM_MAKEFILE_INCLUDE' => 1,
- 'AC_FC_PP_DEFINE' => 1,
- 'AH_OUTPUT' => 1,
+ '_AM_COND_IF' => 1,
+ 'AC_FC_PP_SRCEXT' => 1,
+ 'AM_CONDITIONAL' => 1,
+ 'AC_CANONICAL_TARGET' => 1,
+ 'LT_INIT' => 1,
+ 'AC_FC_SRCEXT' => 1,
'_LT_AC_TAGCONFIG' => 1,
- 'AC_PROG_LIBTOOL' => 1,
- 'AM_XGETTEXT_OPTION' => 1,
- 'AC_CONFIG_LINKS' => 1,
+ 'AC_INIT' => 1,
+ 'AC_CONFIG_LIBOBJ_DIR' => 1,
+ 'IT_PROG_INTLTOOL' => 1,
+ 'AC_FC_FREEFORM' => 1,
+ 'AM_SILENT_RULES' => 1,
+ 'LT_CONFIG_LTDL_DIR' => 1,
+ 'AM_PROG_FC_C_O' => 1,
+ 'AM_NLS' => 1,
+ 'AC_CONFIG_AUX_DIR' => 1,
'AC_SUBST_TRACE' => 1,
- 'AC_CONFIG_SUBDIRS' => 1,
- 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
- '_AM_COND_IF' => 1,
+ 'AC_CONFIG_MACRO_DIR_TRACE' => 1,
+ 'AC_CANONICAL_SYSTEM' => 1,
'_m4_warn' => 1,
- 'LT_SUPPORTED_TAG' => 1,
- 'AM_PROG_FC_C_O' => 1,
+ 'AM_GNU_GETTEXT' => 1,
+ 'AM_MAKEFILE_INCLUDE' => 1,
+ 'AM_PROG_MKDIR_P' => 1,
+ 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
+ 'm4_pattern_allow' => 1,
+ 'AC_LIBSOURCE' => 1,
'AM_PATH_GUILE' => 1,
- 'm4_pattern_forbid' => 1,
- 'AC_SUBST' => 1,
+ 'AM_EXTRA_RECURSIVE_TARGETS' => 1,
'_AM_MAKEFILE_INCLUDE' => 1,
- 'AM_PROG_LIBTOOL' => 1,
+ 'AC_SUBST' => 1,
+ 'AM_POT_TOOLS' => 1,
+ 'AC_DEFINE_TRACE_LITERAL' => 1,
+ '_AM_SUBST_NOTMAKE' => 1,
'AC_CONFIG_HEADERS' => 1,
- 'AC_CONFIG_MACRO_DIR_TRACE' => 1
+ 'GTK_DOC_CHECK' => 1,
+ 'sinclude' => 1,
+ 'AC_CANONICAL_BUILD' => 1,
+ 'm4_sinclude' => 1,
+ 'AM_XGETTEXT_OPTION' => 1,
+ 'AM_INIT_AUTOMAKE' => 1,
+ 'AC_CONFIG_LINKS' => 1,
+ 'include' => 1,
+ 'AC_CANONICAL_HOST' => 1
}
], 'Autom4te::Request' )
);
Index: trunk/npstat/nm/ContOrthoPoly1DQ.icc
===================================================================
--- trunk/npstat/nm/ContOrthoPoly1DQ.icc (revision 0)
+++ trunk/npstat/nm/ContOrthoPoly1DQ.icc (revision 920)
@@ -0,0 +1,466 @@
+#include <cassert>
+#include <stdexcept>
+#include <algorithm>
+
+#include "npstat/nm/PairCompare.hh"
+#include "npstat/nm/PairCompareQ.hh"
+#include "npstat/nm/RecurrenceCoeffsQ.hh"
+
+namespace npstat {
+ template<typename Numeric1, typename Numeric2>
+ void ContOrthoPoly1DQ::copyMeasure(const std::vector<std::pair<Numeric1,Numeric2> >& inMeasure)
+ {
+ if (inMeasure.empty()) throw std::invalid_argument(
+ "In npstat::ContOrthoPoly1DQ::copyMeasure: empty argument measure");
+
+ const unsigned long mSize = inMeasure.size();
+ measure_.clear();
+ measure_.reserve(mSize);
+ for (unsigned long i=0; i<mSize; ++i)
+ {
+ const std::pair<Numeric1,Numeric2>& p(inMeasure[i]);
+ measure_.push_back(MeasurePoint(p.first, p.second));
+ }
+
+ // From time to time, we expect all weights to be equal.
+ // Check if this is indeed the case. If not, sort the
+ // weights in the increasing order, hopefully reducing
+ // the round-off error of subsequent calculations.
+ const Numeric2 w0 = inMeasure[0].second;
+ for (unsigned long i = 1; i < mSize && allWeightsEqual_; ++i)
+ allWeightsEqual_ = (w0 == inMeasure[i].second);
+ if (allWeightsEqual_)
+ std::sort(measure_.begin(), measure_.end(), LessByAbsFirstQ<MeasurePoint>());
+ else
+ std::sort(measure_.begin(), measure_.end(), LessBySecond<MeasurePoint>());
+ const quad_float qzero = quad_float();
+ if (measure_[0].second < qzero) throw std::invalid_argument(
+ "In npstat::ContOrthoPoly1DQ::copyMeasure: negative measure entry found");
+
+ // Make sure that we don't have too many points with 0 weights
+ unsigned long nZeroWeights = 0;
+ if (allWeightsEqual_)
+ {
+ if (w0 == Numeric2())
+ nZeroWeights = mSize;
+ }
+ else
+ {
+ for (unsigned long i = 0; i < mSize; ++i)
+ {
+ if (measure_[i].second == qzero)
+ ++nZeroWeights;
+ else
+ break;
+ }
+ }
+ if (mSize <= maxdeg_ + nZeroWeights) throw std::invalid_argument(
+ "In npstat::ContOrthoPoly1DQ::copyMeasure: insufficient number "
+ "of measure points with non-zero weights");
+ }
+
+ template<typename Numeric>
+ void ContOrthoPoly1DQ::copyInputCoords(const std::vector<Numeric>& inCoords)
+ {
+ if (inCoords.empty()) throw std::invalid_argument(
+ "In npstat::ContOrthoPoly1DQ::copyInputCoords: empty argument vector");
+
+ const unsigned long sz = inCoords.size();
+ if (sz <= maxdeg_) throw std::invalid_argument(
+ "In npstat::ContOrthoPoly1DQ::copyInputCoords: insufficient number of points");
+
+ // Fill the measure, converting the input type as needed
+ measure_.clear();
+ measure_.reserve(sz);
+ const quad_float one = static_cast<quad_float>(1.0);
+ for (unsigned long i = 0; i < sz; ++i)
+ measure_.push_back(MeasurePoint(inCoords[i], one));
+
+ std::sort(measure_.begin(), measure_.end(), LessByAbsFirstQ<MeasurePoint>());
+ }
+
+ inline void ContOrthoPoly1DQ::calcMeanXandWeightSums(const bool shiftTheMeasure)
+ {
+ // Calculate wsum_, wsumsq_, meanX_, and shiftX_
+ const quad_float precise_zero = quad_float();
+ const unsigned long mSize = measure_.size();
+ quad_float xsum = precise_zero;
+ if (allWeightsEqual_)
+ {
+ const quad_float lw0 = measure_[0].second;
+ wsum_ = mSize*lw0;
+ wsumsq_ = mSize*lw0*lw0;
+ for (unsigned long i = 0; i < mSize; ++i)
+ {
+ const quad_float x = measure_[i].first;
+ xsum += x;
+ if (x < minX_)
+ minX_ = x;
+ if (x > maxX_)
+ maxX_ = x;
+ }
+ meanX_ = xsum/mSize;
+ }
+ else
+ {
+ for (unsigned long i = 0; i < mSize; ++i)
+ {
+ const quad_float x = measure_[i].first;
+ const quad_float w = measure_[i].second;
+ wsum_ += w;
+ wsumsq_ += w*w;
+ xsum += w*x;
+ if (w != precise_zero)
+ {
+ if (x < minX_)
+ minX_ = x;
+ if (x > maxX_)
+ maxX_ = x;
+ }
+ }
+ assert(wsum_ > precise_zero);
+ meanX_ = xsum/wsum_;
+ }
+
+ if (shiftTheMeasure)
+ {
+ // Shift the measure
+ quad_float shift = meanX_;
+ for (unsigned long i = 0; i < mSize; ++i)
+ measure_[i].first -= shift;
+
+ if (allWeightsEqual_)
+ std::sort(measure_.begin(), measure_.end(), LessByAbsFirstQ<MeasurePoint>());
+
+ // Try to improve the mean
+ xsum = precise_zero;
+ quad_float dx;
+ if (allWeightsEqual_)
+ {
+ for (unsigned long i = 0; i < mSize; ++i)
+ xsum += measure_[i].first;
+ dx = xsum/mSize;
+ }
+ else
+ {
+ for (unsigned long i = 0; i < mSize; ++i)
+ {
+ const quad_float w = measure_[i].second;
+ xsum += w*measure_[i].first;
+ }
+ dx = xsum/wsum_;
+ }
+
+ // Shift the measure and the mean
+ meanX_ += dx;
+ shift = dx;
+ for (unsigned long i = 0; i < mSize; ++i)
+ measure_[i].first -= shift;
+
+ shiftX_ = meanX_;
+ }
+ else
+ shiftX_ = precise_zero;
+ }
+
+ template<class OrthoPoly>
+ quad_float ContOrthoPoly1DQ::sigma(const OrthoPoly& ops, int k, int l,
+ Matrix<quad_float>& sigMatrix,
+ Matrix<int>& flagMatrix) const
+ {
+ const int nRows = sigMatrix.nRows();
+ const int nCols = sigMatrix.nColumns();
+
+ assert(k >= -1);
+ assert(k < nRows);
+ assert(l >= 0);
+ assert(l < nCols);
+
+ if (k < 0)
+ return 0.0Q;
+ else if (flagMatrix[k][l])
+ return sigMatrix[k][l];
+ else
+ {
+ assert(k > 0);
+ const int* flagskm1 = flagMatrix[k-1];
+ assert(flagskm1[l]);
+ assert(l+1 < nCols);
+ assert(flagskm1[l+1]);
+ assert(l-1 >= 0);
+ assert(flagskm1[l-1]);
+ quad_float sigkm2l = 0.0Q;
+ if (k > 1)
+ {
+ assert(flagMatrix[k-2][l]);
+ sigkm2l = sigMatrix[k-2][l];
+ }
+ const quad_float* smatkm1 = sigMatrix[k-1];
+ const Private::RecurrenceQ& rckm1(rCoeffs_.at(k - 1));
+ const std::pair<quad_float,quad_float>& ab = ops.monicRecurrenceCoeffs(l);
+ const quad_float sigkl = smatkm1[l+1] - (rckm1.alpha - ab.first)*smatkm1[l] -
+ rckm1.beta*sigkm2l + ab.second*smatkm1[l-1];
+ sigMatrix[k][l] = sigkl;
+ flagMatrix[k][l] = 1;
+ return sigkl;
+ }
+ }
+
+ template<class OrthoPoly>
+ void ContOrthoPoly1DQ::calculateMonicAverages(
+ const OrthoPoly& ops, quad_float* averages, const unsigned maxdeg)
+ {
+ std::vector<quad_float> membuf(2U*(maxdeg + 1U), 0.0Q);
+ quad_float* poly = &membuf[0];
+ quad_float* sums = poly + (maxdeg + 1U);
+ const unsigned long numPoints = measure_.size();
+ for (unsigned long i=0; i<numPoints; ++i)
+ {
+ const quad_float ptw = measure_[i].second;
+ ops.allmonic(measure_[i].first, poly, maxdeg);
+ for (unsigned k=0; k<=maxdeg; ++k)
+ sums[k] += poly[k]*ptw;
+ }
+ for (unsigned k=0; k<=maxdeg; ++k)
+ averages[k] = sums[k]/wsum_;
+ }
+
+ template<class OrthoPoly>
+ void ContOrthoPoly1DQ::calcRecurrenceModifiedChebyshev(const OrthoPoly& ops)
+ {
+ const unsigned maxl = 2U*maxdeg_ + 1U;
+ if (ops.maxDegree() < maxl) throw std::invalid_argument(
+ "In npstat::ContOrthoPoly1DQ::calcRecurrenceModifiedChebyshev: "
+ "insufficient maximum degree of the input OPS");
+
+ Matrix<quad_float> sigMatrix(maxdeg_+1U, maxl+1U);
+ Matrix<int> flagMatrix(maxdeg_+1U, maxl+1U, 0);
+
+ quad_float* m = sigMatrix[0];
+ calculateMonicAverages(ops, m, maxl);
+ int* flags = flagMatrix[0];
+ for (unsigned i=0; i<=maxl; ++i)
+ flags[i] = 1;
+
+ const quad_float a0 = ops.monicRecurrenceCoeffs(0).first;
+ rCoeffs_.push_back(Private::RecurrenceQ(a0 + m[1], 1.0Q));
+
+ const int imdeg = maxdeg_;
+ for (int k=1; k<=imdeg; ++k)
+ {
+ const int lmax = maxl-k;
+ for (int l=k; l<=lmax; ++l)
+ sigma(ops, k, l, sigMatrix, flagMatrix);
+ assert(flagMatrix[k][k]);
+ const quad_float sigkk = sigMatrix[k][k];
+ assert(flagMatrix[k-1][k-1]);
+ const quad_float sigkm1km1 = sigMatrix[k-1][k-1];
+ assert(flagMatrix[k][k+1]);
+ const quad_float sigkkp1 = sigMatrix[k][k+1];
+ assert(flagMatrix[k-1][k]);
+ const quad_float sigkm1k = sigMatrix[k-1][k];
+ const quad_float ak = ops.monicRecurrenceCoeffs(k).first;
+ const quad_float alpha = ak + sigkkp1/sigkk - sigkm1k/sigkm1km1;
+ const quad_float beta = sigkk/sigkm1km1;
+ rCoeffs_.push_back(Private::RecurrenceQ(alpha, beta));
+ }
+ }
+
+ template<typename Numeric1, typename Numeric2>
+ ContOrthoPoly1DQ::ContOrthoPoly1DQ(const unsigned maxDegree,
+ const std::vector<std::pair<Numeric1,Numeric2> >& inMeasure,
+ const OrthoPolyMethod m,
+ const bool shiftMeasure)
+ : wsum_(),
+ wsumsq_(),
+ minX_(FLT128_MAX),
+ maxX_(-FLT128_MAX),
+ maxdeg_(maxDegree),
+ allWeightsEqual_(true)
+ {
+ copyMeasure(inMeasure);
+ calcMeanXandWeightSums(shiftMeasure);
+ Private::calcRecurrenceCoeffsQ(measure_, maxdeg_, wsum_, m, &rCoeffs_);
+ }
+
+ template<typename Numeric>
+ ContOrthoPoly1DQ::ContOrthoPoly1DQ(const unsigned maxDegree,
+ const std::vector<Numeric>& inCoords,
+ const OrthoPolyMethod m,
+ const bool shiftMeasure)
+ : wsum_(),
+ wsumsq_(),
+ minX_(FLT128_MAX),
+ maxX_(-FLT128_MAX),
+ maxdeg_(maxDegree),
+ allWeightsEqual_(true)
+ {
+ copyInputCoords(inCoords);
+ calcMeanXandWeightSums(shiftMeasure);
+ Private::calcRecurrenceCoeffsQ(measure_, maxdeg_, wsum_, m, &rCoeffs_);
+ }
+
+ template<typename Numeric1, typename Numeric2, class OrthoPoly>
+ ContOrthoPoly1DQ::ContOrthoPoly1DQ(const unsigned maxDegree,
+ const std::vector<std::pair<Numeric1,Numeric2> >& inMeasure,
+ const OrthoPoly& ops,
+ const bool shiftMeasure)
+ : wsum_(),
+ wsumsq_(),
+ minX_(FLT128_MAX),
+ maxX_(-FLT128_MAX),
+ maxdeg_(maxDegree),
+ allWeightsEqual_(true)
+ {
+ copyMeasure(inMeasure);
+ calcMeanXandWeightSums(shiftMeasure);
+ calcRecurrenceModifiedChebyshev(ops);
+ }
+
+ template<typename Numeric, class OrthoPoly>
+ ContOrthoPoly1DQ::ContOrthoPoly1DQ(const unsigned maxDegree,
+ const std::vector<Numeric>& inCoords,
+ const OrthoPoly& ops,
+ const bool shiftMeasure)
+ : wsum_(),
+ wsumsq_(),
+ minX_(FLT128_MAX),
+ maxX_(-FLT128_MAX),
+ maxdeg_(maxDegree),
+ allWeightsEqual_(true)
+ {
+ copyInputCoords(inCoords);
+ calcMeanXandWeightSums(shiftMeasure);
+ calcRecurrenceModifiedChebyshev(ops);
+ }
+
+ inline quad_float ContOrthoPoly1DQ::effectiveSampleSize() const
+ {
+ if (allWeightsEqual_)
+ return measure_.size();
+ else
+ return wsum_*wsum_/wsumsq_;
+ }
+
+ inline quad_float ContOrthoPoly1DQ::poly(const unsigned deg, const quad_float x) const
+ {
+ if (deg > maxdeg_) throw std::invalid_argument(
+ "In npstat::ContOrthoPoly1DQ::poly: degree argument is out of range");
+ return normpoly(deg, x - shiftX_);
+ }
+
+ inline std::pair<quad_float,quad_float> ContOrthoPoly1DQ::polyPair(
+ const unsigned deg1, const unsigned deg2, const quad_float x) const
+ {
+ if (deg1 > maxdeg_ || deg2 > maxdeg_) throw std::invalid_argument(
+ "In npstat::ContOrthoPoly1DQ::polyPair: degree argument is out of range");
+ return twonormpoly(deg1, deg2, x - shiftX_);
+ }
+
+ inline quad_float ContOrthoPoly1DQ::empiricalKroneckerDelta(
+ const unsigned ideg1, const unsigned ideg2) const
+ {
+ if (ideg1 > maxdeg_ || ideg2 > maxdeg_) throw std::invalid_argument(
+ "In npstat::ContOrthoPoly1DQ::empiricalKroneckerDelta: "
+ "degree argument is out of range");
+ quad_float sum = quad_float();
+ const unsigned long mSize = measure_.size();
+ for (unsigned long i = 0; i < mSize; ++i)
+ {
+ const std::pair<quad_float, quad_float>& p =
+ twonormpoly(ideg1, ideg2, measure_[i].first);
+ sum += measure_[i].second*p.first*p.second;
+ }
+ return sum/wsum_;
+ }
+
+ inline Matrix<quad_float>
+ ContOrthoPoly1DQ::empiricalKroneckerMatrix(const unsigned maxdeg) const
+ {
+ if (maxdeg > maxdeg_) throw std::invalid_argument(
+ "In npstat::ContOrthoPoly1DQ::empiricalKroneckerMatrix: "
+ "requested matrix size is out of range");
+ Matrix<quad_float> kd(maxdeg+1U, maxdeg+1U, 0);
+ std::vector<quad_float> polyv(maxdeg+1U);
+ quad_float* polyBuf = &polyv[0];
+ const unsigned long mSize = measure_.size();
+ for (unsigned long ipt = 0; ipt < mSize; ++ipt)
+ {
+ const quad_float weight = measure_[ipt].second;
+ getAllPolys(measure_[ipt].first, maxdeg, polyBuf);
+ for (unsigned i=0; i<=maxdeg; ++i)
+ {
+ const quad_float polyI = polyBuf[i];
+ quad_float* row = kd[i];
+ for (unsigned j=i; j<=maxdeg; ++j)
+ row[j] += weight*polyI*polyBuf[j];
+ }
+ }
+ for (unsigned i=0; i<maxdeg; ++i)
+ for (unsigned j=i+1U; j<=maxdeg; ++j)
+ kd[j][i] = kd[i][j];
+ kd /= wsum_;
+ return kd;
+ }
+
+ inline quad_float ContOrthoPoly1DQ::normpoly(
+ const unsigned degree, const quad_float x) const
+ {
+ assert(degree <= maxdeg_);
+
+ quad_float polyk = 1.0, polykm1 = quad_float();
+ for (unsigned k=0; k<degree; ++k)
+ {
+ const quad_float p = ((x - rCoeffs_[k].alpha)*polyk -
+ rCoeffs_[k].sqrbeta*polykm1)/rCoeffs_[k+1].sqrbeta;
+ polykm1 = polyk;
+ polyk = p;
+ }
+ return polyk;
+ }
+
+ inline std::pair<quad_float,quad_float> ContOrthoPoly1DQ::twonormpoly(
+ const unsigned deg1, const unsigned deg2, const quad_float x) const
+ {
+ const quad_float precise_zero = quad_float();
+ quad_float p1 = precise_zero, p2 = precise_zero, polyk = 1.0, polykm1 = precise_zero;
+ const unsigned degmax = std::max(deg1, deg2);
+ for (unsigned k=0; k<degmax; ++k)
+ {
+ if (k == deg1)
+ p1 = polyk;
+ if (k == deg2)
+ p2 = polyk;
+ const quad_float p = ((x - rCoeffs_[k].alpha)*polyk -
+ rCoeffs_[k].sqrbeta*polykm1)/rCoeffs_[k+1].sqrbeta;
+ polykm1 = polyk;
+ polyk = p;
+ }
+ if (deg1 == degmax)
+ p1 = polyk;
+ if (deg2 == degmax)
+ p2 = polyk;
+ return std::pair<quad_float,quad_float>(p1, p2);
+ }
+
+ template <typename Numeric>
+ void ContOrthoPoly1DQ::getAllPolys(const quad_float x, const unsigned maxdeg,
+ Numeric* polyValues) const
+ {
+ if (maxdeg > maxdeg_) throw std::invalid_argument(
+ "In npstat::ContOrthoPoly1DQ::getAllPolys: "
+ "maximum polynomial degree is out of range");
+ assert(polyValues);
+
+ quad_float polyk = 1.0, polykm1 = quad_float();
+ polyValues[0] = static_cast<Numeric>(polyk);
+ for (unsigned k=0; k<maxdeg; ++k)
+ {
+ const quad_float p = ((x - rCoeffs_[k].alpha)*polyk -
+ rCoeffs_[k].sqrbeta*polykm1)/rCoeffs_[k+1].sqrbeta;
+ polyValues[k+1] = static_cast<Numeric>(p);
+ polykm1 = polyk;
+ polyk = p;
+ }
+ }
+}
Index: trunk/npstat/nm/RecurrenceCoeffsQ.hh
===================================================================
--- trunk/npstat/nm/RecurrenceCoeffsQ.hh (revision 0)
+++ trunk/npstat/nm/RecurrenceCoeffsQ.hh (revision 920)
@@ -0,0 +1,55 @@
+#ifndef NPSTAT_RECURRENCECOEFFSQ_HH_
+#define NPSTAT_RECURRENCECOEFFSQ_HH_
+
+//======================================================================
+// RecurrenceCoeffsQ.hh
+//
+// This is an internal header which is subject to change without
+// notice. Application code should never use classes or functions
+// declared/defined in this header directly.
+//
+// Author: I. Volobouev
+//
+// July 2023
+//======================================================================
+
+#include <vector>
+#include <utility>
+
+#include "npstat/nm/RecurrenceQ.hh"
+#include "npstat/nm/OrthoPolyMethod.hh"
+
+namespace npstat {
+ namespace Private {
+ // The following function should be the only one
+ // directly used by the rest of the package
+ template <class MeasurePt>
+ void calcRecurrenceCoeffsQ(const std::vector<MeasurePt>& measure,
+ unsigned maxdeg, quad_float norm,
+ OrthoPolyMethod m,
+ std::vector<RecurrenceQ>* rcoeffs);
+
+ template <class MeasurePt>
+ void calcRecurrenceStieltjesQ(const std::vector<MeasurePt>& measure,
+ unsigned maxdeg, quad_float norm,
+ std::vector<RecurrenceQ>* rcoeffs);
+
+ template <class MeasurePt>
+ void calcRecurrenceLanczosQ(const std::vector<MeasurePt>& measure,
+ unsigned maxdeg, quad_float norm,
+ std::vector<RecurrenceQ>* rcoeffs);
+
+ template <class MeasurePt>
+ std::pair<quad_float,quad_float> monicInnerProductsQ(
+ const std::vector<RecurrenceQ>& rcoeffs,
+ const std::vector<MeasurePt>& measure,
+ unsigned degree, quad_float norm);
+
+ quad_float monicpolyQ(const std::vector<RecurrenceQ>& rcoeffs,
+ unsigned degree, quad_float x);
+ }
+}
+
+#include "npstat/nm/RecurrenceCoeffsQ.icc"
+
+#endif // NPSTAT_RECURRENCECOEFFSQ_HH_
Index: trunk/npstat/nm/Makefile.am
===================================================================
--- trunk/npstat/nm/Makefile.am (revision 919)
+++ trunk/npstat/nm/Makefile.am (revision 920)
@@ -1,188 +1,197 @@
AM_CPPFLAGS = -I@top_srcdir@/ $(DEPS_CFLAGS)
noinst_LTLIBRARIES = libnm.la
libnm_la_SOURCES = ArrayShape.cc ArrayRange.cc SpecialFunctions.cc \
ConvolutionEngine1D.cc EquidistantSequence.cc GaussHermiteQuadrature.cc \
GaussLegendreQuadrature.cc MathUtils.cc OrthoPoly1D.cc GridAxis.cc \
rectangleQuadrature.cc LinInterpolatedTable1D.cc ScanExtremum1D.cc \
bilinearSection.cc ConvolutionEngineND.cc FourierImage.cc SvdMethod.cc \
binomialCoefficient.cc UniformAxis.cc ArrayNDScanner.cc DualAxis.cc \
DiscreteBernsteinPoly1D.cc definiteIntegrals.cc EigenMethod.cc \
goldenSectionSearch.cc timestamp.cc OrthoPolyMethod.cc ContOrthoPoly1D.cc \
lapack_interface.cc AbsClassicalOrthoPoly1D.cc ClassicalOrthoPolys1D.cc \
matrixIndexPairs.cc truncatedInverseSqrt.cc FejerQuadrature.cc \
StorablePolySeries1D.cc SemiInfGaussianQuadrature.cc Gauss1DQuadrature.cc \
HeatEq1DNeumannBoundary.cc performSchultzIteration.cc RecurrenceCoeffs.cc \
GaussLegendreQuadratureQ.cc GaussLegendreQuadrature2D.cc Poly1D.cc \
ScalableClassicalOrthoPoly1D.cc RectangleQuadrature1D.cc findPeak2D.cc \
- sineTransformMatrix.cc scalesFromHessian.cc LegendreCDTruncation.cc
+ sineTransformMatrix.cc scalesFromHessian.cc LegendreCDTruncation.cc \
+ shiftedLegendreIntegral.cc
includedir = ${prefix}/include/npstat/nm
include_HEADERS = AbsArrayProjector.hh \
AbsClassicalOrthoPoly1D.hh \
AbsClassicalOrthoPoly1D.icc \
absDifference.hh \
AbsIntervalQuadrature1D.hh \
AbsMultivariateFunctor.hh \
AbsVisitor.hh \
allocators.hh \
areAllElementsUnique.hh \
ArrayND.hh \
ArrayND.icc \
ArrayNDScanner.hh \
ArrayRange.hh \
ArrayShape.hh \
bilinearSection.hh \
BindKernel.hh \
binomialCoefficient.hh \
BoundaryInclusion.hh \
BoxND.hh \
BoxND.icc \
BoxNDScanner.hh \
BoxNDScanner.icc \
cdKernelSensitivityMatrix.hh \
cdKernelSensitivityMatrix.icc \
ChebyshevIntegral.hh \
CircularMapper1d.hh \
ClassicalOrthoPoly1DFromWeight.hh \
ClassicalOrthoPoly1DFromWeight.icc \
ClassicalOrthoPolys1D.hh \
closeWithinTolerance.hh \
CompareByIndex.hh \
ComplexComparesAbs.hh \
ComplexComparesFalse.hh \
ConstSubscriptMap.hh \
ContOrthoPoly1D.hh \
ContOrthoPoly1D.icc \
+ ContOrthoPoly1DQ.hh \
+ ContOrthoPoly1DQ.icc \
ConvolutionDensity1D.hh \
ConvolutionDensity1D.icc \
ConvolutionEngine1D.hh \
ConvolutionEngine1D.icc \
ConvolutionEngineND.hh \
ConvolutionEngineND.icc \
coordAndWeight.hh \
CoordinateSelector.hh \
definiteIntegrals.hh \
DiscreteBernsteinPoly1D.hh \
discretizedDistance.hh \
discretizedDistance.icc \
DualAxis.hh \
EigenMethod.hh \
EquidistantSequence.hh \
ExpMapper1d.hh \
fcnOrConst.hh \
FejerQuadrature.hh \
FejerQuadrature.icc \
fillArrayCentersPreservingAreas.hh \
findPeak2D.hh \
findRootInLogSpace.hh \
findRootInLogSpace.icc \
findRootNewtonRaphson.hh \
findRootNewtonRaphson.icc \
findRootUsingBisections.hh \
findRootUsingBisections.icc \
float128IO.hh \
FourierImage.hh \
Gauss1DQuadrature.hh \
GaussHermiteQuadrature.hh \
GaussHermiteQuadrature.icc \
GaussianDip.hh \
GaussLegendreQuadrature.hh \
GaussLegendreQuadrature.icc \
GaussLegendreQuadrature2D.hh \
GaussLegendreQuadrature2D.icc \
GaussLegendreQuadratureQ.hh \
GaussLegendreQuadratureQ.icc \
GeneralizedComplex.hh \
goldenSectionSearch.hh \
goldenSectionSearch.icc \
GridAxis.hh \
HeatEq1DNeumannBoundary.hh \
interpolate.hh \
interpolate.icc \
Interval.hh \
Interval.icc \
isMonotonous.hh \
KDTree.hh \
KDTree.icc \
kernelSensitivityMatrix.hh \
kernelSensitivityMatrix.icc \
lapack.h \
lapack_double.h \
lapack_interface.hh \
lapack_interface.icc \
lapack_interface_double.icc \
lapack_interface_ldouble.icc \
lapack_interface_float.icc \
LegendreCDTruncation.hh \
LinearMapper1d.hh \
LinInterpolatedTable1D.hh \
LinInterpolatedTable1D.icc \
LinInterpolatedTableND.hh \
LinInterpolatedTableND.icc \
LogMapper1d.hh \
LongerType.hh \
MathUtils.hh \
MathUtils.icc \
Matrix.hh \
matrixIndexPairs.hh \
Matrix.icc \
maxAbsValue.hh \
MinSearchStatus1D.hh \
modifiedGramSchmidt.hh \
modifiedGramSchmidt.icc \
multivariateCosine.hh \
MultivariateFunctorScanner.hh \
opsRootsFromJacobiMatrix.hh \
OrthoPoly1D.hh \
OrthoPoly1D.icc \
OrthoPolyMethod.hh \
OrthoPolyND.hh \
OrthoPolyND.icc \
PairCompare.hh \
+ PairCompareQ.hh \
performSchultzIteration.hh \
PointDimensionality.hh \
Poly1D.hh \
polyPrivateUtils.hh \
polyPrivateUtils.icc \
PreciseType.hh \
ProperDblFromCmpl.hh \
PtrBufferHandle.hh \
+ quad_float.hh \
RectangleQuadrature1D.hh \
RectangleQuadrature1D.icc \
Recurrence.hh \
+ RecurrenceQ.hh \
RecurrenceCoeffs.hh \
RecurrenceCoeffs.icc \
+ RecurrenceCoeffsQ.hh \
+ RecurrenceCoeffsQ.icc \
RecurrenceCoeffsTrGauss.hh \
RecurrenceCoeffsTrGauss.icc \
rectangleQuadrature.hh \
rescanArray.hh \
rescanArray.icc \
ScanExtremum1D.hh \
ScalableClassicalOrthoPoly1D.hh \
ScalableClassicalOrthoPoly1D.icc \
scalesFromHessian.hh \
SemiInfGaussianQuadrature.hh \
SemiInfGaussianQuadrature.icc \
+ shiftedLegendreIntegral.hh \
SimpleFunctors.hh \
SimpleScalarProduct.hh \
sineTransformMatrix.hh \
SpecialFunctions.hh \
std_quadmath.hh \
StorablePolySeries1D.hh \
StorablePolySeries1D.icc \
sumOfSquares.hh \
SvdMethod.hh \
timestamp.hh \
Triple.hh \
truncatedInverseSqrt.hh \
TruncatedLog.hh \
TruncatedLog.icc \
UniformAxis.hh \
unitMatrixDeviations.hh \
unitMatrixDeviations.icc \
vectorAsText.hh
EXTRA_DIST = 00README.txt
Index: trunk/npstat/nm/Makefile.in
===================================================================
--- trunk/npstat/nm/Makefile.in (revision 919)
+++ trunk/npstat/nm/Makefile.in (revision 920)
@@ -1,1050 +1,1064 @@
# Makefile.in generated by automake 1.16.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2021 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
VPATH = @srcdir@
am__is_gnu_make = { \
if test -z '$(MAKELEVEL)'; then \
false; \
elif test -n '$(MAKE_HOST)'; then \
true; \
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
true; \
else \
false; \
fi; \
}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = npstat/nm
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(include_HEADERS) \
$(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
LTLIBRARIES = $(noinst_LTLIBRARIES)
libnm_la_LIBADD =
am_libnm_la_OBJECTS = ArrayShape.lo ArrayRange.lo SpecialFunctions.lo \
ConvolutionEngine1D.lo EquidistantSequence.lo \
GaussHermiteQuadrature.lo GaussLegendreQuadrature.lo \
MathUtils.lo OrthoPoly1D.lo GridAxis.lo rectangleQuadrature.lo \
LinInterpolatedTable1D.lo ScanExtremum1D.lo bilinearSection.lo \
ConvolutionEngineND.lo FourierImage.lo SvdMethod.lo \
binomialCoefficient.lo UniformAxis.lo ArrayNDScanner.lo \
DualAxis.lo DiscreteBernsteinPoly1D.lo definiteIntegrals.lo \
EigenMethod.lo goldenSectionSearch.lo timestamp.lo \
OrthoPolyMethod.lo ContOrthoPoly1D.lo lapack_interface.lo \
AbsClassicalOrthoPoly1D.lo ClassicalOrthoPolys1D.lo \
matrixIndexPairs.lo truncatedInverseSqrt.lo FejerQuadrature.lo \
StorablePolySeries1D.lo SemiInfGaussianQuadrature.lo \
Gauss1DQuadrature.lo HeatEq1DNeumannBoundary.lo \
performSchultzIteration.lo RecurrenceCoeffs.lo \
GaussLegendreQuadratureQ.lo GaussLegendreQuadrature2D.lo \
Poly1D.lo ScalableClassicalOrthoPoly1D.lo \
RectangleQuadrature1D.lo findPeak2D.lo sineTransformMatrix.lo \
- scalesFromHessian.lo LegendreCDTruncation.lo
+ scalesFromHessian.lo LegendreCDTruncation.lo \
+ shiftedLegendreIntegral.lo
libnm_la_OBJECTS = $(am_libnm_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__maybe_remake_depfiles = depfiles
am__depfiles_remade = ./$(DEPDIR)/AbsClassicalOrthoPoly1D.Plo \
./$(DEPDIR)/ArrayNDScanner.Plo ./$(DEPDIR)/ArrayRange.Plo \
./$(DEPDIR)/ArrayShape.Plo \
./$(DEPDIR)/ClassicalOrthoPolys1D.Plo \
./$(DEPDIR)/ContOrthoPoly1D.Plo \
./$(DEPDIR)/ConvolutionEngine1D.Plo \
./$(DEPDIR)/ConvolutionEngineND.Plo \
./$(DEPDIR)/DiscreteBernsteinPoly1D.Plo \
./$(DEPDIR)/DualAxis.Plo ./$(DEPDIR)/EigenMethod.Plo \
./$(DEPDIR)/EquidistantSequence.Plo \
./$(DEPDIR)/FejerQuadrature.Plo ./$(DEPDIR)/FourierImage.Plo \
./$(DEPDIR)/Gauss1DQuadrature.Plo \
./$(DEPDIR)/GaussHermiteQuadrature.Plo \
./$(DEPDIR)/GaussLegendreQuadrature.Plo \
./$(DEPDIR)/GaussLegendreQuadrature2D.Plo \
./$(DEPDIR)/GaussLegendreQuadratureQ.Plo \
./$(DEPDIR)/GridAxis.Plo \
./$(DEPDIR)/HeatEq1DNeumannBoundary.Plo \
./$(DEPDIR)/LegendreCDTruncation.Plo \
./$(DEPDIR)/LinInterpolatedTable1D.Plo \
./$(DEPDIR)/MathUtils.Plo ./$(DEPDIR)/OrthoPoly1D.Plo \
./$(DEPDIR)/OrthoPolyMethod.Plo ./$(DEPDIR)/Poly1D.Plo \
./$(DEPDIR)/RectangleQuadrature1D.Plo \
./$(DEPDIR)/RecurrenceCoeffs.Plo \
./$(DEPDIR)/ScalableClassicalOrthoPoly1D.Plo \
./$(DEPDIR)/ScanExtremum1D.Plo \
./$(DEPDIR)/SemiInfGaussianQuadrature.Plo \
./$(DEPDIR)/SpecialFunctions.Plo \
./$(DEPDIR)/StorablePolySeries1D.Plo ./$(DEPDIR)/SvdMethod.Plo \
./$(DEPDIR)/UniformAxis.Plo ./$(DEPDIR)/bilinearSection.Plo \
./$(DEPDIR)/binomialCoefficient.Plo \
./$(DEPDIR)/definiteIntegrals.Plo ./$(DEPDIR)/findPeak2D.Plo \
./$(DEPDIR)/goldenSectionSearch.Plo \
./$(DEPDIR)/lapack_interface.Plo \
./$(DEPDIR)/matrixIndexPairs.Plo \
./$(DEPDIR)/performSchultzIteration.Plo \
./$(DEPDIR)/rectangleQuadrature.Plo \
./$(DEPDIR)/scalesFromHessian.Plo \
+ ./$(DEPDIR)/shiftedLegendreIntegral.Plo \
./$(DEPDIR)/sineTransformMatrix.Plo ./$(DEPDIR)/timestamp.Plo \
./$(DEPDIR)/truncatedInverseSqrt.Plo
am__mv = mv -f
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CXXFLAGS) $(CXXFLAGS)
AM_V_CXX = $(am__v_CXX_@AM_V@)
am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
am__v_CXX_0 = @echo " CXX " $@;
am__v_CXX_1 =
CXXLD = $(CXX)
CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
am__v_CXXLD_0 = @echo " CXXLD " $@;
am__v_CXXLD_1 =
SOURCES = $(libnm_la_SOURCES)
DIST_SOURCES = $(libnm_la_SOURCES)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
END { for (dir in files) print dir, files[dir] }'
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
am__installdirs = "$(DESTDIR)$(includedir)"
HEADERS = $(include_HEADERS)
am__extra_recursive_targets = python-recursive
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
BEGIN { nonempty = 0; } \
{ items[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique. This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
list='$(am__tagged_files)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | $(am__uniquify_input)`
am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPPFLAGS = @CPPFLAGS@
CSCOPE = @CSCOPE@
CTAGS = @CTAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DEPS_CFLAGS = @DEPS_CFLAGS@
DEPS_LIBS = @DEPS_LIBS@
DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
ETAGS = @ETAGS@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
FGREP = @FGREP@
FLIBS = @FLIBS@
GREP = @GREP@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
ac_ct_F77 = @ac_ct_F77@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = ${prefix}/include/npstat/nm
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
AM_CPPFLAGS = -I@top_srcdir@/ $(DEPS_CFLAGS)
noinst_LTLIBRARIES = libnm.la
libnm_la_SOURCES = ArrayShape.cc ArrayRange.cc SpecialFunctions.cc \
ConvolutionEngine1D.cc EquidistantSequence.cc GaussHermiteQuadrature.cc \
GaussLegendreQuadrature.cc MathUtils.cc OrthoPoly1D.cc GridAxis.cc \
rectangleQuadrature.cc LinInterpolatedTable1D.cc ScanExtremum1D.cc \
bilinearSection.cc ConvolutionEngineND.cc FourierImage.cc SvdMethod.cc \
binomialCoefficient.cc UniformAxis.cc ArrayNDScanner.cc DualAxis.cc \
DiscreteBernsteinPoly1D.cc definiteIntegrals.cc EigenMethod.cc \
goldenSectionSearch.cc timestamp.cc OrthoPolyMethod.cc ContOrthoPoly1D.cc \
lapack_interface.cc AbsClassicalOrthoPoly1D.cc ClassicalOrthoPolys1D.cc \
matrixIndexPairs.cc truncatedInverseSqrt.cc FejerQuadrature.cc \
StorablePolySeries1D.cc SemiInfGaussianQuadrature.cc Gauss1DQuadrature.cc \
HeatEq1DNeumannBoundary.cc performSchultzIteration.cc RecurrenceCoeffs.cc \
GaussLegendreQuadratureQ.cc GaussLegendreQuadrature2D.cc Poly1D.cc \
ScalableClassicalOrthoPoly1D.cc RectangleQuadrature1D.cc findPeak2D.cc \
- sineTransformMatrix.cc scalesFromHessian.cc LegendreCDTruncation.cc
+ sineTransformMatrix.cc scalesFromHessian.cc LegendreCDTruncation.cc \
+ shiftedLegendreIntegral.cc
include_HEADERS = AbsArrayProjector.hh \
AbsClassicalOrthoPoly1D.hh \
AbsClassicalOrthoPoly1D.icc \
absDifference.hh \
AbsIntervalQuadrature1D.hh \
AbsMultivariateFunctor.hh \
AbsVisitor.hh \
allocators.hh \
areAllElementsUnique.hh \
ArrayND.hh \
ArrayND.icc \
ArrayNDScanner.hh \
ArrayRange.hh \
ArrayShape.hh \
bilinearSection.hh \
BindKernel.hh \
binomialCoefficient.hh \
BoundaryInclusion.hh \
BoxND.hh \
BoxND.icc \
BoxNDScanner.hh \
BoxNDScanner.icc \
cdKernelSensitivityMatrix.hh \
cdKernelSensitivityMatrix.icc \
ChebyshevIntegral.hh \
CircularMapper1d.hh \
ClassicalOrthoPoly1DFromWeight.hh \
ClassicalOrthoPoly1DFromWeight.icc \
ClassicalOrthoPolys1D.hh \
closeWithinTolerance.hh \
CompareByIndex.hh \
ComplexComparesAbs.hh \
ComplexComparesFalse.hh \
ConstSubscriptMap.hh \
ContOrthoPoly1D.hh \
ContOrthoPoly1D.icc \
+ ContOrthoPoly1DQ.hh \
+ ContOrthoPoly1DQ.icc \
ConvolutionDensity1D.hh \
ConvolutionDensity1D.icc \
ConvolutionEngine1D.hh \
ConvolutionEngine1D.icc \
ConvolutionEngineND.hh \
ConvolutionEngineND.icc \
coordAndWeight.hh \
CoordinateSelector.hh \
definiteIntegrals.hh \
DiscreteBernsteinPoly1D.hh \
discretizedDistance.hh \
discretizedDistance.icc \
DualAxis.hh \
EigenMethod.hh \
EquidistantSequence.hh \
ExpMapper1d.hh \
fcnOrConst.hh \
FejerQuadrature.hh \
FejerQuadrature.icc \
fillArrayCentersPreservingAreas.hh \
findPeak2D.hh \
findRootInLogSpace.hh \
findRootInLogSpace.icc \
findRootNewtonRaphson.hh \
findRootNewtonRaphson.icc \
findRootUsingBisections.hh \
findRootUsingBisections.icc \
float128IO.hh \
FourierImage.hh \
Gauss1DQuadrature.hh \
GaussHermiteQuadrature.hh \
GaussHermiteQuadrature.icc \
GaussianDip.hh \
GaussLegendreQuadrature.hh \
GaussLegendreQuadrature.icc \
GaussLegendreQuadrature2D.hh \
GaussLegendreQuadrature2D.icc \
GaussLegendreQuadratureQ.hh \
GaussLegendreQuadratureQ.icc \
GeneralizedComplex.hh \
goldenSectionSearch.hh \
goldenSectionSearch.icc \
GridAxis.hh \
HeatEq1DNeumannBoundary.hh \
interpolate.hh \
interpolate.icc \
Interval.hh \
Interval.icc \
isMonotonous.hh \
KDTree.hh \
KDTree.icc \
kernelSensitivityMatrix.hh \
kernelSensitivityMatrix.icc \
lapack.h \
lapack_double.h \
lapack_interface.hh \
lapack_interface.icc \
lapack_interface_double.icc \
lapack_interface_ldouble.icc \
lapack_interface_float.icc \
LegendreCDTruncation.hh \
LinearMapper1d.hh \
LinInterpolatedTable1D.hh \
LinInterpolatedTable1D.icc \
LinInterpolatedTableND.hh \
LinInterpolatedTableND.icc \
LogMapper1d.hh \
LongerType.hh \
MathUtils.hh \
MathUtils.icc \
Matrix.hh \
matrixIndexPairs.hh \
Matrix.icc \
maxAbsValue.hh \
MinSearchStatus1D.hh \
modifiedGramSchmidt.hh \
modifiedGramSchmidt.icc \
multivariateCosine.hh \
MultivariateFunctorScanner.hh \
opsRootsFromJacobiMatrix.hh \
OrthoPoly1D.hh \
OrthoPoly1D.icc \
OrthoPolyMethod.hh \
OrthoPolyND.hh \
OrthoPolyND.icc \
PairCompare.hh \
+ PairCompareQ.hh \
performSchultzIteration.hh \
PointDimensionality.hh \
Poly1D.hh \
polyPrivateUtils.hh \
polyPrivateUtils.icc \
PreciseType.hh \
ProperDblFromCmpl.hh \
PtrBufferHandle.hh \
+ quad_float.hh \
RectangleQuadrature1D.hh \
RectangleQuadrature1D.icc \
Recurrence.hh \
+ RecurrenceQ.hh \
RecurrenceCoeffs.hh \
RecurrenceCoeffs.icc \
+ RecurrenceCoeffsQ.hh \
+ RecurrenceCoeffsQ.icc \
RecurrenceCoeffsTrGauss.hh \
RecurrenceCoeffsTrGauss.icc \
rectangleQuadrature.hh \
rescanArray.hh \
rescanArray.icc \
ScanExtremum1D.hh \
ScalableClassicalOrthoPoly1D.hh \
ScalableClassicalOrthoPoly1D.icc \
scalesFromHessian.hh \
SemiInfGaussianQuadrature.hh \
SemiInfGaussianQuadrature.icc \
+ shiftedLegendreIntegral.hh \
SimpleFunctors.hh \
SimpleScalarProduct.hh \
sineTransformMatrix.hh \
SpecialFunctions.hh \
std_quadmath.hh \
StorablePolySeries1D.hh \
StorablePolySeries1D.icc \
sumOfSquares.hh \
SvdMethod.hh \
timestamp.hh \
Triple.hh \
truncatedInverseSqrt.hh \
TruncatedLog.hh \
TruncatedLog.icc \
UniformAxis.hh \
unitMatrixDeviations.hh \
unitMatrixDeviations.icc \
vectorAsText.hh
EXTRA_DIST = 00README.txt
all: all-am
.SUFFIXES:
.SUFFIXES: .cc .lo .o .obj
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign npstat/nm/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign npstat/nm/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
clean-noinstLTLIBRARIES:
-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
@list='$(noinst_LTLIBRARIES)'; \
locs=`for p in $$list; do echo $$p; done | \
sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
sort -u`; \
test -z "$$locs" || { \
echo rm -f $${locs}; \
rm -f $${locs}; \
}
libnm.la: $(libnm_la_OBJECTS) $(libnm_la_DEPENDENCIES) $(EXTRA_libnm_la_DEPENDENCIES)
$(AM_V_CXXLD)$(CXXLINK) $(libnm_la_OBJECTS) $(libnm_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AbsClassicalOrthoPoly1D.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ArrayNDScanner.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ArrayRange.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ArrayShape.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ClassicalOrthoPolys1D.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ContOrthoPoly1D.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConvolutionEngine1D.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConvolutionEngineND.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DiscreteBernsteinPoly1D.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DualAxis.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/EigenMethod.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/EquidistantSequence.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FejerQuadrature.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FourierImage.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Gauss1DQuadrature.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GaussHermiteQuadrature.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GaussLegendreQuadrature.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GaussLegendreQuadrature2D.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GaussLegendreQuadratureQ.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GridAxis.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HeatEq1DNeumannBoundary.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LegendreCDTruncation.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LinInterpolatedTable1D.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MathUtils.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OrthoPoly1D.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OrthoPolyMethod.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Poly1D.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/RectangleQuadrature1D.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/RecurrenceCoeffs.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ScalableClassicalOrthoPoly1D.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ScanExtremum1D.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SemiInfGaussianQuadrature.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SpecialFunctions.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StorablePolySeries1D.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SvdMethod.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UniformAxis.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bilinearSection.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/binomialCoefficient.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/definiteIntegrals.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/findPeak2D.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/goldenSectionSearch.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lapack_interface.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/matrixIndexPairs.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/performSchultzIteration.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rectangleQuadrature.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scalesFromHessian.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shiftedLegendreIntegral.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sineTransformMatrix.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timestamp.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/truncatedInverseSqrt.Plo@am__quote@ # am--include-marker
$(am__depfiles_remade):
@$(MKDIR_P) $(@D)
@echo '# dummy' >$@-t && $(am__mv) $@-t $@
am--depfiles: $(am__depfiles_remade)
.cc.o:
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
.cc.obj:
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.cc.lo:
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
install-includeHEADERS: $(include_HEADERS)
@$(NORMAL_INSTALL)
@list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \
$(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \
$(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \
done
uninstall-includeHEADERS:
@$(NORMAL_UNINSTALL)
@list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir)
python-local:
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
tags: tags-am
TAGS: tags
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
$(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: ctags-am
CTAGS: ctags
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
$(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
cscopelist: cscopelist-am
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
esac; \
for i in $$list; do \
if test -f "$$i"; then \
echo "$(subdir)/$$i"; \
else \
echo "$$sdir/$$i"; \
fi; \
done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) distdir-am
distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(LTLIBRARIES) $(HEADERS)
installdirs:
for dir in "$(DESTDIR)$(includedir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
mostlyclean-am
distclean: distclean-am
-rm -f ./$(DEPDIR)/AbsClassicalOrthoPoly1D.Plo
-rm -f ./$(DEPDIR)/ArrayNDScanner.Plo
-rm -f ./$(DEPDIR)/ArrayRange.Plo
-rm -f ./$(DEPDIR)/ArrayShape.Plo
-rm -f ./$(DEPDIR)/ClassicalOrthoPolys1D.Plo
-rm -f ./$(DEPDIR)/ContOrthoPoly1D.Plo
-rm -f ./$(DEPDIR)/ConvolutionEngine1D.Plo
-rm -f ./$(DEPDIR)/ConvolutionEngineND.Plo
-rm -f ./$(DEPDIR)/DiscreteBernsteinPoly1D.Plo
-rm -f ./$(DEPDIR)/DualAxis.Plo
-rm -f ./$(DEPDIR)/EigenMethod.Plo
-rm -f ./$(DEPDIR)/EquidistantSequence.Plo
-rm -f ./$(DEPDIR)/FejerQuadrature.Plo
-rm -f ./$(DEPDIR)/FourierImage.Plo
-rm -f ./$(DEPDIR)/Gauss1DQuadrature.Plo
-rm -f ./$(DEPDIR)/GaussHermiteQuadrature.Plo
-rm -f ./$(DEPDIR)/GaussLegendreQuadrature.Plo
-rm -f ./$(DEPDIR)/GaussLegendreQuadrature2D.Plo
-rm -f ./$(DEPDIR)/GaussLegendreQuadratureQ.Plo
-rm -f ./$(DEPDIR)/GridAxis.Plo
-rm -f ./$(DEPDIR)/HeatEq1DNeumannBoundary.Plo
-rm -f ./$(DEPDIR)/LegendreCDTruncation.Plo
-rm -f ./$(DEPDIR)/LinInterpolatedTable1D.Plo
-rm -f ./$(DEPDIR)/MathUtils.Plo
-rm -f ./$(DEPDIR)/OrthoPoly1D.Plo
-rm -f ./$(DEPDIR)/OrthoPolyMethod.Plo
-rm -f ./$(DEPDIR)/Poly1D.Plo
-rm -f ./$(DEPDIR)/RectangleQuadrature1D.Plo
-rm -f ./$(DEPDIR)/RecurrenceCoeffs.Plo
-rm -f ./$(DEPDIR)/ScalableClassicalOrthoPoly1D.Plo
-rm -f ./$(DEPDIR)/ScanExtremum1D.Plo
-rm -f ./$(DEPDIR)/SemiInfGaussianQuadrature.Plo
-rm -f ./$(DEPDIR)/SpecialFunctions.Plo
-rm -f ./$(DEPDIR)/StorablePolySeries1D.Plo
-rm -f ./$(DEPDIR)/SvdMethod.Plo
-rm -f ./$(DEPDIR)/UniformAxis.Plo
-rm -f ./$(DEPDIR)/bilinearSection.Plo
-rm -f ./$(DEPDIR)/binomialCoefficient.Plo
-rm -f ./$(DEPDIR)/definiteIntegrals.Plo
-rm -f ./$(DEPDIR)/findPeak2D.Plo
-rm -f ./$(DEPDIR)/goldenSectionSearch.Plo
-rm -f ./$(DEPDIR)/lapack_interface.Plo
-rm -f ./$(DEPDIR)/matrixIndexPairs.Plo
-rm -f ./$(DEPDIR)/performSchultzIteration.Plo
-rm -f ./$(DEPDIR)/rectangleQuadrature.Plo
-rm -f ./$(DEPDIR)/scalesFromHessian.Plo
+ -rm -f ./$(DEPDIR)/shiftedLegendreIntegral.Plo
-rm -f ./$(DEPDIR)/sineTransformMatrix.Plo
-rm -f ./$(DEPDIR)/timestamp.Plo
-rm -f ./$(DEPDIR)/truncatedInverseSqrt.Plo
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
dvi: dvi-am
dvi-am:
html: html-am
html-am:
info: info-am
info-am:
install-data-am: install-includeHEADERS
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am:
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man:
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f ./$(DEPDIR)/AbsClassicalOrthoPoly1D.Plo
-rm -f ./$(DEPDIR)/ArrayNDScanner.Plo
-rm -f ./$(DEPDIR)/ArrayRange.Plo
-rm -f ./$(DEPDIR)/ArrayShape.Plo
-rm -f ./$(DEPDIR)/ClassicalOrthoPolys1D.Plo
-rm -f ./$(DEPDIR)/ContOrthoPoly1D.Plo
-rm -f ./$(DEPDIR)/ConvolutionEngine1D.Plo
-rm -f ./$(DEPDIR)/ConvolutionEngineND.Plo
-rm -f ./$(DEPDIR)/DiscreteBernsteinPoly1D.Plo
-rm -f ./$(DEPDIR)/DualAxis.Plo
-rm -f ./$(DEPDIR)/EigenMethod.Plo
-rm -f ./$(DEPDIR)/EquidistantSequence.Plo
-rm -f ./$(DEPDIR)/FejerQuadrature.Plo
-rm -f ./$(DEPDIR)/FourierImage.Plo
-rm -f ./$(DEPDIR)/Gauss1DQuadrature.Plo
-rm -f ./$(DEPDIR)/GaussHermiteQuadrature.Plo
-rm -f ./$(DEPDIR)/GaussLegendreQuadrature.Plo
-rm -f ./$(DEPDIR)/GaussLegendreQuadrature2D.Plo
-rm -f ./$(DEPDIR)/GaussLegendreQuadratureQ.Plo
-rm -f ./$(DEPDIR)/GridAxis.Plo
-rm -f ./$(DEPDIR)/HeatEq1DNeumannBoundary.Plo
-rm -f ./$(DEPDIR)/LegendreCDTruncation.Plo
-rm -f ./$(DEPDIR)/LinInterpolatedTable1D.Plo
-rm -f ./$(DEPDIR)/MathUtils.Plo
-rm -f ./$(DEPDIR)/OrthoPoly1D.Plo
-rm -f ./$(DEPDIR)/OrthoPolyMethod.Plo
-rm -f ./$(DEPDIR)/Poly1D.Plo
-rm -f ./$(DEPDIR)/RectangleQuadrature1D.Plo
-rm -f ./$(DEPDIR)/RecurrenceCoeffs.Plo
-rm -f ./$(DEPDIR)/ScalableClassicalOrthoPoly1D.Plo
-rm -f ./$(DEPDIR)/ScanExtremum1D.Plo
-rm -f ./$(DEPDIR)/SemiInfGaussianQuadrature.Plo
-rm -f ./$(DEPDIR)/SpecialFunctions.Plo
-rm -f ./$(DEPDIR)/StorablePolySeries1D.Plo
-rm -f ./$(DEPDIR)/SvdMethod.Plo
-rm -f ./$(DEPDIR)/UniformAxis.Plo
-rm -f ./$(DEPDIR)/bilinearSection.Plo
-rm -f ./$(DEPDIR)/binomialCoefficient.Plo
-rm -f ./$(DEPDIR)/definiteIntegrals.Plo
-rm -f ./$(DEPDIR)/findPeak2D.Plo
-rm -f ./$(DEPDIR)/goldenSectionSearch.Plo
-rm -f ./$(DEPDIR)/lapack_interface.Plo
-rm -f ./$(DEPDIR)/matrixIndexPairs.Plo
-rm -f ./$(DEPDIR)/performSchultzIteration.Plo
-rm -f ./$(DEPDIR)/rectangleQuadrature.Plo
-rm -f ./$(DEPDIR)/scalesFromHessian.Plo
+ -rm -f ./$(DEPDIR)/shiftedLegendreIntegral.Plo
-rm -f ./$(DEPDIR)/sineTransformMatrix.Plo
-rm -f ./$(DEPDIR)/timestamp.Plo
-rm -f ./$(DEPDIR)/truncatedInverseSqrt.Plo
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
python: python-am
python-am: python-local
uninstall-am: uninstall-includeHEADERS
.MAKE: install-am install-strip
.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
clean-generic clean-libtool clean-noinstLTLIBRARIES \
cscopelist-am ctags ctags-am distclean distclean-compile \
distclean-generic distclean-libtool distclean-tags distdir dvi \
dvi-am html html-am info info-am install install-am \
install-data install-data-am install-dvi install-dvi-am \
install-exec install-exec-am install-html install-html-am \
install-includeHEADERS install-info install-info-am \
install-man install-pdf install-pdf-am install-ps \
install-ps-am install-strip installcheck installcheck-am \
installdirs maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool pdf pdf-am ps ps-am python-am python-local \
tags tags-am uninstall uninstall-am uninstall-includeHEADERS
.PRECIOUS: Makefile
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
Index: trunk/npstat/nm/ContOrthoPoly1D.cc
===================================================================
--- trunk/npstat/nm/ContOrthoPoly1D.cc (revision 919)
+++ trunk/npstat/nm/ContOrthoPoly1D.cc (revision 920)
@@ -1,976 +1,979 @@
#include "npstat/nm/ContOrthoPoly1D.hh"
#include "npstat/nm/allocators.hh"
#include "npstat/nm/StorablePolySeries1D.hh"
#include "npstat/nm/Triple.hh"
inline static int kdelta(const unsigned i, const unsigned j)
{
return i == j ? 1 : 0;
}
namespace npstat {
const ContOrthoPoly1D::precise_type ContOrthoPoly1D::precise_zero = 0.0;
void ContOrthoPoly1D::calcMeanXandWeightSums(const bool shiftTheMeasure)
{
// Calculate wsum_, wsumsq_, meanX_, and shiftX_
const unsigned long mSize = measure_.size();
precise_type xsum = precise_zero;
if (allWeightsEqual_)
{
const precise_type lw0 = measure_[0].second;
wsum_ = mSize*lw0;
wsumsq_ = mSize*lw0*lw0;
for (unsigned long i = 0; i < mSize; ++i)
{
const double x = measure_[i].first;
xsum += x;
if (x < minX_)
minX_ = x;
if (x > maxX_)
maxX_ = x;
}
meanX_ = xsum/mSize;
}
else
{
for (unsigned long i = 0; i < mSize; ++i)
{
const double x = measure_[i].first;
const precise_type w = measure_[i].second;
wsum_ += w;
wsumsq_ += w*w;
xsum += w*x;
- if (x < minX_)
- minX_ = x;
- if (x > maxX_)
- maxX_ = x;
+ if (w != precise_zero)
+ {
+ if (x < minX_)
+ minX_ = x;
+ if (x > maxX_)
+ maxX_ = x;
+ }
}
assert(wsum_ > precise_zero);
meanX_ = xsum/wsum_;
}
if (shiftTheMeasure)
{
// Shift the measure
double shift = meanX_;
for (unsigned long i = 0; i < mSize; ++i)
measure_[i].first -= shift;
// Try to improve the mean
xsum = precise_zero;
precise_type dx;
if (allWeightsEqual_)
{
for (unsigned long i = 0; i < mSize; ++i)
xsum += measure_[i].first;
dx = xsum/mSize;
}
else
{
for (unsigned long i = 0; i < mSize; ++i)
{
const precise_type w = measure_[i].second;
xsum += w*measure_[i].first;
}
dx = xsum/wsum_;
}
// Shift the measure and the mean
meanX_ += dx;
shift = dx;
for (unsigned long i = 0; i < mSize; ++i)
measure_[i].first -= shift;
shiftX_ = meanX_;
}
else
shiftX_ = precise_zero;
}
void ContOrthoPoly1D::calcRecurrenceCoeffs(const OrthoPolyMethod m)
{
rCoeffs_.clear();
rCoeffs_.reserve(maxdeg_ + 1);
switch (m)
{
case OPOLY_STIELTJES:
calcRecurrenceStieltjes();
break;
case OPOLY_LANCZOS:
calcRecurrenceLanczos();
break;
default:
throw std::runtime_error(
"In npstat::ContOrthoPoly1D::calcRecurrenceCoeffs: "
"incomplete switch statement. This is a bug. Please report.");
}
assert(rCoeffs_.size() == maxdeg_ + 1);
}
double ContOrthoPoly1D::effectiveSampleSize() const
{
if (allWeightsEqual_)
return measure_.size();
else
return wsum_*wsum_/wsumsq_;
}
ContOrthoPoly1D::precise_type ContOrthoPoly1D::monicpoly(
const unsigned degree, const precise_type x) const
{
assert(degree <= maxdeg_);
precise_type polyk = 1.0, polykm1 = precise_zero;
for (unsigned k=0; k<degree; ++k)
{
const precise_type p = (x - rCoeffs_[k].alpha)*polyk -
rCoeffs_[k].beta*polykm1;
polykm1 = polyk;
polyk = p;
}
return polyk;
}
ContOrthoPoly1D::precise_type ContOrthoPoly1D::normpoly(
const unsigned degree, const precise_type x) const
{
assert(degree <= maxdeg_);
precise_type polyk = 1.0, polykm1 = precise_zero;
for (unsigned k=0; k<degree; ++k)
{
const precise_type p = ((x - rCoeffs_[k].alpha)*polyk -
rCoeffs_[k].sqrbeta*polykm1)/rCoeffs_[k+1].sqrbeta;
polykm1 = polyk;
polyk = p;
}
return polyk;
}
double ContOrthoPoly1D::powerAverage(const unsigned deg,
const unsigned power) const
{
switch (power)
{
case 0:
return 1.0;
case 1:
return kdelta(deg, 0U);
case 2:
return 1.0;
default:
{
if (deg > maxdeg_) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::powerAverage: "
"degree argument is out of range");
const unsigned long mSize = measure_.size();
precise_type sum = precise_zero;
for (unsigned long i = 0; i < mSize; ++i)
sum += measure_[i].second*powl(normpoly(deg, measure_[i].first), power);
return sum/wsum_;
}
}
}
std::pair<ContOrthoPoly1D::precise_type,ContOrthoPoly1D::precise_type>
ContOrthoPoly1D::twonormpoly(
const unsigned deg1, const unsigned deg2, const precise_type x) const
{
precise_type p1 = precise_zero, p2 = precise_zero, polyk = 1.0, polykm1 = precise_zero;
const unsigned degmax = std::max(deg1, deg2);
for (unsigned k=0; k<degmax; ++k)
{
if (k == deg1)
p1 = polyk;
if (k == deg2)
p2 = polyk;
const precise_type p = ((x - rCoeffs_[k].alpha)*polyk -
rCoeffs_[k].sqrbeta*polykm1)/rCoeffs_[k+1].sqrbeta;
polykm1 = polyk;
polyk = p;
}
if (deg1 == degmax)
p1 = polyk;
if (deg2 == degmax)
p2 = polyk;
return std::pair<precise_type,precise_type>(p1, p2);
}
ContOrthoPoly1D::precise_type ContOrthoPoly1D::normpolyprod(
const unsigned* degrees, const unsigned nDeg,
const unsigned degmax, const precise_type x) const
{
precise_type prod = 1.0, polyk = 1.0, polykm1 = precise_zero;
for (unsigned k=0; k<degmax; ++k)
{
for (unsigned i=0; i<nDeg; ++i)
if (k == degrees[i])
prod *= polyk;
const precise_type p = ((x - rCoeffs_[k].alpha)*polyk -
rCoeffs_[k].sqrbeta*polykm1)/rCoeffs_[k+1].sqrbeta;
polykm1 = polyk;
polyk = p;
}
for (unsigned i=0; i<nDeg; ++i)
if (degmax == degrees[i])
prod *= polyk;
return prod;
}
std::pair<ContOrthoPoly1D::precise_type,ContOrthoPoly1D::precise_type>
ContOrthoPoly1D::monicInnerProducts(const unsigned degree) const
{
precise_type sum = precise_zero, xsum = precise_zero;
const unsigned long mSize = measure_.size();
for (unsigned long i = 0; i < mSize; ++i)
{
const precise_type x = measure_[i].first;
const precise_type p = monicpoly(degree, x);
const precise_type pprod = p*p*measure_[i].second;
sum += pprod;
xsum += x*pprod;
}
return std::pair<precise_type,precise_type>(xsum/wsum_, sum/wsum_);
}
void ContOrthoPoly1D::weightCoeffs(double *coeffs,
const unsigned maxdeg) const
{
if (maxdeg > maxdeg_) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::weightsSquaredCoeffs: "
"maximum degree out of range");
assert(coeffs);
std::vector<precise_type> scalarProducts(maxdeg+1U, precise_zero);
const unsigned long mSize = measure_.size();
for (unsigned long i = 0; i < mSize; ++i)
{
const double x = measure_[i].first;
const double w = measure_[i].second;
const precise_type f = w;
precise_type polyk = 1.0, polykm1 = precise_zero;
for (unsigned k=0; k<maxdeg; ++k)
{
scalarProducts[k] += polyk*f*w;
const precise_type poly = ((x - rCoeffs_[k].alpha)*polyk -
rCoeffs_[k].sqrbeta*polykm1)/rCoeffs_[k+1].sqrbeta;
polykm1 = polyk;
polyk = poly;
}
scalarProducts[maxdeg] += polyk*f*w;
}
for (unsigned deg=0; deg<=maxdeg; ++deg)
coeffs[deg] = scalarProducts[deg]/wsum_;
}
void ContOrthoPoly1D::calcRecurrenceStieltjes()
{
precise_type prevSprod = 1.0;
for (unsigned deg=0; deg<=maxdeg_; ++deg)
{
const std::pair<precise_type,precise_type> ip = monicInnerProducts(deg);
rCoeffs_.push_back(Recurrence(ip.first/ip.second, ip.second/prevSprod));
prevSprod = ip.second;
}
}
void ContOrthoPoly1D::calcRecurrenceLanczos()
{
const unsigned long mSize = measure_.size();
std::vector<precise_type> dmem(mSize*2UL);
precise_type* p0 = &dmem[0];
for (unsigned long i=0; i<mSize; ++i)
p0[i] = measure_[i].first;
precise_type* p1 = &dmem[mSize];
clearBuffer(p1, mSize);
p1[0] = measure_[0].second/wsum_;
const unsigned long mm1 = mSize - 1;
for (unsigned long n=0; n<mm1; ++n)
{
const unsigned long np1 = n + 1UL;
precise_type xlam = measure_[np1].first;
precise_type pn = measure_[np1].second/wsum_;
precise_type gam = 1.0, sig = 0.0, t = 0.0;
for (unsigned long k=0; k<=np1; ++k)
{
const precise_type rho = p1[k] + pn;
const precise_type tmp = gam*rho;
precise_type tsig = sig;
if (rho <= 0.0)
{
gam = 1.0;
sig = 0.0;
}
else
{
gam = p1[k]/rho;
sig = pn/rho;
}
const precise_type tk = sig*(p0[k] - xlam) - gam*t;
p0[k] -= tk - t;
t = tk;
if (sig < 0.0)
pn = tsig*p1[k];
else
pn = t*t/sig;
tsig = sig;
p1[k] = tmp;
}
}
for (unsigned deg=0; deg<=maxdeg_; ++deg)
rCoeffs_.push_back(Recurrence(p0[deg], p1[deg]));
}
double ContOrthoPoly1D::poly(const unsigned deg, const double x) const
{
if (deg > maxdeg_) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::poly: degree argument is out of range");
return normpoly(deg, x - shiftX_);
}
std::pair<double,double> ContOrthoPoly1D::polyPair(
const unsigned deg1, const unsigned deg2, const double x) const
{
if (deg1 > maxdeg_ || deg2 > maxdeg_) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::polyPair: degree argument is out of range");
const std::pair<precise_type,precise_type>& ld =
twonormpoly(deg1, deg2, x - shiftX_);
return std::pair<double,double>(ld.first, ld.second);
}
ContOrthoPoly1D::precise_type ContOrthoPoly1D::empiricalKroneckerDelta(
const unsigned ideg1, const unsigned ideg2) const
{
if (ideg1 > maxdeg_ || ideg2 > maxdeg_) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::empiricalKroneckerDelta: "
"degree argument is out of range");
precise_type sum = precise_zero;
const unsigned long mSize = measure_.size();
for (unsigned long i = 0; i < mSize; ++i)
{
const std::pair<precise_type, precise_type>& p =
twonormpoly(ideg1, ideg2, measure_[i].first);
sum += measure_[i].second*p.first*p.second;
}
return sum/wsum_;
}
Matrix<ContOrthoPoly1D::precise_type>
ContOrthoPoly1D::empiricalKroneckerMatrix(const unsigned maxdeg) const
{
if (maxdeg > maxdeg_) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::empiricalKroneckerMatrix: "
"requested matrix size is out of range");
Matrix<ContOrthoPoly1D::precise_type> kd(maxdeg+1U, maxdeg+1U, 0);
std::vector<ContOrthoPoly1D::precise_type> polyv(maxdeg+1U);
ContOrthoPoly1D::precise_type* polyBuf = &polyv[0];
const unsigned long mSize = measure_.size();
for (unsigned long ipt = 0; ipt < mSize; ++ipt)
{
const double weight = measure_[ipt].second;
getAllPolys(measure_[ipt].first, maxdeg, polyBuf);
for (unsigned i=0; i<=maxdeg; ++i)
{
const ContOrthoPoly1D::precise_type polyI = polyBuf[i];
ContOrthoPoly1D::precise_type* row = kd[i];
for (unsigned j=i; j<=maxdeg; ++j)
row[j] += weight*polyI*polyBuf[j];
}
}
for (unsigned i=0; i<maxdeg; ++i)
for (unsigned j=i+1U; j<=maxdeg; ++j)
kd[j][i] = kd[i][j];
kd /= wsum_;
return kd;
}
double ContOrthoPoly1D::jointPowerAverage(
const unsigned ideg1, const unsigned power1,
const unsigned ideg2, const unsigned power2) const
{
// Process various simple special cases first
if (!power1)
return powerAverage(ideg2, power2);
if (!power2)
return powerAverage(ideg1, power1);
if (power1 == 1U && power2 == 1U)
return kdelta(ideg1, ideg2);
// General calculation
if (ideg1 > maxdeg_ || ideg2 > maxdeg_) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::jointPowerAverage: "
"degree argument is out of range");
precise_type sum = precise_zero;
const unsigned long mSize = measure_.size();
for (unsigned long i = 0; i < mSize; ++i)
{
const std::pair<precise_type, precise_type>& p =
twonormpoly(ideg1, ideg2, measure_[i].first);
sum += measure_[i].second*powl(p.first,power1)*powl(p.second,power2);
}
return sum/wsum_;
}
double ContOrthoPoly1D::jointAverage(
const unsigned* degrees, const unsigned nDegrees,
const bool sorted) const
{
if (nDegrees)
{
assert(degrees);
// See if we can avoid a direct calculation
if (nDegrees == 1U)
return kdelta(degrees[0], 0U);
if (nDegrees == 2U)
return kdelta(degrees[0], degrees[1]);
// Check if we can remove leading zeros
{
unsigned nonZeroDegs = nDegrees;
while (nonZeroDegs && !degrees[0])
{
++degrees;
--nonZeroDegs;
}
if (nonZeroDegs < nDegrees)
return jointAverage(degrees, nonZeroDegs, sorted);
}
// Check if we can remove any other zeros
if (!sorted)
{
bool allNonZero = true;
for (unsigned ideg=0; ideg<nDegrees && allNonZero; ++ideg)
allNonZero = degrees[ideg];
if (!allNonZero)
{
unsigned degBuf[256];
if (nDegrees - 1U <= sizeof(degBuf)/sizeof(degBuf[0]))
{
unsigned nonZeroDegs = 0;
for (unsigned ideg=0; ideg<nDegrees; ++ideg)
if (degrees[ideg])
degBuf[nonZeroDegs++] = degrees[ideg];
return jointAverage(degBuf, nonZeroDegs, sorted);
}
}
}
unsigned degmax;
if (sorted)
degmax = degrees[nDegrees-1U];
else
degmax = *std::max_element(degrees, degrees+nDegrees);
if (degmax > maxdeg_) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::jointAverage: "
"degree argument is out of range");
precise_type sum = precise_zero;
const unsigned long mSize = measure_.size();
for (unsigned long i = 0; i < mSize; ++i)
sum += measure_[i].second*normpolyprod(
degrees, nDegrees, degmax, measure_[i].first);
return sum/wsum_;
}
else
return 1.0;
}
double ContOrthoPoly1D::empiricalKroneckerCovariance(
const unsigned deg1, const unsigned deg2,
const unsigned deg3, const unsigned deg4) const
{
double cov = 0.0;
if (!((deg1 == 0 && deg2 == 0) || (deg3 == 0 && deg4 == 0)))
{
unsigned degs[4];
degs[0] = deg1;
degs[1] = deg2;
degs[2] = deg3;
degs[3] = deg4;
cov = (jointAverage(degs, 4) - kdelta(deg1, deg2)*kdelta(deg3, deg4))/
effectiveSampleSize();
if (std::min(deg1, deg2) == std::min(deg3, deg4) &&
std::max(deg1, deg2) == std::max(deg3, deg4))
if (cov < 0.0)
cov = 0.0;
}
return cov;
}
Matrix<ContOrthoPoly1D::precise_type>
ContOrthoPoly1D::jacobiMatrix(const unsigned n) const
{
if (!n) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::jacobiMatrix: "
"can not build matrix of zero size");
if (n > maxdeg_) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::jacobiMatrix: "
"matrix size is out of range");
Matrix<precise_type> mat(n, n, 0);
unsigned ip1 = 1;
for (unsigned i=0; i<n; ++i, ++ip1)
{
mat[i][i] = rCoeffs_[i].alpha;
if (i)
mat[i][i-1] = rCoeffs_[i].sqrbeta;
if (ip1 < n)
mat[i][ip1] = rCoeffs_[ip1].sqrbeta;
}
return mat;
}
ContOrthoPoly1D::precise_type ContOrthoPoly1D::integratePoly(
const unsigned deg1, const unsigned power,
const double xmin, const double xmax) const
{
if (!deg1)
return xmax - xmin;
if (deg1 > maxdeg_) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::integratePoly: "
"degree argument is out of range");
const unsigned nGood = PreciseQuadrature::minimalExactRule(deg1*power);
if (!nGood) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::integratePoly: "
"product of poly degree and power is too large");
PreciseQuadrature glq(nGood);
PolyFcn fcn(*this, deg1, power);
return glq.integrate(fcn, xmin - shiftX_, xmax - shiftX_);
}
ContOrthoPoly1D::precise_type ContOrthoPoly1D::integrateTripleProduct(
const unsigned deg1, const unsigned deg2,
const unsigned deg3, const double xmin,
const double xmax) const
{
const unsigned maxdex = std::max(std::max(deg1, deg2), deg3);
if (maxdex > maxdeg_) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::integrateTripleProduct: "
"degree argument is out of range");
const unsigned sumdeg = deg1 + deg2 + deg3;
const unsigned nGood = PreciseQuadrature::minimalExactRule(sumdeg);
if (!nGood) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::integrateTripleProduct: "
"sum of the polynomial degrees is too large");
PreciseQuadrature glq(nGood);
TripleProdFcn fcn(*this, deg1, deg2, deg3);
return glq.integrate(fcn, xmin - shiftX_, xmax - shiftX_);
}
Matrix<ContOrthoPoly1D::precise_type> ContOrthoPoly1D::tripleProductMatrix(
const std::vector<std::pair<unsigned,unsigned> >& pairs,
const unsigned maxdeg, const double xmin, const double xmax) const
{
typedef npstat::Triple<unsigned,unsigned,unsigned> Key3;
typedef std::map<Key3,precise_type> TripleProductMap;
const unsigned nPairs = pairs.size();
if (!nPairs) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::tripleProductMatrix: "
"empty vector of degree specifications");
const unsigned nPolys = maxdeg + 1U;
npstat::Matrix<precise_type> design0(nPairs, nPolys);
TripleProductMap tmap;
// Avoid calculating the same integral more than once
for (unsigned ipair=0; ipair<nPairs; ++ipair)
{
const unsigned n = pairs[ipair].first;
const unsigned m = pairs[ipair].second;
for (unsigned ipoly=0; ipoly<nPolys; ++ipoly)
{
unsigned degs[3];
degs[0] = m;
degs[1] = n;
degs[2] = ipoly;
std::sort(degs, degs+3);
const Key3 key(degs[0], degs[1], degs[2]);
TripleProductMap::iterator it = tmap.find(key);
if (it == tmap.end())
{
const precise_type value = integrateTripleProduct(
n, m, ipoly, xmin, xmax);
std::pair<TripleProductMap::iterator,bool> where =
tmap.insert(std::make_pair(key, value));
assert(where.second);
it = where.first;
}
design0[ipair][ipoly] = it->second;
}
}
return design0;
}
double ContOrthoPoly1D::cachedJointAverage(const unsigned deg1,
const unsigned deg2,
const unsigned deg3,
const unsigned deg4) const
{
MemoKey key(deg1, deg2, deg3, deg4);
return getCachedAverage(key);
}
double ContOrthoPoly1D::cachedJointAverage(const unsigned deg1,
const unsigned deg2,
const unsigned deg3,
const unsigned deg4,
const unsigned deg5,
const unsigned deg6) const
{
MemoKey key(deg1, deg2, deg3, deg4, deg5, deg6);
return getCachedAverage(key);
}
double ContOrthoPoly1D::cachedJointAverage(const unsigned deg1,
const unsigned deg2,
const unsigned deg3,
const unsigned deg4,
const unsigned deg5,
const unsigned deg6,
const unsigned deg7,
const unsigned deg8) const
{
MemoKey key(deg1, deg2, deg3, deg4, deg5, deg6, deg7, deg8);
return getCachedAverage(key);
}
double ContOrthoPoly1D::getCachedAverage(const MemoKey& key) const
{
double value;
std::map<MemoKey,double>::const_iterator it = cachedAverages_.find(key);
if (it == cachedAverages_.end())
{
value = jointAverage(key.degrees(), key.nDegrees(), true);
cachedAverages_.insert(std::pair<MemoKey,double>(key, value));
}
else
value = it->second;
return value;
}
double ContOrthoPoly1D::cov4(const unsigned deg1, const unsigned deg2,
const unsigned deg3, const unsigned deg4) const
{
const bool has0 = (deg1 == 0 && deg2 == 0) || (deg3 == 0 && deg4 == 0);
double cov = 0.0;
if (!has0)
{
const double N = effectiveSampleSize();
cov = (cachedJointAverage(deg1, deg2, deg3, deg4) -
kdelta(deg1, deg2)*kdelta(deg3, deg4))/N;
if (std::min(deg1, deg2) == std::min(deg3, deg4) &&
std::max(deg1, deg2) == std::max(deg3, deg4))
if (cov < 0.0)
cov = 0.0;
}
return cov;
}
double ContOrthoPoly1D::cov6(const unsigned a, const unsigned b,
const unsigned c, const unsigned d,
const unsigned e, const unsigned f) const
{
const bool has0 = (a == 0 && b == 0) || (c == 0 && d == 0) || (e == 0 && f == 0);
double cov = 0.0;
if (!has0)
{
double sum = cachedJointAverage(a, b, c, d, e, f);
double add = 2.0;
if (kdelta(a, b))
sum -= cachedJointAverage(c, d, e, f);
else
add = 0.0;
if (kdelta(c, d))
sum -= cachedJointAverage(a, b, e, f);
else
add = 0.0;
if (kdelta(e, f))
sum -= cachedJointAverage(a, b, c, d);
else
add = 0.0;
const double N = effectiveSampleSize();
cov = (sum + add)/N/N;
}
return cov;
}
double ContOrthoPoly1D::slowCov8(const unsigned a, const unsigned b,
const unsigned c, const unsigned d,
const unsigned e, const unsigned f,
const unsigned g, const unsigned h) const
{
const bool has0 = (a == 0 && b == 0) || (c == 0 && d == 0) ||
(e == 0 && f == 0) || (g == 0 && h == 0);
double cov = 0.0;
if (!has0)
{
const double pabcd = cachedJointAverage(a, b, c, d);
const double pefgh = cachedJointAverage(e, f, g, h);
const double pabef = cachedJointAverage(a, b, e, f);
const double pcdgh = cachedJointAverage(c, d, g, h);
const double pabgh = cachedJointAverage(a, b, g, h);
const double pcdef = cachedJointAverage(c, d, e, f);
const double pabcdef = cachedJointAverage(a, b, c, d, e, f);
const double pabcdgh = cachedJointAverage(a, b, c, d, g, h);
const double pabefgh = cachedJointAverage(a, b, e, f, g, h);
const double pcdefgh = cachedJointAverage(c, d, e, f, g, h);
const double pabcdefgh = cachedJointAverage(a, b, c, d, e, f, g, h);
const double deltaprod = kdelta(a, b)*kdelta(c, d)*kdelta(e, f)*kdelta(g, h);
const double tmp = kdelta(e,f)*kdelta(g,h)*pabcd +
kdelta(c,d)*kdelta(g,h)*pabef +
kdelta(c,d)*kdelta(e,f)*pabgh +
kdelta(a,b)*kdelta(c,d)*pefgh +
kdelta(a,b)*kdelta(e,f)*pcdgh +
kdelta(a,b)*kdelta(g,h)*pcdef;
const double term1 = pabcd*pefgh + pabef*pcdgh +
pabgh*pcdef + 3.0*deltaprod - tmp;
const double term2 = pabcdefgh - 6.0*deltaprod -
kdelta(a,b)*pcdefgh - kdelta(c,d)*pabefgh -
kdelta(e,f)*pabcdgh - kdelta(g,h)*pabcdef -
pabcd*pefgh - pabef*pcdgh - pabgh*pcdef + 2.0*tmp;
const double nPoints = effectiveSampleSize();
const double prod8 = (term1 + term2/nPoints)/nPoints/nPoints;
cov = prod8 - cov4(a, b, c, d)*cov4(e, f, g, h);
}
return cov;
}
double ContOrthoPoly1D::covCov4(const unsigned a, const unsigned b,
const unsigned c, const unsigned d,
const unsigned e, const unsigned f,
const unsigned g, const unsigned h) const
{
const bool has0 = (a == 0 && b == 0) || (c == 0 && d == 0) ||
(e == 0 && f == 0) || (g == 0 && h == 0);
double cov = 0.0;
if (!has0)
{
const double pabcdefgh = cachedJointAverage(a, b, c, d, e, f, g, h);
const double pabcd = cachedJointAverage(a, b, c, d);
const double pefgh = cachedJointAverage(e, f, g, h);
const double N = effectiveSampleSize();
cov = (pabcdefgh - pabcd*pefgh)/N/N/N;
}
return cov;
}
double ContOrthoPoly1D::cov8(const unsigned a, const unsigned b,
const unsigned c, const unsigned d,
const unsigned e, const unsigned f,
const unsigned g, const unsigned h) const
{
const bool has0 = (a == 0 && b == 0) || (c == 0 && d == 0) ||
(e == 0 && f == 0) || (g == 0 && h == 0);
double cov = 0.0;
if (!has0)
{
const bool includeCubicPart = true;
// First, calculate the O(N^-2) part
const double pabef = cachedJointAverage(a, b, e, f);
const double pcdgh = cachedJointAverage(c, d, g, h);
const double pabgh = cachedJointAverage(a, b, g, h);
const double pcdef = cachedJointAverage(c, d, e, f);
const double deltaprod = kdelta(a, b)*kdelta(c, d)*kdelta(e, f)*kdelta(g, h);
const double tmp2 = kdelta(c, d)*kdelta(g, h)*pabef +
kdelta(c, d)*kdelta(e, f)*pabgh +
kdelta(a, b)*kdelta(e, f)*pcdgh +
kdelta(a, b)*kdelta(g, h)*pcdef;
const double term2 = pabef*pcdgh + pabgh*pcdef + 2.0*deltaprod - tmp2;
double term3 = 0.0;
if (includeCubicPart)
{
// Additional terms needed to calculate the O(N^-3) part
const double pabcdefgh = cachedJointAverage(a, b, c, d, e, f, g, h);
double sixsum = 0.0;
if (kdelta(a, b))
sixsum += cachedJointAverage(c, d, e, f, g, h);
if (kdelta(c, d))
sixsum += cachedJointAverage(a, b, e, f, g, h);
if (kdelta(e, f))
sixsum += cachedJointAverage(a, b, c, d, g, h);
if (kdelta(g, h))
sixsum += cachedJointAverage(a, b, c, d, e, f);
const double pabcd = cachedJointAverage(a, b, c, d);
const double pefgh = cachedJointAverage(e, f, g, h);
const double tmp3 = tmp2 + kdelta(e, f)*kdelta(g, h)*pabcd +
kdelta(a, b)*kdelta(c, d)*pefgh;
term3 = pabcdefgh - 6.0*deltaprod - sixsum -
(pabcd*pefgh + pabef*pcdgh + pabgh*pcdef) + 2.0*tmp3;
}
const double N = effectiveSampleSize();
cov = (term2 + term3/N)/N/N;
// const bool isVariance = ?;
// if (isVariance)
// if (cov < 0.0)
// cov = 0.0;
}
return cov;
}
double ContOrthoPoly1D::epsExpectation(const unsigned m_in,
const unsigned n_in,
const bool highOrder) const
{
if (highOrder)
{
precise_type sum = precise_zero;
if (m_in || n_in)
{
const unsigned m = std::min(m_in, n_in);
const unsigned n = std::max(m_in, n_in);
for (unsigned k=0; k<=n; ++k)
{
const double f = k == n ? 1.0 : (k > m ? 1.0 : 2.0);
sum += f*cachedJointAverage(k, k, m, n);
}
if (m == n)
sum -= 1.0;
else
sum -= (cachedJointAverage(m, m, m, n) +
cachedJointAverage(m, n, n, n))/2.0;
}
return sum/effectiveSampleSize();
}
else
return 0.0;
}
double ContOrthoPoly1D::epsCovariance(const unsigned m1_in,
const unsigned n1_in,
const unsigned m2_in,
const unsigned n2_in,
const bool highOrder) const
{
const bool has0 = (m1_in == 0 && n1_in == 0) ||
(m2_in == 0 && n2_in == 0);
if (has0)
return 0.0;
if (highOrder)
{
const unsigned m1 = std::min(m1_in, n1_in);
const unsigned n1 = std::max(m1_in, n1_in);
const unsigned m2 = std::min(m2_in, n2_in);
const unsigned n2 = std::max(m2_in, n2_in);
precise_type sum = precise_zero;
// Process the -v_{m1,n1} term (i.e., the linear one) of eps_{m1,n1}
sum += cov4(m2, n2, m1, n1);
sum += cov6(m2, n2, n2, n2, m1, n1)/2.0;
sum += cov6(m2, n2, m2, m2, m1, n1)/2.0;
for (unsigned k=0; k<=n2; ++k)
{
const double factor = k > m2 ? 1.0 : 2.0;
sum -= factor*cov6(k, m2, k, n2, m1, n1);
}
// Process the term -v_{m1,n1}/2 (v_{n1,n1} + v_{m1,m1}) of eps_{m1,n1}
unsigned idx[2];
idx[0] = n1;
idx[1] = m1;
for (unsigned ii=0; ii<2; ++ii)
{
const unsigned mOrN = idx[ii];
sum += cov6(m1, n1, mOrN, mOrN, m2, n2)/2.0;
sum += cov8(m1, n1, mOrN, mOrN, m2, n2, n2, n2)/4.0;
sum += cov8(m1, n1, mOrN, mOrN, m2, n2, m2, m2)/4.0;
for (unsigned k=0; k<=n2; ++k)
{
const double factor = k > m2 ? 1.0 : 2.0;
sum -= factor/2.0*cov8(m1, n1, mOrN, mOrN, k, m2, k, n2);
}
}
// Process the sum in eps_{m1,n1}
for (unsigned k1=0; k1<=n1; ++k1)
{
const double f1 = k1 > m1 ? 1.0 : 2.0;
sum -= f1*cov6(k1, m1, k1, n1, m2, n2);
sum -= f1*cov8(k1, m1, k1, n1, m2, n2, n2, n2)/2.0;
sum -= f1*cov8(k1, m1, k1, n1, m2, n2, m2, m2)/2.0;
for (unsigned k=0; k<=n2; ++k)
{
const double factor = k > m2 ? 1.0 : 2.0;
sum += f1*factor*cov8(k1, m1, k1, n1, k, m2, k, n2);
}
}
return sum;
}
else
return cov4(m2_in, n2_in, m1_in, n1_in);
}
Matrix<double> ContOrthoPoly1D::epsCovarianceMatrix(
const std::vector<std::pair<unsigned,unsigned> >& pairs,
const bool highOrder) const
{
if (pairs.empty()) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::epsCovarianceMatrix: empty list of pairs");
const unsigned nPairs = pairs.size();
Matrix<double> cov(nPairs, nPairs);
for (unsigned ipair1=0; ipair1<nPairs; ++ipair1)
{
const unsigned n = pairs[ipair1].first;
const unsigned m = pairs[ipair1].second;
for (unsigned ipair2=0; ipair2<=ipair1; ++ipair2)
{
const double value = epsCovariance(
n, m, pairs[ipair2].first, pairs[ipair2].second, highOrder);
cov[ipair1][ipair2] = value;
if (ipair1 != ipair2)
cov[ipair2][ipair1] = value;
}
}
return cov;
}
CPP11_auto_ptr<StorablePolySeries1D> ContOrthoPoly1D::makeStorablePolySeries(
const double i_xmin, const double i_xmax,
const double *coeffs, const unsigned maxdeg) const
{
const unsigned sz = rCoeffs_.size();
std::vector<std::pair<precise_type,precise_type> > rc(sz);
for (unsigned i=0; i<sz; ++i)
{
const Recurrence& r(rCoeffs_[i]);
rc[i].first = r.alpha;
rc[i].second = r.sqrbeta;
}
return CPP11_auto_ptr<StorablePolySeries1D>(
new StorablePolySeries1D(rc, i_xmin, i_xmax, shiftX_, coeffs, maxdeg));
}
}
Index: trunk/npstat/nm/quad_float.hh
===================================================================
--- trunk/npstat/nm/quad_float.hh (revision 0)
+++ trunk/npstat/nm/quad_float.hh (revision 920)
@@ -0,0 +1,7 @@
+#ifndef NPSTAT_QUAD_FLOAT_HH_
+#define NPSTAT_QUAD_FLOAT_HH_
+
+#include <quadmath.h>
+typedef __float128 quad_float;
+
+#endif // NPSTAT_QUAD_FLOAT_HH_
Index: trunk/npstat/nm/shiftedLegendreIntegral.hh
===================================================================
--- trunk/npstat/nm/shiftedLegendreIntegral.hh (revision 0)
+++ trunk/npstat/nm/shiftedLegendreIntegral.hh (revision 920)
@@ -0,0 +1,19 @@
+#ifndef NPSTAT_SHIFTEDLEGENDREINTEGRAL_HH_
+#define NPSTAT_SHIFTEDLEGENDREINTEGRAL_HH_
+
+namespace npstat {
+ inline long double shiftedLegendreIntegral(const unsigned i)
+ {return i ? 0.0L : 1.0L;}
+
+ inline long double shiftedLegendreIntegral(const unsigned i,
+ const unsigned j)
+ {return i == j ? 1.0L : 0.0L;}
+
+ long double shiftedLegendreIntegral(unsigned i, unsigned j, unsigned k);
+
+ long double shiftedLegendreIntegral(unsigned i, unsigned j,
+ unsigned k, unsigned l,
+ bool memoize = false);
+}
+
+#endif // NPSTAT_SHIFTEDLEGENDREINTEGRAL_HH_
Index: trunk/npstat/nm/PairCompare.hh
===================================================================
--- trunk/npstat/nm/PairCompare.hh (revision 919)
+++ trunk/npstat/nm/PairCompare.hh (revision 920)
@@ -1,76 +1,98 @@
#ifndef NPSTAT_PAIRCOMPARE_HH_
#define NPSTAT_PAIRCOMPARE_HH_
/*!
// \file PairCompare.hh
//
// \brief Various comparison functors for std::pair and npstat::Triple
//
// Author: I. Volobouev
//
// December 2011
*/
+#include <cmath>
+
namespace npstat {
/** "less" functor to compare the first element only */
template <typename T>
struct LessByFirst
{
inline bool operator()(const T& x, const T& y) const
{return x.first < y.first;}
inline bool operator()(const T* x, const T* y) const
{return x->first < y->first;}
};
/** "greater" functor to compare the first element only */
template <typename T>
struct GreaterByFirst
{
inline bool operator()(const T& x, const T& y) const
{return y.first < x.first;}
inline bool operator()(const T* x, const T* y) const
{return y->first < x->first;}
};
+ /** "less" functor to compare the magnitude of the first element only */
+ template <typename T>
+ struct LessByAbsFirst
+ {
+ inline bool operator()(const T& x, const T& y) const
+ {return std::abs(x.first) < std::abs(y.first);}
+ inline bool operator()(const T* x, const T* y) const
+ {return std::abs(x->first) < std::abs(y->first);}
+ };
+
+ /** "greater" functor to compare the magnitude of the first element only */
+ template <typename T>
+ struct GreaterByAbsFirst
+ {
+ inline bool operator()(const T& x, const T& y) const
+ {return std::abs(y.first) < std::abs(x.first);}
+ inline bool operator()(const T* x, const T* y) const
+ {return std::abs(y->first) < std::abs(x->first);}
+ };
+
/** "less" functor to compare the second element only */
template <typename T>
struct LessBySecond
{
inline bool operator()(const T& x, const T& y) const
{return x.second < y.second;}
inline bool operator()(const T* x, const T* y) const
{return x->second < y->second;}
};
/** "greater" functor to compare the second element only */
template <typename T>
struct GreaterBySecond
{
inline bool operator()(const T& x, const T& y) const
{return y.second < x.second;}
inline bool operator()(const T* x, const T* y) const
{return y->second < x->second;}
};
/** "less" functor to compare the third element only */
template <typename T>
struct LessByThird
{
inline bool operator()(const T& x, const T& y) const
{return x.third < y.third;}
inline bool operator()(const T* x, const T* y) const
{return x->third < y->third;}
};
/** "greater" functor to compare the third element only */
template <typename T>
struct GreaterByThird
{
inline bool operator()(const T& x, const T& y) const
{return y.third < x.third;}
inline bool operator()(const T* x, const T* y) const
{return y->third < x->third;}
};
}
#endif // NPSTAT_PAIRCOMPARE_HH_
Index: trunk/npstat/nm/RecurrenceCoeffsQ.icc
===================================================================
--- trunk/npstat/nm/RecurrenceCoeffsQ.icc (revision 0)
+++ trunk/npstat/nm/RecurrenceCoeffsQ.icc (revision 920)
@@ -0,0 +1,142 @@
+#include <stdexcept>
+
+#include "npstat/nm/allocators.hh"
+
+namespace npstat {
+ namespace Private {
+ template <class MeasurePt>
+ void calcRecurrenceCoeffsQ(const std::vector<MeasurePt>& measure,
+ const unsigned maxdeg, const quad_float norm,
+ const OrthoPolyMethod m,
+ std::vector<RecurrenceQ>* rcoeffs)
+ {
+ assert(norm > 0.0Q);
+ assert(rcoeffs);
+ rcoeffs->clear();
+ rcoeffs->reserve(maxdeg + 1U);
+ switch (m)
+ {
+ case OPOLY_STIELTJES:
+ calcRecurrenceStieltjesQ(measure, maxdeg, norm, rcoeffs);
+ break;
+
+ case OPOLY_LANCZOS:
+ calcRecurrenceLanczosQ(measure, maxdeg, norm, rcoeffs);
+ break;
+
+ default:
+ throw std::runtime_error(
+ "In npstat::Private::calcRecurrenceCoeffsQ: "
+ "incomplete switch statement. This is a bug. Please report.");
+ }
+ assert(rcoeffs->size() == maxdeg + 1U);
+ }
+
+ template <class MeasurePt>
+ std::pair<quad_float,quad_float> monicInnerProductsQ(
+ const std::vector<RecurrenceQ>& rcoeffs,
+ const std::vector<MeasurePt>& measure,
+ const unsigned degree, const quad_float norm)
+ {
+ quad_float sum = 0.0Q, xsum = 0.0Q;
+ const unsigned mSize = measure.size();
+ for (unsigned i = 0; i < mSize; ++i)
+ {
+ const quad_float x = measure[i].first;
+ const quad_float p = monicpolyQ(rcoeffs, degree, x);
+ const quad_float pprod = p*p*measure[i].second;
+ sum += pprod;
+ xsum += x*pprod;
+ }
+ return std::pair<quad_float,quad_float>(xsum/norm, sum/norm);
+ }
+
+ template <class MeasurePt>
+ void calcRecurrenceStieltjesQ(
+ const std::vector<MeasurePt>& measure,
+ const unsigned maxdeg, const quad_float norm,
+ std::vector<RecurrenceQ>* rcoeffs)
+ {
+ quad_float prevSprod = 1.0Q;
+ for (unsigned deg=0; deg<=maxdeg; ++deg)
+ {
+ const std::pair<quad_float,quad_float> ip = monicInnerProductsQ(
+ *rcoeffs, measure, deg, norm);
+ assert(ip.second > 0.0Q);
+ rcoeffs->push_back(RecurrenceQ(ip.first/ip.second, ip.second/prevSprod));
+ prevSprod = ip.second;
+ }
+ }
+
+ template <class MeasurePt>
+ void calcRecurrenceLanczosQ(const std::vector<MeasurePt>& measure,
+ const unsigned maxdeg, const quad_float norm,
+ std::vector<RecurrenceQ>* rcoeffs)
+ {
+ typedef quad_float Real;
+
+ const unsigned mSize = measure.size();
+ std::vector<Real> dmem(mSize*2U);
+
+ Real* p0 = &dmem[0];
+ for (unsigned i=0; i<mSize; ++i)
+ p0[i] = measure[i].first;
+
+ Real* p1 = &dmem[mSize];
+ clearBuffer(p1, mSize);
+ p1[0] = measure[0].second/norm;
+
+ const unsigned mm1 = mSize - 1;
+ for (unsigned n=0; n<mm1; ++n)
+ {
+ const unsigned np1 = n + 1U;
+ Real xlam = measure[np1].first;
+ Real pn = measure[np1].second/norm;
+ Real gam = 1.0Q, sig = 0.0Q, t = 0.0Q;
+
+ for (unsigned k=0; k<=np1; ++k)
+ {
+ const Real rho = p1[k] + pn;
+ const Real tmp = gam*rho;
+ Real tsig = sig;
+ if (rho <= 0.0Q)
+ {
+ gam = 1.0Q;
+ sig = 0.0Q;
+ }
+ else
+ {
+ gam = p1[k]/rho;
+ sig = pn/rho;
+ }
+ const Real tk = sig*(p0[k] - xlam) - gam*t;
+ p0[k] -= tk - t;
+ t = tk;
+ if (sig < 0.0Q)
+ pn = tsig*p1[k];
+ else
+ pn = t*t/sig;
+ tsig = sig;
+ p1[k] = tmp;
+ }
+ }
+
+ for (unsigned deg=0; deg<=maxdeg; ++deg)
+ rcoeffs->push_back(RecurrenceQ(p0[deg], p1[deg]));
+ }
+
+ inline quad_float monicpolyQ(const std::vector<RecurrenceQ>& rcoeffs,
+ const unsigned degree, const quad_float x)
+ {
+ quad_float polyk = 1.0Q, polykm1 = 0.0Q;
+ for (unsigned k=0; k<degree; ++k)
+ {
+ const quad_float p = (x - rcoeffs[k].alpha)*polyk -
+ rcoeffs[k].beta*polykm1;
+ polykm1 = polyk;
+ polyk = p;
+ }
+ return polyk;
+ }
+ }
+}
Index: trunk/npstat/nm/shiftedLegendreIntegral.cc
===================================================================
--- trunk/npstat/nm/shiftedLegendreIntegral.cc (revision 0)
+++ trunk/npstat/nm/shiftedLegendreIntegral.cc (revision 920)
@@ -0,0 +1,158 @@
+#include <cmath>
+#include <limits>
+#include <cassert>
+#include <stdexcept>
+#include <algorithm>
+#include <map>
+#include <utility>
+
+#include "npstat/rng/permutation.hh"
+#include "npstat/nm/allocators.hh"
+#include "npstat/nm/shiftedLegendreIntegral.hh"
+
+namespace {
+ class Ushort4key
+ {
+ public:
+ // This assumes that "degs" array is sorted
+ inline Ushort4key(const unsigned short degs[4])
+ {
+ degrees_[0] = degs[0];
+ degrees_[1] = degs[1];
+ degrees_[2] = degs[2];
+ degrees_[3] = degs[3];
+ }
+
+ inline bool operator<(const Ushort4key& r) const
+ {
+ for (unsigned i=0; i<4; ++i)
+ {
+ if (degrees_[i] < r.degrees_[i])
+ return true;
+ if (degrees_[i] > r.degrees_[i])
+ return false;
+ }
+ return false;
+ }
+
+ private:
+ unsigned short degrees_[4];
+ };
+}
+
+static long double threeJSquared(const unsigned i,
+ const unsigned j,
+ const unsigned k)
+{
+ const unsigned twos = i + j + k;
+ if (twos % 2U) {return 0.0L;}
+ if (2U*i > twos || 2U*j > twos || 2U*k > twos) {return 0.0L;}
+ const unsigned s = twos/2U;
+ const long double tmp1 = npstat::ldfactorial(s)/
+ npstat::ldfactorial(s - i)/
+ npstat::ldfactorial(s - j)/
+ npstat::ldfactorial(s - k);
+ const long double tmp2 = npstat::ldfactorial(twos - 2U*i)*
+ npstat::ldfactorial(twos - 2U*j)*
+ npstat::ldfactorial(twos - 2U*k)/
+ npstat::ldfactorial(twos + 1U);
+ return tmp2*tmp1*tmp1;
+}
+
+static void legendreProductCoeffs(const unsigned i, const unsigned j,
+ long double* c, const unsigned toDeg)
+{
+ assert(c);
+ const unsigned minDeg = i > j ? i - j : j - i;
+ npstat::clearBuffer(c, std::min(minDeg, toDeg + 1U));
+
+ const unsigned long tmp1 = static_cast<unsigned long>(2U*i + 1U)*(2U*j + 1U);
+ for (unsigned m=minDeg; m<=toDeg; ++m)
+ {
+ const long double threeJSq = threeJSquared(i, j, m);
+ if (threeJSq)
+ c[m] = threeJSq*sqrtl(tmp1*(2U*m + 1U));
+ else
+ c[m] = 0.0L;
+ }
+}
+
+namespace npstat {
+ long double shiftedLegendreIntegral(const unsigned i,
+ const unsigned j,
+ const unsigned k)
+ {
+ if (!i) {return j == k ? 1.0L : 0.0L;}
+ if (!j) {return i == k ? 1.0L : 0.0L;}
+ if (!k) {return i == j ? 1.0L : 0.0L;}
+ const long double threeJSq = threeJSquared(i, j, k);
+ if (threeJSq)
+ {
+ const unsigned long tmp3 = static_cast<unsigned long>(2U*i + 1U)*
+ (2U*j + 1U)*(2U*k + 1U);
+ return threeJSq*sqrtl(tmp3);
+ }
+ else
+ return 0.0L;
+ }
+
+ long double shiftedLegendreIntegral(const unsigned i, const unsigned j,
+ const unsigned k, const unsigned l,
+ const bool memoize)
+ {
+ typedef std::map<Ushort4key,long double> ResultMap;
+ static ResultMap memoized;
+
+ static const unsigned maxshort = std::numeric_limits<unsigned short>::max();
+ if (i > maxshort || j > maxshort || k > maxshort || l > maxshort)
+ throw std::invalid_argument(
+ "In npstat::shiftedLegendreIntegral: polynomial degree is way too large");
+
+ // The maximum argument of ldfactorial is 1754.
+ // We need to have a buffer which is comparable.
+ static const unsigned maxdeg = 4000U;
+
+ const unsigned deg = i + j + k + l;
+ if (deg % 2U) {return 0.0L;}
+ if (2U*i > deg || 2U*j > deg || 2U*k > deg || 2U*l > deg) {return 0.0L;}
+ if (!i) {return shiftedLegendreIntegral(j, k, l);}
+ if (!j) {return shiftedLegendreIntegral(i, k, l);}
+ if (!k) {return shiftedLegendreIntegral(i, j, l);}
+ if (!l) {return shiftedLegendreIntegral(i, j, k);}
+
+ // Among all possible pairs that can be made out of the
+ // set {i, j, k, l}, choose the pair with the smallest
+ // degree sum
+ unsigned short degrees[4];
+ degrees[0] = i;
+ degrees[1] = j;
+ degrees[2] = k;
+ degrees[3] = l;
+ std::sort(degrees, degrees + 4);
+ const unsigned sumdeg = static_cast<unsigned>(degrees[0]) + degrees[1];
+
+ if (2U*sumdeg > maxdeg) throw std::invalid_argument(
+ "In npstat::shiftedLegendreIntegral: polynomial degree is too large");
+
+ if (memoize)
+ {
+ ResultMap::const_iterator it = memoized.find(Ushort4key(degrees));
+ if (it != memoized.end())
+ return it->second;
+ }
+
+ long double buffer[maxdeg + 2U];
+ long double* c1 = buffer;
+ long double* c2 = c1 + (sumdeg + 1U);
+ legendreProductCoeffs(degrees[0], degrees[1], c1, sumdeg);
+ legendreProductCoeffs(degrees[2], degrees[3], c2, sumdeg);
+ long double sum = 0.0L;
+ for (unsigned q=0; q<=sumdeg; ++q)
+ sum += c1[q]*c2[q];
+
+ if (memoize)
+ memoized.insert(std::make_pair(Ushort4key(degrees), sum));
+
+ return sum;
+ }
+}
Index: trunk/npstat/nm/PairCompareQ.hh
===================================================================
--- trunk/npstat/nm/PairCompareQ.hh (revision 0)
+++ trunk/npstat/nm/PairCompareQ.hh (revision 920)
@@ -0,0 +1,27 @@
+#ifndef NPSTAT_PAIRCOMPAREQ_HH_
+#define NPSTAT_PAIRCOMPAREQ_HH_
+
+#include "npstat/nm/quad_float.hh"
+
+namespace npstat {
+ template <typename T>
+ struct LessByAbsFirstQ
+ {
+ inline bool operator()(const T& x, const T& y) const
+ {return fabsq(x.first) < fabsq(y.first);}
+ inline bool operator()(const T* x, const T* y) const
+ {return fabsq(x->first) < fabsq(y->first);}
+ };
+
+ /** "greater" functor to compare the magnitude of the first element only */
+ template <typename T>
+ struct GreaterByAbsFirstQ
+ {
+ inline bool operator()(const T& x, const T& y) const
+ {return fabsq(y.first) < fabsq(x.first);}
+ inline bool operator()(const T* x, const T* y) const
+ {return fabsq(y->first) < fabsq(x->first);}
+ };
+}
+
+#endif // NPSTAT_PAIRCOMPAREQ_HH_
Index: trunk/npstat/nm/ContOrthoPoly1DQ.hh
===================================================================
--- trunk/npstat/nm/ContOrthoPoly1DQ.hh (revision 0)
+++ trunk/npstat/nm/ContOrthoPoly1DQ.hh (revision 920)
@@ -0,0 +1,156 @@
+#ifndef NPSTAT_CONTORTHOPOLY1DQ_HH_
+#define NPSTAT_CONTORTHOPOLY1DQ_HH_
+
+#include <vector>
+#include <utility>
+
+#include "npstat/nm/OrthoPolyMethod.hh"
+#include "npstat/nm/RecurrenceQ.hh"
+#include "npstat/nm/Matrix.hh"
+
+namespace npstat {
+ class ContOrthoPoly1DQ
+ {
+ public:
+ typedef std::pair<quad_float,quad_float> MeasurePoint;
+
+ /**
+ // Main constructor, with obvious arguments. The first element
+ // of the measure pair is the coordinate and the second element
+ // is the weight (all weights must be non-negative). Internally,
+ // the measure will be sorted in the order of increasing weight
+ // and the measure coordinates will normally be shifted so that
+ // their weighted mean is at 0.
+ */
+ template<typename Numeric1, typename Numeric2>
+ ContOrthoPoly1DQ(unsigned maxDegree,
+ const std::vector<std::pair<Numeric1,Numeric2> >& measure,
+ OrthoPolyMethod m = OPOLY_STIELTJES,
+ bool shiftMeasureCoords = true);
+
+ /** Constructor which assumes that all weights are 1.0 */
+ template<typename Numeric>
+ ContOrthoPoly1DQ(unsigned maxDegree,
+ const std::vector<Numeric>& coords,
+ OrthoPolyMethod m = OPOLY_STIELTJES,
+ bool shiftMeasureCoords = true);
+
+ /** Constructor that uses the modified Chebyshev algorithm */
+ template<typename Numeric1, typename Numeric2, class OrthoPoly>
+ ContOrthoPoly1DQ(unsigned maxDegree,
+ const std::vector<std::pair<Numeric1,Numeric2> >& measure,
+ const OrthoPoly& ops, bool shiftMeasureCoords = false);
+
+ /**
+ // Constructor that uses the modified Chebyshev algorithm
+ // and assumes that all weights are 1.0
+ */
+ template<typename Numeric, class OrthoPoly>
+ ContOrthoPoly1DQ(unsigned maxDegree,
+ const std::vector<Numeric>& coords,
+ const OrthoPoly& ops, bool shiftMeasureCoords = false);
+
+ /**
+ // Function added for interface compatibility with
+ // AbsClassicalOrthoPoly1D
+ */
+ inline ContOrthoPoly1DQ* clone() const {return new ContOrthoPoly1DQ(*this);}
+
+ //@{
+ /** A simple inspector of object properties */
+ inline unsigned maxDegree() const {return maxdeg_;}
+ inline bool areAllWeightsEqual() const {return allWeightsEqual_;}
+ inline quad_float measureShift() const {return shiftX_;}
+ inline quad_float meanCoordinate() const {return meanX_;}
+ inline quad_float location() const {return meanX_;}
+ inline quad_float scale() const {return 1.0;}
+ //@}
+
+ /** Kish's effective sample size for the measure */
+ quad_float effectiveSampleSize() const;
+
+ /** Return the value of one of the normalized polynomials */
+ quad_float poly(unsigned deg, quad_float x) const;
+
+ /** Return the values of two of the normalized polynomials */
+ std::pair<quad_float,quad_float> polyPair(
+ unsigned deg1, unsigned deg2, quad_float x) const;
+
+ /**
+ // Return the values of all orthonormal polynomials up to some
+ // maximum degree. Size of the "polyValues" array should be
+ // at least maxdeg + 1.
+ */
+ template <typename Numeric>
+ inline void allPolys(const quad_float x, const unsigned maxdeg,
+ Numeric* polyValues) const
+ {getAllPolys(x - shiftX_, maxdeg, polyValues);}
+
+ /**
+ // Function added for interface compatibility with
+ // AbsClassicalOrthoPoly1D
+ */
+ inline void allpoly(const long double x, long double* values,
+ const unsigned maxdeg) const
+ {getAllPolys(x - shiftX_, maxdeg, values);}
+
+ /**
+ // This method is useful for testing the numerical precision
+ // of the orthonormalization procedure. It returns the scalar
+ // products between various polynomials.
+ */
+ quad_float empiricalKroneckerDelta(unsigned deg1, unsigned deg2) const;
+
+ /**
+ // A faster way to generate Kronecker deltas if the whole matrix
+ // of them is needed. The argument must not exceed the return
+ // value of the "maxDegree" function. The resulting matrix will
+ // be dimensioned (maxdeg + 1) x (maxdeg + 1).
+ */
+ Matrix<quad_float> empiricalKroneckerMatrix(unsigned maxdeg) const;
+
+ private:
+ template<typename Numeric1, typename Numeric2>
+ void copyMeasure(const std::vector<std::pair<Numeric1,Numeric2> >& inMeasure);
+
+ template<typename Numeric>
+ void copyInputCoords(const std::vector<Numeric>& inCoords);
+
+ void calcMeanXandWeightSums(bool shiftTheMeasure);
+
+ template<class OrthoPoly>
+ quad_float sigma(const OrthoPoly& ops, int k, int l,
+ Matrix<quad_float>& sigMatrix,
+ Matrix<int>& flagMatrix) const;
+
+ template<class OrthoPoly>
+ void calculateMonicAverages(const OrthoPoly& ops, quad_float* averages,
+ unsigned maxdeg);
+
+ template<class OrthoPoly>
+ void calcRecurrenceModifiedChebyshev(const OrthoPoly& ops);
+
+ quad_float normpoly(unsigned degree, quad_float x) const;
+
+ std::pair<quad_float,quad_float> twonormpoly(
+ unsigned deg1, unsigned deg2, quad_float x) const;
+
+ template <typename Numeric>
+ void getAllPolys(quad_float x, unsigned maxdeg, Numeric *polyValues) const;
+
+ std::vector<MeasurePoint> measure_;
+ std::vector<Private::RecurrenceQ> rCoeffs_;
+ quad_float wsum_;
+ quad_float wsumsq_;
+ quad_float meanX_;
+ quad_float shiftX_;
+ quad_float minX_;
+ quad_float maxX_;
+ unsigned maxdeg_;
+ bool allWeightsEqual_;
+ };
+}
+
+#include "npstat/nm/ContOrthoPoly1DQ.icc"
+
+#endif // NPSTAT_CONTORTHOPOLY1DQ_HH_
Index: trunk/npstat/nm/ContOrthoPoly1D.icc
===================================================================
--- trunk/npstat/nm/ContOrthoPoly1D.icc (revision 919)
+++ trunk/npstat/nm/ContOrthoPoly1D.icc (revision 920)
@@ -1,547 +1,547 @@
#include <cfloat>
#include <numeric>
#include <cassert>
#include <stdexcept>
#include <algorithm>
#include "npstat/nm/PairCompare.hh"
#include "npstat/nm/polyPrivateUtils.hh"
namespace npstat {
template<typename Numeric1, typename Numeric2>
void ContOrthoPoly1D::copyMeasure(const std::vector<std::pair<Numeric1,Numeric2> >& inMeasure)
{
if (inMeasure.empty()) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::copyMeasure: empty argument measure");
const unsigned long mSize = inMeasure.size();
measure_.clear();
measure_.reserve(mSize);
for (unsigned long i=0; i<mSize; ++i)
{
const std::pair<Numeric1,Numeric2>& p(inMeasure[i]);
measure_.push_back(MeasurePoint(p.first, p.second));
}
// From time to time, we expect all weights to be equal.
// Check if this is indeed the case. If not, sort the
// weights in the increasing order, hopefully reducing
// the round-off error of subsequent calculations.
const double w0 = measure_[0].second;
for (unsigned long i = 1; i < mSize && allWeightsEqual_; ++i)
allWeightsEqual_ = (w0 == measure_[i].second);
if (!allWeightsEqual_)
std::sort(measure_.begin(), measure_.end(), LessBySecond<MeasurePoint>());
if (measure_[0].second < 0.0) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::copyMeasure: negative measure entry found");
// Make sure that we don't have too many points with 0 weights
unsigned long nZeroWeights = 0;
if (allWeightsEqual_)
{
if (w0 == 0.0)
nZeroWeights = mSize;
}
else
{
for (unsigned long i = 0; i < mSize; ++i)
{
if (measure_[i].second == 0.0)
++nZeroWeights;
else
break;
}
}
if (mSize <= maxdeg_ + nZeroWeights) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::copyMeasure: insufficient number "
"of measure points with non-zero weights");
}
template<typename Numeric>
void ContOrthoPoly1D::copyInputCoords(const std::vector<Numeric>& inCoords)
{
if (inCoords.empty()) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::copyInputCoords: empty argument vector");
const unsigned long sz = inCoords.size();
if (sz <= maxdeg_) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::copyInputCoords: insufficient number of points");
// Fill the measure, converting the input type as needed
measure_.clear();
measure_.reserve(sz);
for (unsigned long i = 0; i < sz; ++i)
measure_.push_back(MeasurePoint(inCoords[i], 1.0));
}
template<class OrthoPoly>
long double ContOrthoPoly1D::sigma(const OrthoPoly& ops, int k, int l,
Matrix<long double>& sigMatrix,
Matrix<int>& flagMatrix) const
{
const int nRows = sigMatrix.nRows();
const int nCols = sigMatrix.nColumns();
assert(k >= -1);
assert(k < nRows);
assert(l >= 0);
assert(l < nCols);
if (k < 0)
return 0.0L;
else if (flagMatrix[k][l])
return sigMatrix[k][l];
else
{
assert(k > 0);
const int* flagskm1 = flagMatrix[k-1];
assert(flagskm1[l]);
assert(l+1 < nCols);
assert(flagskm1[l+1]);
assert(l-1 >= 0);
assert(flagskm1[l-1]);
long double sigkm2l = 0.0L;
if (k > 1)
{
assert(flagMatrix[k-2][l]);
sigkm2l = sigMatrix[k-2][l];
}
const long double* smatkm1 = sigMatrix[k-1];
const Recurrence& rckm1(rCoeffs_.at(k - 1));
const std::pair<long double,long double>& ab = ops.monicRecurrenceCoeffs(l);
const long double sigkl = smatkm1[l+1] - (rckm1.alpha - ab.first)*smatkm1[l] -
rckm1.beta*sigkm2l + ab.second*smatkm1[l-1];
sigMatrix[k][l] = sigkl;
flagMatrix[k][l] = 1;
return sigkl;
}
}
template<class OrthoPoly>
void ContOrthoPoly1D::calculateMonicAverages(
const OrthoPoly& ops, long double* averages, const unsigned maxdeg)
{
std::vector<long double> membuf(2U*(maxdeg + 1U), 0.0L);
long double* poly = &membuf[0];
long double* sums = poly + (maxdeg + 1U);
const unsigned long numPoints = measure_.size();
for (unsigned long i=0; i<numPoints; ++i)
{
const long double ptw = measure_[i].second;
ops.allmonic(measure_[i].first, poly, maxdeg);
for (unsigned k=0; k<=maxdeg; ++k)
sums[k] += poly[k]*ptw;
}
for (unsigned k=0; k<=maxdeg; ++k)
averages[k] = sums[k]/wsum_;
}
template<class OrthoPoly>
void ContOrthoPoly1D::calcRecurrenceModifiedChebyshev(const OrthoPoly& ops)
{
const unsigned maxl = 2U*maxdeg_ + 1U;
if (ops.maxDegree() < maxl) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::calcRecurrenceModifiedChebyshev: "
"insufficient maximum degree of the input OPS");
Matrix<long double> sigMatrix(maxdeg_+1U, maxl+1U);
Matrix<int> flagMatrix(maxdeg_+1U, maxl+1U, 0);
long double* m = sigMatrix[0];
calculateMonicAverages(ops, m, maxl);
int* flags = flagMatrix[0];
for (unsigned i=0; i<=maxl; ++i)
flags[i] = 1;
const long double a0 = ops.monicRecurrenceCoeffs(0).first;
rCoeffs_.push_back(Recurrence(a0 + m[1], 1.0L));
const int imdeg = maxdeg_;
for (int k=1; k<=imdeg; ++k)
{
const int lmax = maxl-k;
for (int l=k; l<=lmax; ++l)
sigma(ops, k, l, sigMatrix, flagMatrix);
assert(flagMatrix[k][k]);
const long double sigkk = sigMatrix[k][k];
assert(flagMatrix[k-1][k-1]);
const long double sigkm1km1 = sigMatrix[k-1][k-1];
assert(flagMatrix[k][k+1]);
const long double sigkkp1 = sigMatrix[k][k+1];
assert(flagMatrix[k-1][k]);
const long double sigkm1k = sigMatrix[k-1][k];
const long double ak = ops.monicRecurrenceCoeffs(k).first;
const long double alpha = ak + sigkkp1/sigkk - sigkm1k/sigkm1km1;
const long double beta = sigkk/sigkm1km1;
rCoeffs_.push_back(Recurrence(alpha, beta));
}
}
template<typename Numeric1, typename Numeric2>
ContOrthoPoly1D::ContOrthoPoly1D(const unsigned maxDegree,
const std::vector<std::pair<Numeric1,Numeric2> >& inMeasure,
const OrthoPolyMethod m,
const bool shiftMeasure)
: wsum_(precise_zero),
wsumsq_(precise_zero),
minX_(DBL_MAX),
maxX_(-DBL_MAX),
maxdeg_(maxDegree),
allWeightsEqual_(true)
{
copyMeasure(inMeasure);
calcMeanXandWeightSums(shiftMeasure);
calcRecurrenceCoeffs(m);
}
template<typename Numeric>
ContOrthoPoly1D::ContOrthoPoly1D(const unsigned maxDegree,
const std::vector<Numeric>& inCoords,
const OrthoPolyMethod m,
const bool shiftMeasure)
: wsum_(precise_zero),
wsumsq_(precise_zero),
minX_(DBL_MAX),
maxX_(-DBL_MAX),
maxdeg_(maxDegree),
allWeightsEqual_(true)
{
copyInputCoords(inCoords);
calcMeanXandWeightSums(shiftMeasure);
calcRecurrenceCoeffs(m);
}
template<typename Numeric1, typename Numeric2, class OrthoPoly>
ContOrthoPoly1D::ContOrthoPoly1D(const unsigned maxDegree,
const std::vector<std::pair<Numeric1,Numeric2> >& inMeasure,
const OrthoPoly& ops, const bool shiftMeasure)
: wsum_(precise_zero),
wsumsq_(precise_zero),
minX_(DBL_MAX),
maxX_(-DBL_MAX),
maxdeg_(maxDegree),
allWeightsEqual_(true)
{
copyMeasure(inMeasure);
calcMeanXandWeightSums(shiftMeasure);
calcRecurrenceModifiedChebyshev(ops);
}
#ifndef SWIGBUG
template<typename Numeric, class OrthoPoly>
ContOrthoPoly1D::ContOrthoPoly1D(const unsigned maxDegree,
const std::vector<Numeric>& inCoords,
const OrthoPoly& ops, const bool shiftMeasure)
: wsum_(precise_zero),
wsumsq_(precise_zero),
minX_(DBL_MAX),
maxX_(-DBL_MAX),
maxdeg_(maxDegree),
allWeightsEqual_(true)
{
copyInputCoords(inCoords);
calcMeanXandWeightSums(shiftMeasure);
calcRecurrenceModifiedChebyshev(ops);
}
#endif
template <class Functor, typename Numeric>
void ContOrthoPoly1D::calculateCoeffs(const Functor& fcn,
Numeric* coeffs,
const unsigned maxdeg) const
{
if (maxdeg > maxdeg_) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::calculateCoeffs: "
"maximum degree is out of range");
assert(coeffs);
std::vector<precise_type> scalarProducts(maxdeg+1U, precise_zero);
const unsigned long mSize = measure_.size();
for (unsigned long i = 0; i < mSize; ++i)
{
const double x = measure_[i].first;
const double w = measure_[i].second;
const precise_type f = fcn(x + shiftX_);
precise_type polyk = 1.0, polykm1 = precise_zero;
for (unsigned k=0; k<maxdeg; ++k)
{
scalarProducts[k] += polyk*f*w;
const precise_type poly = ((x - rCoeffs_[k].alpha)*polyk -
rCoeffs_[k].sqrbeta*polykm1)/rCoeffs_[k+1].sqrbeta;
polykm1 = polyk;
polyk = poly;
}
scalarProducts[maxdeg] += polyk*f*w;
}
for (unsigned deg=0; deg<=maxdeg; ++deg)
coeffs[deg] = scalarProducts[deg]/wsum_;
}
template <class Functor>
double ContOrthoPoly1D::weightedSquaredError(const Functor& fcn,
const double *coeffs,
const unsigned maxdeg) const
{
if (maxdeg > maxdeg_) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::weightedSquaredError: "
"maximum degree is out of range");
assert(coeffs);
precise_type sum = precise_zero;
const unsigned long mSize = measure_.size();
for (unsigned long i = 0; i < mSize; ++i)
{
const double x = measure_[i].first;
const precise_type delta = normseries(coeffs, maxdeg, x) - fcn(x + shiftX_);
sum += delta*delta*measure_[i].second;
}
return sum/wsum_;
}
template <class Functor>
double ContOrthoPoly1D::integratedSquaredError(
const Functor& infcn,
const double *coeffs, const unsigned maxdeg,
const double xmin, const double xmax,
unsigned integrationRulePoints) const
{
if (maxdeg > maxdeg_) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::integratedSquaredError: "
"maximum degree is out of range");
assert(coeffs);
if (!integrationRulePoints)
{
integrationRulePoints = PreciseQuadrature::minimalExactRule(2*maxdeg);
if (!integrationRulePoints) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::integratedSquaredError: "
"order of requested integration rule is too high");
}
DeltaSquaredSerFcn<ContOrthoPoly1D,Functor> fcn(*this, infcn, coeffs, maxdeg);
PreciseQuadrature glq(integrationRulePoints);
return glq.integrate(fcn, xmin, xmax);
}
template <class Functor>
double ContOrthoPoly1D::integrateEWPolyProduct(
const Functor& weight,
const unsigned deg1, const unsigned deg2,
const double xmin, const double xmax,
const unsigned integrationRulePoints) const
{
if (deg1 > maxdeg_ || deg2 > maxdeg_) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::integrateEWPolyProduct: "
"degree argument is out of range");
PreciseQuadrature glq(integrationRulePoints);
EWPolyProductFcn<Functor> fcn(*this, weight, deg1, deg2);
// The shift of the poly argument will be performed inside "fcn"
return glq.integrate(fcn, xmin, xmax);
}
template <class Functor>
void ContOrthoPoly1D::extWeightAverages(
const Functor& fcn, const AbsIntervalQuadrature1D& quad,
const unsigned maxdeg, const double i_xmin, const double i_xmax,
double* averages) const
{
if (maxdeg > maxdeg_) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::extWeightAverages: "
"degree argument is out of range");
Private::extWeightAverages(
*this, fcn, quad, maxdeg, i_xmin, i_xmax, averages);
}
template <class Functor>
Matrix<double> ContOrthoPoly1D::extWeightProductAverages(
const Functor& fcn, const AbsIntervalQuadrature1D& quad,
const unsigned maxdeg, const double i_xmin, const double i_xmax) const
{
if (maxdeg > maxdeg_) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::extWeightProductAverages: "
"degree argument is out of range");
return Private::extWeightProductAverages(
*this, fcn, quad, maxdeg, i_xmin, i_xmax);
}
template <typename Numeric>
void ContOrthoPoly1D::getAllPolys(const double x, const unsigned maxdeg,
- Numeric *polyValues) const
+ Numeric* polyValues) const
{
if (maxdeg > maxdeg_) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::getAllPolys: "
"maximum polynomial degree is out of range");
assert(polyValues);
precise_type polyk = 1.0, polykm1 = precise_zero;
polyValues[0] = polyk;
for (unsigned k=0; k<maxdeg; ++k)
{
const precise_type p = ((x - rCoeffs_[k].alpha)*polyk -
rCoeffs_[k].sqrbeta*polykm1)/rCoeffs_[k+1].sqrbeta;
polyValues[k+1] = p;
polykm1 = polyk;
polyk = p;
}
}
template <class Functor>
double ContOrthoPoly1D::constrainedCoeffs(
const Functor& fcn,
double *coeffs, const unsigned maxdeg,
const double xmin, const double xmax,
const double integralValue) const
{
const unsigned nPolys = maxdeg + 1U;
// Calculate the unconstrained coefficients
std::vector<lapack_double> coeffs0(nPolys);
calculateCoeffs(fcn, &coeffs0[0], maxdeg);
// Construct the normalization constraint matrix
npstat::Matrix<lapack_double> constrMat(1, nPolys);
lapack_double* constrData = constrMat[0];
for (unsigned i=0; i<nPolys; ++i)
*constrData++ = integratePoly(i, 1U, xmin, xmax);
// Solve the constrained problem
lapack_double chisq = -1.0;
lapack_double constraint = integralValue;
std::vector<lapack_double> fitted(nPolys);
npstat::Matrix<lapack_double> U(nPolys, nPolys, 1);
const bool status = U.constrainedLeastSquares(
&coeffs0[0], nPolys, constrMat, &constraint, 1U,
&fitted[0], nPolys, &chisq);
assert(status);
// Fill out the result buffer
for (unsigned i=0; i<nPolys; ++i)
*coeffs++ = fitted[i];
return chisq;
}
template<typename Numeric>
void ContOrthoPoly1D::sampleAverages(const Numeric* xValues, const unsigned long sz,
double *polyValues, const unsigned maxdeg) const
{
if (!sz) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::sampleAverages: empty sample");
assert(xValues);
assert(polyValues);
std::vector<precise_type> buffer(2U*(maxdeg + 1U), precise_zero);
precise_type* sums = &buffer[0];
precise_type* tmp = sums + (maxdeg + 1U);
for (unsigned long i=0; i<sz; ++i)
{
getAllPolys(static_cast<double>(xValues[i]) - shiftX_, maxdeg, tmp);
for (unsigned deg=0; deg<=maxdeg; ++deg)
sums[deg] += tmp[deg];
}
const precise_type ldsz = sz;
for (unsigned deg=0; deg<=maxdeg; ++deg)
polyValues[deg] = sums[deg]/ldsz;
}
template<class Pair>
void ContOrthoPoly1D::weightedPointsAverages(
const Pair* points, const unsigned long sz,
double *polyValues, const unsigned maxdeg) const
{
if (!sz) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::weightedPointsAverages: empty sample");
assert(points);
assert(polyValues);
std::vector<precise_type> buffer(2U*(maxdeg + 1U), precise_zero);
precise_type* sums = &buffer[0];
precise_type* tmp = sums + (maxdeg + 1U);
precise_type wsum = precise_zero;
for (unsigned long i=0; i<sz; ++i)
{
const precise_type w = points[i].second;
if (w < precise_zero) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::weightedPointsAverages: "
"all weights must be non-negative");
wsum += w;
getAllPolys(static_cast<double>(points[i].first) - shiftX_, maxdeg, tmp);
for (unsigned deg=0; deg<=maxdeg; ++deg)
sums[deg] += w*tmp[deg];
}
if (wsum == precise_zero) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::weightedPointsAverages: "
"at least one weight must be positive");
for (unsigned deg=0; deg<=maxdeg; ++deg)
polyValues[deg] = sums[deg]/wsum;
}
template <typename Numeric>
Matrix<double> ContOrthoPoly1D::sampleProductAverages(
const Numeric* xValues, const unsigned long sz,
const unsigned maxdeg) const
{
if (!sz) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::sampleProductAverages: empty sample");
assert(xValues);
const unsigned maxdegp1 = maxdeg+1U;
Matrix<precise_type> acc(maxdegp1, maxdegp1, 0);
std::vector<precise_type> buf(maxdegp1);
precise_type* tmp = &buf[0];
for (unsigned long i=0; i<sz; ++i)
{
getAllPolys(static_cast<double>(xValues[i]) - shiftX_, maxdeg, tmp);
for (unsigned deg=0; deg<=maxdeg; ++deg)
{
precise_type* row = acc[deg];
for (unsigned k=0; k<=deg; ++k)
row[k] += tmp[deg]*tmp[k];
}
}
for (unsigned deg=1; deg<=maxdeg; ++deg)
{
precise_type* row = acc[deg];
for (unsigned k=0; k<deg; ++k)
acc[k][deg] = row[k];
}
acc /= static_cast<precise_type>(sz);
return acc;
}
template <typename Numeric>
ContOrthoPoly1D::precise_type ContOrthoPoly1D::normseries(
const Numeric* coeffs, const unsigned maxdeg,
const precise_type x) const
{
assert(coeffs);
assert(maxdeg <= maxdeg_);
precise_type sum = coeffs[0];
precise_type polyk = 1.0, polykm1 = precise_zero;
for (unsigned k=0; k<maxdeg; ++k)
{
const precise_type p = ((x - rCoeffs_[k].alpha)*polyk -
rCoeffs_[k].sqrbeta*polykm1)/rCoeffs_[k+1].sqrbeta;
sum += p*coeffs[k+1];
polykm1 = polyk;
polyk = p;
}
return sum;
}
template <typename Numeric>
double ContOrthoPoly1D::series(const Numeric* coeffs, const unsigned deg,
const double x) const
{
if (deg > maxdeg_) throw std::invalid_argument(
"In npstat::ContOrthoPoly1D::series: degree argument is out of range");
return normseries(coeffs, deg, x - shiftX_);
}
}
Index: trunk/npstat/nm/RecurrenceQ.hh
===================================================================
--- trunk/npstat/nm/RecurrenceQ.hh (revision 0)
+++ trunk/npstat/nm/RecurrenceQ.hh (revision 920)
@@ -0,0 +1,38 @@
+#ifndef NPSTAT_RECURRENCEQ_HH_
+#define NPSTAT_RECURRENCEQ_HH_
+
+//======================================================================
+// RecurrenceQ.hh
+//
+// This is an internal header which is subject to change without
+// notice. Application code should never use classes or functions
+// declared/defined in this header directly.
+//
+// Author: I. Volobouev
+//
+// July 2023
+//======================================================================
+
+#include <cassert>
+
+#include "npstat/nm/quad_float.hh"
+
+namespace npstat {
+ namespace Private {
+ struct RecurrenceQ
+ {
+ inline RecurrenceQ(const quad_float a, const quad_float b)
+ : alpha(a), beta(b)
+ {
+ assert(beta > 0.0Q);
+ sqrbeta = sqrtq(beta);
+ }
+
+ quad_float alpha;
+ quad_float beta;
+ quad_float sqrbeta;
+ };
+ }
+}
+
+#endif // NPSTAT_RECURRENCEQ_HH_
Index: trunk/npstat/nm/Makefile
===================================================================
--- trunk/npstat/nm/Makefile (revision 919)
+++ trunk/npstat/nm/Makefile (revision 920)
@@ -1,1050 +1,1064 @@
# Makefile.in generated by automake 1.16.5 from Makefile.am.
# npstat/nm/Makefile. Generated from Makefile.in by configure.
# Copyright (C) 1994-2021 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
am__is_gnu_make = { \
if test -z '$(MAKELEVEL)'; then \
false; \
elif test -n '$(MAKE_HOST)'; then \
true; \
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
true; \
else \
false; \
fi; \
}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/npstat
pkgincludedir = $(includedir)/npstat
pkglibdir = $(libdir)/npstat
pkglibexecdir = $(libexecdir)/npstat
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = x86_64-pc-linux-gnu
host_triplet = x86_64-pc-linux-gnu
subdir = npstat/nm
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(include_HEADERS) \
$(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
LTLIBRARIES = $(noinst_LTLIBRARIES)
libnm_la_LIBADD =
am_libnm_la_OBJECTS = ArrayShape.lo ArrayRange.lo SpecialFunctions.lo \
ConvolutionEngine1D.lo EquidistantSequence.lo \
GaussHermiteQuadrature.lo GaussLegendreQuadrature.lo \
MathUtils.lo OrthoPoly1D.lo GridAxis.lo rectangleQuadrature.lo \
LinInterpolatedTable1D.lo ScanExtremum1D.lo bilinearSection.lo \
ConvolutionEngineND.lo FourierImage.lo SvdMethod.lo \
binomialCoefficient.lo UniformAxis.lo ArrayNDScanner.lo \
DualAxis.lo DiscreteBernsteinPoly1D.lo definiteIntegrals.lo \
EigenMethod.lo goldenSectionSearch.lo timestamp.lo \
OrthoPolyMethod.lo ContOrthoPoly1D.lo lapack_interface.lo \
AbsClassicalOrthoPoly1D.lo ClassicalOrthoPolys1D.lo \
matrixIndexPairs.lo truncatedInverseSqrt.lo FejerQuadrature.lo \
StorablePolySeries1D.lo SemiInfGaussianQuadrature.lo \
Gauss1DQuadrature.lo HeatEq1DNeumannBoundary.lo \
performSchultzIteration.lo RecurrenceCoeffs.lo \
GaussLegendreQuadratureQ.lo GaussLegendreQuadrature2D.lo \
Poly1D.lo ScalableClassicalOrthoPoly1D.lo \
RectangleQuadrature1D.lo findPeak2D.lo sineTransformMatrix.lo \
- scalesFromHessian.lo LegendreCDTruncation.lo
+ scalesFromHessian.lo LegendreCDTruncation.lo \
+ shiftedLegendreIntegral.lo
libnm_la_OBJECTS = $(am_libnm_la_OBJECTS)
AM_V_lt = $(am__v_lt_$(V))
am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
am__v_lt_0 = --silent
am__v_lt_1 =
AM_V_P = $(am__v_P_$(V))
am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_$(V))
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_$(V))
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
am__v_at_0 = @
am__v_at_1 =
DEFAULT_INCLUDES = -I.
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__maybe_remake_depfiles = depfiles
am__depfiles_remade = ./$(DEPDIR)/AbsClassicalOrthoPoly1D.Plo \
./$(DEPDIR)/ArrayNDScanner.Plo ./$(DEPDIR)/ArrayRange.Plo \
./$(DEPDIR)/ArrayShape.Plo \
./$(DEPDIR)/ClassicalOrthoPolys1D.Plo \
./$(DEPDIR)/ContOrthoPoly1D.Plo \
./$(DEPDIR)/ConvolutionEngine1D.Plo \
./$(DEPDIR)/ConvolutionEngineND.Plo \
./$(DEPDIR)/DiscreteBernsteinPoly1D.Plo \
./$(DEPDIR)/DualAxis.Plo ./$(DEPDIR)/EigenMethod.Plo \
./$(DEPDIR)/EquidistantSequence.Plo \
./$(DEPDIR)/FejerQuadrature.Plo ./$(DEPDIR)/FourierImage.Plo \
./$(DEPDIR)/Gauss1DQuadrature.Plo \
./$(DEPDIR)/GaussHermiteQuadrature.Plo \
./$(DEPDIR)/GaussLegendreQuadrature.Plo \
./$(DEPDIR)/GaussLegendreQuadrature2D.Plo \
./$(DEPDIR)/GaussLegendreQuadratureQ.Plo \
./$(DEPDIR)/GridAxis.Plo \
./$(DEPDIR)/HeatEq1DNeumannBoundary.Plo \
./$(DEPDIR)/LegendreCDTruncation.Plo \
./$(DEPDIR)/LinInterpolatedTable1D.Plo \
./$(DEPDIR)/MathUtils.Plo ./$(DEPDIR)/OrthoPoly1D.Plo \
./$(DEPDIR)/OrthoPolyMethod.Plo ./$(DEPDIR)/Poly1D.Plo \
./$(DEPDIR)/RectangleQuadrature1D.Plo \
./$(DEPDIR)/RecurrenceCoeffs.Plo \
./$(DEPDIR)/ScalableClassicalOrthoPoly1D.Plo \
./$(DEPDIR)/ScanExtremum1D.Plo \
./$(DEPDIR)/SemiInfGaussianQuadrature.Plo \
./$(DEPDIR)/SpecialFunctions.Plo \
./$(DEPDIR)/StorablePolySeries1D.Plo ./$(DEPDIR)/SvdMethod.Plo \
./$(DEPDIR)/UniformAxis.Plo ./$(DEPDIR)/bilinearSection.Plo \
./$(DEPDIR)/binomialCoefficient.Plo \
./$(DEPDIR)/definiteIntegrals.Plo ./$(DEPDIR)/findPeak2D.Plo \
./$(DEPDIR)/goldenSectionSearch.Plo \
./$(DEPDIR)/lapack_interface.Plo \
./$(DEPDIR)/matrixIndexPairs.Plo \
./$(DEPDIR)/performSchultzIteration.Plo \
./$(DEPDIR)/rectangleQuadrature.Plo \
./$(DEPDIR)/scalesFromHessian.Plo \
+ ./$(DEPDIR)/shiftedLegendreIntegral.Plo \
./$(DEPDIR)/sineTransformMatrix.Plo ./$(DEPDIR)/timestamp.Plo \
./$(DEPDIR)/truncatedInverseSqrt.Plo
am__mv = mv -f
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CXXFLAGS) $(CXXFLAGS)
AM_V_CXX = $(am__v_CXX_$(V))
am__v_CXX_ = $(am__v_CXX_$(AM_DEFAULT_VERBOSITY))
am__v_CXX_0 = @echo " CXX " $@;
am__v_CXX_1 =
CXXLD = $(CXX)
CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CXXLD = $(am__v_CXXLD_$(V))
am__v_CXXLD_ = $(am__v_CXXLD_$(AM_DEFAULT_VERBOSITY))
am__v_CXXLD_0 = @echo " CXXLD " $@;
am__v_CXXLD_1 =
SOURCES = $(libnm_la_SOURCES)
DIST_SOURCES = $(libnm_la_SOURCES)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
END { for (dir in files) print dir, files[dir] }'
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
am__installdirs = "$(DESTDIR)$(includedir)"
HEADERS = $(include_HEADERS)
am__extra_recursive_targets = python-recursive
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
BEGIN { nonempty = 0; } \
{ items[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique. This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
list='$(am__tagged_files)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | $(am__uniquify_input)`
am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = ${SHELL} '/home/igv/Hepforge/npstat/trunk/missing' aclocal-1.16
AMTAR = $${TAR-tar}
AM_DEFAULT_VERBOSITY = 1
AR = ar
AUTOCONF = ${SHELL} '/home/igv/Hepforge/npstat/trunk/missing' autoconf
AUTOHEADER = ${SHELL} '/home/igv/Hepforge/npstat/trunk/missing' autoheader
AUTOMAKE = ${SHELL} '/home/igv/Hepforge/npstat/trunk/missing' automake-1.16
AWK = mawk
CC = gcc
CCDEPMODE = depmode=gcc3
CFLAGS = -g -O2
CPPFLAGS =
CSCOPE = cscope
CTAGS = ctags
CXX = g++
CXXCPP = g++ -E
CXXDEPMODE = depmode=gcc3
CXXFLAGS = -std=c++11 -O3 -Wall -W -Werror
CYGPATH_W = echo
DEFS = -DPACKAGE_NAME=\"npstat\" -DPACKAGE_TARNAME=\"npstat\" -DPACKAGE_VERSION=\"5.10.0\" -DPACKAGE_STRING=\"npstat\ 5.10.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"npstat\" -DVERSION=\"5.10.0\" -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\"
DEPDIR = .deps
DEPS_CFLAGS = -I/usr/local/include
DEPS_LIBS = -L/usr/local/lib -lfftw3 -lgeners -lkstest
DLLTOOL = false
DSYMUTIL =
DUMPBIN =
ECHO_C =
ECHO_N = -n
ECHO_T =
EGREP = /bin/grep -E
ETAGS = etags
EXEEXT =
F77 = g77
FFLAGS = -g -O2
FGREP = /bin/grep -F
FLIBS = -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. -lgfortran -lm -lquadmath
GREP = /bin/grep
INSTALL = /bin/install -c
INSTALL_DATA = ${INSTALL} -m 644
INSTALL_PROGRAM = ${INSTALL}
INSTALL_SCRIPT = ${INSTALL}
INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
LD = /bin/ld -m elf_x86_64
LDFLAGS =
LIBOBJS =
LIBS =
LIBTOOL = $(SHELL) $(top_builddir)/libtool
LIPO =
LN_S = ln -s
LTLIBOBJS =
LT_SYS_LIBRARY_PATH =
MAKEINFO = ${SHELL} '/home/igv/Hepforge/npstat/trunk/missing' makeinfo
MANIFEST_TOOL = :
MKDIR_P = /bin/mkdir -p
NM = /bin/nm -B
NMEDIT =
OBJDUMP = objdump
OBJEXT = o
OTOOL =
OTOOL64 =
PACKAGE = npstat
PACKAGE_BUGREPORT =
PACKAGE_NAME = npstat
PACKAGE_STRING = npstat 5.10.0
PACKAGE_TARNAME = npstat
PACKAGE_URL =
PACKAGE_VERSION = 5.10.0
PATH_SEPARATOR = :
PKG_CONFIG = /bin/pkg-config
PKG_CONFIG_LIBDIR =
PKG_CONFIG_PATH = /usr/local/lib/pkgconfig
RANLIB = ranlib
SED = /bin/sed
SET_MAKE =
SHELL = /bin/bash
STRIP = strip
VERSION = 5.10.0
abs_builddir = /home/igv/Hepforge/npstat/trunk/npstat/nm
abs_srcdir = /home/igv/Hepforge/npstat/trunk/npstat/nm
abs_top_builddir = /home/igv/Hepforge/npstat/trunk
abs_top_srcdir = /home/igv/Hepforge/npstat/trunk
ac_ct_AR = ar
ac_ct_CC = gcc
ac_ct_CXX = g++
ac_ct_DUMPBIN =
ac_ct_F77 = g77
am__include = include
am__leading_dot = .
am__quote =
am__tar = $${TAR-tar} chof - "$$tardir"
am__untar = $${TAR-tar} xf -
bindir = ${exec_prefix}/bin
build = x86_64-pc-linux-gnu
build_alias =
build_cpu = x86_64
build_os = linux-gnu
build_vendor = pc
builddir = .
datadir = ${datarootdir}
datarootdir = ${prefix}/share
docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
dvidir = ${docdir}
exec_prefix = ${prefix}
host = x86_64-pc-linux-gnu
host_alias =
host_cpu = x86_64
host_os = linux-gnu
host_vendor = pc
htmldir = ${docdir}
includedir = ${prefix}/include/npstat/nm
infodir = ${datarootdir}/info
install_sh = ${SHELL} /home/igv/Hepforge/npstat/trunk/install-sh
libdir = ${exec_prefix}/lib
libexecdir = ${exec_prefix}/libexec
localedir = ${datarootdir}/locale
localstatedir = ${prefix}/var
mandir = ${datarootdir}/man
mkdir_p = $(MKDIR_P)
oldincludedir = /usr/include
pdfdir = ${docdir}
prefix = /usr/local
program_transform_name = s,x,x,
psdir = ${docdir}
runstatedir = ${localstatedir}/run
sbindir = ${exec_prefix}/sbin
sharedstatedir = ${prefix}/com
srcdir = .
sysconfdir = ${prefix}/etc
target_alias =
top_build_prefix = ../../
top_builddir = ../..
top_srcdir = ../..
AM_CPPFLAGS = -I../../ $(DEPS_CFLAGS)
noinst_LTLIBRARIES = libnm.la
libnm_la_SOURCES = ArrayShape.cc ArrayRange.cc SpecialFunctions.cc \
ConvolutionEngine1D.cc EquidistantSequence.cc GaussHermiteQuadrature.cc \
GaussLegendreQuadrature.cc MathUtils.cc OrthoPoly1D.cc GridAxis.cc \
rectangleQuadrature.cc LinInterpolatedTable1D.cc ScanExtremum1D.cc \
bilinearSection.cc ConvolutionEngineND.cc FourierImage.cc SvdMethod.cc \
binomialCoefficient.cc UniformAxis.cc ArrayNDScanner.cc DualAxis.cc \
DiscreteBernsteinPoly1D.cc definiteIntegrals.cc EigenMethod.cc \
goldenSectionSearch.cc timestamp.cc OrthoPolyMethod.cc ContOrthoPoly1D.cc \
lapack_interface.cc AbsClassicalOrthoPoly1D.cc ClassicalOrthoPolys1D.cc \
matrixIndexPairs.cc truncatedInverseSqrt.cc FejerQuadrature.cc \
StorablePolySeries1D.cc SemiInfGaussianQuadrature.cc Gauss1DQuadrature.cc \
HeatEq1DNeumannBoundary.cc performSchultzIteration.cc RecurrenceCoeffs.cc \
GaussLegendreQuadratureQ.cc GaussLegendreQuadrature2D.cc Poly1D.cc \
ScalableClassicalOrthoPoly1D.cc RectangleQuadrature1D.cc findPeak2D.cc \
- sineTransformMatrix.cc scalesFromHessian.cc LegendreCDTruncation.cc
+ sineTransformMatrix.cc scalesFromHessian.cc LegendreCDTruncation.cc \
+ shiftedLegendreIntegral.cc
include_HEADERS = AbsArrayProjector.hh \
AbsClassicalOrthoPoly1D.hh \
AbsClassicalOrthoPoly1D.icc \
absDifference.hh \
AbsIntervalQuadrature1D.hh \
AbsMultivariateFunctor.hh \
AbsVisitor.hh \
allocators.hh \
areAllElementsUnique.hh \
ArrayND.hh \
ArrayND.icc \
ArrayNDScanner.hh \
ArrayRange.hh \
ArrayShape.hh \
bilinearSection.hh \
BindKernel.hh \
binomialCoefficient.hh \
BoundaryInclusion.hh \
BoxND.hh \
BoxND.icc \
BoxNDScanner.hh \
BoxNDScanner.icc \
cdKernelSensitivityMatrix.hh \
cdKernelSensitivityMatrix.icc \
ChebyshevIntegral.hh \
CircularMapper1d.hh \
ClassicalOrthoPoly1DFromWeight.hh \
ClassicalOrthoPoly1DFromWeight.icc \
ClassicalOrthoPolys1D.hh \
closeWithinTolerance.hh \
CompareByIndex.hh \
ComplexComparesAbs.hh \
ComplexComparesFalse.hh \
ConstSubscriptMap.hh \
ContOrthoPoly1D.hh \
ContOrthoPoly1D.icc \
+ ContOrthoPoly1DQ.hh \
+ ContOrthoPoly1DQ.icc \
ConvolutionDensity1D.hh \
ConvolutionDensity1D.icc \
ConvolutionEngine1D.hh \
ConvolutionEngine1D.icc \
ConvolutionEngineND.hh \
ConvolutionEngineND.icc \
coordAndWeight.hh \
CoordinateSelector.hh \
definiteIntegrals.hh \
DiscreteBernsteinPoly1D.hh \
discretizedDistance.hh \
discretizedDistance.icc \
DualAxis.hh \
EigenMethod.hh \
EquidistantSequence.hh \
ExpMapper1d.hh \
fcnOrConst.hh \
FejerQuadrature.hh \
FejerQuadrature.icc \
fillArrayCentersPreservingAreas.hh \
findPeak2D.hh \
findRootInLogSpace.hh \
findRootInLogSpace.icc \
findRootNewtonRaphson.hh \
findRootNewtonRaphson.icc \
findRootUsingBisections.hh \
findRootUsingBisections.icc \
float128IO.hh \
FourierImage.hh \
Gauss1DQuadrature.hh \
GaussHermiteQuadrature.hh \
GaussHermiteQuadrature.icc \
GaussianDip.hh \
GaussLegendreQuadrature.hh \
GaussLegendreQuadrature.icc \
GaussLegendreQuadrature2D.hh \
GaussLegendreQuadrature2D.icc \
GaussLegendreQuadratureQ.hh \
GaussLegendreQuadratureQ.icc \
GeneralizedComplex.hh \
goldenSectionSearch.hh \
goldenSectionSearch.icc \
GridAxis.hh \
HeatEq1DNeumannBoundary.hh \
interpolate.hh \
interpolate.icc \
Interval.hh \
Interval.icc \
isMonotonous.hh \
KDTree.hh \
KDTree.icc \
kernelSensitivityMatrix.hh \
kernelSensitivityMatrix.icc \
lapack.h \
lapack_double.h \
lapack_interface.hh \
lapack_interface.icc \
lapack_interface_double.icc \
lapack_interface_ldouble.icc \
lapack_interface_float.icc \
LegendreCDTruncation.hh \
LinearMapper1d.hh \
LinInterpolatedTable1D.hh \
LinInterpolatedTable1D.icc \
LinInterpolatedTableND.hh \
LinInterpolatedTableND.icc \
LogMapper1d.hh \
LongerType.hh \
MathUtils.hh \
MathUtils.icc \
Matrix.hh \
matrixIndexPairs.hh \
Matrix.icc \
maxAbsValue.hh \
MinSearchStatus1D.hh \
modifiedGramSchmidt.hh \
modifiedGramSchmidt.icc \
multivariateCosine.hh \
MultivariateFunctorScanner.hh \
opsRootsFromJacobiMatrix.hh \
OrthoPoly1D.hh \
OrthoPoly1D.icc \
OrthoPolyMethod.hh \
OrthoPolyND.hh \
OrthoPolyND.icc \
PairCompare.hh \
+ PairCompareQ.hh \
performSchultzIteration.hh \
PointDimensionality.hh \
Poly1D.hh \
polyPrivateUtils.hh \
polyPrivateUtils.icc \
PreciseType.hh \
ProperDblFromCmpl.hh \
PtrBufferHandle.hh \
+ quad_float.hh \
RectangleQuadrature1D.hh \
RectangleQuadrature1D.icc \
Recurrence.hh \
+ RecurrenceQ.hh \
RecurrenceCoeffs.hh \
RecurrenceCoeffs.icc \
+ RecurrenceCoeffsQ.hh \
+ RecurrenceCoeffsQ.icc \
RecurrenceCoeffsTrGauss.hh \
RecurrenceCoeffsTrGauss.icc \
rectangleQuadrature.hh \
rescanArray.hh \
rescanArray.icc \
ScanExtremum1D.hh \
ScalableClassicalOrthoPoly1D.hh \
ScalableClassicalOrthoPoly1D.icc \
scalesFromHessian.hh \
SemiInfGaussianQuadrature.hh \
SemiInfGaussianQuadrature.icc \
+ shiftedLegendreIntegral.hh \
SimpleFunctors.hh \
SimpleScalarProduct.hh \
sineTransformMatrix.hh \
SpecialFunctions.hh \
std_quadmath.hh \
StorablePolySeries1D.hh \
StorablePolySeries1D.icc \
sumOfSquares.hh \
SvdMethod.hh \
timestamp.hh \
Triple.hh \
truncatedInverseSqrt.hh \
TruncatedLog.hh \
TruncatedLog.icc \
UniformAxis.hh \
unitMatrixDeviations.hh \
unitMatrixDeviations.icc \
vectorAsText.hh
EXTRA_DIST = 00README.txt
all: all-am
.SUFFIXES:
.SUFFIXES: .cc .lo .o .obj
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign npstat/nm/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign npstat/nm/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
clean-noinstLTLIBRARIES:
-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
@list='$(noinst_LTLIBRARIES)'; \
locs=`for p in $$list; do echo $$p; done | \
sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
sort -u`; \
test -z "$$locs" || { \
echo rm -f $${locs}; \
rm -f $${locs}; \
}
libnm.la: $(libnm_la_OBJECTS) $(libnm_la_DEPENDENCIES) $(EXTRA_libnm_la_DEPENDENCIES)
$(AM_V_CXXLD)$(CXXLINK) $(libnm_la_OBJECTS) $(libnm_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
include ./$(DEPDIR)/AbsClassicalOrthoPoly1D.Plo # am--include-marker
include ./$(DEPDIR)/ArrayNDScanner.Plo # am--include-marker
include ./$(DEPDIR)/ArrayRange.Plo # am--include-marker
include ./$(DEPDIR)/ArrayShape.Plo # am--include-marker
include ./$(DEPDIR)/ClassicalOrthoPolys1D.Plo # am--include-marker
include ./$(DEPDIR)/ContOrthoPoly1D.Plo # am--include-marker
include ./$(DEPDIR)/ConvolutionEngine1D.Plo # am--include-marker
include ./$(DEPDIR)/ConvolutionEngineND.Plo # am--include-marker
include ./$(DEPDIR)/DiscreteBernsteinPoly1D.Plo # am--include-marker
include ./$(DEPDIR)/DualAxis.Plo # am--include-marker
include ./$(DEPDIR)/EigenMethod.Plo # am--include-marker
include ./$(DEPDIR)/EquidistantSequence.Plo # am--include-marker
include ./$(DEPDIR)/FejerQuadrature.Plo # am--include-marker
include ./$(DEPDIR)/FourierImage.Plo # am--include-marker
include ./$(DEPDIR)/Gauss1DQuadrature.Plo # am--include-marker
include ./$(DEPDIR)/GaussHermiteQuadrature.Plo # am--include-marker
include ./$(DEPDIR)/GaussLegendreQuadrature.Plo # am--include-marker
include ./$(DEPDIR)/GaussLegendreQuadrature2D.Plo # am--include-marker
include ./$(DEPDIR)/GaussLegendreQuadratureQ.Plo # am--include-marker
include ./$(DEPDIR)/GridAxis.Plo # am--include-marker
include ./$(DEPDIR)/HeatEq1DNeumannBoundary.Plo # am--include-marker
include ./$(DEPDIR)/LegendreCDTruncation.Plo # am--include-marker
include ./$(DEPDIR)/LinInterpolatedTable1D.Plo # am--include-marker
include ./$(DEPDIR)/MathUtils.Plo # am--include-marker
include ./$(DEPDIR)/OrthoPoly1D.Plo # am--include-marker
include ./$(DEPDIR)/OrthoPolyMethod.Plo # am--include-marker
include ./$(DEPDIR)/Poly1D.Plo # am--include-marker
include ./$(DEPDIR)/RectangleQuadrature1D.Plo # am--include-marker
include ./$(DEPDIR)/RecurrenceCoeffs.Plo # am--include-marker
include ./$(DEPDIR)/ScalableClassicalOrthoPoly1D.Plo # am--include-marker
include ./$(DEPDIR)/ScanExtremum1D.Plo # am--include-marker
include ./$(DEPDIR)/SemiInfGaussianQuadrature.Plo # am--include-marker
include ./$(DEPDIR)/SpecialFunctions.Plo # am--include-marker
include ./$(DEPDIR)/StorablePolySeries1D.Plo # am--include-marker
include ./$(DEPDIR)/SvdMethod.Plo # am--include-marker
include ./$(DEPDIR)/UniformAxis.Plo # am--include-marker
include ./$(DEPDIR)/bilinearSection.Plo # am--include-marker
include ./$(DEPDIR)/binomialCoefficient.Plo # am--include-marker
include ./$(DEPDIR)/definiteIntegrals.Plo # am--include-marker
include ./$(DEPDIR)/findPeak2D.Plo # am--include-marker
include ./$(DEPDIR)/goldenSectionSearch.Plo # am--include-marker
include ./$(DEPDIR)/lapack_interface.Plo # am--include-marker
include ./$(DEPDIR)/matrixIndexPairs.Plo # am--include-marker
include ./$(DEPDIR)/performSchultzIteration.Plo # am--include-marker
include ./$(DEPDIR)/rectangleQuadrature.Plo # am--include-marker
include ./$(DEPDIR)/scalesFromHessian.Plo # am--include-marker
+include ./$(DEPDIR)/shiftedLegendreIntegral.Plo # am--include-marker
include ./$(DEPDIR)/sineTransformMatrix.Plo # am--include-marker
include ./$(DEPDIR)/timestamp.Plo # am--include-marker
include ./$(DEPDIR)/truncatedInverseSqrt.Plo # am--include-marker
$(am__depfiles_remade):
@$(MKDIR_P) $(@D)
@echo '# dummy' >$@-t && $(am__mv) $@-t $@
am--depfiles: $(am__depfiles_remade)
.cc.o:
$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
# $(AM_V_CXX)source='$<' object='$@' libtool=no \
# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
# $(AM_V_CXX_no)$(CXXCOMPILE) -c -o $@ $<
.cc.obj:
$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
# $(AM_V_CXX)source='$<' object='$@' libtool=no \
# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
# $(AM_V_CXX_no)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.cc.lo:
$(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
# $(AM_V_CXX)source='$<' object='$@' libtool=yes \
# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
# $(AM_V_CXX_no)$(LTCXXCOMPILE) -c -o $@ $<
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
install-includeHEADERS: $(include_HEADERS)
@$(NORMAL_INSTALL)
@list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \
$(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \
$(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \
done
uninstall-includeHEADERS:
@$(NORMAL_UNINSTALL)
@list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir)
python-local:
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
tags: tags-am
TAGS: tags
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
$(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: ctags-am
CTAGS: ctags
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
$(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
cscopelist: cscopelist-am
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
esac; \
for i in $$list; do \
if test -f "$$i"; then \
echo "$(subdir)/$$i"; \
else \
echo "$$sdir/$$i"; \
fi; \
done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) distdir-am
distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(LTLIBRARIES) $(HEADERS)
installdirs:
for dir in "$(DESTDIR)$(includedir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
mostlyclean-am
distclean: distclean-am
-rm -f ./$(DEPDIR)/AbsClassicalOrthoPoly1D.Plo
-rm -f ./$(DEPDIR)/ArrayNDScanner.Plo
-rm -f ./$(DEPDIR)/ArrayRange.Plo
-rm -f ./$(DEPDIR)/ArrayShape.Plo
-rm -f ./$(DEPDIR)/ClassicalOrthoPolys1D.Plo
-rm -f ./$(DEPDIR)/ContOrthoPoly1D.Plo
-rm -f ./$(DEPDIR)/ConvolutionEngine1D.Plo
-rm -f ./$(DEPDIR)/ConvolutionEngineND.Plo
-rm -f ./$(DEPDIR)/DiscreteBernsteinPoly1D.Plo
-rm -f ./$(DEPDIR)/DualAxis.Plo
-rm -f ./$(DEPDIR)/EigenMethod.Plo
-rm -f ./$(DEPDIR)/EquidistantSequence.Plo
-rm -f ./$(DEPDIR)/FejerQuadrature.Plo
-rm -f ./$(DEPDIR)/FourierImage.Plo
-rm -f ./$(DEPDIR)/Gauss1DQuadrature.Plo
-rm -f ./$(DEPDIR)/GaussHermiteQuadrature.Plo
-rm -f ./$(DEPDIR)/GaussLegendreQuadrature.Plo
-rm -f ./$(DEPDIR)/GaussLegendreQuadrature2D.Plo
-rm -f ./$(DEPDIR)/GaussLegendreQuadratureQ.Plo
-rm -f ./$(DEPDIR)/GridAxis.Plo
-rm -f ./$(DEPDIR)/HeatEq1DNeumannBoundary.Plo
-rm -f ./$(DEPDIR)/LegendreCDTruncation.Plo
-rm -f ./$(DEPDIR)/LinInterpolatedTable1D.Plo
-rm -f ./$(DEPDIR)/MathUtils.Plo
-rm -f ./$(DEPDIR)/OrthoPoly1D.Plo
-rm -f ./$(DEPDIR)/OrthoPolyMethod.Plo
-rm -f ./$(DEPDIR)/Poly1D.Plo
-rm -f ./$(DEPDIR)/RectangleQuadrature1D.Plo
-rm -f ./$(DEPDIR)/RecurrenceCoeffs.Plo
-rm -f ./$(DEPDIR)/ScalableClassicalOrthoPoly1D.Plo
-rm -f ./$(DEPDIR)/ScanExtremum1D.Plo
-rm -f ./$(DEPDIR)/SemiInfGaussianQuadrature.Plo
-rm -f ./$(DEPDIR)/SpecialFunctions.Plo
-rm -f ./$(DEPDIR)/StorablePolySeries1D.Plo
-rm -f ./$(DEPDIR)/SvdMethod.Plo
-rm -f ./$(DEPDIR)/UniformAxis.Plo
-rm -f ./$(DEPDIR)/bilinearSection.Plo
-rm -f ./$(DEPDIR)/binomialCoefficient.Plo
-rm -f ./$(DEPDIR)/definiteIntegrals.Plo
-rm -f ./$(DEPDIR)/findPeak2D.Plo
-rm -f ./$(DEPDIR)/goldenSectionSearch.Plo
-rm -f ./$(DEPDIR)/lapack_interface.Plo
-rm -f ./$(DEPDIR)/matrixIndexPairs.Plo
-rm -f ./$(DEPDIR)/performSchultzIteration.Plo
-rm -f ./$(DEPDIR)/rectangleQuadrature.Plo
-rm -f ./$(DEPDIR)/scalesFromHessian.Plo
+ -rm -f ./$(DEPDIR)/shiftedLegendreIntegral.Plo
-rm -f ./$(DEPDIR)/sineTransformMatrix.Plo
-rm -f ./$(DEPDIR)/timestamp.Plo
-rm -f ./$(DEPDIR)/truncatedInverseSqrt.Plo
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
dvi: dvi-am
dvi-am:
html: html-am
html-am:
info: info-am
info-am:
install-data-am: install-includeHEADERS
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am:
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man:
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f ./$(DEPDIR)/AbsClassicalOrthoPoly1D.Plo
-rm -f ./$(DEPDIR)/ArrayNDScanner.Plo
-rm -f ./$(DEPDIR)/ArrayRange.Plo
-rm -f ./$(DEPDIR)/ArrayShape.Plo
-rm -f ./$(DEPDIR)/ClassicalOrthoPolys1D.Plo
-rm -f ./$(DEPDIR)/ContOrthoPoly1D.Plo
-rm -f ./$(DEPDIR)/ConvolutionEngine1D.Plo
-rm -f ./$(DEPDIR)/ConvolutionEngineND.Plo
-rm -f ./$(DEPDIR)/DiscreteBernsteinPoly1D.Plo
-rm -f ./$(DEPDIR)/DualAxis.Plo
-rm -f ./$(DEPDIR)/EigenMethod.Plo
-rm -f ./$(DEPDIR)/EquidistantSequence.Plo
-rm -f ./$(DEPDIR)/FejerQuadrature.Plo
-rm -f ./$(DEPDIR)/FourierImage.Plo
-rm -f ./$(DEPDIR)/Gauss1DQuadrature.Plo
-rm -f ./$(DEPDIR)/GaussHermiteQuadrature.Plo
-rm -f ./$(DEPDIR)/GaussLegendreQuadrature.Plo
-rm -f ./$(DEPDIR)/GaussLegendreQuadrature2D.Plo
-rm -f ./$(DEPDIR)/GaussLegendreQuadratureQ.Plo
-rm -f ./$(DEPDIR)/GridAxis.Plo
-rm -f ./$(DEPDIR)/HeatEq1DNeumannBoundary.Plo
-rm -f ./$(DEPDIR)/LegendreCDTruncation.Plo
-rm -f ./$(DEPDIR)/LinInterpolatedTable1D.Plo
-rm -f ./$(DEPDIR)/MathUtils.Plo
-rm -f ./$(DEPDIR)/OrthoPoly1D.Plo
-rm -f ./$(DEPDIR)/OrthoPolyMethod.Plo
-rm -f ./$(DEPDIR)/Poly1D.Plo
-rm -f ./$(DEPDIR)/RectangleQuadrature1D.Plo
-rm -f ./$(DEPDIR)/RecurrenceCoeffs.Plo
-rm -f ./$(DEPDIR)/ScalableClassicalOrthoPoly1D.Plo
-rm -f ./$(DEPDIR)/ScanExtremum1D.Plo
-rm -f ./$(DEPDIR)/SemiInfGaussianQuadrature.Plo
-rm -f ./$(DEPDIR)/SpecialFunctions.Plo
-rm -f ./$(DEPDIR)/StorablePolySeries1D.Plo
-rm -f ./$(DEPDIR)/SvdMethod.Plo
-rm -f ./$(DEPDIR)/UniformAxis.Plo
-rm -f ./$(DEPDIR)/bilinearSection.Plo
-rm -f ./$(DEPDIR)/binomialCoefficient.Plo
-rm -f ./$(DEPDIR)/definiteIntegrals.Plo
-rm -f ./$(DEPDIR)/findPeak2D.Plo
-rm -f ./$(DEPDIR)/goldenSectionSearch.Plo
-rm -f ./$(DEPDIR)/lapack_interface.Plo
-rm -f ./$(DEPDIR)/matrixIndexPairs.Plo
-rm -f ./$(DEPDIR)/performSchultzIteration.Plo
-rm -f ./$(DEPDIR)/rectangleQuadrature.Plo
-rm -f ./$(DEPDIR)/scalesFromHessian.Plo
+ -rm -f ./$(DEPDIR)/shiftedLegendreIntegral.Plo
-rm -f ./$(DEPDIR)/sineTransformMatrix.Plo
-rm -f ./$(DEPDIR)/timestamp.Plo
-rm -f ./$(DEPDIR)/truncatedInverseSqrt.Plo
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
python: python-am
python-am: python-local
uninstall-am: uninstall-includeHEADERS
.MAKE: install-am install-strip
.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
clean-generic clean-libtool clean-noinstLTLIBRARIES \
cscopelist-am ctags ctags-am distclean distclean-compile \
distclean-generic distclean-libtool distclean-tags distdir dvi \
dvi-am html html-am info info-am install install-am \
install-data install-data-am install-dvi install-dvi-am \
install-exec install-exec-am install-html install-html-am \
install-includeHEADERS install-info install-info-am \
install-man install-pdf install-pdf-am install-ps \
install-ps-am install-strip installcheck installcheck-am \
installdirs maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool pdf pdf-am ps ps-am python-am python-local \
tags tags-am uninstall uninstall-am uninstall-includeHEADERS
.PRECIOUS: Makefile
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

File Metadata

Mime Type
text/x-diff
Expires
Tue, Nov 19, 8:54 PM (1 d, 2 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3806176
Default Alt Text
(283 KB)

Event Timeline