sokobo
Loading...
Searching...
No Matches
sokobo - Computational Algebra System (CAS)

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

make

Using CMake

mkdir build
cd build
cmake ..
make

Usage

Run the executable:

./sokobo

Compile all:

g++ -std=c++23 -Wall -Wextra -O3 -Isource source/*.cpp -o sokobo
*

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).