1.0.5 • Published 2 years ago
nv-number-rational v1.0.5
nv-number-rational
- nv-number-rational
- change to bigint only
- its slow, for nvlang test
install
- npm install nv-number-rational
usage
example
const {R} = require("nv-number-rational");
var r0 = new R(2n,3n)
var r1 = new R(4n,6n)
/*
> r0
R [2/3] {}
> r1
R [2/3] {}
>
> r0.eq(r1)
true
>
*/
var r2 = new R(1n,4n)
/*
> r1.add(r2)
R [11/12] {}
>
*/
> r1.sub(r2)
R [5/12] {}
>
> r1.mul(r2)
R [1/6] {}
>
> r1.div(r2)
R [8/3] {}
>
> r1.inv()
R [3/2] {}
>
> r1.pow(3)
R [8/27] {}
>
> r = new R(4n,1n)
R [4/1] {}
> r.fac()
R [24/1] {}
>
// if expo is not Interger
// it is slow, coz use generator ,and create many Object, just for test
var expo = new R(1n,2n)
R [1/2] {}
> r.pow(expo)
R [369605/262144] {}
> 369605/262144
1.4099311828613281
> r.pow(expo,20n)
R [9047671586969002/6404673143616437] {}
> 9047671586969002/6404673143616437
1.412667185988539
>
> r.pow(expo,30n)
R [1027024547004035/726651436273238] {}
>
> 1027024547004035/726651436273238
1.413366155678869
>
> 1.413 **2
1.996569
> r.pow(expo,100n)
R [9689389663632316/6852113954983295] {}
> 9689389663632316/6852113954983295
1.4140730477177152
>
> 1.4140730477177152 **2
1.9996025842816678
APIS
{
rq: [Function: rq],
inrng: [Function: inrng],
interval: [Function: interval],
get_rng: [Function: get_rng],
_gcd: [Function: _gcd],
gcd: [Function: gcd],
_lcm: [Function: _lcm],
lcm: [Function: lcm],
R: [class R],
ZERO: R [0/1] {},
ONE: R [1/1] {},
_pow: [Function: _pow],
add: [Function: add],
sub: [Function: sub],
mul: [Function: mul],
div: [Function: div],
lt: [Function: lt],
le: [Function: le],
eq: [Function: eq],
gt: [Function: gt],
ge: [Function: ge],
gen_fac: [GeneratorFunction: gen_fac],
gen_pow: [GeneratorFunction: gen_pow]
}
LICENSE
- ISC