fa71eaa
1.04: 2000/6/17, add "load" button to svm-toy. README 
fa71eaa
file updated.
fa71eaa

fa71eaa
2.0: 2000/8, major updates. Include nu-svm, one-class svm, and svr
fa71eaa

fa71eaa
2.01: 2000/9/22, correct the calculation of obj value and number of bounded support vectors
fa71eaa

fa71eaa
2.02: 2000/9/29, replace b^2/2 newsvm to regular nu svm.
fa71eaa

fa71eaa
2.03: 2000/10/24 some improvements on the computational speed
fa71eaa

fa71eaa
2.1: 2000/12/19 Java version included, regression demonstrated in svm-toy
fa71eaa

fa71eaa
2.2: 2001/1/16 multi-class classification, nu-SVR, remove epsilon_a
fa71eaa

fa71eaa
2.3: 2001/3/15 c+-, cross validation, fix some minor bugs
fa71eaa

fa71eaa
2.31: 2001/4/12 fix one bug on one-class SVM, use float for Cache
fa71eaa

fa71eaa
2.32: 2001/9/23 
fa71eaa
	1. max line number of svm-scale now dynamic
fa71eaa
	2. gcc 3.0 problem: now g++ always used
fa71eaa
	3. java code in a "libsvm" package
fa71eaa
	4. avoid a problem when compiled with Borland C++ builder
fa71eaa

fa71eaa
2.33: 2001/12/1
fa71eaa
	Python interface added
fa71eaa

fa71eaa
2.34: 2002/6/15
fa71eaa
	Add the subroutine svm_check_parameter in svm.cpp
fa71eaa
	--> better error handling
fa71eaa
	fix bug of python interface for handling different weights
fa71eaa
	fix bug of cross validation in svm-train.c
fa71eaa

fa71eaa
2.35: 2002/6/16
fa71eaa
	libsvm.jar was not compiled correctly in 2.34
fa71eaa

fa71eaa
2.36: 2002/8/4
fa71eaa
	grid.py added: contour plot of CV accuracy
fa71eaa
	fix several bugs
fa71eaa

fa71eaa
2.4:  2003/4/1
fa71eaa
	svm.cpp
fa71eaa
		non-psd kernel using max(...,0) in svm.cpp
fa71eaa
	python interface
fa71eaa
		python interface bug (nu-svm)
fa71eaa
	grid.py
fa71eaa
		-log2c and -log2c for grid.py
fa71eaa
	        output current best
fa71eaa
		coarse grid as default (2)
fa71eaa
		ssh for grid.py 
fa71eaa
	improvements of scaling 
fa71eaa

fa71eaa
2.5: 2003/11/13
fa71eaa
	subroutines for accessing decision values and number of labels. 
fa71eaa
		for svm.cpp, java, and  python interface
fa71eaa
	fix bug of svm-scale.c (about -r and -s factors)
fa71eaa
	use fscanf but not sscanf in svm-predict.c (faster)
fa71eaa
	makefile for windows
fa71eaa
	add "using namespace std;" in some .java files
fa71eaa
	improve easy.py: output cv rate, error messages printed
fa71eaa
		better checking
fa71eaa
	better python interface example svm_test.py
fa71eaa
	and some minor updates
fa71eaa

fa71eaa
2.6: 2004/04/01
fa71eaa
	Probability estimates for classification/regression 
fa71eaa
	Python interface: use swig 1.3 instead of 1.1
fa71eaa
	Cross validation becomes a library subroutine
fa71eaa
	A few minor corrections: (not completely listed)
fa71eaa
		more interface functions such as getting svm_type
fa71eaa
		print nu only when Cp=Cn
fa71eaa
		floor division in python interface
fa71eaa

fa71eaa
2.7: 2004/11/10
fa71eaa
	Stratified cross validation
fa71eaa
	Better faq
fa71eaa
	Scaling: support storing the factor of y
fa71eaa
	A few minor updates:
fa71eaa
		class QMatrix added
fa71eaa
		improve the use of easy.py and grid.py on windows 
fa71eaa
		grid.py: same CV and same g: use smaller C
fa71eaa
		sparse input for python interface
fa71eaa
		working set selection: < to <=
fa71eaa

fa71eaa
2.71: 2004/11/20
fa71eaa
	fix a java bug introduced from 2.6 to 2.7
fa71eaa

fa71eaa
2.8: 2005/04/01
fa71eaa
	new working set selection via second order information
fa71eaa
	fix minor changes/corrections:
fa71eaa
		problem when cache size less than two kernel columns
fa71eaa
		-v #data -> stratified CV is not loo -> ensure loo is done
fa71eaa
		problem of typing "svm-train -c" only
fa71eaa
		problem of "svm-train -n 1 -s 3 ..."
fa71eaa
		python interface makefile: -fPIC for 32/64bit
fa71eaa
		color change in svmtoy
fa71eaa
		makefile in building QT svmtoy
fa71eaa

fa71eaa
2.81: 2005/11/20
fa71eaa
	add a python script subset.py for subsampling
fa71eaa
	slightly modify the working set so it's exact the same as the paper
fa71eaa
	default cache size to 100 MB
fa71eaa

fa71eaa
2.82: 2006/04/01
fa71eaa
	precomputed kernel
fa71eaa
	directly implement a fast powi() function
fa71eaa
	poly degree double to int
fa71eaa
	minor corrections:
fa71eaa
		java code for CV
fa71eaa
2.83: 2006/11/17
fa71eaa
	Fix the bug of -t 3
fa71eaa
	better checking load/save in svm-train.c/svm-predict.c/svm.cpp
fa71eaa
	remove redundant var pos in svm_predict_values (thanks to Albert Strasheim)
fa71eaa
	Better descriptions in README for the precomputed kernel
fa71eaa

fa71eaa
2.84: 2007/04/01
fa71eaa
	Improve the shrinking code: faster for some cases
fa71eaa
	Code more 64-bit friendly: allow large -m
fa71eaa
	In Solver, b is replaced by p
fa71eaa
	Subroutine max_violating_pair removed. Things are directly
fa71eaa
	written in do_shrinking().
fa71eaa
	Modify do_shrinking() so variable names are the same as libsvm
fa71eaa
	document
fa71eaa

085b892
2.85: 2007/11/6
085b892
	fix minor memory leak in svm-predict.c
085b892
	add tools/checkdata.py 
085b892
	java to 1.5
085b892
	Makefile: CXX?
085b892
	Makefile.win: avoid warning from .net 2005
085b892
	avoid warning of gcc 4.2
085b892
	sigma 0.001 to 1e-12; in Newton direction of prob output
085b892
	2 * (long int) l avoid warning of old Visual C++
04c3d61
	grid.py: avoid gnuplot problem on windows
04c3d61

04c3d61
2.86: 2008/04/01
04c3d61
	svm-scale for java
04c3d61
	version number in svm.h and svm.m4
04c3d61
	rename svmtrain.exe to svm-train.exe 
04c3d61
	python: while 1 --> while True, Popen -> call
af6ee55
	show best parameters on the contour of grid.py
af6ee55

af6ee55
2.87: 2008/10/13
af6ee55
	svm-toy/qt updated to qt4 from qt3
af6ee55
	fix a bug in svm-scale.c
af6ee55
		max feature index of -r file is considered
af6ee55
	Makefile: add make lib; add -Wconversion and -fPIC in Makefile
af6ee55
	Add "rb" in load_model of svm.cpp
af6ee55
	Simplify do_shrinking of svm.cpp
af6ee55
	Change the order of loops in reconstrict_gradient of svm.cpp
af6ee55
		save the number of kernel evaluations
af6ee55
	Add python/setup.py
af6ee55

af6ee55
2.88: 2008/10/30
af6ee55
	better gradient reconstructions
af6ee55
	issue a warning	when -h 0 may be faster
af6ee55

af6ee55
2.89: 2009/04/01
a27d7fe
	reduce input/loading time of svm-train/svm-predict by half
a27d7fe
	pointer function so users can specify their own outputs
a27d7fe
	remove info_flush() 
a27d7fe
	a extern variable libsvm_version
a27d7fe
	svm-train -q option (disable outputs)
a27d7fe
	svm-scale: warning if more nonzero produced
a27d7fe
	easy.py: popel.communiate() to avoid some deadlock (if lots of
a27d7fe
		outputs when #classes is large)
a27d7fe

fc43a23
2.9: 2009/11/1
a27d7fe
	tools/*.py can be run under python 3.0
a27d7fe
	svm_set_quiet() in python interface to disable outputs
a27d7fe
	check gamma < 0
fc43a23
	internal functions to be static
fc43a23

fc43a23
2.91: 2010/04/01
fc43a23
	completely new python interface using ctype
fc43a23
	new way to set the print_string function
fc43a23
	Java: able to load model from a BufferedReader directly
fc43a23
	fix grid.py so -log2c can be run under python 2.6 or after
fc43a23

56c7459
3.0: 2010/09/13
56c7459
	Move model structure to svm.h
56c7459
	Two functions for freeing a model (content or the whole model)
56c7459
	QD from Qfloat to double (better precision because SSE on 64-bit machines less accurate than i387 on 32-bit
56c7459
	exit status for checkdata.py 
56c7459
	old python interface (swig) is removed
921d062

921d062
3.1: 2011/04/01
921d062
	MATLAB interface:
921d062
		Merge matlab interface to core libsvm
921d062
		Using mexPrintf() when calling info() in MATLAB interface.
921d062
		Both 32- and 64-bit windows binary files are provided
921d062
	Java:
921d062
		Math.random is replaced by Random in java interface
921d062
	Python interface:
0b558ee
i		subroutines to get SVs 
921d062
		relative path to load *.dll and *.so
921d062
	svm.cpp: 
921d062
		null pointer check before release memory in svm_free_model_content()
921d062
		svm_destroy_model() no longer supported.
921d062
	svm-train.c and svm-predict.c
921d062
		Better format check in reading data labels
921d062
	svm-toy:
921d062
		fix the svm_toy dialog path
921d062
	tools:
921d062
		Using new string formatting/encoding in tools/*.py
921d062
		clearer png output, fix grid.py legend
921d062

0b558ee
3.11: 2011/11/5
0b558ee
	Set max number of iterations in the main loop of solvers
0b558ee
	matlab:
0b558ee
		new make.m for unix/mac/windows and for matlab/octave
0b558ee
	matlab and python:
0b558ee
		fix a problem that decision values returned by svmpredict is empty if number of classes = 1
c8f3ad5
	
c8f3ad5
3.12: 2012/04/01
c8f3ad5
      svm-toy: support loading/saving of regression data
c8f3ad5
      python interface: handle the issue of the "0th" feature if using lists
c8f3ad5
      tools/grid.py: not redrawing contour if c,g, cv doesn't change
0f3e08b
      add setlocale when saving and loading model so not affected by users' locale
0f3e08b

0f3e08b
3.13: 2012/11/06
0f3e08b
      svm.c and svm.h:
0f3e08b
            add sv_indices in model structure, so users can know which training instances are SVs
0f3e08b
	    two library funs svm_get_sv_indices and svm_get_nr_sv are added
0f3e08b
	    max_iter warning moved to stderr so -q won't disable it
0f3e08b
      svm-train.c:
0f3e08b
            usage modified to stress that multiclass is supported
0f3e08b
      svm-predict.c:
0f3e08b
            add -q for svm-predict
0f3e08b
      svm-scale.c:
0f3e08b
	    issue a warning if feature indices do not start from 1
0f3e08b
	    issue a warning for inconsistency between scaling-factor file and input file
0f3e08b
      tools:
0f3e08b
	    subset.py is written to be much faster
0f3e08b
      
0f3e08b
3.14: 2012/11/16
0f3e08b
      fix a bug: we didn't re-compile windows binary after updating svm.def
0f3e08b

0f3e08b
3.15: 2013/1/27
0f3e08b
      fix the bug of not freeing sv_indices
0f3e08b
      tools/grid.py:
0f3e08b
             -null option: allow the search on C or g only
0f3e08b
	     -resume option: resume tasks from an earlier run
0f3e08b
	     can be called as a python module            	
0f3e08b
      python interface:
0f3e08b
      	     local package searched first
0f3e08b
	     libsvm options can be str or list
0f3e08b
	     param.show() becomes print(param)
0f3e08b

0f3e08b
3.16: 2013/1/27
0f3e08b
      tools/:
0f3e08b
             easy.py fails in 3.15. Fix it by modifying grid.py
0f3e08b

0f3e08b
3.17: 2013/04/01
0f3e08b
      svm.cpp:
0f3e08b
	     if class labels are 1 and -1, ensure labels[0] = 1 and labels[1] = -1
0f3e08b
      	     initialize model->sv_indices as null in svm_load_model
0f3e08b
	     if nr_fold > # data, change nr_fold to be # data and ro leave-one-out cv 
0f3e08b
      matlab interface: 
0f3e08b
      	     handle the problem where output variables are not specified