as-bignum
    TypeScript icon, indicating that this package has built-in type declarations

    0.2.18 • Public • Published

    NPM registryBuild StatusNPM license

    WebAssembly fixed length big numbers written on AssemblyScript

    Status: Work in progress

    Provide wide numeric types such as u128, u256, i128, i256 and fixed points and also its arithmetic operations.

    Namespace safe contain equivalents with overflow/underflow traps.

    All kind of types pretty useful for economical and cryptographic usages and provide deterministic behavior.

    Install

    yarn add as-bignum

    or

    npm i as-bignum

    Usage via AssemblyScript

    import { u128 } from "as-bignum";
    
    declare function logF64(value: f64): void;
    declare function logU128(hi: u64, lo: u64): void;
    
    var a = u128.One;
    var b = u128.from(-32); // same as u128.from<i32>(-32)
    var c = new u128(0x1, -0xF);
    var d = u128.from(0x0123456789ABCDEF); // same as u128.from<i64>(0x0123456789ABCDEF)
    var e = u128.from('0x0123456789ABCDEF01234567');
    var f = u128.fromString('11100010101100101', 2); // same as u128.from('0b11100010101100101')
    var r = d / c + (b << 5) + e;
    
    logF64(r.as<f64>());
    logU128(r.hi, r.lo);

    Usage via JavaScript/Typescript

    TODO

    List of types

    • [x] u128 unsigned type (tested)
    • [ ] u256 unsigned type (very basic)
    • [ ] i128 signed type
    • [ ] i256 signed type

    • [x] safe.u128 unsigned type (tested)

    • [ ] safe.u256 unsigned type

    • [ ] safe.i128 signed type

    • [ ] safe.i256 signed type


    • [ ] fp128<Q> generic fixed point signed type٭ (very basic for now)
    • [ ] fp256<Q> generic fixed point signed type٭

    • [ ] safe.fp128<Q> generic fixed point signed type٭
    • [ ] safe.fp256<Q> generic fixed point signed type٭

    ٭ typename Q is a type representing count of fractional bits

    Install

    npm i as-bignum

    DownloadsWeekly Downloads

    1,306

    Version

    0.2.18

    License

    Apache-2.0

    Unpacked Size

    949 kB

    Total Files

    44

    Last publish

    Collaborators

    • maxgraey