/ublas

Boost.uBlas

Primary LanguageC++

Boost Linear and Multilinear Algebra Library

Language License Documentation Wiki Mailing List Gitter

Boost.uBLAS is part of the Boost C++ Libraries. It is directed towards scientific computing on the level of basic linear and multilinear algebra operations with tensors, matrices and vectors.

Documentation

uBLAS is documented at boost.org. The tensor extension has also a wiki page.

License

Distributed under the Boost Software License, Version 1.0.

Properties

  • Header-only
  • Tensor extension requires C++17 compatible compiler
  • Unit-tests require Boost.Test

Build Status

Tensor Build & Test

Operating System Compiler master develop
Linux (Ubuntu 20.04 x86_64) gcc-{7, 8, 9, 10} Linux GCC Debug Linux GCC Debug
Linux (Ubuntu 20.04 x86_64) clang-{6, 8, 9, 10} Linux Clang Release Linux Clang Release
Windows 10 (x86_64) msvc-{14.16, 14.26} Windows MSVC Windows MSVC
MacOS Catalina (x86_64) clang-11 Apple Clang Apple Clang

Tensor Additional Checks

Checks master develop
UB Sanitizer Undefined Behaviour Sanitizer Undefined Behaviour Sanitizer
TH Sanitizer Thread Sanitizer Thread Sanitizer
ADD Sanitizer Address Sanitizer Address Sanitizer
Codecov codecov codecov
Clang-Format Code Format Code Format
Clang-Tidy Clang tidy checks Clang tidy checks

Tensor Build Information

OS Toolchain Compiler Flags
Linux Ubuntu 20.04 GCC -O0
Linux Ubuntu 20.04 Clang -O3
Windows 10 MSVC No Special Flags
MacOS Catalina Clang No Special Flags
UB Sanitizer GCC and Clang "-g -fsanitize=undefined"
TH Sanitizer GCC and Clang "-g -fsanitize=thread -O2"
ADD Sanitizer GCC and Clang "-g -fsanitize=address -fno-omit-frame-pointer"
Clang Tidy Clang-Tidy-10 Configuration File
Clang Format Clang-Format-10 Configuration File

uBLAS CI

Branch Travis Appveyor Regression Docs
master Build Status Build status ublas Documentation
develop Build Status Build status ublas Documentation

Directories

Name Purpose
doc documentation
examples example files
include headers
test unit tests
benchmarks timing and benchmarking

More information

  • If you would like to test the library, contribute new feature or a bug fix, see contribution where the whole development infrastructure and the contributing workflow is explained in details.
  • Ask questions in stackoverflow with boost-ublas or ublas tags.
  • Report bugs and be sure to mention Boost version, platform and compiler you're using. A small compilable code sample to reproduce the problem is always good as well.
  • Submit your patches as pull requests against develop branch. Note that by submitting patches you agree to license your modifications under the Boost Software License, Version 1.0.
  • Developer discussions about the library are held on the Boost developers mailing list. Be sure to read the discussion policy before posting and add the [ublas] tag at the beginning of the subject line
  • For any other questions, you can contact David, Stefan or Cem: david.bellot-AT-gmail-DOT-com, cem.bassoy-AT-gmail-DOT-com stefan-AT-seefeld-DOT-name