// Filename: testComplex.go
//
// Execute: go run testComplex.go
//
// or
//
// Compile: go build testComplex.go
// Execute: ./testComplex
package main
import (
"fmt"
"math/cmplx"
)
func main() {
var z1 complex128 = 3.0 + 4.0i
var z2 complex128 = 2.0 - 1.0i
var z3 complex128 = z1 + z2
var z4 complex128 = z1 - z2
var z5 complex128 = z1 * z2
var z6 complex128 = z1 / z2
var z7 complex128 = cmplx.Conj(z1)
var arg float64 = cmplx.Phase(z1) // arument of a complex number
var abs float64 = cmplx.Abs(z1) // arument of a complex number
fmt.Printf("z1 = %f + %fj\n", real(z1), imag(z1))
fmt.Printf("z2 = %f + %fj\n", real(z2), imag(z2))
fmt.Printf("So,\n")
fmt.Printf("z3 = z1 + z2 = %f + %fj\n", real(z3), imag(z3))
fmt.Printf("z4 = z1 - z2 = %f + %fj\n", real(z4), imag(z4))
fmt.Printf("z5 = z1 * z2 = %f + %fj\n", real(z5), imag(z5))
fmt.Printf("z6 = z1 / z2 = %f + %fj\n", real(z6), imag(z6))
fmt.Printf("z7 = cmplx.Conj(z1) = %f + %fj\n", real(z7), imag(z7))
fmt.Printf("arg = cmplx.Phase(z1) = %f\n", arg)
fmt.Printf("abs = |z1| = cmplx.Abs(z1) = %f\n", abs)
}
/*
-------------------
Result of execution:
-------------------
z1 = 3.000000 + 4.000000j
z2 = 2.000000 + -1.000000j
So,
z3 = z1 + z2 = 5.000000 + 3.000000j
z4 = z1 - z2 = 1.000000 + 5.000000j
z5 = z1 * z2 = 10.000000 + 5.000000j
z6 = z1 / z2 = 0.400000 + 2.200000j
z7 = cmplx.Conj(z1) = 3.000000 + -4.000000j
arg = cmplx.Phase(z1) = 0.927295
abs = |z1| = cmplx.Abs(z1) = 5.000000
*/
'프로그래밍 > Go' 카테고리의 다른 글
Go 언어로 역삼각함수, 역쌍곡선함수 값을 구하는 예제 (0) | 2013.01.01 |
---|---|
Go 언어로 30!(30팩토리얼) 까지 정확하게 계산하기 (0) | 2012.06.29 |
Go 언어의 int64 타입으로 계산 가능한 최대 팩토리얼은? (0) | 2012.06.28 |
스트링 배열 정렬(sorting)하기 with Go (0) | 2012.06.28 |
손으로 계산하는 긴 자리 곱셈표 만들기 with Go (0) | 2012.06.28 |