Swift Package Index

• The latest stable release is 1.0.1. Released 2 years ago.
• The last commit to master was 2 years ago.

Swift Version Compatibility

• 1.0.1 and master
5.3
5.2
5.1
5.0
4.2
Full build results

Platform Compatibility

• 1.0.1 and master
iOS
macOS(Intel)
macOS(ARM)
Linux
tvOS
watchOS
Full build results

MathKit

MathKit is a Swift library for manipulating, solving, and graphing mathematic equations, expressions, and functions.

Features

• Simplifies expressions

• Factors expressions

• Solves equations

• Analytically finds derivitives of functions

• Graphs functions

Installation

Swift Package Manager

Add `MathKit` as a dependency in your `Package.swift` file:

``````dependencies: [
.package(url: "https://github.com/liam923/MathKit.git", from: "1.0.1")
]
``````

Manually

Simply download and drop `Sources/MathKit` into your project.

Usage Example

Before we do anything, we have to import `MathKit` and set up a `System`:

``````import MathKit

let system = System()
``````

Simplify or Factor an Expression

``````let expression = try! Expression(string: "3(x + 3)^2 - 29 + 4(x + 2) - 13x", system: system)
try! print(expression.simplify(system: system)) //  3x^2 + 9x + 6
try! print(expression.factor(system: system)) //  3(x + 1)(x + 2)
``````

Solve an Equation

``````let equation = try! Equation(string: "x^2 + 1 = 3 - x", system: system)
try! print(equation.solve(forVariable: system.variable(withSymbol: "x"))) // [1, -2]
``````

Find Derivative

``````let function = try! Expression(string: "deriv(5x^3 + ln(x) + sin(x), x, x)", system: system)
try! print(function.simplify(system: system)) // 15(x)^(2) + (x)^(-1) + cos(x)
``````

Graph Function

``````// create the function to graph
let f = system.function(withName: "f", variables: [system.variable(withSymbol: "x")])
f.value = try! Expression(string: "x + 1", system: system)
// create the graph itself
let graph = GraphScene(size: CGSize(width: 500, height: 500))
graph.functions.append((f, true, .red))
graph.update() // scene is now an SKView that displays the graph of f(x) = x + 1
``````

Meta

William Stevenson – liam923@verizon.net

Distributed under the MIT license. See `LICENSE` for more information.

https://github.com/liam923