3.2.3 복소수
복소수(complex number) 타입은 complex64와 complex128이 있다.
표 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 패키지에는 복소수 연산을 위한 다양한 함수가 있다.
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) |