4배의 산술 정밀도로 gnuplot을 실행하는 방법이 있는지 아는 사람이 있습니까? 예를 들어 선을 그리려고 할 때, 오른쪽으로 16번째 위치까지만 변하는 값에서 "2.3403800935287029218841060098446498" 같은 값을 빼고 싶을 때.
이 문제에 대한 어떤 의견이라도 주시면 감사하겠습니다.
답변1
처음 16자리 숫자가 모두 실제로 일치한다면 두 항에서 일치하는 모든 숫자를 0으로 변환하는 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