1.3 BIAS/Profil

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 を使ったプログラムは、大体次の修正をすれば動いた。

$ 1\le n\le 10^6$$ 1/n$ の和。 $ \textcolor{red}{14.39272672}2865723631381127493188587676644800\cdots$ らしいが、次のようになる。
% ./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 でも出来れば良いのに、 と思う。)



Subsections
桂田 祐史
2020-09-03