All Projects → alex-titarenko → mathcore

alex-titarenko / mathcore

Licence: MIT license
Advanced .NET math library (.NET Standard).

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to mathcore

Numphp
Mathematical PHP library for scientific computing
Stars: ✭ 120 (+400%)
Mutual labels:  math, linear-algebra, complex-numbers
Grassmann.jl
⟨Leibniz-Grassmann-Clifford⟩ differential geometric algebra / multivector simplicial complex
Stars: ✭ 289 (+1104.17%)
Mutual labels:  math, linear-algebra, complex-numbers
Aardvark.base
Aardvark is an open-source platform for visual computing, real-time graphics and visualization. This repository is the basis for most platform libraries and provides basic functionality such as data-structures, math and much more.
Stars: ✭ 117 (+387.5%)
Mutual labels:  math, linear-algebra, matrices
Mathjs
An extensive math library for JavaScript and Node.js
Stars: ✭ 11,861 (+49320.83%)
Mutual labels:  math, matrices, complex-numbers
Calc
C-style arbitrary precision calculator
Stars: ✭ 127 (+429.17%)
Mutual labels:  math, matrices, complex-numbers
Swix
Swift Matrix Library
Stars: ✭ 581 (+2320.83%)
Mutual labels:  math, linear-algebra
Notecalc3
NoteCalc is a handy calculator trying to bring the advantages of Soulver to the web.
Stars: ✭ 879 (+3562.5%)
Mutual labels:  math, linear-algebra
Swift Numerics
Numerical APIs for Swift
Stars: ✭ 1,052 (+4283.33%)
Mutual labels:  math, complex-numbers
Mather
zzllrr mather(an offline tool for Math learning, education and research)小乐数学,离线可用的数学学习(自学或教学)、研究辅助工具。计划覆盖数学全部学科的解题、作图、演示、探索工具箱。目前是演示Demo版(抛转引玉),但已经支持数学公式编辑显示,部分作图功能,部分学科,如线性代数、离散数学的部分解题功能。最终目标是推动专业数学家、编程专家、教育工作者、科普工作者共同打造出更加专业级的Mather数学工具
Stars: ✭ 270 (+1025%)
Mutual labels:  math, linear-algebra
Swift Complex
Complex numbers in Swift
Stars: ✭ 66 (+175%)
Mutual labels:  math, complex-numbers
Algebra
means completeness and balancing, from the Arabic word الجبر
Stars: ✭ 92 (+283.33%)
Mutual labels:  math, complex-numbers
Mathc
Pure C math library for 2D and 3D programming
Stars: ✭ 504 (+2000%)
Mutual labels:  math, matrices
Math Php
Powerful modern math library for PHP: Features descriptive statistics and regressions; Continuous and discrete probability distributions; Linear algebra with matrices and vectors, Numerical analysis; special mathematical functions; Algebra
Stars: ✭ 2,009 (+8270.83%)
Mutual labels:  math, linear-algebra
bra-ket-vue
⟨𝜑|𝜓⟩.vue - a Vue-based visualization of quantum states and operations
Stars: ✭ 28 (+16.67%)
Mutual labels:  matrices, complex-numbers
Sharpmath
A small .NET math library.
Stars: ✭ 36 (+50%)
Mutual labels:  math, matrices
Machine Learning Curriculum
Complete path for a beginner to become a Machine Learning Scientist!
Stars: ✭ 279 (+1062.5%)
Mutual labels:  math, linear-algebra
Awesome-Math-Learning
📜 Collection of the most awesome Math learning resources in the form of notes, videos and cheatsheets.
Stars: ✭ 73 (+204.17%)
Mutual labels:  math, linear-algebra
Angourimath
Open-source symbolic algebra library for C# and F#. One of the most powerful in .NET
Stars: ✭ 266 (+1008.33%)
Mutual labels:  math, nuget
Tutorials
AI-related tutorials. Access any of them for free → https://towardsai.net/editorial
Stars: ✭ 204 (+750%)
Mutual labels:  math, linear-algebra
Numerix
A collection of useful mathematical functions in Elixir with a slant towards statistics, linear algebra and machine learning
Stars: ✭ 159 (+562.5%)
Mutual labels:  math, linear-algebra

MathCore

Build

Advanced .NET math library (.NET Standard).

Structure

  • MathCore - base library, contains the following features: complex numbers, fractions, complex polynomials, unit conversion, coordinate system conversion, numeric utils and some extensions for Math class.
  • MathCore.LinearAlgebra - linear algebra extension for math core, contains the following features: complex matrices, eigen problem solver, bunch operations with matrices (concat, add, sub, mult, rise to power, multiply, sqrt, inverse, trace, determinant and etc.).
  • MathCore.NumericalAnalysis - numeric analysis extension for math core, contains the following features: equation solver, interpolation, numeric integration, optimization.
  • MathCore.SpecialFunctions - special functions extension for math core, contains the following features: calculating of error functions and etc.
  • MathCore.Statistics - statistics extension for math core, contains the following features: distribution (normal, uniform, exponential), calculation of mean, mode, correlation, standard deviation and etc.
  • MathCore.Optimization - optimization extension for math core, contains implementation of simple genetic algorithm and cellular genetic algorithm.
  • MathCore.ExpressionsBase - base library, which allow from usual string make expression tree to be able evaluate math expression of any level of complexity.
  • MathCore.ComplexExpressions - extension for expression base library, which adds support complex numbers in expressions.
  • MathCore.ComplexExpressions.Extensions - sets of functions and constants for complex expressions library.

Examples of usage

How to initialize expression tree builder:

var targetAssembly = Assembly.LoadFrom("TAlex.MathCore.ComplexExpressions.Extensions.dll");

var constantFactory = new ConstantFlyweightFactory<object>();
constantFactory.LoadFromAssemblies(new List<Assembly> { targetAssembly });

var functionFactory = new FunctionFactory<object>();
functionFactory.LoadFromAssemblies(new List<Assembly> { targetAssembly });

var expressionTreeBuilder = new ComplexExpressionTreeBuilder
{
    ConstantFactory = constantFactory,
    FunctionFactory = functionFactory
};

How to use expression tree builder:

var tree = expressionTreeBuilder.BuildTree("abs(2+4.1i)*9i");
object actual = tree.Evaluate(); // 41.0562...

tree = expressionTreeBuilder.BuildTree("integ(sin(x)**x, 0, 100, x)");
actual = tree.Evaluate(); // 7.4990012... + 0.13462383i...

tree = expressionTreeBuilder.BuildTree("lsolve({2, 3; 5i, 14}, {2; -1})+10");
actual = tree.Evaluate(); // {10.860258 + 0.46085233i; 10.093162 - 0.30723489i}

Unit conversion example:

var value = UnitConverter.Convert(23, Length.Inch, Length.Centimeter); // 58.42

Matrix multiplication:

var a = new CMatrix(new Complex[,] { {2, 3}, {5, 8} });
var b = new CMatrix(new Complex[,] { {1, 1}, {18, -1} });

var result = a * b; // {56, -1; 149, -3}

Get it on NuGet!

Install-Package TAlex.MathCore
Install-Package TAlex.MathCore.LinearAlgebra
Install-Package TAlex.MathCore.NumericalAnalysis
Install-Package TAlex.MathCore.SpecialFunctions
Install-Package TAlex.MathCore.Statistics
Install-Package TAlex.MathCore.Optimization
Install-Package TAlex.MathCore.ExpressionsBase
Install-Package TAlex.MathCore.ComplexExpressions
Install-Package TAlex.MathCore.ComplexExpressions.Extensions

License

MathCore is under the MIT license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].