더북(TheBook)

3.2.3 복소수

복소수(complex number) 타입은 complex64complex128이 있다.

표 3-4에 복소수 타입과 표현할 수 있는 범위를 정리했다.

표 3-4 복소수 타입과 범위

타입

범위

complex64

32비트의 실수부와 허수부

complex128

64비트의 실수부와 허수부

복소수는 내장 함수 complex()로 생성하거나 리터럴 표기법(실수부 + 허수부)으로 직접 변수에 할당할 수 있다. 복소수를 리터럴로 표현할 때는 허수부에 접미사 i를 붙인다. 실수부에 해당하는 값은 real() 함수로 얻어올 수 있고, 허수부에 해당하는 값은 imag() 함수로 얻어올 수 있다.


c1 := 1 + 2i              // complex128
c2 := complex64(3 + 4i)   // complex64
c3 := complex(5, 6)       // complex128
 
fmt.Println(c1, real(c1), imag(c1))
fmt.Println(c2, real(c2), imag(c2))
fmt.Println(c3, real(c3), imag(c3))

실행 결과

(1+2i) 1 2

(3+4i) 3 4

(5+6i) 5 6

기본 라이브러리인 math/cmplx 패키지에는 복소수 연산을 위한 다양한 함수가 있다.

표 3-5 복소수 연산 함수

cmplx.Abs(x)

cmplx.Acos(x)

cmplx.Acosh(x)

cmplx.Asin(x)

cmplx.Asinh(x)

cmplx.Atan(x)

cmplx.Atanh(x)

cmplx.Conj(x)

cmplx.Cos(x)

cmplx.Cosh(x)

cmplx.Cot(x)

cmplx.Exp(x)

cmplx.Inf()

cmplx.IsInf(x)

cmplx.IsNaN(x)

cmplx.NaN()

cmplx.Log(x)

cmplx.Log10(x)

cmplx.Pow(x,y)

cmplx.Phase(x)

cmplx.Polar(x)

cmplx.Sinh(x)

cmplx.Rect(r,θ)

cmplx.Sin(x)

cmplx.Tanh(x)

cmplx.Sqrt(x)

cmplx.Tan(x)

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.