BIAS/Profil は、Olaf Knüppel が作成した、 C++言語による区間演算のためのクラス・ライブラリィである。 これをインストールしてみよう。
久しぶり。でも 2009-01-29: Version 2.0.8 が最新のままなので、 「BIAS/Profil を動かす」 に書いてあるようにして、今回もインストールに成功した (macOS 10.15.6)。
curl -O http://www.ti3.tuhh.de/keil/profil/Profil-2.0.8.tgz tar xzf Profil-2.0.8.tgz cd Profil-2.0.8/config mkdir any-any-gcc cd any-any-gcc curl -O http://nalab.mind.meiji.ac.jp/~mk/20180923/BiasRnd.c cp -p ../x86-Linux-compat-gcc/BiasRnd.h . cp -p ../x86-Linux-compat-gcc/Host.cfg Host.cfg rm -f fpRound.s touch fpRound.s cd ../.. echo 2 | ./Configure make CC=gcc all>&make-all.log make CC=gcc install>&make-install.log make CC=gcc check>&make-check.log cat make-check.log sudo mkdir -p /usr/local/include /usr/local/lib sudo cp -pr include/ /usr/local/include/profil sudo cp -p lib/* /usr/local/lib |
おっと、gcc は (本当の GCC でなく) /usr/bin/g++ (clang 11.0.3) でやってしまった。 でも動いているみたい。でも本当の gcc でやり直し。 Mac Ports で gcc 9 をインストールする。
sudo port install gcc9 sudo port select --set gcc mp-gcc9 |
コンパイルは次のような感じでやれば良い。
g++ -I/usr/local/include/profil -o test2 test2new.cpp -L/usr/local/lib -lProfil -lBias -llr |
次は少し気になる。
http://www.ti3.tu-harburg.de/ |
There is a new configuration for x86-64. This suffers from a current bug in glibc's libm that forces PROFIL/BIAS to reset the rounding mode to round-to-nearest after each operation. |
ドキュメンテーションは Profil2.ps.gz というのが用意されている。 今時珍しい PostScript 形式だけれど、macOS で普通にオープンすると、 PDF化されて読める。 しかし、そうするとOCR出来ない? (それではコピペできない) Adobe Distiller で処理すると良い。 後でしおりを入れるのかな。
Profil2.ps の入手 |
curl -O http://www.ti3.tuhh.de/keil/profil/Profil2.ps.gz gunzip Profil2.ps.gz |
以前書いたメモを読んでみる。
BIAS/Profil を使ったプログラムは、大体次の修正をすれば動いた。
の
の和。
らしいが、次のようになる。
% ./Test4 1/1+1/2+…+1/1000000=14.39272672[19812922,37561250] 幅=1.77483272523204505e-09 1/1+1/2+…+1/1000000=14.392726722[7861861,9463354] 幅=1.60149227212968981e-10(この表示の仕方は、最初は気持ち悪いと思ったけれど、 最近は好きになってきた。次に紹介する kv でも出来れば良いのに、 と思う。) |