NaN / Inf issues
This originally came up as an flatpak octave issue https://github.com/flathub/org.octave.Octave/issues/264 but it appears to be a runtime issue (5.15-22.08) Test code:
cat mylog.cc
#include <iostream>
#include <cmath>
#include <complex>
#include <limits>
int main ()
{
double z = std::numeric_limits<double>::infinity();
std::complex<double> x (0, z);
std::complex<double> y (0, 0);
y = std::log(x);
std::cout << "x = " << x << " log(x) = " << y << std::endl;
return 0;
}
Native on local machine (CentOS Stream release 9 x86_64) gcc version 11.3.1 20221121 :
$ ./a.out
x = (0,inf) log(x) = (inf,1.5708)
$ ldd ./a.out
linux-vdso.so.1 (0x00007fffdd7d8000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f6831600000)
libm.so.6 => /lib64/libm.so.6 (0x00007f6831854000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f6831839000)
libc.so.6 => /lib64/libc.so.6 (0x00007f6831200000)
/lib64/ld-linux-x86-64.so.2 (0x00007f6831950000)
Flatpak:
sh-5.1$ g++ mylog.cc
sh-5.1$ ./a.out
x = (0,inf) log(x) = (-nan,1.5708)
sh-5.1$ ldd ./a.out
linux-vdso.so.1 (0x00007ffe593a2000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f2b0e200000)
libm.so.6 => /usr/lib/x86_64-linux-gnu/libm.so.6 (0x00007f2b0e4d6000)
libgcc_s.so.1 => /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f2b0e4b5000)
libc.so.6 => /usr/lib/x86_64-linux-gnu/libc.so.6 (0x00007f2b0de00000)
/lib64/ld-linux-x86-64.so.2 (0x00007f2b0e5d6000)
sh-5.1$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-unknown-linux-gnu/12.2.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/bin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/usr/com --mandir=/usr/share/man --infodir=/usr/share/info--with-tune=generic --enable-deterministic-archives --enable-shared --build=x86_64-bootstrapper-linux-gnu --host=x86_64-unknown-linux-gnu lt_cv_sys_lib_dlsearch_path_spec=/usr/lib/x86_64-linux-gnu --target=x86_64-unknown-linux-gnu --disable-multilib --enable-multiarch --disable-bootstrap --with-build-sysroot=/cross-installation --enable-languages=c,c++,fortran,objc,obj-c++ --enable-default-pie --enable-default-ssp --with-isl --disable-libssp --enable-linker-build-id --disable-libstdcxx-filesystem-ts --enable-cet host_configargs=lt_cv_sys_lib_dlsearch_path_spec=/usr/lib/x86_64-linux-gnu target_configargs=lt_cv_sys_lib_dlsearch_path_spec=/usr/lib/x86_64-linux-gnu --with-tune=generic
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 12.2.0 (GCC)