-
A library for abstract scientific computations and contains computational methods implementation.
-
Uses
C++20concepts to abstract algorithms and data structures on algebraic types such asField,Realnumbers and so on. -
Basic data structures as
Matrix,Vector,Polynomialimplemented. -
Solve systems of linear equations using
GaussandSimple Iterationmethods. -
Solve equations with only variable using
Half-Division,Newton,Simple Iterationmethods. -
Compute an integral of one-argument continuous function on given interval using
Cotesmethods. -
Approximate one-argument function with
PolynomialusingLeast Sqaresmethod. -
Find some statistics such as
PCC,RSS.
-
A library for symbolic computations.
-
Supports basic operations such as
Addition,Substraction,Multiplication,Division,Negation,Exponentiation. -
Leaf of
Expressionis either aVariableorLiteral. -
Has a
DSLto buildExpressiontree easily. -
Use
Evaluatorvisitor to set values (or other expressions) to variables and compute concrete value of a givenExpression. -
Use
Optimizervisitor to optimize expression by applying transformations such asa + 0 = a,a * 1 = a,2 + 2 = 4, and many-many others. -
Use
Derivativervisitor to find anExpressionthat is a precise dervivative of a givenExpression. Then you can optimize it usingOptimizerand compute usingEvaluator. -
Goal 1: Add custom functions (
sin,cos,ln) and its
derivatives to expand the application area. -
Goal 2: Integrate it with
Mathematicaand create an implementation ofFieldbyExpressiontree to be able to run abstract algorihms on symbolic expressions.
Requirements:
cmakeclang 16clang-tidyclang-formatclangdvscode
bash ci/project/build.sh
bash ci/project/test.sh
./build/math-tool --help