You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
computations 0c3d526937 Merge pull request 'update predictor (Pythia v1.1.0)' (#118) from tschuelia/coraxlib:cpythia_v110 into dev
Reviewed-on: #118
1 week ago
bench Fix the missing dataset error in the benchmark 6 months ago
ci Setup Jenkins CI pipeline 6 months ago
cmake Update nonrev dependencies 4 months ago
docs Fix the doxygen file (the wrong path was specified) 6 months ago
examples [cmake] Fix some source files not to be added to the coraxlib target pre 3.12 6 months ago
lib update predictor (Pythia v1.1.0) 2 weeks ago
man updated version number, changelog, man page 6 years ago
src/corax update predictor (Pythia v1.1.0) 2 weeks ago
test update predictor (Pythia v1.1.0) 2 weeks ago
.clang-format switch to clang-format-10 2 years ago
.cmake-format Refactor the CMake code 8 months ago
.gitignore Setup Jenkins CI pipeline 6 months ago
.gitmodules Move googletest to our fork with fixed warnings 7 months ago
.travis.yml fixed libpll travis ci config to work with gcc 4.6, added compiler error messages when compiling with gcc < 4.7.0 6 years ago
CMakeLists.txt Add CMAKE_{LIBRARY,ARCHIVE}_OUTPUT_DIRECTORY to cache. 7 months ago updated version number, changelog, man page 6 years ago
Jenkinsfile Setup Jenkins CI pipeline 6 months ago
LICENSE.txt updated readme,changelog and added autotools installation 7 years ago Update nonrev dependencies 4 months ago


corax logo

coraxlib (COre RAXml LIBrary) encapsulates common routines used by likelihood-based phylogenetic software such as raxml-ng. It will eventually supersede both libpll-2 and pll-modules.

Please read the wiki for more information.

Compilation instructions

Please make sure you have CMake 3.0.2 or later installed on your system.

Then, use following commands to clone and build coraxlib:

git clone
cd coraxlib
mkdir -p build && cd build
cmake ..

If you want to install coraxlib system-wide, please run:

sudo make install

The library will be installed on the operating system's standard paths. For some GNU/Linux distributions it might be necessary to add that standard path (typically /usr/local/lib) to /etc/ and run ldconfig.

Developing with coraxlib

Please see the docs here

coraxlib license and third party licenses

The coraxlib code is currently licensed under the GNU Affero General Public License version 3. Please see LICENSE.txt for details.

coraxlib includes code from several other projects. We would like to thank the authors for making their source code available.

coraxlib includes code from GNU Compiler Collection distributed under the GNU General Public License.

Registering and running tests

We use CTest for manageing our automated tests. You can thus use a standard CMake workflow:

cmake -B build
cmake --build build -j
pushd build && ctest; popd

We use Googletest for our unit tests. To register a new unit-test, create a file in test/unit/src and add the following line to test/unit/CMakeLists.txt:

corax_register_test(test_my_awesome_new_test FILES src/my_awesome_new_test.cpp)
# or
corax_register_test(test_with_custom_defines FILES src/with_custom_defines.cpp DEFINES SAMPLE_DEFINE=1 ANOTHER_DEFINE=2)

On Linear Algebra Libraries

The situation with linear algebra libraries is complicated. To build coraxlib in with non-reversible models enabled, the following needs to be provided in some way:

  • CBLAS (a C interface to BLAS)
  • LAPACKE (a C interface to LAPACK)

Both of these packages normally depend on BLAS and LAPACK, respectively. Therefore, you will probably need to install all four.

We recommend that users install OpenBLAS. Depending on the package manager, this will provide the interface to all of the above. If this is not the case, then try installing CBLAS and LAPACKE, as these are the final targets required. However, not all BLAS implementations are the same, strictly speaking. If you get linker errors, it is probably due to the installed BLAS implementation not providing "extra" functions, which are present in OpenBLAS.