Sturm  0.0.0
Computing Sturm sequences in C++
Loading...
Searching...
No Matches

Sturm is a library for the computation of the Sturm sequence of a polynomial and the computation of the number of real roots of a polynomial in a given interval. It is based on the Eigen library and written in C++20.

Installation

Quick and dirty

Sturm is a header-only library that depends only on Eigen (version >= 5.0.1), so the quick and dirty way of installing it is by simply copying the include directory to your project and make sure to have Eigen available however you see fit. Alternatively, you can do things properly and use CMake (version >= 3.14).

CMake

If you are using CMake, you can add the library as a subdirectory in your project.

add_subdirectory(path/to/Sturm)
target_link_libraries(your_target PRIVATE Sturm::Sturm)

If you already have Sturm somewhere on your system, you can use find_pacakge directly.

# Optionally specify a custom path to find content from
list(APPEND CMAKE_PREFIX_PATH "path/to/your/dependencies")
find_package(
Sturm
${YOUR_DESIRED_STURM_VERSION}
NO_MODULE
)
target_link_libraries(your_target PRIVATE Sturm::Sturm)

Authors

Aka...

▗▄▄▄ ▄ ▄ ▐▌ ▗▞▀▜▌▄▄▄▄ ▐▌ ▗▄▄▖ ▗▞▀▚▖ ▄▄▄ ▄ ▄
▐▌ █ █ █ ▐▌ ▝▚▄▟▌█ █ ▐▌ ▐▌ ▐▌▐▛▀▀▘█ █ █
▐▌ █ ▀▄▀▗▞▀▜▌ █ █ ▗▞▀▜▌ ▐▛▀▚▖▝▚▄▄▖█ ▀▀▀█
▐▙▄▄▀ ▝▚▄▟▌ ▝▚▄▟▌ ▐▙▄▞▘ ▄ █
▀▀▀

License

The Sturm project is distributed under the BSD 2-Clause License - see the LICENSE file for details.

Here's what the license entails:

  1. Anyone can copy, modify and distribute this software.
  2. You have to include the license and copyright notice with each and every distribution.
  3. You can use this software privately.
  4. You can use this software for commercial purposes.
  5. This software is provided without warranty.
  6. The software author or license can not be held liable for any damages inflicted by the software.