matrix

package
v1.1.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 30, 2022 License: MIT Imports: 2 Imported by: 3

Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Matrix

type Matrix [][]complex128

func AntiCommutator

func AntiCommutator(m, n Matrix) Matrix

func Apply

func Apply(m ...Matrix) Matrix
Example
package main

import (
	"fmt"

	"github.com/itsubaki/q/math/matrix"
)

func main() {
	x := matrix.New(
		[]complex128{0, 1},
		[]complex128{1, 0},
	)

	for _, r := range matrix.Apply(x, x) {
		fmt.Println(r)
	}

}
Output:

[(1+0i) (0+0i)]
[(0+0i) (1+0i)]

func ApplyN

func ApplyN(m Matrix, n ...int) Matrix
Example
package main

import (
	"fmt"

	"github.com/itsubaki/q/math/matrix"
)

func main() {
	x := matrix.New(
		[]complex128{0, 1},
		[]complex128{1, 0},
	)

	for _, r := range matrix.ApplyN(x) {
		fmt.Println(r)
	}
	fmt.Println()

	for _, r := range matrix.ApplyN(x, 2) {
		fmt.Println(r)
	}

}
Output:

[(0+0i) (1+0i)]
[(1+0i) (0+0i)]

[(1+0i) (0+0i)]
[(0+0i) (1+0i)]

func Commutator

func Commutator(m, n Matrix) Matrix

func Identity

func Identity(n int) Matrix

func New

func New(v ...[]complex128) Matrix

func TensorProduct

func TensorProduct(m ...Matrix) Matrix
Example
package main

import (
	"fmt"

	"github.com/itsubaki/q/math/matrix"
)

func main() {
	x := matrix.New(
		[]complex128{0, 1},
		[]complex128{1, 0},
	)

	for _, r := range matrix.TensorProduct(x, x) {
		fmt.Println(r)
	}

}
Output:

[(0+0i) (0+0i) (0+0i) (1+0i)]
[(0+0i) (0+0i) (1+0i) (0+0i)]
[(0+0i) (1+0i) (0+0i) (0+0i)]
[(1+0i) (0+0i) (0+0i) (0+0i)]

func TensorProductN

func TensorProductN(m Matrix, n ...int) Matrix
Example
package main

import (
	"fmt"

	"github.com/itsubaki/q/math/matrix"
)

func main() {
	x := matrix.New(
		[]complex128{0, 1},
		[]complex128{1, 0},
	)

	for _, r := range matrix.TensorProductN(x, 2) {
		fmt.Println(r)
	}

}
Output:

[(0+0i) (0+0i) (0+0i) (1+0i)]
[(0+0i) (0+0i) (1+0i) (0+0i)]
[(0+0i) (1+0i) (0+0i) (0+0i)]
[(1+0i) (0+0i) (0+0i) (0+0i)]

func Zero

func Zero(n int) Matrix
Example
package main

import (
	"fmt"

	"github.com/itsubaki/q/math/matrix"
)

func main() {
	fmt.Println(matrix.Zero(0))
	fmt.Println(matrix.Zero(1))
	fmt.Println(matrix.Zero(2))

}
Output:

[]
[[(0+0i)]]
[[(0+0i) (0+0i)] [(0+0i) (0+0i)]]

func (Matrix) Add

func (m Matrix) Add(n Matrix) Matrix

func (Matrix) Apply

func (m Matrix) Apply(n Matrix) Matrix
Example
package main

import (
	"fmt"

	"github.com/itsubaki/q/math/matrix"
)

func main() {
	x := matrix.New(
		[]complex128{0, 1},
		[]complex128{1, 0},
	)

	fmt.Println("x:")
	for _, r := range x {
		fmt.Println(r)
	}

	fmt.Println("xx:")
	for _, r := range x.Apply(x) {
		fmt.Println(r)
	}

}
Output:

x:
[(0+0i) (1+0i)]
[(1+0i) (0+0i)]
xx:
[(1+0i) (0+0i)]
[(0+0i) (1+0i)]

func (Matrix) Clone

func (m Matrix) Clone() Matrix

func (Matrix) Conjugate

func (m Matrix) Conjugate() Matrix

func (Matrix) Dagger

func (m Matrix) Dagger() Matrix

Dagger returns conjugate transpose matrix.

func (Matrix) Dimension

func (m Matrix) Dimension() (int, int)

func (Matrix) Equals

func (m Matrix) Equals(n Matrix, eps ...float64) bool

func (Matrix) Imag

func (m Matrix) Imag() [][]float64
Example
package main

import (
	"fmt"

	"github.com/itsubaki/q/math/matrix"
)

func main() {
	m := matrix.New(
		[]complex128{1 + 1i, 2 + 3i},
		[]complex128{4 + 5i, 6 + 7i},
	)

	for _, r := range m.Imag() {
		fmt.Println(r)
	}

}
Output:

[1 3]
[5 7]

func (Matrix) Inverse

func (m Matrix) Inverse() Matrix

func (Matrix) IsHermite

func (m Matrix) IsHermite(eps ...float64) bool

func (Matrix) IsSquare

func (m Matrix) IsSquare() bool

func (Matrix) IsUnitary

func (m Matrix) IsUnitary(eps ...float64) bool

func (Matrix) Mul

func (m Matrix) Mul(z complex128) Matrix
Example
package main

import (
	"fmt"

	"github.com/itsubaki/q/math/matrix"
)

func main() {
	m := matrix.New(
		[]complex128{0, 1 + 1i},
		[]complex128{1 + 1i, 0},
	)

	for _, r := range m.Mul(3i) {
		fmt.Println(r)
	}

}
Output:

[(0+0i) (-3+3i)]
[(-3+3i) (0+0i)]

func (Matrix) Real

func (m Matrix) Real() [][]float64
Example
package main

import (
	"fmt"

	"github.com/itsubaki/q/math/matrix"
)

func main() {
	m := matrix.New(
		[]complex128{1 + 1i, 2 + 3i},
		[]complex128{4 + 5i, 6 + 7i},
	)

	for _, r := range m.Real() {
		fmt.Println(r)
	}

}
Output:

[1 2]
[4 6]

func (Matrix) Sub

func (m Matrix) Sub(n Matrix) Matrix

func (Matrix) TensorProduct

func (m Matrix) TensorProduct(n Matrix) Matrix
Example
package main

import (
	"fmt"

	"github.com/itsubaki/q/math/matrix"
)

func main() {
	x := matrix.New(
		[]complex128{0, 1},
		[]complex128{1, 0},
	)

	fmt.Println("x:")
	for _, r := range x {
		fmt.Println(r)
	}

	fmt.Println("xx:")
	for _, r := range x.TensorProduct(x) {
		fmt.Println(r)
	}

}
Output:

x:
[(0+0i) (1+0i)]
[(1+0i) (0+0i)]
xx:
[(0+0i) (0+0i) (0+0i) (1+0i)]
[(0+0i) (0+0i) (1+0i) (0+0i)]
[(0+0i) (1+0i) (0+0i) (0+0i)]
[(1+0i) (0+0i) (0+0i) (0+0i)]

func (Matrix) Trace

func (m Matrix) Trace() complex128

func (Matrix) Transpose

func (m Matrix) Transpose() Matrix

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL