// 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
*/

 

Posted by Scripter
,