diff --git a/.cvsignore b/.cvsignore deleted file mode 100644 index e69de29..0000000 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..48a9e12 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +guide.pdf +libsvm-3.91.tar.gz +/log +/LibSVM-svm-toy-48.png +/libsvm-svm-toy-gtk.desktop +/libsvm-svm-toy-qt.desktop +/libsvm-3.20.tar.gz +/libsvm-3.21.tar.gz +/libsvm-3.23.tar.gz diff --git a/LibSVM-svm-toy-48.png b/LibSVM-svm-toy-48.png new file mode 100644 index 0000000..f13d50a Binary files /dev/null and b/LibSVM-svm-toy-48.png differ diff --git a/Makefile b/Makefile deleted file mode 100644 index 70ef916..0000000 --- a/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile for source rpm: libsvm -# $Id$ -NAME := libsvm -SPECFILE = $(firstword $(wildcard *.spec)) - -define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done -endef - -MAKEFILE_COMMON := $(shell $(find-makefile-common)) - -ifeq ($(MAKEFILE_COMMON),) -# attept a checkout -define checkout-makefile-common -test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 -endef - -MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) -endif - -include $(MAKEFILE_COMMON) diff --git a/libsvm-3.17.pom b/libsvm-3.17.pom new file mode 100644 index 0000000..7b7977b --- /dev/null +++ b/libsvm-3.17.pom @@ -0,0 +1,36 @@ + + 4.0.0 + tw.edu.ntu.csie + libsvm + 3.17 + jar + LIBSVM + A Library for Support Vector Machines + http://www.csie.ntu.edu.tw/~cjlin/libsvm/ + + + BSD 3-Clause License + http://www.csie.ntu.edu.tw/~cjlin/libsvm/COPYRIGHT + + + + http://www.csie.ntu.edu.tw/~cjlin/cgi-bin/libsvm.cgi?+http://www.csie.ntu.edu.tw/~cjlin/libsvm+tar.gz + http://www.csie.ntu.edu.tw/~cjlin/cgi-bin/libsvm.cgi?+http://www.csie.ntu.edu.tw/~cjlin/libsvm+tar.gz + + + + chih-jen.lin + Chih-Jen Lin + cjlin@csie.ntu.edu.tw + + + + 1.5 + 1.5 + UTF-8 + + + java + + diff --git a/libsvm-svm-toy-qt.desktop b/libsvm-svm-toy-qt.desktop new file mode 100644 index 0000000..1835271 --- /dev/null +++ b/libsvm-svm-toy-qt.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=svm-toy-qt +GenericName=svm-toy QT version +Comment=QT version of svm-toy (libsvm demostration program) +Exec=svm-toy-qt +Icon=libsvm-svm-toy-qt-48 +StartupNotify=true +Terminal=false +Type=Application +Categories=Education;Science;Math;DataVisualization;Qt diff --git a/libsvm.javaDir.patch b/libsvm.javaDir.patch new file mode 100644 index 0000000..5131c4f --- /dev/null +++ b/libsvm.javaDir.patch @@ -0,0 +1,43 @@ +diff -up ./java/Makefile.javaDir ./java/Makefile +--- ./java/Makefile.javaDir 2016-12-22 04:58:49.000000000 +1000 ++++ ./java/Makefile 2018-04-17 12:11:53.773004141 +1000 +@@ -5,8 +5,8 @@ FILES = libsvm/svm.class libsvm/svm_mode + svm_train.class svm_predict.class svm_toy.class svm_scale.class + + #JAVAC = jikes +-JAVAC_FLAGS = -target 1.7 -source 1.7 +-JAVAC = javac ++JAVAC_FLAGS = -target 1.7 -source 1.7 -classpath ${CLASSPATH} ++JAVAC ?= javac + # JAVAC_FLAGS = + export CLASSPATH := .:$(CLASSPATH) + +@@ -19,8 +19,20 @@ all: $(FILES) + libsvm/svm.java: libsvm/svm.m4 + m4 libsvm/svm.m4 > libsvm/svm.java + ++javadoc: docs/index.html ++ ++docs/index.html: $(FILES) ++ javadoc -d docs *.java libsvm/*.java ++ ++install: ++ mkdir -p ${JAVA_TARGET_DIR} ++ install -m 644 libsvm.jar ${JAVA_TARGET_DIR} ++uninstall: ++ rm -fr ${JAVA_TARGET_DIR} ++ + clean: + rm -f libsvm/*.class *.class *.jar libsvm/*~ *~ libsvm/svm.java ++ rm -rf docs + + dist: clean all + rm *.class libsvm/*.class +diff -up ./java/test_applet.html.javaDir ./java/test_applet.html +--- ./java/test_applet.html.javaDir 2016-12-22 04:58:51.000000000 +1000 ++++ ./java/test_applet.html 2018-04-17 11:51:17.927996424 +1000 +@@ -1 +1,3 @@ +- ++ ++ ++ diff --git a/libsvm.packageMain.patch b/libsvm.packageMain.patch new file mode 100644 index 0000000..f594c5b --- /dev/null +++ b/libsvm.packageMain.patch @@ -0,0 +1,102 @@ +diff -up ./Makefile.packageMain ./Makefile +--- ./Makefile.packageMain 2013-03-31 17:06:44.000000000 +1000 ++++ ./Makefile 2013-04-13 22:59:43.796601417 +1000 +@@ -1,11 +1,45 @@ + CXX ?= g++ +-CFLAGS = -Wall -Wconversion -O3 -fPIC ++CFLAGS = ${RPM_CFLAGS} -Wconversion -fPIC + SHVER = 2 ++export SHVER + OS = $(shell uname) ++MAKE = make ++DOT_LIBS=. ++LIBS= -L${DOT_LIBS} -lsvm ++export LIBSVM_VER ++IS_64:=$(shell /bin/uname -i | awk '/64/ {print 64}') ++PREFIXDIR?= /usr ++export PREFIXDIR + +-all: svm-train svm-predict svm-scale ++LIBDIR?=${PREFIXDIR}/lib${IS_64} ++export LIBDIR + +-lib: svm.o ++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-toy-qt ++ ++lib: libsvm.so.$(SHVER) libsvm.so ++ ++libsvm.so: libsvm.so.$(SHVER) ++ ln -sf libsvm.so.$(SHVER) libsvm.so ++ ++libsvm.so.$(SHVER): svm.o + if [ "$(OS)" = "Darwin" ]; then \ + SHARED_LIB_FLAG="-dynamiclib -Wl,-install_name,libsvm.so.$(SHVER)"; \ + else \ +@@ -14,12 +48,46 @@ lib: svm.o + $(CXX) $${SHARED_LIB_FLAG} svm.o -o libsvm.so.$(SHVER) + + svm-predict: svm-predict.c svm.o +- $(CXX) $(CFLAGS) svm-predict.c svm.o -o svm-predict -lm ++ $(CXX) $(CFLAGS) svm-predict.c $(LIBS) -o svm-predict -lm + svm-train: svm-train.c svm.o +- $(CXX) $(CFLAGS) svm-train.c svm.o -o svm-train -lm ++ $(CXX) $(CFLAGS) svm-train.c $(LIBS) -o svm-train -lm + svm-scale: svm-scale.c + $(CXX) $(CFLAGS) svm-scale.c -o svm-scale + 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/qt/svm-toy-qt ++ ${MAKE} -C python clean ++ ${MAKE} -C java clean ++svm-python: ++ ${MAKE} -C python ++ ++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 ++# install package svm-toy ++ 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 ++ ${MAKE} -C java uninstall ++ rm -f ${BINDIR_INSTALL}/svm-toy-qt ++ diff --git a/libsvm.spec b/libsvm.spec new file mode 100644 index 0000000..b339b71 --- /dev/null +++ b/libsvm.spec @@ -0,0 +1,621 @@ +%define shver 2 +%global libdir_libsvm %{_libdir}/libsvm +%global python3_libsvm_dir %{python3_sitearch}/libsvm +%global maven_group_id tw.edu.ntu.csie +%global pom_file_version 3.17 +%global pom_file_name JPP.%{maven_group_id}-%{name}.pom + +# EL <= 6 does not have enable_maven +%if 0%{?rhel} != 0 && 0%{?rhel} <= 6 +%global java_dependency java +%ifarch ppc64 +%bcond_with java +%else +%bcond_without java +%endif +%global cpp_std c++0x +%else +%define java_dependency java-headless +%bcond_without java +%bcond_without maven +%global cpp_std c++11 +%endif + + +Name: libsvm +Version: 3.23 +Release: 7%{?dist} +Summary: A Library for Support Vector Machines + +License: BSD +URL: http://www.csie.ntu.edu.tw/~cjlin/libsvm/ +Source0: http://www.csie.ntu.edu.tw/~cjlin/libsvm/%{name}-%{version}.tar.gz +Source1: http://www.csie.ntu.edu.tw/~cjlin/libsvm/log +Source2: http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf +Source4: libsvm-svm-toy-qt.desktop +Source5: LibSVM-svm-toy-48.png +Source6: http://central.maven.org/maven2/tw/edu/ntu/csie/libsvm/%{pom_file_version}/libsvm-%{pom_file_version}.pom +Patch0: %{name}.packageMain.patch +Patch2: %{name}.javaDir.patch +Patch4: %{name}.toolsDir.patch +Patch5: %{name}.svm-toy-qt5.patch +BuildRequires: grep + +%description +LIBSVM is an integrated software for support vector classification, +(C-SVC, nu-SVC ), regression (epsilon-SVR, nu-SVR) and distribution +estimation (one-class SVM ). It supports multi-class classification. + +%package devel +Summary: Header file, object file, and source files of libsvm in C, C++ and Java +BuildRequires: glibc-devel gawk +Requires: %{name} = %{version}-%{release} + +%description devel +Header file, object file of libsvm in C, C++ and Java. +Install this package if you want to develop programs with libsvm. + +%package -n python3-%{name} +%{?python_provide:%python_provide python3-%{name}} +Summary: Python3 tools and interfaces for libsvm +BuildRequires: python3-devel gawk +#gnuplot is required by easy.py +Requires: %{name} = %{version}-%{release} +Requires: gnuplot + +%description -n python3-%{name} +Python3 tools and interfaces for libsvm. +Install this package if you want to develop +programs with libsvm in Python3. + +%if %{with java} +%package java +Summary: Java tools and interfaces for libsvm +BuildRequires: java-devel >= 1.7.0 +BuildRequires: jpackage-utils +%if %{with maven} +BuildRequires: maven-local +%endif +Requires: %{java_dependency} >= 1.7.0 +Requires: jpackage-utils +Requires: %{name} = %{version}-%{release} + +%description java +Java tools and interfaces for libsvm. +Install this package if you want to develop +programs with libsvm in Java. + +%package javadoc +Summary: Javadoc for libsvm +BuildRequires: java-devel >= 1.7.0 +BuildRequires: jpackage-utils +BuildArch: noarch +Requires: %{name}-java = %{version}-%{release} + +%description javadoc +Javadoc for libsvm +%endif + +%package svm-toy-qt +Summary: QT version of svm-toy (libsvm demonstration program) +BuildRequires: desktop-file-utils +BuildRequires: pkgconfig + +BuildRequires: qt5-qtbase-devel +Requires: qt5-qtbase +Requires: %{name} = %{version}-%{release} + +%description svm-toy-qt +svm-toy is a libsvm demonstration program which has a qt-GUI to +display the derived separating hyperplane. + +%prep +%setup -q +%patch0 -p0 -b .packageMain +%patch2 -p0 -b .javaDir +%patch4 -p0 -b .toolsDir +%patch5 -p0 -b .svm-toy-qt5 +cp %{SOURCE1} ChangeLog +cp %{SOURCE2} . +cp %{SOURCE4} . +cp %{SOURCE5} %{name}-svm-toy-qt-48.png + +# Fix the error: narrowing conversion +sed -i.narrowing -e "s|{x,y,v}|{x,y,(signed char) v}|" svm-toy/qt/svm-toy.cpp +sed -i -e "s|{x,y,current_value}|{x,y,(signed char) current_value}|" svm-toy/qt/svm-toy.cpp +sed -i -e "s|(double)event->y()/YLEN, current_value|(double)event->y()/YLEN,(signed char) current_value|" svm-toy/qt/svm-toy.cpp + +%if %{with maven} +# Update the POM file, which is stuck on version 3.17 +# pom_xpath_set does not work in rpm-4.11.1 +# as it generated something like +# +# +# 3.20 +# +# +# +%{__sed} -e 's/%{pom_file_version}/%{version}/' %{SOURCE6} > %{name}.pom +%{__sed} -i 's|http://www.csie.ntu.edu.tw/~cjlin/cgi-bin/libsvm.cgi?+http://www.csie.ntu.edu.tw/~cjlin/libsvm+tar.gz|https://github.com/cjlin1/libsvm|' %{name}.pom +%{__sed} -i 's|http://www.csie.ntu.edu.tw/~cjlin/cgi-bin/libsvm.cgi?+http://www.csie.ntu.edu.tw/~cjlin/libsvm+tar.gz|scm:git:https://github.com/cjlin1/libsvm.git|' %{name}.pom + +%mvn_file %{maven_group_id}:%{name} %{maven_group_id}/%{name} +%endif + +%build +%{__sed} -i 's/\r//' FAQ.html +%{__sed} -i 's/\r//' ChangeLog +make all RPM_CFLAGS="$RPM_OPT_FLAGS" LIBDIR="%{_libdir}" CPP_STD="%{cpp_std}" +%if %{with java} +make -C java all javadoc +%endif +mv python/README python/README-Python +mv tools/README tools/README-Tools +cp README java/README-Java +cp README svm-toy/qt + +%if %{with maven} +%mvn_artifact %{name}.pom java/%{name}.jar +%endif + +%install +rm -rf %{buildroot} +make install DESTDIR=%{buildroot} LIBDIR=%{_libdir} LIBSVM_VER="%{version}" CPP_STD="%{cpp_std}" +mkdir -p %{buildroot}/%{_datadir}/icons/hicolor/48x48/apps/ +cp %{name}-svm-toy-qt-48.png %{buildroot}/%{_datadir}/icons/hicolor/48x48/apps/ +mkdir -p %{buildroot}/%{_datadir}/applications +cp %{name}-svm-toy-qt.desktop %{buildroot}/%{_datadir}/applications + +%__ln_s %{name}.so.%{shver} %{buildroot}/%{_libdir}/%{name}.so + +mkdir -p %{buildroot}/%{python3_libsvm_dir} +echo -e "# This file is not in the original libsvm tarball, but added for convenience of import libsvm.\n\ +# This file is released under BSD license, just like the rest of the package.\n"\ + > %{buildroot}/%{python3_libsvm_dir}/__init__.py +install -p -m 755 tools/*.py %{buildroot}/%{python3_libsvm_dir} +install -p -m 755 python/*.py %{buildroot}/%{python3_libsvm_dir} +echo 'libsvm' > %{buildroot}/%{python3_sitearch}/libsvm.pth +for p in %{buildroot}%{python3_libsvm_dir}/*.py;do + sed -i -e 's|#!/usr/bin/env python|#!%{__python3}|' $p +done +cd tools +for p in *.py; do + ln -s %{python3_libsvm_dir}/$p %{buildroot}/%{_bindir}/svm-$p +done +cd - + +# Java +%if %{with java} +make -C java install JAVA_TARGET_DIR="%{buildroot}/%{_javadir}" +mkdir -p %{buildroot}/%{_javadocdir}/%{name} +cp -p -R java/docs/* %{buildroot}/%{_javadocdir}/%{name} +%endif + +%if %{with maven} +%mvn_install +%endif + +# Desktop files +desktop-file-install --delete-original \ + --dir=%{buildroot}%{_datadir}/applications \ + %{buildroot}/%{_datadir}/applications/%{name}-svm-toy-qt.desktop + + +%ldconfig_scriptlets + +%files +%doc COPYRIGHT FAQ.html ChangeLog guide.pdf +%{_bindir}/svm-predict +%{_bindir}/svm-scale +%{_bindir}/svm-train +%dir %{_datadir}/%{name} +%{_datadir}/%{name}/examples +%{_libdir}/%{name}.so.%{shver} + +%files devel +%doc README +%{_includedir}/%{name}/ +%{_libdir}/%{name}.so + +%files -n python3-%{name} +%doc python/README-Python tools/README-Tools +%{python3_libsvm_dir} +%{_bindir}/svm-*.py +%{python3_sitearch}/libsvm.pth + +%if %{with java} +%if %{with maven} +%files java -f .mfiles +%else +%files java +%endif +%defattr(-,root,root,-) +%doc java/README-Java java/test_applet.html +%{_javadir}/%{name}.jar +%if %{with maven} +%{_javadir}/%{maven_group_id}/%{name}.jar +%endif +%files javadoc +%{_javadocdir}/%{name} +%endif + +%files svm-toy-qt +%doc svm-toy/qt/README +%{_bindir}/svm-toy-qt +%{_datadir}/icons/hicolor/48x48/apps/%{name}-svm-toy-qt-48.png +%{_datadir}/applications/*%{name}-svm-toy-qt.desktop + +%changelog +* Mon Aug 19 2019 Miro Hrončok - 3.23-7 +- Rebuilt for Python 3.8 + +* Thu Jul 25 2019 Fedora Release Engineering - 3.23-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Feb 01 2019 Fedora Release Engineering - 3.23-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Tue Jan 15 2019 Miro Hrončok - 3.23-4 +- Remove Python 2 subpackage (#1655696) + +* Tue Aug 28 2018 Zbigniew Jędrzejewski-Szmek - 3.23-3 +- Fix Provides/Obsoletes for old python subpackage + +* Thu Jul 26 2018 Ding-Yi Chen - 3.23-2 +- Add -javadoc subpackage +- Use macro rhel instead of el_version +- qt5 in EL should be qt5-qtbase + +* Thu Jul 19 2018 Ding-Yi Chen - 3.23-1 +- Upstream update to 3.23 + + add more digits of predicted file, model file, scaled data and data + from matlab libsvmwrite: to .17g + + svm-toy-gtk is no longer supported + + Dependency qt is updated to qt5 +- probability output: + + if 2 classes, directly output the predited probabilities + rather than run the iterative algorithms for multi-class situations +- java: + + libsvm.jar generated by java 1.7 rather than 1.5 + + change the use of "_" in svm.java, which won't be allowed in later java +- python: + + split to python2 and python3 + +* Fri Jul 13 2018 Fedora Release Engineering - 3.21-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Feb 07 2018 Fedora Release Engineering - 3.21-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek - 3.21-6 +- Python 2 binary package renamed to python2-libsvm + See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3 + +* Thu Aug 03 2017 Fedora Release Engineering - 3.21-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 3.21-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 10 2017 Fedora Release Engineering - 3.21-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Mon Nov 07 2016 Than Ngo - 3.21-2 +- bz#1392340, enable java part on ppc64 + +* Wed Jul 20 2016 Ding-Yi Chen - 3.21-1 +- Upstream update to 3.21 +- Fixes Bug 1277450 - libsvm(-java) remove versioned jars from {_javadir} + +* Wed Jun 17 2015 Fedora Release Engineering - 3.20-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sat May 02 2015 Kalev Lember - 3.20-4 +- Rebuilt for GCC 5 C++11 ABI change + +* Tue Jan 20 2015 Ding-Yi Chen - 3.20-3 +- Fix for RHEL6 + +* Tue Jan 20 2015 Ding-Yi Chen - 3.20-2 +- Upstream update to 3.20 + +* Fri Dec 19 2014 Jerry James - 3.18-7 +- Install maven POM and depmaps (bz 1175898) + +* Sun Aug 17 2014 Fedora Release Engineering - 3.18-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Thu Jul 10 2014 Richard Hughes - 3.18-5 +- Do not use vendor prefixes on Fedora + +* Sat Jun 07 2014 Fedora Release Engineering - 3.18-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Mon Apr 28 2014 Ding-Yi Chen - 3.18-3 +- EPEL5 desktop files need vendor. + +* Mon Apr 28 2014 Ding-Yi Chen - 3.18-2 +- Fixed Bug 1090844 - libsvm-java has unresolved dependencies on epel6 testing + +* Tue Apr 22 2014 Ding-Yi Chen - 3.18-1 +- Upstream update to 3.18 +- svm.cpp and svm-scale.c: check return values of fscanf +- matlab interface: Makefile no longer handles octave + because make.m should be used + +* Fri Mar 28 2014 Michael Simacek - 3.17-4 +- Use Requires: java-headless rebuild (#1067528) + +* Sat Aug 03 2013 Fedora Release Engineering - 3.17-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Thu Apr 25 2013 Jon Ciesla - 3.17-2 +- Drop desktop vendor tag. + +* Sat Apr 13 2013 Ding-Yi Chen - 3.17-1 +- Upstream update from 3.13 to 3.17 + svm.c and svm.h: + add sv_indices in model structure, so users can know which training instances are SVs + two library funs svm_get_sv_indices and svm_get_nr_sv are added + max_iter warning moved to stderr so -q won't disable it + svm-train.c: + usage modified to stress that multiclass is supported + svm-predict.c: + add -q for svm-predict + svm-scale.c: + issue a warning if feature indices do not start from 1 + issue a warning for inconsistency between scaling-factor file and input file + tools: + subset.py is written to be much faster + fix the bug of not freeing sv_indices + tools/grid.py: + -null option: allow the search on C or g only + -resume option: resume tasks from an earlier run + can be called as a python module + python interface: + local package searched first + libsvm options can be str or list + param.show() becomes print(param) + tools/: + easy.py fails in 3.15. Fix it by modifying grid.py + svm.cpp: + if class labels are 1 and -1, ensure labels[0] = 1 and labels[1] = -1 + initialize model->sv_indices as null in svm_load_model + if nr_fold > # data, change nr_fold to be # data and ro leave-one-out cv + matlab interface: + handle the problem where output variables are not specified + +* Thu Feb 14 2013 Fedora Release Engineering - 3.12-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Thu Jul 19 2012 Fedora Release Engineering - 3.12-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Wed Apr 04 2012 Ding-Yi Chen - 3.12-1 +- Upstream update: + svm-toy: support loading/saving of regression data + python interface: handle the issue of the "0th" feature if using lists + tools/grid.py: not redrawing contour if c,g, cv doesn't change + add setlocale when saving and loading model so not affected by users' locale + +* Thu Jan 12 2012 Ding-Yi Chen - 3.11-3 +- Fixed Bug 646154 - libsvm-python's pth is not set correctly + +* Fri Jun 17 2011 Ding-Yi Chen - 3.11-1 +- Upstream update: + + Set max number of iterations in the main loop of solvers + + matlab: + new make.m for unix/mac/windows and for matlab/octave + + matlab and python: + fix a problem that decision values returned by svmpredict is empty if number of classes = 1 + +* Fri Jun 17 2011 Ding-Yi Chen - 3.1-2 +- Fix the build error on EL-5 + +* Tue Jun 14 2011 Ding-Yi Chen - 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 - 3.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Tue Dec 14 2010 Ding-Yi Chen - 3.0-2 +- Fixed [Bug 661404] New: Wrong symbolic link libsvm.so + +* Mon Nov 08 2010 Ding-Yi Chen - 3.0-1 +- Fixed the spelling errors of svm-toy-gtk and svm-toy-qt +- Upstream update: + * Move model structure to svm.h + * Two functions for freeing a model (content or the whole model) + * 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 + +* Wed Jul 21 2010 David Malcolm - 2.91-2 +- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild + +* Wed Apr 07 2010 Ding-Yi Chen - 2.91-1 +- Fixed Bug 564887 - FTBFS libsvm-2.90-3.fc13 +- Upstream update: + * completely new python interface using ctype + * new way to set the print_string function + * Java: able to load model from a BufferedReader directly + * fix grid.py so -log2c can be run under python 2.6 or after + +* Thu Nov 05 2009 Ding-Yi Chen - 2.90-2 +- Obsoletes libsvm-java for ppc and ppc64. + +* Wed Nov 04 2009 Ding-Yi Chen - 2.90-1 +- Upstream update to 2.9, change to 2.90 for conveniently update. + + tools/*.py can be run under python 3.0 + + svm_set_quiet() in python interface to disable outputs + + check gamma < 0 + + internal functions to be static + +* Fri Sep 18 2009 Ding-Yi Chen - 2.89-4 +- Fixed [Bug 524108] put libsvm.jar into _javadir + + Move livsvm.jar to _javadir + + Move test_applet.html to _datadir/doc/libsvm- +- Buildrequire changed to java-devel>=1.5.0, jpackage-utils +- Require changed to java>=1.5.0, jpackage-utils + +* Wed Sep 16 2009 Ding-Yi Chen - 2.89-3 +- Fix the building for EL-5 + Note that libsvm-java on ppc and ppc64 for EL-5 is excluded, + as java-1.6.0-openjdk-devel for them do not exist yet. +- Change the Java buildrequires from java-sdk to java-1.6.0-openjdk-devel +- Fix [Bug 521194] Python: 'import libsvm' doesn't work. + By adding __init__.py to libsvm_python_dir + +* Sat Jul 25 2009 Fedora Release Engineering - 2.89-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Fri Apr 03 2009 Ding-Yi Chen - 2.89-1 +- Upstream Update to 2.89: + + reduce input/loading time of svm-train/svm-predict by half + + pointer function so users can specify their own outputs + + remove info_flush() + + a extern variable libsvm_version + + svm-train -q option (disable outputs) + + svm-scale: warning if more nonzero produced + + easy.py: popel.communiate() to avoid some deadlock (if lots of + outputs when #classes is large) + +* Mon Nov 10 2008 Ding-Yi Chen - 2.88-2 +- Fix java BuildRequire and Build +- javadoc have been removed because ppc and ppc64 do not have a + suitable package to build javadoc in F-8, nor does javadoc + provide much useful information. + + +* Wed Nov 05 2008 Ding-Yi Chen - 2.88-0 +- Note: + + SO version now follows upstream, i.e. SHVER=1, as upstream start to build shared library now. + Be aware that previously SO version of libsvm.so is libsvm.so.2.86, which looks higher than + the current SO version libsvm.so.1. + + Replaced java-1.5.0-gcj-devel with java-1.6.0-openjdk-devel. + + java sub-package now have javadoc. +- Upstream update + + From 2.87: 2008/10/13 + * svm-toy/qt updated to qt4 from qt3 + * fix a bug in svm-scale.c + * max feature index of -r file is considered + * Makefile: add make lib; add -Wconversion and -fPIC in Makefile + * Add "rb" in load_model of svm.cpp + * Simplify do_shrinking of svm.cpp + * Change the order of loops in reconstrict_gradient of svm.cpp + * save the number of kernel evaluations + * Add python/setup.py + + From 2.88: 2008/10/30 + * better gradient reconstructions + * issue a warning when -h 0 may be faster + +* Tue Apr 29 2008 Ding-Yi Chen - 2.86-13 +- Fix svm-toy-qt clear button does not clear. + (from Hsiang-Fu Yu in National Taiwan University) + + +* Thu Apr 3 2008 Ding-Yi Chen - 2.86-12 +- Correct changelog date + +* Thu Apr 3 2008 Ding-Yi Chen - 2.86-11 +- Fix the Qt path problem + +* Wed Apr 2 2008 Ding-Yi Chen - 2.86-4 +- Support both Qt3 for F8 and earlier, and Qt4 for F9 + +* Tue Apr 1 2008 Ding-Yi Chen - 2.86-0 +- Upstream update to 2.86 + - svm-scale for java + - version number in svm.h and svm.m4 + - rename svmtrain.exe to svm-train.exe + - python: while 1 --> while True, Popen -> call + - show best parameters on the contour of grid.py +- LIBSVM_VER_MAJOR and LIBSVM_VER_MINOR are defined in libsvm.spec instead in + +* Tue Mar 11 2008 Ding-Yi Chen - 2.85-6 +- Fix build error. + +* Mon Mar 10 2008 Ding-Yi Chen - 2.85-5 +- [Bug 436392]: Fix by copy from right place. +- Add desktop files and icons for svm-toy-gtk and svm-toy-qt + +* Mon Feb 11 2008 Ding-Yi Chen - 2.85-4 +- Move gnuplot from BuildRequires to Requires + +* Thu Feb 07 2008 Ding-Yi Chen - 2.85-3 +- Fix linker name (libsvm.so) +- Linked to dynamic libraries + +* Tue Feb 05 2008 Ding-Yi Chen - 2.85-2 +- Fix svm-toy-qt build error + +* Tue Feb 05 2008 Ding-Yi Chen - 2.85-1 +- Fix svm-toy-gtk build error + +* Mon Feb 04 2008 Ding-Yi Chen - 2.85-0 +- Upgrade to 2.85 +- Include guide.pdf in main package +- Change the dependent from eclipse-ecj to java-1.5.0-gcj +- Add svm-toy-gtk +- Add svm-toy-qt + +* Thu Dec 20 2007 Ding-Yi Chen - 2.84-9 +- [Bug 254091] Comment 19 +- Fix python/Makefile + +* Thu Dec 13 2007 Ding-Yi Chen - 2.84-8 +- Fix improper sed. +- Change ldconfig to /sbin/ldconfig +- Add gnuplot dependency for libsvm-python, as tools/easy.py needs it. + +* Mon Dec 03 2007 Ding-Yi Chen - 2.84-7 +- [Bug 254091] Review Request: libsvm - A Library for Support Vector Machines (Comment #12) + +* Wed Sep 26 2007 Ding-Yi Chen - 2.84-6 +- Add defattr to each subpackage +- Move libsvm.so to libsvm + +* Mon Sep 24 2007 Ding-Yi Chen - 2.84-5 +- Split out libsvm-java +- Add libsvm.so + +* Thu Aug 30 2007 Ding-Yi Chen - 2.84-4 +- Refined description. +- Fix the /tmp/python.ver problem + +* Mon Aug 27 2007 Ding-Yi Chen - 2.84-3 +- Fix dependency problem + +* Mon Aug 27 2007 Ding-Yi Chen - 2.84-2 +- Fix mock error +- Support Python 2.4 and Python 2.5 + +* Mon Aug 27 2007 Ding-Yi Chen - 2.84-1 +- Fix rpmlint error +- Move python related files to libsvm-python + +* Fri Aug 17 2007 Ding-Yi Chen - 2.84-0 +- initial packaging + + diff --git a/libsvm.svm-toy-qt5.patch b/libsvm.svm-toy-qt5.patch new file mode 100644 index 0000000..9d589c2 --- /dev/null +++ b/libsvm.svm-toy-qt5.patch @@ -0,0 +1,28 @@ +diff -up ./svm-toy/qt/Makefile.svm-toy-qt5 ./svm-toy/qt/Makefile +--- ./svm-toy/qt/Makefile.svm-toy-qt5 2018-07-16 00:16:58.000000000 +1000 ++++ ./svm-toy/qt/Makefile 2018-07-18 18:10:40.157485623 +1000 +@@ -1,13 +1,14 @@ + # use ``export QT_SELECT=qt5'' in a command window for using qt5 + # may need to adjust the path of header files + CXX? = g++ +-INCLUDE = /usr/include/x86_64-linux-gnu/qt5 +-CFLAGS = -Wall -O3 -I$(INCLUDE) -I$(INCLUDE)/QtWidgets -I$(INCLUDE)/QtGui -I$(INCLUDE)/QtCore -fPIC -std=c++11 ++INCLUDE = /usr/include/qt5 ++CPP_STD ?= c++11 ++CFLAGS = ${RPM_CFLAGS} -I$(INCLUDE) -I$(INCLUDE)/QtWidgets -I$(INCLUDE)/QtGui -I$(INCLUDE)/QtCore -fPIC -std=${CPP_STD} + LIB = -lQt5Widgets -lQt5Gui -lQt5Core +-MOC = /usr/bin/moc ++MOC ?= /usr/bin/moc-qt5 + + svm-toy: svm-toy.cpp svm-toy.moc ../../svm.o +- $(CXX) $(CFLAGS) svm-toy.cpp ../../svm.o -o svm-toy $(LIB) ++ $(CXX) $(CFLAGS) svm-toy.cpp ../../svm.o -o svm-toy-qt $(LIB) + + svm-toy.moc: svm-toy.cpp + $(MOC) svm-toy.cpp -o svm-toy.moc +@@ -16,4 +17,4 @@ svm-toy.moc: svm-toy.cpp + make -C ../.. svm.o + + clean: +- rm -f *~ svm-toy svm-toy.moc ../../svm.o ++ rm -f *~ svm-toy-qt svm-toy.moc ../../svm.o diff --git a/libsvm.toolsDir.patch b/libsvm.toolsDir.patch new file mode 100644 index 0000000..b0375b9 --- /dev/null +++ b/libsvm.toolsDir.patch @@ -0,0 +1,30 @@ +diff -up ./tools/easy.py.toolsDir ./tools/easy.py +--- ./tools/easy.py.toolsDir 2013-03-31 17:06:49.000000000 +1000 ++++ ./tools/easy.py 2013-04-13 23:17:53.399526910 +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 +diff -up ./tools/grid.py.toolsDir ./tools/grid.py +--- ./tools/grid.py.toolsDir 2013-03-31 17:06:50.000000000 +1000 ++++ ./tools/grid.py 2013-04-13 23:18:53.964522769 +1000 +@@ -18,7 +18,7 @@ class GridOption: + def __init__(self, dataset_pathname, options): + dirname = os.path.dirname(__file__) + if sys.platform != 'win32': +- self.svmtrain_pathname = os.path.join(dirname, '../svm-train') ++ self.svmtrain_pathname = '/usr/bin/svm-train' + self.gnuplot_pathname = '/usr/bin/gnuplot' + else: + # example for windows diff --git a/log b/log new file mode 100644 index 0000000..8531e06 --- /dev/null +++ b/log @@ -0,0 +1,308 @@ +1.04: 2000/6/17, add "load" button to svm-toy. README +file updated. + +2.0: 2000/8, major updates. Include nu-svm, one-class svm, and svr + +2.01: 2000/9/22, correct the calculation of obj value and number of bounded support vectors + +2.02: 2000/9/29, replace b^2/2 newsvm to regular nu svm. + +2.03: 2000/10/24 some improvements on the computational speed + +2.1: 2000/12/19 Java version included, regression demonstrated in svm-toy + +2.2: 2001/1/16 multi-class classification, nu-SVR, remove epsilon_a + +2.3: 2001/3/15 c+-, cross validation, fix some minor bugs + +2.31: 2001/4/12 fix one bug on one-class SVM, use float for Cache + +2.32: 2001/9/23 + 1. max line number of svm-scale now dynamic + 2. gcc 3.0 problem: now g++ always used + 3. java code in a "libsvm" package + 4. avoid a problem when compiled with Borland C++ builder + +2.33: 2001/12/1 + Python interface added + +2.34: 2002/6/15 + Add the subroutine svm_check_parameter in svm.cpp + --> better error handling + fix bug of python interface for handling different weights + fix bug of cross validation in svm-train.c + +2.35: 2002/6/16 + libsvm.jar was not compiled correctly in 2.34 + +2.36: 2002/8/4 + grid.py added: contour plot of CV accuracy + fix several bugs + +2.4: 2003/4/1 + svm.cpp + non-psd kernel using max(...,0) in svm.cpp + python interface + python interface bug (nu-svm) + grid.py + -log2c and -log2c for grid.py + output current best + coarse grid as default (2) + ssh for grid.py + improvements of scaling + +2.5: 2003/11/13 + subroutines for accessing decision values and number of labels. + for svm.cpp, java, and python interface + fix bug of svm-scale.c (about -r and -s factors) + use fscanf but not sscanf in svm-predict.c (faster) + makefile for windows + add "using namespace std;" in some .java files + improve easy.py: output cv rate, error messages printed + better checking + better python interface example svm_test.py + and some minor updates + +2.6: 2004/04/01 + Probability estimates for classification/regression + Python interface: use swig 1.3 instead of 1.1 + Cross validation becomes a library subroutine + A few minor corrections: (not completely listed) + more interface functions such as getting svm_type + print nu only when Cp=Cn + floor division in python interface + +2.7: 2004/11/10 + Stratified cross validation + Better faq + Scaling: support storing the factor of y + A few minor updates: + class QMatrix added + improve the use of easy.py and grid.py on windows + grid.py: same CV and same g: use smaller C + sparse input for python interface + working set selection: < to <= + +2.71: 2004/11/20 + fix a java bug introduced from 2.6 to 2.7 + +2.8: 2005/04/01 + new working set selection via second order information + fix minor changes/corrections: + problem when cache size less than two kernel columns + -v #data -> stratified CV is not loo -> ensure loo is done + problem of typing "svm-train -c" only + problem of "svm-train -n 1 -s 3 ..." + python interface makefile: -fPIC for 32/64bit + color change in svmtoy + makefile in building QT svmtoy + +2.81: 2005/11/20 + add a python script subset.py for subsampling + slightly modify the working set so it's exact the same as the paper + default cache size to 100 MB + +2.82: 2006/04/01 + precomputed kernel + directly implement a fast powi() function + poly degree double to int + minor corrections: + java code for CV +2.83: 2006/11/17 + Fix the bug of -t 3 + better checking load/save in svm-train.c/svm-predict.c/svm.cpp + remove redundant var pos in svm_predict_values (thanks to Albert Strasheim) + Better descriptions in README for the precomputed kernel + +2.84: 2007/04/01 + Improve the shrinking code: faster for some cases + Code more 64-bit friendly: allow large -m + In Solver, b is replaced by p + Subroutine max_violating_pair removed. Things are directly + written in do_shrinking(). + Modify do_shrinking() so variable names are the same as libsvm + document + +2.85: 2007/11/6 + fix minor memory leak in svm-predict.c + add tools/checkdata.py + java to 1.5 + Makefile: CXX? + Makefile.win: avoid warning from .net 2005 + avoid warning of gcc 4.2 + sigma 0.001 to 1e-12; in Newton direction of prob output + 2 * (long int) l avoid warning of old Visual C++ + grid.py: avoid gnuplot problem on windows + +2.86: 2008/04/01 + svm-scale for java + version number in svm.h and svm.m4 + rename svmtrain.exe to svm-train.exe + python: while 1 --> while True, Popen -> call + show best parameters on the contour of grid.py + +2.87: 2008/10/13 + svm-toy/qt updated to qt4 from qt3 + fix a bug in svm-scale.c + max feature index of -r file is considered + Makefile: add make lib; add -Wconversion and -fPIC in Makefile + Add "rb" in load_model of svm.cpp + Simplify do_shrinking of svm.cpp + Change the order of loops in reconstrict_gradient of svm.cpp + save the number of kernel evaluations + Add python/setup.py + +2.88: 2008/10/30 + better gradient reconstructions + issue a warning when -h 0 may be faster + +2.89: 2009/04/01 + reduce input/loading time of svm-train/svm-predict by half + pointer function so users can specify their own outputs + remove info_flush() + a extern variable libsvm_version + svm-train -q option (disable outputs) + svm-scale: warning if more nonzero produced + easy.py: popel.communiate() to avoid some deadlock (if lots of + outputs when #classes is large) + +2.9: 2009/11/1 + tools/*.py can be run under python 3.0 + svm_set_quiet() in python interface to disable outputs + check gamma < 0 + internal functions to be static + +2.91: 2010/04/01 + completely new python interface using ctype + new way to set the print_string function + Java: able to load model from a BufferedReader directly + fix grid.py so -log2c can be run under python 2.6 or after + +3.0: 2010/09/13 + Move model structure to svm.h + Two functions for freeing a model (content or the whole model) + 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: +i 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 + +3.11: 2011/11/5 + Set max number of iterations in the main loop of solvers + matlab: + new make.m for unix/mac/windows and for matlab/octave + matlab and python: + fix a problem that decision values returned by svmpredict is empty if number of classes = 1 + +3.12: 2012/04/01 + svm-toy: support loading/saving of regression data + python interface: handle the issue of the "0th" feature if using lists + tools/grid.py: not redrawing contour if c,g, cv doesn't change + add setlocale when saving and loading model so not affected by users' locale + +3.13: 2012/11/06 + svm.c and svm.h: + add sv_indices in model structure, so users can know which training instances are SVs + two library funs svm_get_sv_indices and svm_get_nr_sv are added + max_iter warning moved to stderr so -q won't disable it + svm-train.c: + usage modified to stress that multiclass is supported + svm-predict.c: + add -q for svm-predict + svm-scale.c: + issue a warning if feature indices do not start from 1 + issue a warning for inconsistency between scaling-factor file and input file + tools: + subset.py is written to be much faster + +3.14: 2012/11/16 + fix a bug: we didn't re-compile windows binary after updating svm.def + +3.15: 2013/1/27 + fix the bug of not freeing sv_indices + tools/grid.py: + -null option: allow the search on C or g only + -resume option: resume tasks from an earlier run + can be called as a python module + python interface: + local package searched first + libsvm options can be str or list + param.show() becomes print(param) + +3.16: 2013/1/27 + tools/: + easy.py fails in 3.15. Fix it by modifying grid.py + +3.17: 2013/04/01 + svm.cpp: + if class labels are 1 and -1, ensure labels[0] = 1 and labels[1] = -1 + initialize model->sv_indices as null in svm_load_model + if nr_fold > # data, change nr_fold to be # data and ro leave-one-out cv + matlab interface: + handle the problem where output variables are not specified + +3.18: 2014/04/01 + svm.cpp and svm-scale.c: + check return values of fscanf + matlab interface: + Makefile no longer handles octave because make.m should be used + +3.19: 2014/10/27 + svm.cpp: + use size_t rather than long int in some places for 64-bit windows support + matlab interface: + use size_t and mwIndex to avoid type conversions + python interface: + use __all__ + +3.20: 2014/11/15 + matlab interface: + fix a bug in libsvmwrite.c introduced in 3.19 (cannot run on windows) + +3.21: 2015/12/14 + pre-built windows exe files changed from 32 to 64 bit + matlab interface: + now use #include "../svm.h" + fix some minor issues in make.m of matlab interface + +3.22: 2016/12/22 + probability output: + if 2 classes, directly output the predited probabilities + rather than run the iterative algorithms for multi-class situations + java: + libsvm.jar generated by java 1.7 rather than 1.5 + change the use of "_" in svm.java, which won't be allowed in later java + +3.23: 2018/7/15 + add more digits of predicted file, model file, scaled data and data from matlab libsvmwrite: to %.17g + revise svm-scale.c so features in test data that do not appear in training data are scaled to zero. + remove unnecessary tab or space in all files + python interface: + add Scipy support + add scaling (csr_find_scale_param and csr_scale functions) + put some utility functions identical in LIBLINEAR to commonutil.py. + functions for scaling are put in commonutil.py. + sort column indices of csr matrix before training as feature indices must be ascending + convert Qt version of svm-toy from Qt4 to Qt5 + remove gtk svm-toy because we stop maintaining this tool + minor improvement of descriptions in README + \ No newline at end of file diff --git a/sources b/sources index e69de29..77237b8 100644 --- a/sources +++ b/sources @@ -0,0 +1,2 @@ +SHA512 (guide.pdf) = 5e97a7b76ad4217d7987c5c07f0420e780b61b82fb88fe0e6015681fabb5078980b280cec4a0a7208ea225b9fa84de878295039f4513df26f0d404a21812e44c +SHA512 (libsvm-3.23.tar.gz) = 15e1a22a9075d3910414b0519b2ce8a93edc42be76a034d31435dc9463b08fbc510b806a3e6f64abff4ba3da771582436182e4e7d658ed2e54f311bc8cdbc121