NumeriXCore is a high-performance numerical analysis library designed for various scientific and engineering applications. This library is implemented in C++ and can be compiled to WebAssembly using Emscripten, making it suitable for both native and web-based applications.
- Iterative Methods for Solving Equations
- Solutions of Systems of Linear Equations
- Handling of Special Matrices
- Solutions for Simultaneous Nonlinear Equations
- Computation of Eigenvalues and Eigenvectors
- Polynomial Interpolation and Approximation
- Numerical Integration Techniques
- Solutions to Initial and Boundary Value Problems for ODEs
- Finite Element Method
- C++17 or higher
- CMake 3.0 or higher
- Emscripten (for WebAssembly build)
-
Clone the repository:
git clone https://github.com/PhlyingPhalanges/NumeriXCore.git cd NumeriXCore
-
Create a build directory and navigate into it:
mkdir build cd build
-
Run CMake to configure the project:
cmake ..
-
Build the project:
make
-
Install Emscripten: Follow the instructions on the Emscripten website.
-
Activate the Emscripten environment:
source /path/to/emsdk/emsdk_env.sh
-
Create a build directory and navigate into it:
mkdir build cd build
-
Run CMake with Emscripten toolchain:
emcmake cmake ..
-
Build the project:
emmake make
Include the NumeriXCore
library in your project and link it during the build process. Here is a simple example:
#include <iostream>
#include "iterative_methods.hpp"
int main() {
// Example usage of the library
double result = simple_iteration([](double x) { return cos(x); }, 1.0, 1e-6);
std::cout << "Root: " << result << std::endl;
return 0;
}
This library was developed using insights from two key resources, one on numerical analysis and the other on C++ programming:
- Süli, E., & Mayers, D. F. (2003). An Introduction to Numerical Analysis. Cambridge: Cambridge University Press.
- Stroustrup, B. (2013). The C++ programming language (4th ed.). Addison-Wesley.
These resources provided a solid foundation in numerical methods and C++, which was instrumental in the development of NumeriXCore.