Natural overview
Added in v1.0.0
Table of contents
Constructor
fromNumber
Attempts to construct a [[Natural]] from a number, computing none if not a safe non-negative integer, otherwise some(n).
import { Natural } from 'fp-ts-numerics'
import { Branded } from './Internal/Branded'
Natural.fromNumber(100)
// > option.some(Natural.of(1,0,0))
Natural.fromNumber(Number.MAX_VALUE)
// > option.nothing
Signature
export declare function fromNumber(n: number): Option<Natural>
Added in v1.0.0
unsafeFromNumber
Unsafely attempts to construct an [[Natural]] from a number, throwing an error if not a safe, non-negative integer.
import { Natural } from 'fp-ts-numerics'
Natural.unsafeFromNumber(100)
// > Natural.of(1,0,0)
Natural.unsafeFromNumber(Number.MAX_VALUE)
// > uncaught error
Signature
export declare function unsafeFromNumber(n: number): Natural
Added in v1.0.0
Instances
HasAdd
Signature
export declare const HasAdd: HasAdd<Int>
Added in v1.0.0
HasMul
Signature
export declare const HasMul: HasMul<Int>
Added in v1.0.0
HasOne
Signature
export declare const HasOne: HasOne<Int>
Added in v1.0.0
HasZero
Signature
export declare const HasZero: HasZero<Int>
Added in v1.0.0
Typeclass Instance
Enum
Signature
export declare const Enum: Enum<Natural>
Added in v1.0.0
Eq
Signature
export declare const Eq: Eq<Natural>
Added in v1.0.0
HasPow
Signature
export declare const HasPow: HasPow<Natural>
Added in v1.0.0
HasToInt
Signature
export declare const HasToInt: HasToInt<Natural>
Added in v1.0.0
HasToRational
Signature
export declare const HasToRational: HasToRational<Natural>
Added in v1.0.0
Integral
Signature
export declare const Integral: Integral<Natural>
Added in v1.0.0
Ord
Signature
export declare const Ord: ord.Ord<Natural>
Added in v1.0.0
Semiring
Signature
export declare const Semiring: Semiring<Natural>
Added in v1.0.0
utils
Digits (type alias)
Signature
export type Digits = [LeadingDigit | Digit] | [LeadingDigit, ...Array<Digit>]
Added in v1.0.0
Natural
Signature
export declare const Natural: Eq<Natural> &
Enum<Natural> &
HasAdd<Natural> &
HasMul<Natural> &
HasOne<Natural> &
HasPow<Natural> &
HasToInt<Natural> &
HasToRational<Natural> &
HasZero<Natural> &
Integral<Natural> &
Ord<Natural> &
Show<Natural> &
Semiring<Natural> & {
degree: typeof degree
div: typeof div
Enum: Enum<Natural>
Eq: Eq<Natural>
fromInt: typeof fromInt
fromNumber: typeof fromNumber
HasAdd: HasAdd<Int>
HasMul: HasMul<Int>
HasOne: HasOne<Int>
HasPow: HasPow<Natural>
HasToInt: HasToInt<Natural>
HasToRational: HasToRational<Natural>
HasZero: HasZero<Int>
Integral: Integral<Natural>
isTypeOf: typeof isTypeOf
minus: typeof minus
mod: typeof mod
of: typeof of
Ord: ord.Ord<Natural>
Semiring: Semiring<Natural>
Show: Show<Natural>
toBigInt: typeof toBigInt
unsafeFromNumber: typeof unsafeFromNumber
toNumber: typeof toNumber
unsafeMinus: typeof unsafeMinus
}
Added in v1.0.0
Natural (interface)
Arbitrary-precision non-negative integers
Signature
export interface Natural extends NonNegative<Int> {}
Added in v1.0.0
Show
Signature
export declare const Show: Show<Natural>
Added in v1.0.0
add
Signature
export declare function add(a: Natural, b: Natural): Natural
Added in v: 1.0.0
compare
Signature
export declare function compare(a: Natural, b: Natural): Ordering
Added in v1.0.0
degree
Signature
export declare function degree(i: Natural): Natural
Added in v1.0.0
div
Signature
export declare function div(n: Natural, d: NonZero<Natural>): Natural
Added in v1.0.0
equals
Signature
export declare function equals(a: Natural, b: Natural): boolean
Added in v1.0.0
fromInt
Signature
export declare function fromInt(n: Int): Option<Natural>
Added in v1.0.0
isTypeOf
Signature
export declare function isTypeOf(n: unknown): n is Natural
Added in v1.0.0
minus
Subtract the second Natural from the first. Evaluates to zero when the result would be less than zero, since Natural cannot obey Ring laws or wrap on overflow. See unsafeMinus if you desire a runtime error to be thrown on underflow.
Signature
export declare function minus(a: Natural, b: Natural): Natural
Added in v1.0.0
mod
Signature
export declare function mod(n: Natural, d: Natural): Natural
Added in v1.0.0
mul
Signature
export declare function mul(a: Natural, b: Natural): Natural
Added in v: 1.0.0
next
Signature
export declare function next(prev: Natural): Option<Natural>
Added in v: 1.0.0
numberIsNatural
Signature
export declare function numberIsNatural(n: number): boolean
Added in v1.0.0
of
Signature
export declare function of(zero: 0): Natural
export declare function of(...digits: Digits): NonZero<Natural>
Added in v1.0.0
one
Signature
export declare const one: NonZero<Natural>
Added in v: 1.0.0
pow
Signature
export declare function pow(n: Natural, exponent: Natural): Natural
Added in v: 1.0.0
prev
Signature
export declare function prev(next: Natural): Option<Natural>
Added in v: 1.0.0
quot
Signature
export declare function quot(a: Natural, b: Natural): Natural
Added in v: 1.0.0
rem
Signature
export declare function rem(a: Natural, b: Natural): Natural
Added in v: 1.0.0
stringify
Signature
export declare function stringify(n: Natural): string
Added in v: 1.0.0
toInt
Signature
export declare function toInt(n: Natural): NonNegative<Int>
Added in v: 1.0.0
toNumber
Signature
export declare function toNumber(i: Natural): Option<number>
Added in v1.0.0
toRational
Signature
export declare function toRational(a: Natural): Rational
Added in v1.0.0
unsafeMinus
Subtract the second Natural from the first. Throws an error if underflow occurs.
Signature
export declare function unsafeMinus(a: Natural, b: Natural): Natural
Added in v1.0.0
zero
Signature
export declare const zero: Natural
Added in v: 1.0.0