mirror of
https://github.com/tgorordo/WignerSymbols.jl.git
synced 2026-06-05 15:42:15 -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
|
||||
Primes
|
||||
Compat
|
||||
|
|
|
|||
|
|
@ -2,6 +2,17 @@ __precompile__(true)
|
|||
module WignerSymbols
|
||||
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")
|
||||
|
||||
const Wigner3j = Dict{Tuple{UInt,UInt,UInt,Int,Int},Tuple{Rational{BigInt},Rational{BigInt}}}()
|
||||
|
|
@ -283,8 +294,8 @@ function compute3jseries(β₁, β₂, β₃, α₁, α₂)
|
|||
krange = max(α₁, α₂, zero(α₁)):min(β₁, β₂, β₃)
|
||||
T = PrimeFactorization{eltype(eltype(factorialtable))}
|
||||
|
||||
nums = Vector{T}(length(krange))
|
||||
dens = Vector{T}(length(krange))
|
||||
nums = Vector{T}(uninitialized, length(krange))
|
||||
dens = Vector{T}(uninitialized, length(krange))
|
||||
for (i, k) in enumerate(krange)
|
||||
num = iseven(k) ? one(T) : -one(T)
|
||||
den = primefactorial(k)*primefactorial(k-α₁)*primefactorial(k-α₂)*
|
||||
|
|
@ -302,8 +313,8 @@ function compute6jseries(β₁, β₂, β₃, α₁, α₂, α₃, α₄)
|
|||
krange = max(α₁, α₂, α₃, α₄):min(β₁, β₂, β₃)
|
||||
T = PrimeFactorization{eltype(eltype(factorialtable))}
|
||||
|
||||
nums = Vector{T}(length(krange))
|
||||
dens = Vector{T}(length(krange))
|
||||
nums = Vector{T}(uninitialized, length(krange))
|
||||
dens = Vector{T}(uninitialized, length(krange))
|
||||
for (i, k) in enumerate(krange)
|
||||
num = iseven(k) ? primefactorial(k+1) : -primefactorial(k+1)
|
||||
den = primefactorial(k-α₁)*primefactorial(k-α₂)*primefactorial(k-α₃)*
|
||||
|
|
|
|||
|
|
@ -1,14 +1,6 @@
|
|||
using Primes.isprime
|
||||
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 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]]
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ end
|
|||
|
||||
using Test
|
||||
using WignerSymbols
|
||||
using Compat
|
||||
|
||||
smalljlist = 0:1//2:10
|
||||
largejlist = 0:1//2:1000
|
||||
|
|
@ -113,8 +114,8 @@ end
|
|||
m1range = -j1:j1
|
||||
m2range = -j2:j2
|
||||
m3range = -j3:j3
|
||||
V1 = Array{Float64}(length(m1range),length(m2range),length(m3range))
|
||||
V2 = Array{Float64}(length(m1range),length(m2range),length(m3range))
|
||||
V1 = Array{Float64}(uninitialized, 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)
|
||||
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))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue