as-bignum v0.3.1
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/assembly";
// Before 0.20.x
// 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
safe.u128
unsigned type (tested)safe.u256
unsigned typesafe.i128
signed typesafe.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
8 months ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago