Update for latest version of v0.7

This commit is contained in:
Jutho Haegeman 2017-12-08 00:52:21 +01:00
parent 9350aae469
commit b734fe001f
4 changed files with 19 additions and 14 deletions

View file

@ -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-α₃)*

View file

@ -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]]