operating complex numbers

Part of Golang Mastery course

~15 min read
Interactive
Hands-on
Beginner-friendly
  • Complex numbers are usually used for scientific applications and calculations. Go implements complex numbers as the primitive type.
  • The specific operations on complex numbers are part of the math/cmplx package.

Create the complex.go file with the following content:#

package main import ( "fmt" "math/cmplx" ) func main() { // complex numbers are // defined as real and imaginary // part defined by float64 a := complex(2, 3) fmt.Printf("Real part: %f \n", real(a)) fmt.Printf("Complex part: %f \n", imag(a)) b := complex(6, 4) // All common // operators are useful c := a - b fmt.Printf("Difference : %v\n", c) c = a + b fmt.Printf("Sum : %v\n", c) c = a * b fmt.Printf("Product : %v\n", c) c = a / b fmt.Printf("Product : %v\n", c) conjugate := cmplx.Conj(a) fmt.Println("Complex number a's conjugate : ", conjugate) cos := cmplx.Cos(b) fmt.Println("Cosine of b : ", cos) }

output:

sangam:golang-daily sangam$ go run complex.go Real part: 2.000000 Complex part: 3.000000 Difference : (-4-1i) Sum : (8+7i) Product : (0+26i) Product : (0.46153846153846156+0.19230769230769232i) Complex number a's conjugate : (2-3i) Cosine of b : (26.220553750072888+7.625225809442885i)

How it works...#

  • The basic operators are implemented for the primitive type complex. The other operations on complex numbers are provided by the math/cmplx package. In case high precision operations are needed, there is no big implementation.

  • On the other hand, the complex number could be implemented as real, and the imaginary part expressed by the big.Float type.

Your Progress

75 of 103 modules
73%
Started73% Complete
Previous
SpaceComplete
Next