mirror of
https://igit.ific.uv.es/alramos/latticegpu.jl.git
synced 2025-09-18 20:27:15 +02:00
+ and - for SU3 elements produce M3x3 types
This commit is contained in:
parent
0abdfa6904
commit
40426f561a
1 changed files with 74 additions and 0 deletions
|
@ -105,10 +105,84 @@ Base.:+(a::M3x3{T},b::M3x3{T}) where T <: AbstractFloat = M3x3{T}(a.u11+b.u11, a
|
||||||
a.u21+b.u21, a.u22+b.u22, a.u23+b.u23,
|
a.u21+b.u21, a.u22+b.u22, a.u23+b.u23,
|
||||||
a.u31+b.u31, a.u32+b.u32, a.u33+b.u33)
|
a.u31+b.u31, a.u32+b.u32, a.u33+b.u33)
|
||||||
|
|
||||||
|
function Base.:+(a::SU3{T},b::M3x3{T}) where T <: AbstractFloat
|
||||||
|
|
||||||
|
au31 = conj(a.u12*a.u23 - a.u13*a.u22)
|
||||||
|
au32 = conj(a.u13*a.u21 - a.u11*a.u23)
|
||||||
|
au33 = conj(a.u11*a.u22 - a.u12*a.u21)
|
||||||
|
|
||||||
|
return M3x3{T}(a.u11+b.u11, a.u12+b.u12, a.u13+b.u13,
|
||||||
|
a.u21+b.u21, a.u22+b.u22, a.u23+b.u23,
|
||||||
|
au31+b.u31, au32+b.u32, au33+b.u33)
|
||||||
|
end
|
||||||
|
|
||||||
|
function Base.:+(a::M3x3{T},b::SU3{T}) where T <: AbstractFloat
|
||||||
|
|
||||||
|
bu31 = conj(b.u12*b.u23 - b.u13*b.u22)
|
||||||
|
bu32 = conj(b.u13*b.u21 - b.u11*b.u23)
|
||||||
|
bu33 = conj(b.u11*b.u22 - b.u12*b.u21)
|
||||||
|
|
||||||
|
return M3x3{T}(a.u11+b.u11, a.u12+b.u12, a.u13+b.u13,
|
||||||
|
a.u21+b.u21, a.u22+b.u22, a.u23+b.u23,
|
||||||
|
a.u31+bu31, a.u32+bu32, a.u33+bu33)
|
||||||
|
end
|
||||||
|
|
||||||
|
function Base.:+(a::SU3{T},b::SU3{T}) where T <: AbstractFloat
|
||||||
|
|
||||||
|
au31 = conj(a.u12*a.u23 - a.u13*a.u22)
|
||||||
|
au32 = conj(a.u13*a.u21 - a.u11*a.u23)
|
||||||
|
au33 = conj(a.u11*a.u22 - a.u12*a.u21)
|
||||||
|
|
||||||
|
bu31 = conj(b.u12*b.u23 - b.u13*b.u22)
|
||||||
|
bu32 = conj(b.u13*b.u21 - b.u11*b.u23)
|
||||||
|
bu33 = conj(b.u11*b.u22 - b.u12*b.u21)
|
||||||
|
|
||||||
|
return M3x3{T}(a.u11+b.u11, a.u12+b.u12, a.u13+b.u13,
|
||||||
|
a.u21+b.u21, a.u22+b.u22, a.u23+b.u23,
|
||||||
|
au31+bu31, au32+bu32, au33+bu33)
|
||||||
|
end
|
||||||
|
|
||||||
Base.:-(a::M3x3{T},b::M3x3{T}) where T <: AbstractFloat = M3x3{T}(a.u11-b.u11, a.u12-b.u12, a.u13-b-u13,
|
Base.:-(a::M3x3{T},b::M3x3{T}) where T <: AbstractFloat = M3x3{T}(a.u11-b.u11, a.u12-b.u12, a.u13-b-u13,
|
||||||
a.u21-b.u21, a.u22-b.u22, a.u23-b-u23,
|
a.u21-b.u21, a.u22-b.u22, a.u23-b-u23,
|
||||||
a.u31-b.u31, a.u32-b.u32, a.u33-b-u33)
|
a.u31-b.u31, a.u32-b.u32, a.u33-b-u33)
|
||||||
|
|
||||||
|
function Base.:-(a::SU3{T},b::M3x3{T}) where T <: AbstractFloat
|
||||||
|
|
||||||
|
au31 = conj(a.u12*a.u23 - a.u13*a.u22)
|
||||||
|
au32 = conj(a.u13*a.u21 - a.u11*a.u23)
|
||||||
|
au33 = conj(a.u11*a.u22 - a.u12*a.u21)
|
||||||
|
|
||||||
|
return M3x3{T}(a.u11-b.u11, a.u12-b.u12, a.u13-b.u13,
|
||||||
|
a.u21-b.u21, a.u22-b.u22, a.u23-b.u23,
|
||||||
|
au31-b.u31, au32-b.u32, au33-b.u33)
|
||||||
|
end
|
||||||
|
|
||||||
|
function Base.:-(a::M3x3{T},b::SU3{T}) where T <: AbstractFloat
|
||||||
|
|
||||||
|
bu31 = conj(b.u12*b.u23 - b.u13*b.u22)
|
||||||
|
bu32 = conj(b.u13*b.u21 - b.u11*b.u23)
|
||||||
|
bu33 = conj(b.u11*b.u22 - b.u12*b.u21)
|
||||||
|
|
||||||
|
return M3x3{T}(a.u11-b.u11, a.u12-b.u12, a.u13-b.u13,
|
||||||
|
a.u21-b.u21, a.u22-b.u22, a.u23-b.u23,
|
||||||
|
a.u31-bu31, a.u32-bu32, a.u33-bu33)
|
||||||
|
end
|
||||||
|
|
||||||
|
function Base.:-(a::SU3{T},b::SU3{T}) where T <: AbstractFloat
|
||||||
|
|
||||||
|
au31 = conj(a.u12*a.u23 - a.u13*a.u22)
|
||||||
|
au32 = conj(a.u13*a.u21 - a.u11*a.u23)
|
||||||
|
au33 = conj(a.u11*a.u22 - a.u12*a.u21)
|
||||||
|
|
||||||
|
bu31 = conj(b.u12*b.u23 - b.u13*b.u22)
|
||||||
|
bu32 = conj(b.u13*b.u21 - b.u11*b.u23)
|
||||||
|
bu33 = conj(b.u11*b.u22 - b.u12*b.u21)
|
||||||
|
|
||||||
|
return M3x3{T}(a.u11-b.u11, a.u12-b.u12, a.u13-b.u13,
|
||||||
|
a.u21-b.u21, a.u22-b.u22, a.u23-b.u23,
|
||||||
|
au31-bu31, au32-bu32, au33-bu33)
|
||||||
|
end
|
||||||
|
|
||||||
Base.:-(b::M3x3{T}) where T <: AbstractFloat = M3x3{T}(-b.u11, -b.u12, -b.u13,
|
Base.:-(b::M3x3{T}) where T <: AbstractFloat = M3x3{T}(-b.u11, -b.u12, -b.u13,
|
||||||
-b.u21, -b.u22, -b.u23,
|
-b.u21, -b.u22, -b.u23,
|
||||||
-b.u31, -b.u32, -b.u33)
|
-b.u31, -b.u32, -b.u33)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue