본문 바로가기

명징직조

[기술 문서] 아폴로 11호 AGC 인터프리터 : 삼각함수 연산 알고리즘

1. 개요 (Overview)

아폴로 유도 컴퓨터 (AGC) 의 인터프리터 내에서 Sine 및 Cosine 함수가 구현된 방식을 다룬다. 

당식의 극도로 제한된 하드웨어 자원을 극복하기 위해 사용된 수학적 최적화 기법과 알고리즘 구조를 분석한다.

 

2. 함수간 통합 구조 (Function Integration)

AGC 는 코드 크기를 최소화하기 위해 함수 간 대칭성을 적극적으로 활용한다.

  • COSINE 루틴 : 별도의 독립적 연산 루틴이 아닌, sin - cos 성질을 이용한다.
  • 통합 흐름 : sine 으로 점프하여 연산 로직을 공유한다.

 

# Page 1188
SN1		EXTEND			# SET UP TO EVALUATE HASTINGS POLYNOMIAL
		DCA	MPAC
		DXCH	BUF2
		TC	DSQSUB		# SQUARE MPAC.

		TC	POLY		# EVALUATE FOURTH ORDER POLYNOMIAL.
		DEC	3
		2DEC	+.3926990796
		2DEC	-.6459637111
		2DEC	+.318758717
		2DEC	-.074780249
		2DEC	+.009694988

		CAF	LBUF2		# MULTIPLY BY ARGUMENT AND SHIFT LEFT 2.
		TC	DMPSUB -1

		EXTEND
		DCA	MPAC +1
		DAS	MPAC +1
		AD	MPAC
		ADS	MPAC		# NEITHER SHIFT OVERFLOWS.
		EXTEND
		DCA	MPAC +1
		DAS	MPAC +1
		AD	MPAC
		ADS	MPAC
		TCF	DANZIG

 

3. 단계별 연산 프로세스 (Computational Steps)

3.1 각도 정규화(Angle Normalization)

입력된 각도값을 연산 가능한 범위 내로 조정

  • 오버플로 체크
  • 주기성 보정

 

3.2 범위 축소 (Range Reduction)

모든 각도를 하나의 사분면 ( 1 or 4 ) 로 축소한다.

  • 기준점 확인 
  • 보각 공식 적용

 

3.3 다항식 근사 연산  (Polynomial Evaluation - SN1)

실제 사인 값을 산출하는 핵심 엔진, 헤이스팅스 근사식 ( Hastings Approximation) 을 사용한다. 

  • 치수 : 4차 다항식을 평가한다
  • 홀수 치수 구섯ㅇ : 사인 함수의 기함수 특성에 따라 x, x^3, x^5, x^7, x^9 항에 대응하는 계수를 적용한다.
  • 계수
    • c_1, ... 고정 수수점 상수를 사용한다.

 

4. 기술적 특징 및 의의

특징 내용
메모리 최적화 데이터 테이블(Look-up Table) 대신 최소한의 계수와 다항식 연산으로 메모리 점유 최소화
정밀도 확보 15비트 워드 머신에서 배정밀도(Double Precision) 연산을 통해 달 궤도 계산에 필요한 정밀도 유지
수학적 트릭 하드웨어의 한계를 삼각함수의 대칭성 및 주기성 로직으로 극복