Fortran의 최소 및 최대 크기

Everv0id

minpackFortran77 라이브러리를 Java 로 다시 작성하려고 하므로 minpack.f소스 코드 에서 이것을 만났습니다 .

integer mcheps(4)
integer minmag(4)
integer maxmag(4)
double precision dmach(3)
equivalence (dmach(1),mcheps(1))
equivalence (dmach(2),minmag(1))
equivalence (dmach(3),maxmag(1))
...
data dmach(1) /2.22044604926d-16/
data dmach(2) /2.22507385852d-308/
data dmach(3) /1.79769313485d+308/
dpmpar = dmach(i)
return

무엇 minmagmaxmag기능, 그리고 왜 dmach(2)하고 dmach(3)이 값이? 주석에 설명이 있습니다.

c         dpmpar(1) = b**(1 - t), the machine precision,
c         dpmpar(2) = b**(emin - 1), the smallest magnitude,
c         dpmpar(3) = b**emax*(1 - b**(-t)), the largest magnitude.

가장 작은 크기와 가장 큰 크기는 무엇입니까? 런타임에 이러한 값을 계산하는 방법이 있어야합니다. 소스 코드의 기계 상수는 잘못된 스타일입니다.

편집 : 정적 필드 Double.MIN_VALUEDouble.MAX_VALUE내가 찾던 값 이라고 가정합니다 .

고성능 마크

minmag그리고 maxmag( mcheps또한) 함수가 아니며 각각 4 개의 요소가있는 순위 1 정수 배열로 선언됩니다. 마찬가지로 dmach배정 밀도 값의 순위 1 3 요소 배열입니다. 각 정수 값은 4 바이트를 차지하고 각 dp 값은 8 바이트를 차지할 가능성이 높지만 확실하지는 않습니다. 답변이 진행됨에 따라이를 염두에 두십시오.

따라서과 같은 표현식 mcheps(1)은 함수 호출이 아니라 배열의 첫 번째 요소에 대한 참조입니다.

equivalence는 오래된 FORTRAN 기능으로, 이제 언어 표준과 소프트웨어 엔지니어링 관행에 의해 사용되지 않습니다. 다음과 같은 진술

equivalence (dmach(1),mcheps(1))

의 첫 번째 요소가의 첫 번째 요소 dmach와 동일한 주소에있는 메모리에 있음을 나타 mcheps냅니다. 함축적으로 이것은 또한의 24 바이트가 dmach의 16 바이트와 동일한 주소를 차지하고 mcheps또 다른 8 바이트도 차지 한다는 것을 의미합니다 . 무슨 일이 일어나고 있는지 그림을 그리도록 남겨 두겠습니다. 코드는 원래 (아마도 여전히) 8 바이트 정수를 사용하여 등가 배열의 요소가 1 : 1과 일치하도록 할 수 있습니다.

참고 equivalence동일한 메모리 위치에, 본질적으로, 하나 이상의 이름, 하나 개 이상의 해석을 제공합니다. mcheps(1)에 대한 저장소의 일부를 구성하는 4 바이트 메모리에 저장된 정수의 이름입니다 dmach(1). 등가 화는 모든 바이트가 소중했던 시대에 모든 종류의 '영리한'트릭을 구현하는 데 사용되었습니다.

그런 다음 data문은의 요소에 값을 할당합니다 dmach. 나에게 이러한 가치는 댓글이 우리에게 말하는 것과 같습니다.

편집 : 주석은 해당 크기가 코드가 마지막으로 컴파일 된 플랫폼에서 표현 가능한 최소 및 최대 배정 밀도 숫자임을 나타냅니다. Java에서는 아마도 doubles. 나는 자바를 모르기 때문에 가장 크고 가장 작은 두 배의 가치를 반환하기 위해 어떤 시설이 있는지 모르겠다. 만약 당신이 이것이 '네트를 쳤거나 다른 SO 질문을 할 것이다. 아마도 인터넷 검색 라인을 따라 응답을 얻을 수 있습니다.

이것의 대부분은 완전히 무시할 수 있어야합니다. 작성할 때 더 나은 접근 방식은 내장 함수를 사용하여 쿼리를 통해 런타임에 해당 값을 찾는 것입니다. Fortran 90 (및 이후 버전)에는 이러한 기능이 있습니다. Java도 있다고 생각하지만 그것은 내 도메인이 아닙니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

크기, 최소 및 최대 값이 짧은 임의 배열

분류에서Dev

크기 조정 중 div의 최대 및 최소 너비 설정

분류에서Dev

임의의 글꼴 크기 및 문자의 최소 및 최대 설정

분류에서Dev

배열의 최소 및 최대 요소 찾기

분류에서Dev

Mac에서 NS 창 컨트롤러의 최소 및 최대 크기 설정

분류에서Dev

최소 및 최대 매크로 정의 해제

분류에서Dev

자바에서 배열의 최소 및 최대 값을 찾기

분류에서Dev

OpenStreetMap지도의 최대 및 최소 가져 오기

분류에서Dev

Electron의 닫기, 최소화 및 최대화 버튼

분류에서Dev

연관 배열 PHP의 최소 및 최대 키와 값 찾기

분류에서Dev

초기화되지 않은 배열의 최소 및 최대

분류에서Dev

이전 9 개 행의 최소값 및 최대 값 찾기

분류에서Dev

최대, 평균 및 최소 값 얻기

분류에서Dev

최대 및 최소 날짜 찾기

분류에서Dev

Pandas의 최대 및 최소 값

분류에서Dev

배열의 최대 및 최소 값

분류에서Dev

목록 수집의 최소 및 최대

분류에서Dev

시리즈의 최소 및 최대 값

분류에서Dev

열의 최소 및 최대 행 찾기 및 다른 열의 값 빼기

분류에서Dev

최대 및 최대 (최소 및 최소)의 차이점은 무엇입니까?

분류에서Dev

2 ^ n + 1 기호가있는 소스의 최소 및 최대 엔트로피

분류에서Dev

Excel 날짜 시간 최대 / 최소 및 최대 최소 시간 범위 찾기

분류에서Dev

백분율이있는 최소 및 최대 크기

분류에서Dev

Electron BrowserWindow에서 최대 및 최소 크기 설정

분류에서Dev

최소 및 최대 사용시 숫자 입력 절반 크기

분류에서Dev

Unix 스크립팅-최소 및 최대 찾기 (Bash Shell)

분류에서Dev

LimitRange의 기본값, defaultRequest, 최대 및 최소 제한 간의 관계

분류에서Dev

날짜 선택기의 최소 및 최대 날짜 설정 반응

분류에서Dev

일련의 숫자에서 누락 된 최대 및 최소 값 찾기

Related 관련 기사

  1. 1

    크기, 최소 및 최대 값이 짧은 임의 배열

  2. 2

    크기 조정 중 div의 최대 및 최소 너비 설정

  3. 3

    임의의 글꼴 크기 및 문자의 최소 및 최대 설정

  4. 4

    배열의 최소 및 최대 요소 찾기

  5. 5

    Mac에서 NS 창 컨트롤러의 최소 및 최대 크기 설정

  6. 6

    최소 및 최대 매크로 정의 해제

  7. 7

    자바에서 배열의 최소 및 최대 값을 찾기

  8. 8

    OpenStreetMap지도의 최대 및 최소 가져 오기

  9. 9

    Electron의 닫기, 최소화 및 최대화 버튼

  10. 10

    연관 배열 PHP의 최소 및 최대 키와 값 찾기

  11. 11

    초기화되지 않은 배열의 최소 및 최대

  12. 12

    이전 9 개 행의 최소값 및 최대 값 찾기

  13. 13

    최대, 평균 및 최소 값 얻기

  14. 14

    최대 및 최소 날짜 찾기

  15. 15

    Pandas의 최대 및 최소 값

  16. 16

    배열의 최대 및 최소 값

  17. 17

    목록 수집의 최소 및 최대

  18. 18

    시리즈의 최소 및 최대 값

  19. 19

    열의 최소 및 최대 행 찾기 및 다른 열의 값 빼기

  20. 20

    최대 및 최대 (최소 및 최소)의 차이점은 무엇입니까?

  21. 21

    2 ^ n + 1 기호가있는 소스의 최소 및 최대 엔트로피

  22. 22

    Excel 날짜 시간 최대 / 최소 및 최대 최소 시간 범위 찾기

  23. 23

    백분율이있는 최소 및 최대 크기

  24. 24

    Electron BrowserWindow에서 최대 및 최소 크기 설정

  25. 25

    최소 및 최대 사용시 숫자 입력 절반 크기

  26. 26

    Unix 스크립팅-최소 및 최대 찾기 (Bash Shell)

  27. 27

    LimitRange의 기본값, defaultRequest, 최대 및 최소 제한 간의 관계

  28. 28

    날짜 선택기의 최소 및 최대 날짜 설정 반응

  29. 29

    일련의 숫자에서 누락 된 최대 및 최소 값 찾기

뜨겁다태그

보관