0.1.1 • Published 4 years ago
test_pkg_dummy v0.1.1
Work in progress
WebAssembly fixed length big numbers written on AssemblyScript
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
TODOList of types
safe.u128unsigned type (tested)safe.u256unsigned typesafe.i128signed typesafe.i256signed 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