Implement the Core Vector Machine algorithm as described in the attached PDF as a C++ library. The top-level API should be equivalent to the libsvm API (libsvm is attached). Only the RBF kernel needs to be implemented; you do not need to implement the linear, polynomial, or sigmoid kernels. Write programs similar to libsvm's svm-train and svm-predict to demonstrate that the Core Vector Machine algorithm has been properly implemented. These programs will be essentially equivalent to the included svm-train and svm-predict since your API will be compatible with the libsvm API. The implementation must run at a speed comparable to that described in the PDF. The API must support probabalistic classification (i.e., libsvm's "-b" option). Functions should be documented in a format that is parsable by Doxygen. Your programs must run cleanly under Valgrind 3.1. Sample data sets for testing will be provided upon request.
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
Must compile and run under Linux, both 32-bit and 64-bit (x86_64), using g++. If libraries that are not included in standard Linux distributions are used (e.g., uBLAS) you must specify them and they must be open source (GPL, LGPL, or similar).