mirror of
https://github.com/tgorordo/WignerSymbols.jl.git
synced 2026-06-13 02:02:14 -07:00
Update for latest version of v0.7
This commit is contained in:
parent
9350aae469
commit
b734fe001f
4 changed files with 19 additions and 14 deletions
1
REQUIRE
1
REQUIRE
|
|
@ -1,2 +1,3 @@
|
||||||
julia 0.6
|
julia 0.6
|
||||||
Primes
|
Primes
|
||||||
|
Compat
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,17 @@ __precompile__(true)
|
||||||
module WignerSymbols
|
module WignerSymbols
|
||||||
export δ, Δ, clebschgordan, wigner3j, wigner6j, racahV, racahW
|
export δ, Δ, clebschgordan, wigner3j, wigner6j, racahV, racahW
|
||||||
|
|
||||||
|
if VERSION <= v"0.7.0-DEV.262"
|
||||||
|
include("mpz.jl")
|
||||||
|
using .MPZ
|
||||||
|
else
|
||||||
|
using Base.GMP.MPZ
|
||||||
|
end
|
||||||
|
|
||||||
|
using Compat
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
include("primefactorization.jl")
|
include("primefactorization.jl")
|
||||||
|
|
||||||
const Wigner3j = Dict{Tuple{UInt,UInt,UInt,Int,Int},Tuple{Rational{BigInt},Rational{BigInt}}}()
|
const Wigner3j = Dict{Tuple{UInt,UInt,UInt,Int,Int},Tuple{Rational{BigInt},Rational{BigInt}}}()
|
||||||
|
|
@ -283,8 +294,8 @@ function compute3jseries(β₁, β₂, β₃, α₁, α₂)
|
||||||
krange = max(α₁, α₂, zero(α₁)):min(β₁, β₂, β₃)
|
krange = max(α₁, α₂, zero(α₁)):min(β₁, β₂, β₃)
|
||||||
T = PrimeFactorization{eltype(eltype(factorialtable))}
|
T = PrimeFactorization{eltype(eltype(factorialtable))}
|
||||||
|
|
||||||
nums = Vector{T}(length(krange))
|
nums = Vector{T}(uninitialized, length(krange))
|
||||||
dens = Vector{T}(length(krange))
|
dens = Vector{T}(uninitialized, length(krange))
|
||||||
for (i, k) in enumerate(krange)
|
for (i, k) in enumerate(krange)
|
||||||
num = iseven(k) ? one(T) : -one(T)
|
num = iseven(k) ? one(T) : -one(T)
|
||||||
den = primefactorial(k)*primefactorial(k-α₁)*primefactorial(k-α₂)*
|
den = primefactorial(k)*primefactorial(k-α₁)*primefactorial(k-α₂)*
|
||||||
|
|
@ -302,8 +313,8 @@ function compute6jseries(β₁, β₂, β₃, α₁, α₂, α₃, α₄)
|
||||||
krange = max(α₁, α₂, α₃, α₄):min(β₁, β₂, β₃)
|
krange = max(α₁, α₂, α₃, α₄):min(β₁, β₂, β₃)
|
||||||
T = PrimeFactorization{eltype(eltype(factorialtable))}
|
T = PrimeFactorization{eltype(eltype(factorialtable))}
|
||||||
|
|
||||||
nums = Vector{T}(length(krange))
|
nums = Vector{T}(uninitialized, length(krange))
|
||||||
dens = Vector{T}(length(krange))
|
dens = Vector{T}(uninitialized, length(krange))
|
||||||
for (i, k) in enumerate(krange)
|
for (i, k) in enumerate(krange)
|
||||||
num = iseven(k) ? primefactorial(k+1) : -primefactorial(k+1)
|
num = iseven(k) ? primefactorial(k+1) : -primefactorial(k+1)
|
||||||
den = primefactorial(k-α₁)*primefactorial(k-α₂)*primefactorial(k-α₃)*
|
den = primefactorial(k-α₁)*primefactorial(k-α₂)*primefactorial(k-α₃)*
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,6 @@
|
||||||
using Primes.isprime
|
using Primes.isprime
|
||||||
import Base.divgcd
|
import Base.divgcd
|
||||||
|
|
||||||
if VERSION <= v"0.7.0-DEV.262"
|
|
||||||
include("mpz.jl")
|
|
||||||
using .MPZ
|
|
||||||
else
|
|
||||||
using Base.GMP.MPZ
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
const primetable = [2,3,5]
|
const primetable = [2,3,5]
|
||||||
const factortable = [UInt8[], UInt8[1], UInt8[0,1], UInt8[2], UInt8[0,0,1]]
|
const factortable = [UInt8[], UInt8[1], UInt8[0,1], UInt8[2], UInt8[0,0,1]]
|
||||||
const factorialtable = [UInt32[], UInt32[], UInt32[1], UInt32[1,1], UInt32[3,1], UInt32[3,1,1]]
|
const factorialtable = [UInt32[], UInt32[], UInt32[1], UInt32[1,1], UInt32[3,1], UInt32[3,1,1]]
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ end
|
||||||
|
|
||||||
using Test
|
using Test
|
||||||
using WignerSymbols
|
using WignerSymbols
|
||||||
|
using Compat
|
||||||
|
|
||||||
smalljlist = 0:1//2:10
|
smalljlist = 0:1//2:10
|
||||||
largejlist = 0:1//2:1000
|
largejlist = 0:1//2:1000
|
||||||
|
|
@ -113,8 +114,8 @@ end
|
||||||
m1range = -j1:j1
|
m1range = -j1:j1
|
||||||
m2range = -j2:j2
|
m2range = -j2:j2
|
||||||
m3range = -j3:j3
|
m3range = -j3:j3
|
||||||
V1 = Array{Float64}(length(m1range),length(m2range),length(m3range))
|
V1 = Array{Float64}(uninitialized, length(m1range),length(m2range),length(m3range))
|
||||||
V2 = Array{Float64}(length(m1range),length(m2range),length(m3range))
|
V2 = Array{Float64}(uninitialized, length(m1range),length(m2range),length(m3range))
|
||||||
for J in max(abs(j1-j2-j3),abs(j1-j2+j3),abs(j1+j2-j3)):(j1+j2+j3)
|
for J in max(abs(j1-j2-j3),abs(j1-j2+j3),abs(j1+j2-j3)):(j1+j2+j3)
|
||||||
J12range = max(abs(j1-j2),abs(J-j3)):min((j1+j2),(J+j3))
|
J12range = max(abs(j1-j2),abs(J-j3)):min((j1+j2),(J+j3))
|
||||||
J23range = max(abs(j2-j3),abs(j1-J)):min((j2+j3),(j1+J))
|
J23range = max(abs(j2-j3),abs(j1-J)):min((j2+j3),(j1+J))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue