Upstream update to 3.1

epel8
Ding-Yi Chen 14 years ago
parent 1ee5d6d56b
commit 921d0620f9

1
.gitignore vendored

@ -2,3 +2,4 @@ guide.pdf
libsvm-2.91.tar.gz
/guide.pdf
/libsvm-3.0.tar.gz
/libsvm-3.1.tar.gz

@ -1,114 +0,0 @@
diff -up ./Makefile.packageMain ./Makefile
--- ./Makefile.packageMain 2010-09-12 22:11:10.000000000 +1000
+++ ./Makefile 2010-12-14 16:00:15.269681221 +1000
@@ -1,11 +1,40 @@
CXX ?= g++
-CFLAGS = -Wall -Wconversion -O3 -fPIC
+CFLAGS = ${RPM_CFLAGS} -Wall -Wconversion -O3 -fPIC
SHVER = 2
+MAKE = make
+DOT_LIBS=.libs
+LIBS= -L${DOT_LIBS} -lsvm
+export LIBSVM_VER
+
+ifndef DESTDIR
+ INSTDIR=/usr
+else
+ INSTDIR=${DESTDIR}/usr
+endif
+
+export INSTDIR
+
+IS_64=$(shell /bin/uname -i | awk '/64/ {print 64}')
+
+ifndef LIBDIR
+ LIB_INSTDIR=${INSTDIR}/lib${IS_64}
+else
+ LIB_INSTDIR=${INSTDIR}/..${LIBDIR}
+endif
+
+ifndef LIBDIR
+ LIBDIR=/usr/lib${IS_64}
+endif
+
+export LIBDIR
+export LIB_INSTDIR
+
+all: lib svm-train svm-predict svm-scale svm-python svm-java svm-toy-gtk svm-toy-qt
-all: svm-train svm-predict svm-scale
lib: svm.o
- $(CXX) -shared -dynamiclib svm.o -o libsvm.so.$(SHVER)
+ $(CXX) -shared -Wl,-soname,libsvm.so.$(SHVER) svm.o -o libsvm.so.$(SHVER)
+ ln -sf libsvm.so.$(SHVER) libsvm.so
svm-predict: svm-predict.c svm.o
$(CXX) $(CFLAGS) svm-predict.c svm.o -o svm-predict -lm
@@ -16,4 +45,65 @@ svm-scale: svm-scale.c
svm.o: svm.cpp svm.h
$(CXX) $(CFLAGS) -c svm.cpp
clean:
- rm -f *~ svm.o svm-train svm-predict svm-scale libsvm.so.$(SHVER)
+ rm -f *~ svm.o svm-train svm-predict svm-scale svm-toy/gtk/svm-toy-gtk svm-toy/qt/svm-toy-qt
+ ${MAKE} -C python clean
+ ${MAKE} -C java clean
+svm-python:
+ ${MAKE} -C python
+
+svm-java:
+ifneq ("${NO_JAVA}","NO_JAVA")
+ ${MAKE} -C java
+endif
+svm-toy-gtk:
+ ${MAKE} -C svm-toy/gtk
+
+svm-toy-qt:
+ ${MAKE} -C svm-toy/qt
+
+install: all
+ mkdir -p ${INSTDIR}/bin
+ install -m 755 svm-train ${INSTDIR}/bin
+ install -m 755 svm-predict ${INSTDIR}/bin
+ install -m 755 svm-scale ${INSTDIR}/bin
+ mkdir -p ${LIB_INSTDIR}
+ install -m 755 libsvm.so.$(SHVER) ${LIB_INSTDIR}
+# install package libsvm-devel
+ mkdir -p ${INSTDIR}/include/libsvm
+ install -m 644 svm.h ${INSTDIR}/include/libsvm
+ mkdir -p ${INSTDIR}/share/libsvm/src/java/libsvm
+ install -m 644 *.h ${INSTDIR}/share/libsvm/src
+ install -m 644 *.c ${INSTDIR}/share/libsvm/src
+ install -m 644 *.cpp ${INSTDIR}/share/libsvm/src
+ install -m 644 Makefile ${INSTDIR}/share/libsvm/src
+ifneq ("${NO_JAVA}","NO_JAVA")
+ install -m 644 java/*.java ${INSTDIR}/share/libsvm/src/java
+ install -m 644 java/Makefile ${INSTDIR}/share/libsvm/src/java
+ install -m 644 java/libsvm/*.java ${INSTDIR}/share/libsvm/src/java/libsvm
+ install -m 644 java/libsvm/*.m4 ${INSTDIR}/share/libsvm/src/java/libsvm
+# install package libsvm-java
+ ${MAKE} -C java install
+endif
+# install package libsvm-python
+ ${MAKE} -C python install
+# install package svm-toy
+ install -m 755 svm-toy/gtk/svm-toy-gtk ${INSTDIR}/bin
+ install -m 755 svm-toy/qt/svm-toy-qt ${INSTDIR}/bin
+# install examples
+ mkdir -p ${INSTDIR}/share/libsvm/examples
+ install -m 644 heart_scale ${INSTDIR}/share/libsvm/examples
+uninstall:
+ rm -f ${INSTDIR}/bin/svm-train
+ rm -f ${INSTDIR}/bin/svm-predict
+ rm -f ${INSTDIR}/bin/svm-scale
+ rm -fr ${INSTDIR}/libsvm/examples
+ rm -f ${INSTDIR}/include/libsvm/svm.h
+ rm -f ${LIB_INSTDIR}/libsvm/svm.o
+ rm -fr ${INSTDIR}/libsvm/src
+ rm -fr ${INSTDIR}/libsvm
+ ${MAKE} -C python uninstall
+ifneq ("${NO_JAVA}","NO_JAVA")
+ ${MAKE} -C java uninstall
+endif
+ rm -f ${INSTDIR}/bin/svm-toy-gtk
+ rm -f ${INSTDIR}/bin/svm-toy-qt

@ -1,22 +0,0 @@
diff -up ./python/Makefile.pythonDir ./python/Makefile
--- ./python/Makefile.pythonDir 2010-06-16 14:04:46.000000000 +1000
+++ ./python/Makefile 2010-11-08 11:07:55.950510378 +1000
@@ -1,4 +1,16 @@
-all = lib
+PYTHON_PATH ?= python${PYTHON_VERSION}/site-packages/libsvm
+PYTHON_TARGETDIR=${LIB_INSTDIR}/${PYTHON_PATH}
-lib:
+all: lib
+
+lib: ../svm.cpp ../svm.h
cd ..; make lib; cd -
+
+install: all
+ mkdir -p ${PYTHON_TARGETDIR}
+ install -m 755 *.py ${PYTHON_TARGETDIR}
+ install -m 755 ../tools/*.py ${PYTHON_TARGETDIR}
+
+uninstall:
+ rm -fr ${LIBDIR}/${PYTHON_PATH}all = lib
+

@ -1,30 +0,0 @@
diff -up ./tools/easy.py.toolsDir ./tools/easy.py
--- ./tools/easy.py.toolsDir 2010-11-08 11:42:36.754570359 +1000
+++ ./tools/easy.py 2010-11-08 11:53:23.724570788 +1000
@@ -12,10 +12,10 @@ if len(sys.argv) <= 1:
is_win32 = (sys.platform == 'win32')
if not is_win32:
- svmscale_exe = "../svm-scale"
- svmtrain_exe = "../svm-train"
- svmpredict_exe = "../svm-predict"
- grid_py = "./grid.py"
+ svmscale_exe = "/usr/bin/svm-scale"
+ svmtrain_exe = "/usr/bin/svm-train"
+ svmpredict_exe = "/usr/bin/svm-predict"
+ grid_py = "/usr/bin/grid.py"
gnuplot_exe = "/usr/bin/gnuplot"
else:
# example for windows
diff -up ./tools/grid.py.toolsDir ./tools/grid.py
--- ./tools/grid.py.toolsDir 2010-11-08 11:42:36.756570467 +1000
+++ ./tools/grid.py 2010-11-08 11:52:59.144511925 +1000
@@ -17,7 +17,7 @@ else:
is_win32 = (sys.platform == 'win32')
if not is_win32:
- svmtrain_exe = "../svm-train"
+ svmtrain_exe = "/usr/bin/svm-train"
gnuplot_exe = "/usr/bin/gnuplot"
else:
# example for windows

@ -0,0 +1,117 @@
diff -up ./Makefile.packageMain ./Makefile
--- ./Makefile.packageMain 2010-09-12 22:11:10.000000000 +1000
+++ ./Makefile 2011-06-14 17:00:32.774749405 +1000
@@ -1,11 +1,44 @@
CXX ?= g++
-CFLAGS = -Wall -Wconversion -O3 -fPIC
+CFLAGS = ${RPM_CFLAGS} -Wall -Wconversion -O3 -fPIC
SHVER = 2
+MAKE = make
+DOT_LIBS=.libs
+LIBS= -L${DOT_LIBS} -lsvm
+export LIBSVM_VER
+
+IS_64:=$(shell /bin/uname -i | awk '/64/ {print 64}')
+
+PREFIXDIR?= /usr
+export PREFIXDIR
+
+LIBDIR?=${PREFIXDIR}/lib${IS_64}
+export LIBDIR
+
+DATADIR?=${PREFIXDIR}/share
+export DATADIR
+
+BINDIR?=${PREFIXDIR}/bin
+export BINDIR
+
+INCLUDEDIR_INSTALL:=${DESTDIR}/${PREFIXDIR}/include
+export INCLUDEDIR_INSTALL
+
+LIBDIR_INSTALL:=${DESTDIR}/${LIBDIR}
+export LIBDIR_INSTALL
+
+DATADIR_INSTALL:=${DESTDIR}/${DATADIR}
+export DATA_INSTALL
+
+BINDIR_INSTALL:=${DESTDIR}/${BINDIR}
+export BINDIR_INSTALL
+
+
+all: lib svm-train svm-predict svm-scale svm-python svm-java svm-toy-gtk svm-toy-qt
-all: svm-train svm-predict svm-scale
lib: svm.o
- $(CXX) -shared -dynamiclib svm.o -o libsvm.so.$(SHVER)
+ $(CXX) -shared -Wl,-soname,libsvm.so.$(SHVER) svm.o -o libsvm.so.$(SHVER)
+ ln -sf libsvm.so.$(SHVER) libsvm.so
svm-predict: svm-predict.c svm.o
$(CXX) $(CFLAGS) svm-predict.c svm.o -o svm-predict -lm
@@ -16,4 +49,64 @@ svm-scale: svm-scale.c
svm.o: svm.cpp svm.h
$(CXX) $(CFLAGS) -c svm.cpp
clean:
- rm -f *~ svm.o svm-train svm-predict svm-scale libsvm.so.$(SHVER)
+ rm -f *~ svm.o svm-train svm-predict svm-scale svm-toy/gtk/svm-toy-gtk svm-toy/qt/svm-toy-qt
+ ${MAKE} -C python clean
+ ${MAKE} -C java clean
+svm-python:
+ ${MAKE} -C python
+
+svm-java:
+ifneq ("${NO_JAVA}","NO_JAVA")
+ ${MAKE} -C java
+endif
+svm-toy-gtk:
+ ${MAKE} -C svm-toy/gtk
+
+svm-toy-qt:
+ ${MAKE} -C svm-toy/qt
+
+install: all
+ mkdir -p ${BINDIR_INSTALL}
+ install -m 755 svm-train ${BINDIR_INSTALL}
+ install -m 755 svm-predict ${BINDIR_INSTALL}
+ install -m 755 svm-scale ${BINDIR_INSTALL}
+ mkdir -p ${LIBDIR_INSTALL}
+ install -m 755 libsvm.so.$(SHVER) ${LIBDIR_INSTALL}
+# install package libsvm-devel
+ mkdir -p ${INCLUDEDIR_INSTALL}/libsvm
+ install -m 644 svm.h ${INCLUDEDIR_INSTALL}/libsvm
+ mkdir -p ${DATADIR_INSTALL}/libsvm/src/java/libsvm
+ install -m 644 *.h ${DATADIR_INSTALL}/libsvm/src
+ install -m 644 *.c ${DATADIR_INSTALL}/libsvm/src
+ install -m 644 *.cpp ${DATADIR_INSTALL}/libsvm/src
+ install -m 644 Makefile ${DATADIR_INSTALL}/libsvm/src
+ifneq ("${NO_JAVA}","NO_JAVA")
+ install -m 644 java/*.java ${DATADIR_INSTALL}/libsvm/src/java
+ install -m 644 java/Makefile ${DATADIR_INSTALL}/libsvm/src/java
+ install -m 644 java/libsvm/*.java ${DATADIR_INSTALL}/libsvm/src/java/libsvm
+ install -m 644 java/libsvm/*.m4 ${DATADIR_INSTALL}/libsvm/src/java/libsvm
+# install package libsvm-java
+ ${MAKE} -C java install
+endif
+# install package libsvm-python
+ ${MAKE} -C python install
+# install package svm-toy
+ install -m 755 svm-toy/gtk/svm-toy-gtk ${BINDIR_INSTALL}
+ install -m 755 svm-toy/qt/svm-toy-qt ${BINDIR_INSTALL}
+# install examples
+ mkdir -p ${DATADIR_INSTALL}/libsvm/examples
+ install -m 644 heart_scale ${DATADIR_INSTALL}/libsvm/examples
+uninstall:
+ rm -f ${BINDIR_INSTALL}/svm-train
+ rm -f ${BINDIR_INSTALL}/svm-predict
+ rm -f ${BINDIR_INSTALL}/svm-scale
+ rm -fr ${DATADIR_INSTALL}/libsvm
+ rm -f ${INCLUDEDIR_INSTALL}/libsvm/svm.h
+ rm -f ${LIBDIR_INSTALL}/libsvm.so*
+ ${MAKE} -C python uninstall
+ifneq ("${NO_JAVA}","NO_JAVA")
+ ${MAKE} -C java uninstall
+endif
+ rm -f ${BINDIR_INSTALL}/svm-toy-gtk
+ rm -f ${BINDIR_INSTALL}/svm-toy-qt
+

@ -0,0 +1,25 @@
diff -up ./python/Makefile.pythonDir ./python/Makefile
--- ./python/Makefile.pythonDir 2010-06-16 14:04:46.000000000 +1000
+++ ./python/Makefile 2011-06-14 16:53:39.365997401 +1000
@@ -1,4 +1,19 @@
-all = lib
+PYTHONDIR_NAME ?= python${PYTHON_VERSION}/site-packages/libsvm
+PYTHONDIR?=${LIBDIR}/${PYTHONDIR_NAME}
+PYTHONDIR_INSTALL=${DESTDIR}/${PYTHONDIR}
+SVM_TOOLS:= $(notdir $(wildcard ../tools/*.py))
-lib:
+all: lib
+
+lib: ../svm.cpp ../svm.h
cd ..; make lib; cd -
+
+install: all
+ mkdir -p ${PYTHONDIR_INSTALL}
+ install -m 755 *.py ${PYTHONDIR_INSTALL}
+ install -m 755 ../tools/*.py ${PYTHONDIR_INSTALL}
+ $(foreach toolPy,$(SVM_TOOLS),ln -s ${PYTHONDIR}/$(toolPy) ${BINDIR_INSTALL}/svm-$(toolPy);)
+
+uninstall:
+ rm -fr ${LIBDIR}/${PYTHON_PATH} $(addprefix ${BINDIR_INSTALL}/svm-,$(SVM_TOOLS))
+

@ -1,6 +1,6 @@
diff -up ./svm-toy/gtk/callbacks.cpp.svm-toy ./svm-toy/gtk/callbacks.cpp
--- ./svm-toy/gtk/callbacks.cpp.svm-toy 2010-09-12 22:11:10.000000000 +1000
+++ ./svm-toy/gtk/callbacks.cpp 2010-11-08 12:04:22.564509303 +1000
+++ ./svm-toy/gtk/callbacks.cpp 2011-06-14 13:36:25.726748304 +1000
@@ -3,6 +3,7 @@
#include <stdlib.h>
#include <ctype.h>
@ -10,25 +10,25 @@ diff -up ./svm-toy/gtk/callbacks.cpp.svm-toy ./svm-toy/gtk/callbacks.cpp
#include "interface.h"
#include "../../svm.h"
diff -up ./svm-toy/gtk/Makefile.svm-toy ./svm-toy/gtk/Makefile
--- ./svm-toy/gtk/Makefile.svm-toy 2010-09-12 22:11:10.000000000 +1000
+++ ./svm-toy/gtk/Makefile 2010-11-08 12:05:58.925509978 +1000
@@ -1,10 +1,11 @@
--- ./svm-toy/gtk/Makefile.svm-toy 2010-11-14 10:59:28.000000000 +1000
+++ ./svm-toy/gtk/Makefile 2011-06-14 13:47:23.529749429 +1000
@@ -1,10 +1,12 @@
CC? = gcc
CXX? = g++
-CFLAGS = -Wall -O3 -g `pkg-config --libs gtk+-2.0`
CFLAGS = -Wall -O3 -g `pkg-config --cflags gtk+-2.0`
-LIBS = `pkg-config --libs gtk+-2.0`
+CFLAGS = -Wall -O3 -g `pkg-config --cflags --libs gtk+-2.0`
+LOCAL_LIBDIR=../../
+LIBS = `pkg-config --libs gtk+-2.0` -L${LOCAL_LIBDIR} -lsvm
-svm-toy: main.o interface.o callbacks.o ../../svm.o
- $(CXX) $(CFLAGS) main.o interface.o callbacks.o ../../svm.o -o svm-toy $(LIBS)
+
+svm-toy-gtk: main.o interface.o callbacks.o
+ $(CXX) $(CFLAGS) main.o interface.o callbacks.o $(LIBS) -o $@
main.o: main.c
$(CC) $(CFLAGS) -c main.c
@@ -15,8 +16,5 @@ interface.o: interface.c interface.h
@@ -15,8 +17,5 @@ interface.o: interface.c interface.h
callbacks.o: callbacks.cpp callbacks.h
$(CXX) $(CFLAGS) -c callbacks.cpp
@ -40,7 +40,7 @@ diff -up ./svm-toy/gtk/Makefile.svm-toy ./svm-toy/gtk/Makefile
+ rm -f *~ callbacks.o svm-toy main.o interface.o callbacks.o
diff -up ./svm-toy/qt/Makefile.svm-toy ./svm-toy/qt/Makefile
--- ./svm-toy/qt/Makefile.svm-toy 2008-12-19 16:42:05.000000000 +1000
+++ ./svm-toy/qt/Makefile 2010-11-08 12:05:43.978510797 +1000
+++ ./svm-toy/qt/Makefile 2011-06-14 13:50:02.634748539 +1000
@@ -1,17 +1,18 @@
CXX? = g++
-CFLAGS = -Wall -O3 -I$(INCLUDE) -I$(INCLUDE)/QtGui -lQtGui
@ -49,7 +49,7 @@ diff -up ./svm-toy/qt/Makefile.svm-toy ./svm-toy/qt/Makefile
-MOC = /usr/bin/moc-qt4
+MOC=${MOC_PATH}
+LOCAL_LIBDIR=../../
+LIBS = `pkg-config --libs gtk+-2.0` -L${LOCAL_LIBDIR} -lsvm
+LIBS = `pkg-config --libs QtGui` -L${LOCAL_LIBDIR} -lsvm
-svm-toy: svm-toy.cpp svm-toy.moc ../../svm.o
- $(CXX) $(CFLAGS) svm-toy.cpp ../../svm.o -o svm-toy

@ -0,0 +1,52 @@
diff -up ./tools/easy.py.toolsDir ./tools/easy.py
--- ./tools/easy.py.toolsDir 2010-12-31 15:51:25.000000000 +1000
+++ ./tools/easy.py 2011-06-14 15:15:06.611622820 +1000
@@ -12,10 +12,10 @@ if len(sys.argv) <= 1:
is_win32 = (sys.platform == 'win32')
if not is_win32:
- svmscale_exe = "../svm-scale"
- svmtrain_exe = "../svm-train"
- svmpredict_exe = "../svm-predict"
- grid_py = "./grid.py"
+ svmscale_exe = "/usr/bin/svm-scale"
+ svmtrain_exe = "/usr/bin/svm-train"
+ svmpredict_exe = "/usr/bin/svm-predict"
+ grid_py = "/usr/bin/svm-grid.py"
gnuplot_exe = "/usr/bin/gnuplot"
else:
# example for windows
@@ -47,7 +47,7 @@ if len(sys.argv) > 2:
cmd = '{0} -s "{1}" "{2}" > "{3}"'.format(svmscale_exe, range_file, train_pathname, scaled_file)
print('Scaling training data...')
-Popen(cmd, shell = True, stdout = PIPE).communicate()
+Popen(cmd, shell = True, stdout = PIPE).communicate()
cmd = '{0} -svmtrain "{1}" -gnuplot "{2}" "{3}"'.format(grid_py, svmtrain_exe, gnuplot_exe, scaled_file)
print('Cross validation...')
@@ -70,10 +70,10 @@ print('Output model: {0}'.format(model_f
if len(sys.argv) > 2:
cmd = '{0} -r "{1}" "{2}" > "{3}"'.format(svmscale_exe, range_file, test_pathname, scaled_test_file)
print('Scaling testing data...')
- Popen(cmd, shell = True, stdout = PIPE).communicate()
+ Popen(cmd, shell = True, stdout = PIPE).communicate()
cmd = '{0} "{1}" "{2}" "{3}"'.format(svmpredict_exe, scaled_test_file, model_file, predict_test_file)
print('Testing...')
- Popen(cmd, shell = True).communicate()
+ Popen(cmd, shell = True).communicate()
print('Output prediction: {0}'.format(predict_test_file))
diff -up ./tools/grid.py.toolsDir ./tools/grid.py
--- ./tools/grid.py.toolsDir 2011-02-03 01:55:20.000000000 +1000
+++ ./tools/grid.py 2011-06-14 14:56:11.817748117 +1000
@@ -17,7 +17,7 @@ else:
is_win32 = (sys.platform == 'win32')
if not is_win32:
- svmtrain_exe = "../svm-train"
+ svmtrain_exe = "/usr/bin/svm-train"
gnuplot_exe = "/usr/bin/gnuplot"
else:
# example for windows

@ -1,7 +1,7 @@
%define shver 2
Name: libsvm
Version: 3.0
Release: 3%{?dist}
Version: 3.1
Release: 1%{?dist}
Summary: A Library for Support Vector Machines
Group: Development/Libraries
@ -14,7 +14,7 @@ Source2: http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf
Source3: libsvm-svm-toy-gtk.desktop
Source4: libsvm-svm-toy-qt.desktop
Source5: LibSVM-svm-toy-48.png
Patch0: %{name}-%{version}-1.packageMain.patch
Patch0: %{name}-%{version}.packageMain.patch
Patch1: %{name}-%{version}.pythonDir.patch
Patch2: %{name}-%{version}.javaDir.patch
Patch3: %{name}-%{version}.svm-toy.patch
@ -32,6 +32,10 @@ BuildRequires: grep
%if 0%{?fedora} >= 9
%define moc_path %{_bindir}/moc-qt4
%else
%if 0%{?rhel} >= 6
%define moc_path %{_bindir}/moc-qt4
%endif
%else
%define moc_path %{_libdir}/qt4/bin/moc
%endif
@ -209,6 +213,7 @@ rm -rf $RPM_BUILD_ROOT
%defattr(-,root,root,-)
%doc python/README-Python tools/README-Tools
%{libsvm_python_dir}
%{_bindir}/svm-*.py
%ifnarch ppc ppc64
%files java
@ -234,6 +239,30 @@ rm -rf $RPM_BUILD_ROOT
%changelog
* Tue Jun 14 2011 Ding-Yi Chen <dchen@redhat.com> - 3.1-1
- svm tools is now installed in /usr/bin as svm-*.py
i.e. tools/easy.py is linked as svm-easy.py.
- Upstream update:
+ MATLAB interface:
+ Merge matlab interface to core libsvm
+ Using mexPrintf() when calling info() in MATLAB interface.
+ Both 32- and 64-bit windows binary files are provided
+ Java:
Math.random is replaced by Random in java interface
+ Python interface:
subroutines to get SVs
relative path to load *.dll and *.so
+ svm.cpp:
null pointer check before release memory in svm_free_model_content()
svm_destroy_model() no longer supported.
+ svm-train.c and svm-predict.c
Better format check in reading data labels
+ svm-toy:
fix the svm_toy dialog path
+ tools:
Using new string formatting/encoding in tools/*.py
clearer png output, fix grid.py legend
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

24
log

@ -184,9 +184,31 @@ file updated.
QD from Qfloat to double (better precision because SSE on 64-bit machines less accurate than i387 on 32-bit
exit status for checkdata.py
old python interface (swig) is removed
3.1: 2011/04/01
MATLAB interface:
Merge matlab interface to core libsvm
Using mexPrintf() when calling info() in MATLAB interface.
Both 32- and 64-bit windows binary files are provided
Java:
Math.random is replaced by Random in java interface
Python interface:
subroutines to get SVs
relative path to load *.dll and *.so
svm.cpp:
null pointer check before release memory in svm_free_model_content()
svm_destroy_model() no longer supported.
svm-train.c and svm-predict.c
Better format check in reading data labels
svm-toy:
fix the svm_toy dialog path
tools:
Using new string formatting/encoding in tools/*.py
clearer png output, fix grid.py legend
------------------
Future plan:
?.?:
merge matlab interface to core libsvm
update make.m of matlab interface to use max(...)

@ -1,2 +1,2 @@
aae7a8f7e357e86e1c893b706bb02a63 guide.pdf
016e29668aae8aa6eaeb125c9e23d834 libsvm-3.0.tar.gz
a157c1edfdb290fe8081d6a011022055 libsvm-3.1.tar.gz

Loading…
Cancel
Save