Skip to content

Commit

Permalink
Update README.md and clarify dependency on VC++ runtime when building…
Browse files Browse the repository at this point in the history
… executables
  • Loading branch information
oysstu committed Jul 20, 2017
1 parent a286b7a commit 35cb164
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
![Palette](./Palette.png)

### Description
A LabVIEW wrapper for libsvm (3.20) and liblinear (2.10).
The implementation is thread-safe, which means that multiple cross-validation/training/predicting can be executed simultaneously.
A LabVIEW wrapper for libsvm (3.22) and liblinear (2.11).
The implementation is thread-safe, which means that multiple cross-validate/train/predict operations can be executed simultaneously.

Interfaces to both libsvm sparse and dense is included. The recommendation is to use the dense variant unless you know you need sparseness. This is both due to better performance and a more practical data format as the indices are implicit. Both sparse and dense perform similarly for small number of features. Note however, that performance for the sparse 32-bit library suffers on Windows because the LabVIEW structures are not directly memory compatible with the C++ library, which introduces unnecessary copies. The recommendation is therefore to use a 64-bit LabVIEW installation if the sparse library is needed on Windows.

Expand All @@ -14,20 +14,22 @@ Sparse is only necessary for datasets consisting of an extremely large number of

This includes all necessary binaries and OpenG dependencies (note: internet access required for automatic download of OpenG). The binaries themselves is also supplied in a separate zip archive, for those that prefer to use the library without installing.

The library is developed in LabVIEW 2015, but the distributed VIPM packages are compatible with LabVIEW 2013. On Linux you need to run VIPM as root, and ensure that the target LabVIEW installation allows for TCP/IP connections (Options - Protocols - TCP/IP).
The library is compatible with LabVIEW 2015 SP1 (64/32bit) and later. On Linux you need to run VIPM as root, and ensure that the target LabVIEW installation allows for TCP/IP connections (Options - Protocols - TCP/IP).

### Dependencies
* libsvm and liblinear binaries (included in the VIPM package or through the zip files)
* OpenG Toolkit VIs (automatically installed by VIPM)
* Windows: [Visual Studio 2013 Visual C++ Redistributable](http://www.microsoft.com/en-us/download/details.aspx?id=40784) (x86 for 32bit LabVIEW, x64 for 64bit LabVIEW)
* Linux: Compiled with GCC/G++-4.8.5 on CentOS7 (libc and libstdc++ must have an compatible ABI)
* Windows: [Microsoft Visual C++ 2017 Redistributable](https://www.visualstudio.com/downloads/) (x86 for 32bit LabVIEW, x64 for 64bit LabVIEW)
* Linux: Distributed binaries compiled with GCC/G++-5.4 on Ubuntu 16.04 LTS, compatible ABI required on target system

### Usage
Each sublibrary contains some basic examples. Look at the official libsvm/liblinear documentation if something should be unclear.
Each sub-library contains some basic examples. Look at the official libsvm/liblinear documentation if something should be unclear.
The documentation for the python wrapper in scikit-learn is also very useful.

The library primarily consists of VIs that more or less wrap the functions exposed through the libsvm/liblinear API.
The data structures used for these calls are relatively similar.

Note that when distributing built executables on Windows with this library, you may have to include msvcp140.dll in your build specification (Windows/System32/msvcp140.dll). If the redistributable is installed on the target system, it should be found automatically.

### Bugs
Please report any bugs or feature requests either through the issue system or a message.

0 comments on commit 35cb164

Please sign in to comment.