libnumerixpp  0.1.1
A Powerful C++ Library for High-Performance Numerical Computing
libnumerixpp Documentation

libnumerixpp

A Powerful C++ Library for High-Performance Numerical Computing


[!CAUTION] At the moment, libnumerixpp is under active development (alpha), many things may not work, and this version is not recommended for use (all at your own risk).

[!CAUTION] libnumerixpp in development (alpha), many things may not work, and this version is not recommended for use (all at your own risk).

libnumerixpp is a powerful, cross-platofrm C++ library designed for high-performance numerical computing in the domains of physics, mathematics, and computer science.

You can join to our small russian telegram blog.

You can view docs for libnumerixpp here.

Key Features

  • Extensive Functionality: libnumerixpp provides a wide range of functions coverint the core areas of mathematics, physics, and computer science, including:
    • Mathematics: linear algebra, calculus, geometry
    • Physics: kinematics, mechanics, thermodynamics, electronics
    • Computer Science: algorithms, numerical methods, data processing
  • High Performance: The library is optimized for maximum performance, leveraging modern techniques such as parallel computing and vectorization
  • Cross-platform Support: libnumerixpp supports major operating systems (Windows, Linux, macOS) and can be compiled using various compilers (GCC, CLANG, MSVC).
  • Ease of Use: A simple and intuitive API, comprehensive documentation, and numerous examples facilitate the integration of the library into your projects.
  • Modular Architecture: libnumerixpp is designed with a modular structure, allowing selective compilation of only the required components.
  • Extensibility: The library is open to the developer community, who can contribute improvements and additions.

Architecture

libnumerixpp has a modular architecture consisting of the following core components:

  • core: Provides essential data types, error handling functions, and utility tools.
  • mathematics: Implements algorithms for linear algebra, calculus, and geometry.
  • physics: Offers functions for solving problems in the areas of kinematics, mechanics, thermodynamics and electronics.

Each module has its own set of header files and source files, ensuring flexibility and the ability to selectively compile the required parts of the library.

Usage

To use libnumerixpp in your project, follow these steps:

  1. Download or clone the repository from GitHub:
git clone https://github.com/alxvdev/libnumerixpp.git
  1. Set up the build process using build script:
cd libnumerixpp
./build.sh
# OR
cd libnumerixpp
mkdir build && cd build
cmake ..
make install
  1. Include the nessary modules in your code using #include directives:
#include "libnumerixpp/core/common.hpp" // example
  1. Start using the library functions in your applications! You can view examples of usage here.

Examples

Below you can see examples of using libnumerixpp in your project. Also, you can view examples dir.

example-1 Speed, Time, Path

Source code: example-1.cpp

This example shows how to calculate the speed, path, and time using the physics::kinematics.

example-2 Math, Quadratic and math

Source code: example-2.cpp

This example shows how to calculate the quadratic equations, discriminant, squares using the mathematics and mathematics::quadratic.

example-3 Computer-science

Source code: example-3.cpp

This example shows how to convert data using the ‘computerscience’ module.

example-4 Math Equations

Source code: example-4.cpp

This example shows how to calculate the equations using the mathematics and mathematics::equations.

Tools and Dependencies

linumerixpp utilizes the following tools and libraries:

  • CMake: Cross-platform build system
  • Doxygen: Documentation generation

Documentation

Detailed documentation, including user guides, API reference, and code examples, is available in the docs. Or you can see articles or additional info in en docs dir or ru docs dir.

If you have any questions, suggestions, or encounter issues, please create a new issue in the repository. We'll be happy to assist you and improve the library.

You can also write to me on Telegram: @alexeev_dev

libnumerixpp is an Open Source project, and it only survives due to your feedback and support!

Project releases are available at this link.

Our Projects

Check other our projects:

Project Architecture

├── build.sh
├── CHANGELOG.md
├── CMakeLists.txt
├── docs
│ ├── doxygen-styles.css
│ ├── en
│ │ └── index.md
│ ├── man
│ │ └── man3
│ │ ├── common.cpp.3
│ │ ├── computerscience.3
│ │ ├── core.cpp.3
│ │ ├── core.hpp.3
│ │ ├── equations.cpp.3
│ │ ├── equations.hpp.3
│ │ ├── kinematics.cpp.3
│ │ ├── kinematics.hpp.3
│ │ ├── libnumerixpp.cpp.3
│ │ ├── mathematics.3
│ │ ├── mathematics_quadratic.3
│ │ ├── mathematics_statistics.3
│ │ ├── physics.3
│ │ ├── physics_kinematics.3
│ │ ├── quadratic_equations.cpp.3
│ │ ├── quadratic_equations.hpp.3
│ │ ├── statistics.cpp.3
│ │ ├── statistics.hpp.3
│ │ └── todo.3
│ ├── README.md
│ └── ru
│ ├── article2.md
│ ├── article.md
│ └── index.md
├── Doxyfile
├── examples
│ ├── example-1.cpp
│ ├── example-2.cpp
│ ├── example-3.cpp
│ └── example-4.cpp
├── include
│ └── libnumerixpp
│ ├── computerscience
│ │ └── core.hpp
│ ├── core
│ │ └── common.hpp
│ ├── libnumerixpp.hpp
│ ├── mathematics
│ │ ├── core.hpp
│ │ ├── equations.hpp
│ │ ├── quadratic_equations.hpp
│ │ └── statistics.hpp
│ └── physics
│ ├── core.hpp
│ └── kinematics.hpp
├── LICENSE
├── README.md
└── src
├── computerscience
│ └── core.cpp
├── core
│ └── common.cpp
├── libnumerixpp.cpp
├── mathematics
│ ├── core.cpp
│ ├── equations.cpp
│ ├── quadratic_equations.cpp
│ └── statistics.cpp
└── physics
├── core.cpp
└── kinematics.cpp

Copyright

libnumerixpp is released under the Apache License 2.0.

Copyright © 2024 Alexeev Bronislav. All rights reversed.