All Projects → TheDemx27 → calculus

TheDemx27 / calculus

Licence: MIT License
The original Golang library for single variable differentiation and integration.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to calculus

Reversediff.jl
Reverse Mode Automatic Differentiation for Julia
Stars: ✭ 182 (+658.33%)
Mutual labels:  calculus
Mathematics for Machine Learning
Learn mathematics behind machine learning and explore different mathematics in machine learning.
Stars: ✭ 28 (+16.67%)
Mutual labels:  calculus
Learn-Machine-Learning-in-3-month
No description or website provided.
Stars: ✭ 35 (+45.83%)
Mutual labels:  calculus
From 0 To Research Scientist Resources Guide
Detailed and tailored guide for undergraduate students or anybody want to dig deep into the field of AI with solid foundation.
Stars: ✭ 247 (+929.17%)
Mutual labels:  calculus
MathExpressions.NET
➗ Library for parsing math expressions with rational numbers, finding their derivatives and compiling an optimal IL code
Stars: ✭ 63 (+162.5%)
Mutual labels:  differentiation
clad
clad -- automatic differentiation for C/C++
Stars: ✭ 161 (+570.83%)
Mutual labels:  differentiation
Data Science Masters
Self-study plan to achieve mastery in data science
Stars: ✭ 179 (+645.83%)
Mutual labels:  calculus
Bracmat
Programming language for symbolic computation with unusual combination of pattern matching features: Tree patterns, associative patterns and expressions embedded in patterns.
Stars: ✭ 42 (+75%)
Mutual labels:  differentiation
FractionalCalculus.jl
FractionalCalculus.jl: A Julia package for high performance, fast convergence and high precision numerical fractional calculus computing.
Stars: ✭ 22 (-8.33%)
Mutual labels:  differentiation
Undergraduate-in-Statistics
Using Computer with your Statistics Major Course
Stars: ✭ 57 (+137.5%)
Mutual labels:  calculus
math-for-ml
Mathematical preliminaries for machine learning
Stars: ✭ 15 (-37.5%)
Mutual labels:  calculus
awesome-calculus
🍹 A list of awesome resources I used to study Calculus.
Stars: ✭ 47 (+95.83%)
Mutual labels:  calculus
IntroductionToCalculus
一版使用XeLaTeX整理過的精排版的微積溯源
Stars: ✭ 19 (-20.83%)
Mutual labels:  calculus
Calculus.jl
Calculus functions in Julia
Stars: ✭ 201 (+737.5%)
Mutual labels:  calculus
Symbolic-computation-Python
Symbolic computation using SymPy and various applications
Stars: ✭ 18 (-25%)
Mutual labels:  calculus
Quant Notes
Quantitative Interview Preparation Guide, updated version here ==>
Stars: ✭ 180 (+650%)
Mutual labels:  calculus
java-algebra-system
An extensible, intuitive and easy to use algebra system that is capable of algebraic manipulation, simplification, differentiation, and much more. Reverse engineered from TI-nspire CAS.
Stars: ✭ 36 (+50%)
Mutual labels:  calculus
NumDiff
Modern Fortran Numerical Differentiation Library
Stars: ✭ 48 (+100%)
Mutual labels:  differentiation
maths-for-deep-learning-ai
A open source book covering the foundational maths of deep learning and machine learning using TensorFlow
Stars: ✭ 35 (+45.83%)
Mutual labels:  calculus
Calculo
Escrita colaborativa de recursos educacionais abertos sobre cálculo diferencial e integral..
Stars: ✭ 18 (-25%)
Mutual labels:  calculus

Go Calculus

A golang library supporting definite integration and differentiation of real valued, single variable, elementary and non-elementary functions.

Usage

~$ go get github.com/TheDemx27/calculus

package main

import (
  "fmt"
  "math"
  clc "github.com/TheDemx27/calculus"
)

func main() {
  // Create a new function.
  f := clc.NewFunc("1/(x^2+1)")

  // Integrate from 0 to 20.
  fmt.Println(f.AntiDiff(0, 20))

  // Differentiate at point Pi/2.
  fmt.Println(f.Diff(math.Pi/2))
}

Alternatively, you can define any function that takes and returns a float64, (i.e. a function of the form type usrFunction func(float64) float64), and then perform calculus on it. This allows you to do calculus on practically any mapping.

func fn(x float64) float64 {
  return 2*math.Floor(x)
}

func main() {
  clc.AntiDiff(fn, 0, 10)
  clc.Diff(fn, 0.5)
}

In all cases, adding an additional int argument will specify how many samples you want to use. You can also evaluate the function at a certain point using f.Eval(), and return the expression defining the function using f.Name(), e.g.

  fmt.Printf("The value of %s when x = 20 is %g\n", f.Name(), f.Eval(20))

TODO

* Gaussian Quadrature ✓ * Implement Risch Algorithm * Implement Symbolic Differentiation Patterns
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].