A lightweight, comprehensive C++ implementation of a Computer Algebra System with advanced mathematical capabilities.
Features
Core Functionality
- Symbolic Expression Manipulation: Variables, constants, binary operations, functions
- Polynomial Arithmetic: Addition, multiplication, division, GCD, factorization
- Complex Number Operations: All basic operations plus advanced functions
- Matrix Operations: Determinant, inverse, eigenvalues, decompositions
- Calculus: Symbolic differentiation, numerical integration, series expansions
- Transforms: Laplace transforms, Fourier transforms (DFT/FFT)
- Differential Equations: ODE and PDE solvers
- Numerical Methods: Root finding, optimization, interpolation
Advanced Features
- Taylor and Chebyshev series expansions
- Multiple integration methods (Trapezoidal, Simpson's, Gaussian quadrature, Monte Carlo)
- Various ODE solvers (Euler, Runge-Kutta, Adams-Bashforth)
- PDE solvers for heat, wave, and Laplace equations
- Linear system solvers (Gaussian elimination, LU decomposition, iterative methods)
- Statistical functions and regression analysis
- Special functions (Gamma, Beta, Error, Bessel, Legendre, Hermite)
Building
Using Make
Using CMake
mkdir build
cd build
cmake ..
make
Usage
Run the executable:
Compile all:
g++ -std=c++23 -Wall -Wextra -O3 -Isource source
Unit Testing
Matrices
g++ -std=c++23 -Wall -Wextra -O3 -Itest -Isource -Isource/include test/matrix_test.cpp source/matrix.cpp source/complex_number.cpp -o matrix_test -lm
Example Commands
Polynomials
poly p1 1 2 3
poly p2 2 1
add p1 p2
mult p1 p2
deriv p1
roots p1
factor p1
Complex Numbers
complex c1 3 4
complex c2 1 -2
cadd c1 c2
cmult c1 c2
cpower c1 3
croots 8 3
Expressions and Calculus
expr f x^2+sin(x)
deriv f x
integral f x 0 1
series f 0 5
limit f 0
Matrices
matrix m1 3 3
matrix_raw m1 ([1,2],[3,4])
mset m1 0 0 5
mdet m1
minv m1
meigen m1
madj m1
mrank m1
Transforms
laplace f t
ilaplace F s
fourier signal
ifourier spectrum
Differential Equations
ode euler y'=x+y 0 1 0.1 10
ode rk4 y'=x+y 0 1 0.1 10
pde heat 1.0 1.0 1.0 50 50
Numerical Methods
root bisect f -1 1
root newton f df 1
optimize golden f -1 1
interpolate lagrange x_vals y_vals
Project Structure
sokobo/
├── include/
│ ├── expression.h
│ ├── polynomial.h
│ ├── complex_number.h
│ ├── matrix.h
│ ├── calculus.h
│ ├── laplace.h
│ ├── fourier.h
│ ├── differential_equations.h
│ ├── numerical_methods.h
│ └── cli.h
├── src/
Building and Installing
See BUILDING.md for detailed instructions.
Contributing
See CONTRIBUTING.md for guidelines.
License
Please choose an appropriate license (recommended: GNU AGPLv3).