PARI/GP
PARI/GP![]() | |
![]() Windows XP에서 사용 중인 PARI/GP | |
개발자 | 앙리 코헨, 카림 벨라바스 외, 보르도 1세 |
---|---|
안정적 해제 | 2.13.3 / 2021년 10월 11일;[1] 전 |
리포지토리 | |
기록 위치 | C |
운영 체제 | 크로스 플랫폼 |
유형 | 컴퓨터 대수 체계 |
면허증 | GNU 일반 공중 사용권 |
웹사이트 | pari |
PARI/GP는 숫자 이론 계산을 용이하게 하는 것을 주된 목적으로 하는 컴퓨터 대수 시스템이다.버전 2.1.0 이상은 GNU General Public License에 따라 배포된다.가장 일반적인 운영 체제에서 실행된다.
시스템 개요
PARI/GP 시스템은 빠른 속도로 재귀적 유형에 대한 공식적인 계산을 수행할 수 있는 패키지로서, 주로 숫자 이론가를 목표로 한다.그것의 세 가지 주요 강점은 그것의 속도, 수학자들에게 친숙한 데이터 유형을 직접 사용할 가능성, 그리고 광범위한 대수적 숫자 이론 모듈이다.
PARI/GP 시스템은 다음과 같은 표준 구성 요소로 구성된다.
- PARI는 빠른 연산이 가능한 C 라이브러리로서, 높은 수준의 언어 애플리케이션(예: C, C++, Pascal, Fortran, Perl 또는 Python)에서 호출할 수 있다.
- gp는 사용하기 쉬운 쌍방향 명령줄 인터페이스로 PARI 기능에 대한 액세스를 제공한다.C. GP와 같은 표준 언어의 제어 지침 대부분을 포함하는 정교한 프로그램 가능 계산기로서 기능한다. GP는 GP를 프로그래밍하는 데 사용할 수 있는 GP의 스크립팅 언어의 이름이다.
GP 스크립트를 C 언어로 컴파일하고 결과 기능을 GP에 투명하게 로딩하는 GP-to-C 컴파일러 gp2c도 이용할 수 있다.이를 통해 gp2c 컴파일된 스크립트가 일반적으로 3~4배 더 빨리 실행된다는 장점이 있다.gp2c는 거의 모든 GP를 이해한다.
PARI/GP는 임의의 정밀도 계산을 수행한다(예: 의의는 수백만 자리, 64비트 컴퓨터에서는 수십억 자리).그것은 인자화 계산, 타원 곡선 계산, 대수적 수 이론 계산을 수행할 수 있다.또한 행렬, 다항식, 전력 시리즈, 대수적 숫자를 사용한 연산을 허용하고 많은 특수 기능을 구현한다.
PARI/GP는 자체 그래픽 플로팅 기능이 내장되어 있다.PARI/GP는 다변량 다항식 및 합리적인 기능 처리와 같은 몇 가지 기호 조작 기능을 가지고 있다.형식적인 통합 및 차별화 기능도 갖추고 있다.
PARI/GP는 GMP(GNU Multiple Precision Mathical Library)로 컴파일할 수 있어 PARI/GP의 토종 임의정밀 커널보다 연산 속도가 빠르다.
역사
PARI/GP의 시조자는 앙리 코헨과 프랑수아 드레스가 1979년 보르도 1대학에서 쓴 고등 산술 통역사 이자벨이라는 프로그램이었다.[2]
PARI/GP는 원래 1985년 노동부 A2X의 앙리 코헨이 이끄는 팀에 의해 개발되었으며 현재는 보르도 1대학의 카림 벨라바스가 많은 자원봉사자들의 도움을 받아 유지하고 있다.
어원
PARI라는 이름은 저자들이 파스칼 프로그래밍 언어로 'Pascal ARIthmetic'을 위한 라이브러리를 구현하기 시작했을 때(C로 빠르게 전환했지만), '파리 드 파스칼'(Pascal의 와거) 이후(Pari de Pascal's Wager)에서 프로젝트의 초기 단계에 대한 말장난이다.[3]
gp 계산기의 첫 번째 버전은 원래 Great Programmable Calculator를 위해 GPC라고 불렸다.후행 C는 결국 떨어졌다.[3]
사용 예제
다음은 gp 계산기 사용의 일부 샘플이다.
? \p 212 realprecision = 221 significant digits (212 digits displayed) ? (1.378-0.09143*I)^(14.87+0.3721*I) time = 0 ms. %1 = 80.817082637557070449383034933010288336925078193546211741027496566803185 11092579265743992920628314516739962724446042667886245322716456966120413965187 3272488827365261487845201056199035423784093096984005713791800191 - 94.8384618 89186304973351271821601500916571303364865064205039706592481303045713982306764 33264430511752515705768858710051382035377195497482934017239179757538824688799 0680136241031895212412150770309289450962931402933*I ? 123456! + 0. \\ slower than gamma(123457) which uses floating point time = 1,656 ms. %2 = 2.6040699049291378729513930560926568818273270409503019584610185579952057 37967683415793560716617127908735520017061666000857261271456698589373086528293 4317244121152865814030204645985573419251305342231135573491050756 E574964 ? sin(x) time = 0 ms. %3 = x - 1/6*x^3 + 1/120*x^5 - 1/5040*x^7 + 1/362880*x^9 - 1/39916800*x^11 + 1/6227020800*x^13 - 1/1307674368000*x^15 + O(x^17) ? for(z=25,30, print (factor(2^z-1))) [31, 1; 601, 1; 1801, 1] [3, 1; 2731, 1; 8191, 1] [7, 1; 73, 1; 262657, 1] [3, 1; 5, 1; 29, 1; 43, 1; 113, 1; 127, 1] [233, 1; 1103, 1; 2089, 1] [3, 2; 7, 1; 11, 1; 31, 1; 151, 1; 331, 1] time = 5 ms. ? K = bnfinit(x^2 + 23); K.cyc time = 1ms. %4 = [3] /* This number field has class number 3. */
참고 항목
- SageMath, PARI/GP를 구성 요소 중 하나로 포함하는 다중 소프트웨어 수학 패키지
- 컴퓨터 대수 체계 목록
참조
- ^ "PARI/GP Changelog". pari.math.u-bordeaux.fr. Retrieved 11 December 2021.
- ^ François Dress (1979–1980). "Le langage et l'interpréteur 'Isabelle', spécialement conçus pour utilisations arithmétiques". Séminaire de Théorie des Nombres de Bordeaux. 9. exposé № 4.
- ^ a b 2004년 8월 10일 "Manpage of GP"의 "TRIVIA" 섹션
외부 링크
- PARI/GP 개발 본부
- PARI/GP - 수학 소프트웨어 - 참조 모음이 있는 swMATH
- SIGSAM 컴퓨터 대수 소프트웨어
- Rosetta 코드: PARI/GP(샘플 프로그램)
- GP/PARI 기능 카탈로그, 다운로드 가능한 gziped tarball 아카이브: 안정적 분기