1. mpir 은 gmp 대신사용하는 (C/C++ 언어용) 긴 자리 수치 처리를 위한 기본 연산 라이브러리이다.
자리수가 매우 긴 정수, 유리수, 소수점수를 계산할 수 있다.
2. xmpir 은 (C 언어용 긴 자리 수치 라이브러리인) mpir 의 래퍼(wrapper) 이다.
3. xmpir 은 xmpir 다운로드 에서 구할 수 있다.
(주의 사항. dl4windows.dll 파일이 존재하는 폴더의 경로명에 #문자가 있으면 컴파일은 되나 실행 시에 에러에 걸린다. 그 이유는 xmpir 이 dl4windows.dll 파일을 찾을 때 URL 주소를 적용해서 찾기 때문이다.)
실행에 필요한 *.dll 파일들은 (현재 경로 또는) 환경변수 PATH 에 결린 경로의 폴더에 존재해야 한다.
- dl4windows.dll : 윈도우 계열의 닷넷 에서 실행될 때 xmpir 이 찾는 파일
- dl4linux.dll : 리눅스 계열의 mono 에서 실행될 때 xmpir 이 찾는 파일
- xmpir32.dll : 32 비트 윈도우 또는 리눅스에서 실행될 때 PATH 걸린 폴더에 있어야 하는 파일
- xmpir64.dll : 64 비트 윈도우 또는 리눅스에서 실행될 때 PATH 걸린 폴더에 있어야 하는 파일
- src\xmpir,cs : 컴파일할 때 함께 사용되어야 하는 파일
demo 폴더에서 demo,cs 컴파일하기
Prompt> csc demo.cs ..\src\xmpir.cs
xmpir 을 이용하는 예제 소스 파일 (파일명: demo.cs)
using System;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Diagnostics;
class MyClass
{
[STAThread]
static void Main(string[] args)
{
mpir.mpz_t f = mpir.mpz_init_set_ui(1);
int i;
for(i=2; i<=30; i++)
mpir.mpz_mul_si(f, f, i);
System.Console.Write("30! = ");
System.Console.WriteLine(mpir.mpz_get_string(10,f));
mpir.mpz_clear(f);
}
}
using System.Reflection;
using System.Runtime.InteropServices;
using System.Diagnostics;
class MyClass
{
[STAThread]
static void Main(string[] args)
{
mpir.mpz_t f = mpir.mpz_init_set_ui(1);
int i;
for(i=2; i<=30; i++)
mpir.mpz_mul_si(f, f, i);
System.Console.Write("30! = ");
System.Console.WriteLine(mpir.mpz_get_string(10,f));
mpir.mpz_clear(f);
}
}
실행 결과: 30! = 265252859812191058636308480000000
'프로그래밍 > C#' 카테고리의 다른 글
C# 언어로 작성하여 실행해 본 OpenGL 예제: Redbook 의 Teapots (0) | 2013.05.17 |
---|---|
C# 언어로 작성하여 실행해 본 OpenGL 예제: Redbook 의 Cube (0) | 2013.05.10 |
C# 언어로 평방근, 입방근, n제곱근 구하는 함수를 구현하고 테스트하기 (0) | 2013.01.11 |
C# 언어로 역삼각함수, 역쌍곡선함수 값을 구하는 예제 (0) | 2013.01.01 |
C# 웹 프로그래밍에서 CodeBehind와 CodeFile의 차이점 (0) | 2012.04.12 |