4倍の算術精度でgnuplotを実行する方法があるかどうかを知っている人はいますか?たとえば、線を描こうとするとき、右に16番目の位置までだけ変化する値から「2.3403800935287029218841060098446498」などの値を減算したいとき。
この問題についてどんな意見でもいただきありがとうございます。
答え1
最初の16桁の数字がすべて実際に一致する場合は、両方の項で一致するすべての数値をゼロに変換するkludgeテキストエディタを作成し、doubleを使用して入力に使用できる差項を取得するのはどうでしょうか?
速いですが、多目的ではなく、おそらく望むものではないかもしれません。入力内容がわかりません。しかし、たとえば、実際のファイルにコメントを残すとvalues.txt
):
文書
values.txt
2.3403800935287029218841060098446498 2.3403800935287055555555555555555555
文書
junk.csh
awk 'BEGIN{last="XXX";} \ { gsub(/[0-9]/," & "); split($0,a," "); \ if (last!~/XXX/) {split(last,b," "); \ i=1; minlen=(length(a)<length(b))? length(a):length(b); \ while ((a[i]==b[i])&&(i<minlen)) { if ((a[i]!=".") && (a[i]!="-")){a[i]=0; b[i]=0; }; i++; };}; \ last=$0; } \ END{ for(i=0; i<length(b); i++) printf("%s",b[i]); printf("\n"); \ for(i=0; i<length(a); i++) printf("%s",a[i]); printf("\n"); }' \ | awk 'BEGIN{last="XXX"} { if (last!="XXX") printf("%38.35f\n",last-$0); last=$0 } '
次に実行
$ cat values.txt | source junk.csh