Linear algebra in Julia
A basic construction of vector in Julia creates a full one-index array containing elements of a number type as presented below.
julia> x = [0.0, 1.0im]
2-element Array{Complex{Float64},1}:
0.0+0.0im
0.0+1.0im
A transposition of a column vector return an object of type LinearAlgebra.Transpose
as shown below
julia> xt = transpose(x)
1×2 LinearAlgebra.Transpose{Complex{Float64},Array{Complex{Float64},1}}:
0.0+0.0im 0.0+1.0im
While a~Hermitian conjugate of the same vector returns a LinearAlgebra.Adjoint
parametrized by the type Array
:
julia> xc = [0.0, 1.0im]'
1×2 LinearAlgebra.Adjoint{Complex{Float64},Array{Complex{Float64},1}}:
0.0-0.0im 0.0-1.0im
Values of variables xt
and xc
are views of the value of variable x
. The column and row vectors behave like bras and kets, for example xc*x
denotes the inner product of bra xc
and ket x
, while x*xc
denotes its outer product resulting in a two-index array.
The linear algebra library in Julia
provides standard operations on matrices and vectors that are designed to take in to the account the types of objects.