Swift Rational provides the RationalModule
module for working with rational numbers in Swift.
import RationalModule
let half = Rational<Int>(1, 2)
RationalModule
has only a single dependency, swift-numerics.
To use Swift Rational in a SwiftPM project:
- Add the following line to the dependencies in your
Package.swift
file:
.package(url: "https://github.com/abdel-17/swift-rational", from: "1.0.0")
- Add
RationalModule
as a dependency for your target:
.target(
name: "TargetName",
dependencies: [
.product(name: "RationalModule", package: "swift-rational")
]
)
- Add
import RationalModule
in your source code.
RationalModule
exports the Rational
struct. It conforms to standard Swift protocols like AdditiveArithmetic
, Numeric
, Hashable
, Comparable
, and more.
You can create a Rational
value using the fraction initializer.
let half = Rational(2, 4)
print(x.numerator) // 1
print(x.denominator) // 2
You can also use the integer initializer.
let one = Rational(1)
Or simply an integer literal.
let two: Rational<Int> = 2
Rational
supports the standard arithmetic and comparison operators.
Rational(1, 2) + Rational(1, 4) // Rational(3, 4)
Rational(1) - Rational(1, 2) // Rational(1, 2)
Rational(2) * Rational(3, 4) // Rational(3, 2)
Rational(1) / Rational(1, 2) // Rational(2, 1)
Rational(1, 2) < Rational(3, 4) // true
A lot of the implementations were ported over to Swift from Python's fractions module.