Have ideas to improve npm?Join in the discussion! »

    tensor-product

    0.2.2 • Public • Published

    tensor-product

    computes the product of tensors

    js-standard-style

    NPM version Build Status Dependency Status

    Install

    With npm do

    npm install tensor-product --save
    

    Usage

    Signature is (multiplication, leftDim, rightDim, leftData, rightData) where

    • multiplication is a function that defines the scalar operator used
    • leftDim and rightDim are arrays that define the tensor indices set
    • leftData and rightData are arrays that define the tensor data set

    It returns the tensorData array given by the product of tensors defined by leftData and rightData.

    Examples

    All code in the examples below is intended to be contained into a single file.

    Let's use common real multiplication.

    var tensorProduct = require('tensor-product')
    
    function multiplication (a, b) { return a * b }
    
    var product = tensorProduct.bind(null, multiplication)
    

    scalar x scalar

    A tensor with one index that has a unique value is like a scalar. This case degenerate to scalar multiplication.

    var product_1x1 = product.bind(null, [1], [1])
    
    product_1x1([2], [3]) // [6]
    

    scalar x vector

    A tensor with one index which range is greater than one is like a vector. This case is like vector multiplication by a scalar.

    var product_1x2 = product.bind(null, [1], [2])
    
    product_1x2([-1], [1, 2]) // [-1, -2]
    

    vector x vector

    The tensor product of two vectors is a matrix.

    var product_2x2 = product.bind(null, [2], [2])
    
    product_2x2([1, 2], [3, 4]) // [3, 4,
                                //  6, 8]
    

    matrix x scalar

    A tensor with two indices is like a matrix. This case is like matrix multiplication by a scalar.

    var product_2_2x1 = product.bind(null, [2, 2], [1])
    
    product_2_2x1( [1, 2,       // [2, 4,
                    3, 4], [2]) //  6, 8]
    

    scalar x matrix

    Similar to example above, but commuted.

    var product_1x2_2 = product.bind(null, [1], [2, 2])
    
    product_1x2_2([2], [1, 2,  // [2, 4,
                        3, 4]) //  6, 8]
    

    matrix x matrix

    A product tensor of two matrices is a tensor with four indices.

    var product_2_2x2_2 = product.bind(null, [2, 2], [2, 2])
    
    product_2_2x2_2([2, 2,
                     2, 2], [1, 2,
                             3, 4]) // [2, 2,
                                    //  2, 2, 4, 4,
                                    //        4, 4, 6, 6,
                                    //              6, 6, 8, 8,
                                    //                    8, 8]
    

    License

    MIT

    Keywords

    Install

    npm i tensor-product

    DownloadsWeekly Downloads

    8

    Version

    0.2.2

    License

    MIT

    Unpacked Size

    8.36 kB

    Total Files

    7

    Last publish

    Collaborators

    • avatar