• 제목/요약/키워드: Goldschmidt algorithm

검색결과 6건 처리시간 0.022초

부동소수점수 N차 제곱근 K차 골드스미스 알고리즘 (Floating Point Number N'th Root K'th Order Goldschmidt Algorithm)

  • 조경연
    • 한국멀티미디어학회논문지
    • /
    • 제22권9호
    • /
    • pp.1029-1035
    • /
    • 2019
  • In this paper, a tentative Kth order Goldschmidt floating point number Nth root algorithm for K order convergence rate in one iteration is proposed by applying Taylor series to the Goldschmidt square root algorithm. Using the proposed algorithm, Nth root and Nth inverse root can be computed from iterative multiplications without division. It also predicts the error of the algorithm iteration. It iterates until the predicted error becomes smaller than the specified value. Since the proposed algorithm only performs the multiplications until the error gets smaller than a given value, it can be used to improve the performance of a floating point number Nth root unit.

개선한 Goldschmidt 부동소수점 역수 알고리즘 (The improved Goldschmidt floating point reciprocal algorithm)

  • 한경헌;최명용;김성기;조경연
    • 한국정보통신학회:학술대회논문집
    • /
    • 한국해양정보통신학회 2004년도 춘계종합학술대회
    • /
    • pp.247-250
    • /
    • 2004
  • Goldschmidt 알고리즘에 의한 부동소수점 1.f2의 역수는 q=NK1K2....Kn (Ki=1+Aj, j=2i)이다. 본 논문에서는 N과 A 값을 1.f2의 값에 따라서 선정하고 Aj의 값이 유효자리수의 반이하 값을 가지면 연산을 종료하는 개선된 Goldschmidt 부동소수점 역수 알고리즘을 제안한다. 1.f2가 1.01012보다 작으면 N=2-1.f2, A=1.f2-1로 하며, 1.01012보다 크거나 같으면 N=2-0.lf2, A=1-0.lf2로 한다. 한편 Goldschmidt 알고리즘은 곱셈을 반복해서 수행하므로 계산 오류가 누적이 된다. 이러한 누적 오류를 감안하면 배정도실수 역수에서는 2-57, 단정도실수 역수에서는 2-28의 유효자리수까지 연산해야 한다. 따라서 Aj가 배정도실수 역수에서는 2-29, 단정도실수 역수에서는 2-14 보다 작아지면 연산을 종료한다. 본 논문에서 제안한 개선한 Goldschmidt 역수 알고리즘은 N=2-0.1f2, A=1-0.lf2로 계산하는 종래 알고리즘과 비교하여 곱셈 연산 회수가 배정도실수 역수는 22%, 단정도실수 역수는 29% 감소하였다. 본 논문의 연구 결과는 테이블을 사용하는 Goldschmidt 역수 알고리즘에 적용해서 연산 시간을 줄일 수 있다.

  • PDF

오차 교정 K차 골드스미트 부동소수점 나눗셈 (Error Corrected K'th order Goldschmidt's Floating Point Number Division)

  • 조경연
    • 한국정보통신학회논문지
    • /
    • 제19권10호
    • /
    • pp.2341-2349
    • /
    • 2015
  • 부동소수점 나눗셈에서 많이 사용하는 골드스미트 부동소수점 나눗셈 알고리즘은 한 회 반복에 두 번의 곱셈을 수행한다. 본 논문에서는 한 회 반복에 K 번 곱셈을 수행하는 가칭 오차 교정 K차 골드스미트 부동소수점 나눗셈 알고리즘을 제안한다. 본 논문에서 제안한 알고리즘은 입력 값에 따라서 곱셈 횟수가 다르므로, 평균 곱셈 횟수를 계산하는 방식을 유도하고, 여러 크기의 근사 역수 테이블에서 단정도실수 및 배정도실수의 나눗셈 계산에 필요한 평균 곱셈 횟수를 계산한다. 또한 한 번의 곱셈과 판정으로 나눗셈 결과를 보정하는 알고리즘을 제안한다. 본 논문에서 제안한 알고리즘은 오차가 일정한 값보다 작아질 때까지만 반복 연산을 수행하므로 나눗셈 계산기의 성능을 높일 수 있다. 또한 최적의 근사 테이블을 구성할 수 있다.

32 비트 곱셈기를 사용한 골드스미트 배정도실수 역수 계산기 (Goldschmidt's Double Precision Floating Point Reciprocal Computation using 32 bit multiplier)

  • 조경연
    • 한국산학기술학회논문지
    • /
    • 제15권5호
    • /
    • pp.3093-3099
    • /
    • 2014
  • 최근 그래픽 프로세서, 멀티미디어 프로세서, 음성처리 프로세서 등에서 부동소수점이 주로 사용된다. 한편 C, Java 등 고급언어에서는 단정도실수와 배정도실수를 사용하고 있다. 본 논문에서는 32비트 곱셈기를 사용하여 배정도실수의 역수를 계산하는 알고리즘을 제안한다. 배정도실수 가수를 상위 부분과 하위 부분으로 나누고, 상위 부분의 역수를 골드스미스 알고리즘으로 계산하고, 이를 초기값으로 하여 배정도실수의 역수를 계산하는 알고리즘을 제안한다. 제안한 알고리즘은 입력값에 따라서 곱셈 횟수가 다르므로, 평균 곱셈 횟수를 계산하는 방식을 유도하고, 여러 크기의 근사 역수 테이블에서 평균곱셈 횟수를 계산한다.

가변 시간 골드스미트 부동소수점 제곱근 계산기 (A Variable Latency Goldschmidt's Floating Point Number Square Root Computation)

  • 김성기;송홍복;조경연
    • 한국정보통신학회논문지
    • /
    • 제9권1호
    • /
    • pp.188-198
    • /
    • 2005
  • 부동소수점 제곱근 계산에 많이 사용하는 골드스미트 제곱근 알고리즘은 곱셈을 반복하여 제곱근을 계산한다. 본 논문에서는 골드스미트 제곱근 알고리즘의 반복 과정의 오차를 예측하여 오차가 정해진 값보다 작아지는 시점까지 반복 연산하는 알고리즘을 제안한다. 'F'의 제곱근 계산은 초기값 $X_0=Y_0=T^2{\times}F,\;T=\frac{1}{\sqrt {F}}+e_t$에 대하여, $R_i=\frac{3-e_r-X_i}{2},\;X_{i+1}=X_i{\times}R^2_i,\;Y_{i+1}=Y_i{\times}R_i,\;i{\in}\{{0,1,2,{\ldots},n-1} }}'$을 반복한다 곱셈 결과는 소수점 이하 p 비트 미만을 절삭하며, 절삭 오차는 $e_r=2^{-p}$보다 작다. p는 단정도실수에서 28, 배정도실수에서 58이다. $X_i=1{\pm}e_i$ 이면 $X_{i+1}$ = $1-e_{i+1}$ $e_{i+1} {\frac{3e^2_i}{4}{\mp}\frac{e^3_i}} $ +4$e_{r}$이다. $|X_i-1|$ < $2^{\frac{-p+2}{2}}$이면, $e_{i+1}$ < $8e_{r}$ 이 부동소수점으로 표현할 수 있는 최소값보다 작게 되며, $\sqrt{F}$ {\fallingdotseq}\frac{Y_{i+1}}{T}}$이다. 본 논문에서 제안한 알고리즘은 입력 값에 따라서 곱셈 횟수가 다르므로, 평균 곱셈 횟수를 계산하는 방식을 도출하고, 여러 크기의 근사 역수 제곱근 테이블 ($T=\frac{1}{\sqrt{F}}+e_i$)에서 단정도실수 및 배정도실수의 제곱근 계산에 필요한 평균 곱셈 횟수를 계산한다. 이들 평균 곱셈 횟수를 종래 알고리즘과 비교하여 본 논문에서 제안한 알고리즘의 우수성을 증명한다. 본 논문에서 제안한 알고리즘은 오차가 일정한 값보다 작아질 때까지만 반복하므로 제곱근 계산기의 성능을 높일 수 있다. 또한 최적의 근사 역수 제곱근 테이블을 구성할 수 있다. 본 논문의 연구 결과는 디지털 신호처리, 컴퓨터 그래픽스, 멀티미디어, 과학 기술 연산 등 부동소수점 계산기가 사용되는 분야에서 폭 넓게 사용될 수 있다.

가변 시간 골드스미트 부동소수점 나눗셈기 (A Variable Latency Goldschmidt's Floating Point Number Divider)

  • 김성기;송홍복;조경연
    • 한국정보통신학회논문지
    • /
    • 제9권2호
    • /
    • pp.380-389
    • /
    • 2005
  • 부동소수점 나눗셈에서 많이 사용하는 골드스미트 나눗셈 알고리즘은 일정한 횟수의 곱셈을 반복한다. 본 논문에서는 오차가 정해진 값보다 작아질 때까지 곱셈을 반복하여 나눗셈을 수행하는 가변 시간 골드스미트 부동소수점 나눗셈 알고리즘을 제안한다. 부동소수점 나눗셈 ‘$\frac{N}{F}$'는 'T=$\frac{1}{F}+e_t$'를 분모와 분자에 곱하면 ’$\frac{TN}{TF}=\frac{N_0}{F_0}$'가 된다. ’$R_i=(2-e_r-F_i),\;N_{i+1}=N_i{\ast}R_i,\;F_{i+1}=F_i{\ast}R_i$, i$\in${0,1,...n-1}'를 반복한다. 중간 곱셈 결과는 소수점이하 p 비트 미만을 절삭하며, 절삭 오차는 ‘$e_r=2^{-p}$', 보다 작다. p는 단정도실수에서 29, 배정도실수에서 59이다. ’$F_i=1+e_i$'이라고 하면 ‘$F_{i+1}=1-e_{i+1},\;e_{i+1},\;e_{i+1}'이 된다. '$[F_i-1]<2^{\frac{-p+3}{2}}$'이면, ’$e_{i+1}<16e_r$'이 부동소수점으로 표현 가능한 최소값보다 작아지며, ‘$N_{i+1}\risingdotseq\frac{N}{F}$이다. 본 논문에서 제안한 알고리즘은 입력 값에 따라서 곱셈 횟수가 다르므로, 평균 곱셈 횟수를 계산하는 방식을 도출하고, 여러 크기의 근사 역수 테이블($T=\frac{1}{F}+e_t$)에서 단정도실수 및 배정도실수의 나눗셈 계산에 필요한 평균 곱셈 횟수를 계산한다. 이들 평균 곱셈 횟수를 종래 알고리즘과 비교하여 본 논문에서 제안한 알고리즘의 우수성을 증명한다. 본 논문에서 제안한 알고리즘은 오차가 일정한 값보다 작아질 때까지만 반복 연산을 수행하므로 나눗셈기의 성능을 높일 수 있다. 또한 최적의 근사 역수 테이블을 구성할 수 있다. 본 논문의 연구 결과는 디지털 신호처리, 컴퓨터 그라픽스,, 멀티미디어, 과학 기술 연산 등 부동소수점 계산기가 사용되는 분야에서 폭 넓게 사용될 수 있다.