Skip to content

abdel-17/swift-rational

Repository files navigation

Swift Rational

Introduction

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.

Using Swift Rational in your project

To use Swift Rational in a SwiftPM project:

  1. 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")
  1. Add RationalModule as a dependency for your target:
.target(
	name: "TargetName",
	dependencies: [
		.product(name: "RationalModule", package: "swift-rational")
	]
)
  1. Add import RationalModule in your source code.

API

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

Attributions

A lot of the implementations were ported over to Swift from Python's fractions module.

About

Swift package for working with rational numbers

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages