konpeito
"konpeito" is a library to "compute". :)
What
- The library for math calculations.
- When calculating, use method chain.
- Coding in ES6, and published ES6 modules and UMD.
- API reference is complete.
Features
This library has 4 functions.
- BigInteger
- BigDecimal
- Fraction
- Matrix
Has the following features.
- BigDecimal and Fraction are constructed by BigInteger.
- Matrix is constructed by array of Complex.
- Matrix can't use huge real numbers like BigInteger or BigDecimal, but they are powerful. Initialization can be described as Scilab, Octave, MATLAB.
- Does not support sparse matrix.
Please check the console and main.mjs.
Install for node.js
This library can be installed using npm.
npm install konpeito
Then you can include it in your code:
var konpeito = require("konpeito");
If you want to use in the ES6 module, please execute with the following command.
node --experimental-modules main.mjs
Install for browser
Please use mjs file when using ES6 modules. And use js file when using UMD.
./build/konpeito.esm.min.js
./build/konpeito.umd.min.js
with ES6 module.
<script type="module" src="./main.mjs" charset="utf-8"></script>
with UMD
<script src="./konpeito.umd.min.js" charset="utf-8"></script>
<script src="./main.js" charset="utf-8"></script>
Repository
Sample
BigInteger
- A calculation class for arbitrary-precision integer arithmetic.
- BigInt of ES2019 is not used.
const konpeito = require("konpeito");
const BigInteger = konpeito.BigInteger;
const $ = BigInteger.create;
console.log($("-1234567890").mul("987654321098765432109876543210").toString());
> -1219326311248285321124828532111263526900
console.log($("7").pow("50").toString());
> 1798465042647412146620280340569649349251249
BigDecimal
- A calculation class for arbitrary-precision floating point arithmetic.
- The calculation uses the BigInteger.
const konpeito = require("konpeito");
const BigDecimal = konpeito.BigDecimal;
const MathContext = konpeito.MathContext;
const $ = BigDecimal.create;
BigDecimal.setDefaultContext(MathContext.UNLIMITED);
console.log($("-123456.7890").mul("987654321098765.432109876543210").toString());
> -121932631124828532112.4828532111263526900
Fraction
- A calculation class for fractions with infinite precision.
- The calculation uses the BigInteger.
const konpeito = require("konpeito");
const Fraction = konpeito.Fraction;
const $ = Fraction.create;
console.log($("1/3").add("0.(3)").mul(10).toString());
> 20 / 3
Matrix
- Matrix is a general-purpose calculation class with signal processing and statistical processing.
- The calculation uses the Complex.
- Some methods do not support complex arithmetic.
const konpeito = require("konpeito");
const Matrix = konpeito.Matrix;
const $ = Matrix.create;
console.log($("[1 2;3 4;5 6]").toString());
>
1 2
3 4
5 6
const USV = $("[1 2;3 4;5 6]").svd();
console.log(USV.U.toString());
>
0.2298 -0.8835 0.4082
0.5247 -0.2408 -0.8165
0.8196 0.4019 0.4082
console.log(USV.S.toString());
>
9.5255 0.0000
0.0000 0.5143
0.0000 0.0000
console.log(USV.V.toString());
>
0.7849 0.6196
-0.6196 0.7849
console.log(USV.U.mul(USV.S).mul(USV.V.T()).toString());
>
1.0000 2.0000
3.0000 4.0000
5.0000 6.0000
console.log($("[1+j 2-3j -3 -4]").fft().toString());
> -4.0000 - 2.0000i 1.0000 - 5.0000i 0.0000 + 4.0000i 7.0000 + 7.0000i
console.log($("[1 2 30]").dct().toString());
> 19.0526 -20.5061 11.0227