/** * An integral data type without a decimal. Partially borrowed from Purescript. * * @since 1.0.0 */ import * as Bnd from 'fp-ts/Bounded'; import * as Eq_ from 'fp-ts/Eq'; import * as IO from 'fp-ts/IO'; import * as Mg from 'fp-ts/Magma'; import * as Mn from 'fp-ts/Monoid'; import * as Sg from 'fp-ts/Semigroup'; import * as Ord_ from 'fp-ts/Ord'; import * as Sh from 'fp-ts/Show'; import * as Inf from './infix'; import * as Iso from './Iso'; import * as TC from './typeclasses'; import * as V from './Vector'; import * as M from './Matrix'; import * as Poly from './Polynomial'; declare const IntegerSymbol: unique symbol; declare type IntegerSymbol = typeof IntegerSymbol; /** * @since 1.0.0 * @category Model */ export declare type Int = number & { readonly _URI: IntegerSymbol; }; /** * @since 1.0.0 * @category Constructors */ export declare const fromNumber: (n: number) => Int; /** * @since 1.0.0 * @category Constructors */ export declare const zero: Int; /** * @since 1.0.0 * @category Constructors */ export declare const one: Int; /** * @since 1.0.0 * @category Constructors */ export declare const randInt: (min: number, max: number) => IO.IO; /** * @since 1.0.0 * @category Instances */ export declare const Eq: Eq_.Eq; /** * @since 1.0.0 * @category Instances */ export declare const Ord: Ord_.Ord; /** * @since 1.0.0 * @category Instances */ export declare const Bounded: Bnd.Bounded; /** * @since 1.0.0 * @category Instances */ export declare const MagmaSub: Mg.Magma; /** * @since 1.0.0 * @category Instances */ export declare const SemigroupSum: Sg.Semigroup; /** * @since 1.0.0 * @category Instances */ export declare const SemigroupProduct: Sg.Semigroup; /** * @since 1.0.0 * @category Instances */ export declare const MonoidSum: Mn.Monoid; /** * @since 1.0.0 * @category Instances */ export declare const MonoidProduct: Mn.Monoid; /** * Adapted from Purescript: * https://github.com/purescript/purescript-prelude/blob/v6.0.0/src/Data/EuclideanRing.js * * @since 1.0.0 * @category Instances */ export declare const EuclideanRing: TC.EuclidianRing; /** * @since 1.0.0 * @category Instances */ export declare const Show: Sh.Show; /** * @since 1.0.0 * @category Infix */ export declare const _: (a: Int, s: Inf.EuclideanRingSymbol, b: Int) => Int; /** * @since 1.0.0 * @category Infix */ export declare const $_: (s: Inf.EuclideanRingSymbol, x: Int, y: Int) => Int; /** * @since 1.0.0 * @category Infix */ export declare const _$: (a: Int, b: Int, s: Inf.EuclideanRingSymbol) => Int; /** * @since 1.0.0 * @category Destructors */ export declare const toNumber: (x: Int) => number; /** * @since 1.0.0 * @category Isomorphisms */ export declare const isoNumber: Iso.Iso; /** * @since 1.0.0 * @category Integer Ops */ export declare const abs: (a: Int) => Int; /** * @since 1.0.0 * @category Model */ export declare type Vec = V.Vec; /** * @since 1.0.0 * @category Instances */ export declare const AdditiveAbGrpN: (n: N) => TC.AbelianGroup>; /** * @since 1.0.0 * @category Instances */ export declare const BiModN: (n: N) => TC.Bimodule, Int, Int>; /** * @since 1.0.0 * @category Model */ export declare type Mat = M.Mat; /** * @since 1.0.0 * @category Instances */ export declare const AdditiveAbGrpMN: (m: M, n: N) => TC.AbelianGroup>; /** * @since 1.0.0 * @category Instances */ export declare const BiModMN: (m: M, n: N) => TC.Bimodule, Int, Int>; /** * @since 1.0.0 * @category Instances */ export declare const PolynomialAdditiveAbelianGroup: TC.AbelianGroup>; /** * @since 1.0.0 * @category Instances */ export declare const PolynomialBimodule: TC.Bimodule, Int, Int>; /** * @since 1.0.0 * @category Instances */ export declare const PolynomialRing: TC.CommutativeRing>; /** * @since 1.0.0 * @category Instances */ export declare const PolynomialEuclidianRing: TC.EuclidianRing>; /** * @since 1.0.0 * @category Aliases */ export declare const add: (x: Int, y: Int) => Int; /** * @since 1.0.0 * @category Aliases */ export declare const sub: (x: Int, y: Int) => Int; /** * @since 1.0.0 * @category Aliases */ export declare const mul: (x: Int, y: Int) => Int; /** * @since 1.0.0 * @category Aliases */ export declare const div: (x: Int, y: Int) => Int; /** * @since 1.0.0 * @category Aliases */ export declare const mod: (x: Int, y: Int) => Int; /** * @since 1.0.0 * @category Aliases */ export declare const degree: (a: Int) => number; export {}; //# sourceMappingURL=integer.d.ts.map