Nurturing Palpable Magnificence
    Wondering what’s next for npm?Check out our public roadmap! »

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

    6.1.1 • Public • Published

    Vectorious Logo

    A linear algebra library, written in TypeScript and accelerated with C++ bindings to BLAS and LAPACK.

    Installation

    Follow the installation instructions in nlapack and nblas to get maximum performance.

    # with C++ bindings
    $ npm install vectorious
    
    # or, if you don't want C++ bindings
    $ npm install vectorious --no-optional

    There are three output bundles exposed in this package.

    CommonJS

    A node.js bundle, can be found in dist/index.js and imported with the require() syntax:

    const v = require('vectorious');

    Browser

    A browser bundle, can be found in dist/index.browser.js and imported with the <script> tag:

    <script src="dist/index.browser.js" />

    It exposes a global variable named v in the window object and can be accessed like this:

    <script>
      const x = v.array([1, 2, 3]);
    </script>

    ES module

    Added in version 6.1.0, vectorious exposes an ES module bundle at dist/index.esm.js which can be imported using the import syntax:

    import { array } from 'vectorious';
    
    const x = array([1, 2, 3]);

    Usage

    import { array, random, range } from 'vectorious';
    
    // Create a random 2x2 matrix
    const x = random(2, 2);
    /*
    array([
      [
        0.26472008228302,
        0.4102575480937958
      ],
      [
        0.4068726599216461,
        0.4589384198188782
      ]
    ], dtype=float64)
    */
    
    // Create a one-dimensional vector with values from
    // 0 through 8 and reshape it into a 3x3 matrix
    const y = v.range(0, 9).reshape(3, 3);
    /*
    array([
      [ 0, 1, 2 ],
      [ 3, 4, 5 ],
      [ 6, 7, 8 ]
    ], dtype=float64)
    */
    
    // Add the second row of x to the first row of x
    y.slice(0, 1).add(y.slice(1, 2))
    /*
    array([
      [ 3, 5, 7 ],
      [ 3, 4, 5 ],
      [ 6, 7, 8 ]
    ], dtype=float64)
    */
    
    // Swap the first and second rows of x
    y.swap(0, 1);
    /*
    array([
      [ 3, 4, 5 ],
      [ 3, 5, 7 ],
      [ 6, 7, 8 ]
    ], dtype=float64)
    */
    
    // Create a 2x2x1 tensor
    const z = v.array([[[1], [2]], [[3], [4]]]);
    /*
    array([
      [ [ 1 ], [ 2 ] ],
      [ [ 3 ], [ 4 ] ]
    ], dtype=float64)
    */

    Documentation

    Examples

    Basic

    Machine learning

    Testing

    All functions are accompanied with a .spec.ts file.

    The Jest testing framework is used for testing and the whole test suite can be run using a single command:

    $ npm test

    Benchmarks

    All functions are accompanied with a .bench.ts file.

    Run all benchmarks with:

    $ npm run benchmark

    Or for a single function with:

    $ npx ts-node src/core/abs.bench.ts
    

    Install

    npm i vectorious

    DownloadsWeekly Downloads

    983

    Version

    6.1.1

    License

    MIT

    Unpacked Size

    742 kB

    Total Files

    102

    Last publish

    Collaborators

    • avatar
    • avatar