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

@ -1,2 +1,3 @@
julia 0.6
Primes
Compat

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

View file

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