All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Shared Library

In order to open up ViennaCL to other languages such as C, FORTRAN, or Python, a shared library is under development in the subfolder `libviennacl/`. Currently the different BLAS backends for dense linear algebra are available. Sparse linear algebra, iterative solvers, etc. will follow in future releases.

The design and calling conventions are very similar to vendor BLAS libraries. All functions are prefixed 'ViennaCL'. The three backends provide their functionality through functions prefixed `ViennaCLCUDA`, `ViennaCLOpenCL`, and `ViennaCLHost`, respectively. Since we consider the standard BLAS interface rather tedious and error-prone, an additional object-oriented interface is provided as well.

Have a look at `examples/tutorial/libviennacl.cpp` as well as the tests located at `tests/src/libviennacl*` to get an impression on how to use these methods. Also, all callable functions in the shared library are listed in the public include file `libviennacl/include/viennacl.hpp`. Additional documentation will be added incrementally.

Warning
  The shared library is work in progress and should be considered unstable. No forward or backwards compatibility should be assumed. Any feedback is very much appreciated.