diff --git a/src/AMD.jl b/src/AMD.jl index 2bfb445..8e2a7c0 100644 --- a/src/AMD.jl +++ b/src/AMD.jl @@ -106,7 +106,9 @@ function print(io :: IO, meta :: Amd) print(io, s) end -for (validfn, typ) in ((:_amd_valid, Cint), (:_amd_l_valid, Clong)) +_Clong = Base.Sys.WORD_SIZE == 32 ? Clong : Clonglong + +for (validfn, typ) in ((:_amd_valid, Cint), (:_amd_l_valid, _Clong)) @eval begin @@ -123,7 +125,7 @@ for (validfn, typ) in ((:_amd_valid, Cint), (:_amd_l_valid, Clong)) end -for (orderfn, typ) in ((:_amd_order, Cint), (:_amd_l_order, Clong)) +for (orderfn, typ) in ((:_amd_order, Cint), (:_amd_l_order, _Clong)) @eval begin @@ -145,7 +147,7 @@ for (orderfn, typ) in ((:_amd_order, Cint), (:_amd_l_order, Clong)) end end -function amd{F,T<:Union{Cint,Clong}}(A :: SparseMatrixCSC{F,T}) +function amd{F,T<:Union{Cint,_Clong}}(A :: SparseMatrixCSC{F,T}) meta = Amd() amd(A, meta) end diff --git a/test/runtests.jl b/test/runtests.jl index a875567..b070073 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,9 +1,10 @@ using AMD using Base.Test +_Clong = Base.Sys.WORD_SIZE == 32 ? Clong : Clonglong for n in [10, 20, 30] for density in [.25, .75, 1.0] - for T in [Cint, Clong] + for T in [Cint, _Clong] A = convert(SparseMatrixCSC{Float64,T}, sprand(n, n, density)) @assert amd_valid(A) @@ -21,7 +22,7 @@ end # For coverage. meta = Amd() -A = convert(SparseMatrixCSC{Float64,Clong}, sprand(10, 10, .5)) +A = convert(SparseMatrixCSC{Float64,_Clong}, sprand(10, 10, .5)) p = amd(A, meta) show(meta) print(meta)