Go
golang

golang complex(複素数)型を使う

More than 1 year has passed since last update.

golang

goには、complex(64 or 128)型というものがあります。

complexとは複素数のことです。

初めに

難しいのでむやみに使うとわかりづらいコードになります。

複素数型リテラル

floatのリテラルの末尾にiを付けます。

c := 1i

fmt.Println("%T, %v", c, c) //表示[complex128, 0+1i]

省略しないリテラルは0+1iのようですね。

また、型はデフォルトでcomplex128のようです。

型の変換

もちろん実数型と互換性があります。

var c complex128 = complex(1, 2) // 複素数に変換

var fr float64 = real(c) // 実数に戻す
var fi float64 = imag(c) // 実数に戻す
fmt.Println(fr, fi) //表示[1 2]

関数みたいに書くと

・実数→複素数

complex(real, imag float)complex

・複素数→実数

real(c complex)float

imag(c complex)float

といった感じです

(float32,64はそれぞれcomplex64,128に対応します)

標準パッケージ

https://golang.org/pkg/math/cmplx/

import "math/cmplx"

これで標準パッケージが使えます。

mathパッケージにもあるような便利な関数が入っています。

cmplx.Log()

cmplx.Pow()

cmplx.Sin()

などなど。

golang complex(複素数)型の計算をする