Documentation
¶
Index ¶
- type Vector
- func (v *Vector) Apply(m *matrix.Matrix) *Vector
- func (v *Vector) Clone() *Vector
- func (v *Vector) Dual() *Vector
- func (v *Vector) Equal(w *Vector, tol ...float64) bool
- func (v *Vector) Imag() []float64
- func (v *Vector) InnerProduct(w *Vector) complex128
- func (v *Vector) Mul(z complex128) *Vector
- func (v *Vector) OuterProduct(w *Vector) *matrix.Matrix
- func (v *Vector) Real() []float64
- func (v *Vector) String() string
- func (v *Vector) TensorProduct(w *Vector) *Vector
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Vector ¶
type Vector struct {
Data []complex128
}
Vector is a vector of complex128.
func New ¶
func New(z ...complex128) *Vector
New returns a new vector of complex128.
Example ¶
package main
import (
"fmt"
"github.com/itsubaki/q/math/vector"
)
func main() {
v := vector.New(1, 0)
fmt.Println(v)
}
Output: [(1+0i) (0+0i)]
func TensorProductN ¶
Example ¶
package main
import (
"fmt"
"github.com/itsubaki/q/math/vector"
)
func main() {
v := vector.New(1, 0)
vv := vector.TensorProductN(v, 2)
fmt.Println(vv)
}
Output: [(1+0i) (0+0i) (0+0i) (0+0i)]
func Zero ¶
Zero returns a vector of length n with all elements zero.
Example ¶
package main
import (
"fmt"
"github.com/itsubaki/q/math/vector"
)
func main() {
v := vector.Zero(3)
fmt.Println(v)
}
Output: [(0+0i) (0+0i) (0+0i)]
func (*Vector) Apply ¶
Apply returns a matrix product of v and m. v.Apply(X) -> X|v>
Example ¶
package main
import (
"fmt"
"github.com/itsubaki/q/math/matrix"
"github.com/itsubaki/q/math/vector"
)
func main() {
v := vector.New(1, 2)
fmt.Println(v)
m := matrix.New(
[]complex128{1, 2},
[]complex128{1, 3},
)
vv := v.Apply(m)
fmt.Println(vv)
}
Output: [(1+0i) (2+0i)] [(5+0i) (7+0i)]
func (*Vector) Imag ¶
Imag returns a slice of imaginary part.
Example ¶
package main
import (
"fmt"
"github.com/itsubaki/q/math/vector"
)
func main() {
v := vector.New(1+2i, 3+4i)
for _, r := range v.Imag() {
fmt.Println(r)
}
}
Output: 2 4
func (*Vector) InnerProduct ¶
func (v *Vector) InnerProduct(w *Vector) complex128
InnerProduct returns the inner product of v and w.
Example ¶
package main
import (
"fmt"
"github.com/itsubaki/q/math/vector"
)
func main() {
v := vector.New(1, 0)
vv := v.InnerProduct(v)
fmt.Println(vv)
}
Output: (1+0i)
func (*Vector) OuterProduct ¶
OuterProduct returns the outer product of v and w.
Example ¶
package main
import (
"fmt"
"github.com/itsubaki/q/math/vector"
)
func main() {
v := vector.New(1, 0)
vv := v.OuterProduct(v)
for _, r := range vv.Seq2() {
fmt.Println(r)
}
}
Output: [(1+0i) (0+0i)] [(0+0i) (0+0i)]
func (*Vector) Real ¶
Real returns a slice of real part.
Example ¶
package main
import (
"fmt"
"github.com/itsubaki/q/math/vector"
)
func main() {
v := vector.New(1+2i, 3+4i)
for _, r := range v.Real() {
fmt.Println(r)
}
}
Output: 1 3
func (*Vector) TensorProduct ¶
TensorProduct returns the tensor product of v and w.
Example ¶
package main
import (
"fmt"
"github.com/itsubaki/q/math/vector"
)
func main() {
v := vector.New(1, 0)
vv := v.TensorProduct(v)
fmt.Println(vv)
}
Output: [(1+0i) (0+0i) (0+0i) (0+0i)]
Click to show internal directories.
Click to hide internal directories.