Skip to content

Commit a2085ea

Browse files
authored
add libsvm_version c global var (JuliaML#69)
* add libsvm_version c global var * libsvm ref
1 parent 642cefb commit a2085ea

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

src/LIBSVM.jl

+6-2
Original file line numberDiff line numberDiff line change
@@ -150,9 +150,13 @@ end
150150

151151
svmnoprint(str::Ptr{UInt8})::Cvoid = nothing
152152

153+
const libsvm_version = Ref{Cint}(0)
154+
153155
function __init__()
154156
ccall((:svm_set_print_string_function, libsvm), Cvoid,
155157
(Ptr{Cvoid},), @cfunction(svmnoprint, Cvoid, (Ptr{UInt8},)))
158+
159+
libsvm_version[] = unsafe_load(cglobal((:libsvm_version, libsvm), Cint))
156160
end
157161

158162

@@ -172,7 +176,7 @@ function grp2idx(::Type{S}, labels::AbstractVector,
172176
idx
173177
end
174178

175-
function instances2nodes(instances::AbstractMatrix{U}) where U<:Real
179+
function instances2nodes(instances::AbstractMatrix{<:Real})
176180
nfeatures = size(instances, 1)
177181
ninstances = size(instances, 2)
178182
nodeptrs = Array{Ptr{SVMNode}}(undef, ninstances)
@@ -191,7 +195,7 @@ function instances2nodes(instances::AbstractMatrix{U}) where U<:Real
191195
(nodes, nodeptrs)
192196
end
193197

194-
function instances2nodes(instances::SparseMatrixCSC{U}) where U<:Real
198+
function instances2nodes(instances::SparseMatrixCSC{<:Real})
195199
ninstances = size(instances, 2)
196200
nodeptrs = Array{Ptr{SVMNode}}(undef, ninstances)
197201
nodes = Array{SVMNode}(undef, nnz(instances)+ninstances)

test/runtests.jl

+5
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,11 @@ function test_iris_model(model, X, y)
2121
end
2222

2323

24+
@testset "libsvm version" begin
25+
@test LIBSVM.libsvm_version[] 322
26+
end
27+
28+
2429
@testset "IRIS" begin
2530
@info "test iris"
2631

0 commit comments

Comments
 (0)