오류가있는 불완전한 감마 종료를 계산하는 DGAMIC netlib 함수

말리 리모 커

불완전한 감마 함수를 계산하는 절차가 필요합니다. 물론 netlib 경로를 시도하고 dgamic 기능을 찾았습니다. 단, 다음 테스트 프로그램을 컴파일 한 후

program test_dgamic
  implicit none
  interface 
     double precision function dgamic(in1,in2)
       double precision, intent(in) :: in1,in2
     end function dgamic
  end interface 


  print *, 'dgamic:', dgamic(1.d0,1.d0)
end program test_dgamic

이와 같이 gfortran 버전 6.2.0으로

gfortran main.f90 -o main dgamic.f d9lgic.f d9lgit.f d9gmic.f d9gmit.f dlgams.f dlngam.f dgamma.f d9lgmc.f dcsevl.f dgamlm.f initds.f d1mach.f xerclr.f xermsg.f xerprn.f xersve.f xgetua.f i1mach.f j4save.f xerhlt.f xercnt.f fdump.f

실행하면 다음과 같은 slatec 오류 메시지가 나타납니다.

***MESSAGE FROM ROUTINE INITDS IN LIBRARY SLATEC.
 ***POTENTIALLY RECOVERABLE ERROR, PROG ABORTED, TRACEBACK REQUESTED
 *  Chebyshev series too short for specified accuracy
 *  ERROR NUMBER = 1
 *   
 ***END OF MESSAGE

 ***JOB ABORT DUE TO UNRECOVERED ERROR.
0          ERROR MESSAGE SUMMARY
 LIBRARY    SUBROUTINE MESSAGE START             NERR     LEVEL     COUNT
 SLATEC     INITDS     Chebyshev series too         1         1         1

Note: The following floating-point exceptions are signalling: IEEE_DIVIDE_BY_ZERO

이것을 피하는 방법에 대한 단서가 있습니까? 오류의 모양에서 보면 디자인 결함처럼 보입니다.

Roygvib

문제는 Slatec의 d1mach.f로 인해 (다시) 해당 파일의 적절한 섹션을 수동으로 주석 해제해야하기 때문인 것 같습니다. 실제로 BLAS 사이트에서 제공되는 d1mach.f의 수정 된 버전을 사용하는 것이 더 편리합니다 ( 페이지 참조). 따라서 절차는 다음과 같을 수 있습니다.

1) 원본 사이트 에서 slatec_src.tar.gz 다운로드

2) d1mach.f 등의 수정 (BLAS) 버전을 다운로드하여 Slatec 버전 대신 사용

rm -f i1mach.f r1mach.f d1mach.f
wget http://www.netlib.org/blas/i1mach.f 
wget http://www.netlib.org/blas/r1mach.f
wget http://www.netlib.org/blas/d1mach.f 

3) 및 예를 들어 테스트 프로그램과 함께 사용

program main
    implicit none
    external dgamic
    double precision dgamic, a, x, y

    a = 1.0d0
    x = 1.0d0
    y = dgamic( a, x )

    print *, "a = ", a
    print *, "x = ", x
    print *, "y(slatec)        = ", y
    print *, "y(exact for a=1) = ", exp( -x )
end program 

주는

 a =    1.0000000000000000     
 x =    1.0000000000000000     
 y(slatec)        =   0.36787944117144233     
 y(exact for a=1) =   0.36787944117144233

비교를 위해 d1mach.f의 Slatec 버전을 사용하면 동일한 오류가 발생합니다.

 ***MESSAGE FROM ROUTINE INITDS IN LIBRARY SLATEC.
 ***POTENTIALLY RECOVERABLE ERROR, PROG ABORTED, TRACEBACK REQUESTED
 *  Chebyshev series too short for specified accuracy
 *  ERROR NUMBER = 1
 ...

정밀도가 d1mach.f에 설정되어 있지 않기 때문입니다 (예 : "IBM PC"라는 레이블이 붙은 필수 섹션의 주석 처리를 제거해야하며, 지루할 수있는 레거시 Fortran에 대한 일부 수정 사항도 추가해야합니다 ...)

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

마감 퍼센트를 계산하는 창 함수

분류에서Dev

z 점수를 계산하는 동안 이상한 오류가 발생 함

분류에서Dev

Sigasi 편집기를 사용하는 VHDL의 불완전한 민감도 목록

분류에서Dev

std :: get on std :: tuple 결과 가변 인수가 불완전한 유형 오류와 함께 아무것도 감소하지 않습니다.

분류에서Dev

불완전한 유형 객체를 사용하는 함수를 만드는 방법

분류에서Dev

오류 수준으로 함수를 종료하는 방법

분류에서Dev

Javascript 함수를 종료하는 방법

분류에서Dev

OpenCV를 사용하여 불완전한 모양을 수정하는 방법

분류에서Dev

불완전한 유형의 구조체를 수정하는 방법

분류에서Dev

코드를 완전히 변경하는 불필요한 부울 변수

분류에서Dev

주식 시장에 대한 계절 지수 계산 : 시장 마감을 코딩하는 방법?

분류에서Dev

시스템 로그에서 XFS가 이전 종료시 완전히 마운트 해제되었는지 여부를 알 수 있습니까?

분류에서Dev

AWS Lambda 함수가 오류없이 종료되는 이유를 어떻게 확인할 수 있습니까?

분류에서Dev

마이너스 로그 가능도를 계산하는 R 함수 구현

분류에서Dev

함수를 호출하는 for 루프가 함수가 호출되기 전에 종료됩니까?

분류에서Dev

이전 종료 후 함수를 실행하는 방법은 무엇입니까?

분류에서Dev

다시 호출되기 전에 함수를 종료하는 방법

분류에서Dev

함수 오류에 잘못된 인수를 제공하는 계산 된 필드에 대한 하위 쿼리

분류에서Dev

Rails Active :: Records는 중복 필드가 감지되면 불완전한 중첩 레코드를 생성합니다.

분류에서Dev

Finder를 안전하게 종료 할 수 있는지 확인

분류에서Dev

주어진 n에 대한 합계를 계산하는 (재귀 적) 함수

분류에서Dev

요청을 완료하기 전에 AWS Lambda 함수가 종료 됨

분류에서Dev

계산을 완료하기 전에 변수를 해결하는 방법은 무엇입니까?

분류에서Dev

python : i를 지수로 계산 한 후 float의 0 감지가 실패하는 이유는 무엇입니까?

분류에서Dev

필드에서 고유 한 값이있는 레코드 수를 계산하는 중 오류가 발생했습니다.

분류에서Dev

함수에 변수를 전달하는 방법 (Vue2 내부 계산)?

분류에서Dev

요청을 완료하기 전에 Lambda 함수가 종료되는 이유는 무엇입니까?

분류에서Dev

반가산기를 사용하는 완전 감산기

분류에서Dev

Eclipse를 종료 할 때마다 "불량한 선택을 확인"하라는 메시지가 표시됩니다.

Related 관련 기사

  1. 1

    마감 퍼센트를 계산하는 창 함수

  2. 2

    z 점수를 계산하는 동안 이상한 오류가 발생 함

  3. 3

    Sigasi 편집기를 사용하는 VHDL의 불완전한 민감도 목록

  4. 4

    std :: get on std :: tuple 결과 가변 인수가 불완전한 유형 오류와 함께 아무것도 감소하지 않습니다.

  5. 5

    불완전한 유형 객체를 사용하는 함수를 만드는 방법

  6. 6

    오류 수준으로 함수를 종료하는 방법

  7. 7

    Javascript 함수를 종료하는 방법

  8. 8

    OpenCV를 사용하여 불완전한 모양을 수정하는 방법

  9. 9

    불완전한 유형의 구조체를 수정하는 방법

  10. 10

    코드를 완전히 변경하는 불필요한 부울 변수

  11. 11

    주식 시장에 대한 계절 지수 계산 : 시장 마감을 코딩하는 방법?

  12. 12

    시스템 로그에서 XFS가 이전 종료시 완전히 마운트 해제되었는지 여부를 알 수 있습니까?

  13. 13

    AWS Lambda 함수가 오류없이 종료되는 이유를 어떻게 확인할 수 있습니까?

  14. 14

    마이너스 로그 가능도를 계산하는 R 함수 구현

  15. 15

    함수를 호출하는 for 루프가 함수가 호출되기 전에 종료됩니까?

  16. 16

    이전 종료 후 함수를 실행하는 방법은 무엇입니까?

  17. 17

    다시 호출되기 전에 함수를 종료하는 방법

  18. 18

    함수 오류에 잘못된 인수를 제공하는 계산 된 필드에 대한 하위 쿼리

  19. 19

    Rails Active :: Records는 중복 필드가 감지되면 불완전한 중첩 레코드를 생성합니다.

  20. 20

    Finder를 안전하게 종료 할 수 있는지 확인

  21. 21

    주어진 n에 대한 합계를 계산하는 (재귀 적) 함수

  22. 22

    요청을 완료하기 전에 AWS Lambda 함수가 종료 됨

  23. 23

    계산을 완료하기 전에 변수를 해결하는 방법은 무엇입니까?

  24. 24

    python : i를 지수로 계산 한 후 float의 0 감지가 실패하는 이유는 무엇입니까?

  25. 25

    필드에서 고유 한 값이있는 레코드 수를 계산하는 중 오류가 발생했습니다.

  26. 26

    함수에 변수를 전달하는 방법 (Vue2 내부 계산)?

  27. 27

    요청을 완료하기 전에 Lambda 함수가 종료되는 이유는 무엇입니까?

  28. 28

    반가산기를 사용하는 완전 감산기

  29. 29

    Eclipse를 종료 할 때마다 "불량한 선택을 확인"하라는 메시지가 표시됩니다.

뜨겁다태그

보관