No description
Find a file
2024-08-17 11:53:40 +01:00
.github/workflows update workflows 2024-08-12 23:32:37 +02:00
src update combinatorics and sequences module 2024-08-17 00:44:21 +02:00
test 🔥 Remove old vendored gleeunit code. 2024-08-17 11:53:40 +01:00
.gitignore Initial commit 2022-12-23 15:26:58 +01:00
CODE_OF_CONDUCT.md Add CoD, codeowners + licence 2023-01-29 23:48:48 +01:00
CODEOWNERS Add CoD, codeowners + licence 2023-01-29 23:48:48 +01:00
gleam.toml 🔖 Bump to v1.1.1 2024-05-25 01:43:10 +01:00
LICENCE Add CoD, codeowners + licence 2023-01-29 23:48:48 +01:00
manifest.toml Update local dependencies. 2024-08-17 11:52:38 +01:00
README.md Update readme 2024-08-17 01:13:57 +02:00

gleam-community/maths

Package Version Hex Docs

A basic mathematics library that contains some of the most fundamental mathematics functions and utilities.

The library supports both targets: Erlang and JavaScript.

Quickstart

import gleam/float
import gleam/iterator
import gleam/option.{Some}
import gleam_community/maths/arithmetics
import gleam_community/maths/combinatorics.{WithoutRepetitions}
import gleam_community/maths/elementary
import gleam_community/maths/piecewise
import gleam_community/maths/predicates
import gleeunit/should

pub fn example() {
  // Evaluate the sine function
  let result = elementary.sin(elementary.pi())

  // Set the relative and absolute tolerance
  let assert Ok(absolute_tol) = elementary.power(10.0, -6.0)
  let relative_tol = 0.0

  // Check that the value is very close to 0.0
  // That is, if 'result' is within +/- 10^(-6)
  predicates.is_close(result, 0.0, relative_tol, absolute_tol)
  |> should.be_true()

  // Find the greatest common divisor
  arithmetics.gcd(54, 24)
  |> should.equal(6)

  // Find the minimum and maximum of a list
  piecewise.extrema([10.0, 3.0, 50.0, 20.0, 3.0], float.compare)
  |> should.equal(Ok(#(3.0, 50.0)))

  // Determine if a number is fractional
  predicates.is_fractional(0.3333)
  |> should.equal(True)

  // Generate all k = 2 combinations of [1, 2, 3]
  let assert Ok(combinations) =
    combinatorics.list_combination([1, 2, 3], 2, Some(WithoutRepetitions))
  combinations
  |> iterator.to_list()
  |> should.equal([[1, 2], [1, 3], [2, 3]])
}

Installation

gleam_community packages are published to hex.pm with the prefix gleam_community_. You can add them to your Gleam projects directly:

gleam add gleam_community_maths