CUBY logo

Extensions

Difference between revisions from 2013/04/18 13:34 and 2010/12/03 11:32.
Several key components of cuby exist in two variants: native ruby version, that is used by default, and compatible binary counterpart, that offers higher performance.

To use binary extensions, they must be compiled first (see [Installation] page for requirements). Script installer_makeext can be used to make all extensions, or you can select which extensions to use and compile them yourself. After compilation, the extensions to be used must must be listed in config file.
To use binary extensions, they must be compiled first (see [Installation] page for requirements). The installer script (run as 'installcuby make_extensions') can be used to make all extensions, or you can select which extensions to use and compile them yourself. After compilation, the extensions to be used must must be listed in config file.

'''Warning''': The extensions may lack all the comfortable exception handling of ruby, wrong input may crash the program. Testing of new code should be done without the extensions.

Currently, following extensions are available:

!!Coordinate
The basic class for 3D geometry, an ancestor of Atom class. Some types of calculation make heavy use of calculations with coordinates, e.g. molecular dynamics or interfaces doing calculations in ruby.

!!Algebra
Linear algebra. Although the necessary functionality is provided by the ruby code, binary version is much faster, using LAPACK for the advanced matrix operations. Blas/Lapack libraries and headers must be installed in order to compile this extension (Packages libblas-dev, liblapack-dev on debian-based Linux).