File: repl.txt

package info (click to toggle)
node-stdlib 0.0.96%2Bds1%2B~cs0.0.429-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 421,476 kB
  • sloc: javascript: 1,562,831; ansic: 109,702; lisp: 49,823; cpp: 27,224; python: 7,871; sh: 6,807; makefile: 6,089; fortran: 3,102; awk: 387
file content (134 lines) | stat: -rw-r--r-- 4,235 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134

{{alias}}( N, scalar, x, strideX, y, strideY )
    Computes the dot product of two single-precision floating-point vectors with
    extended accumulation.

    The `N`, `strideX`, and `strideY` parameters determine which elements in `x`
    and `y` are accessed at runtime.

    Indexing is relative to the first index. To introduce an offset, use a typed
    array view.

    If `N <= 0` the function returns `scalar`.

    Parameters
    ----------
    N: integer
        Number of indexed elements.

    scalar: number
        Scalar constant added to dot product.

    x: Float32Array
        First input array.

    strideX: integer
        Index increment for `x`.

    y: Float32Array
        Second input array.

    strideY: integer
        Index increment for `y`.

    Returns
    -------
    dot: number
        The dot product of `x` and `y`.

    Examples
    --------
    // Standard usage:
    > var x = new {{alias:@stdlib/array/float32}}( [ 4.0, 2.0, -3.0, 5.0, -1.0 ] );
    > var y = new {{alias:@stdlib/array/float32}}( [ 2.0, 6.0, -1.0, -4.0, 8.0 ] );
    > var dot = {{alias}}( x.length, 0.0, x, 1, y, 1 )
    -5.0

    // Strides:
    > x = new {{alias:@stdlib/array/float32}}( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
    > y = new {{alias:@stdlib/array/float32}}( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );
    > var N = {{alias:@stdlib/math/base/special/floor}}( x.length / 2 );
    > dot = {{alias}}( N, 0.0, x, 2, y, -1 )
    9.0

    // Using view offsets:
    > x = new {{alias:@stdlib/array/float32}}( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
    > y = new {{alias:@stdlib/array/float32}}( [ 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );
    > var x1 = new {{alias:@stdlib/array/float32}}( x.buffer, x.BYTES_PER_ELEMENT*1 );
    > var y1 = new {{alias:@stdlib/array/float32}}( y.buffer, y.BYTES_PER_ELEMENT*3 );
    > N = {{alias:@stdlib/math/base/special/floor}}( x.length / 2 );
    > dot = {{alias}}( N, 0.0, x1, -2, y1, 1 )
    128.0

{{alias}}.ndarray( N, scalar, x, strideX, offsetX, y, strideY, offsetY )
    Computes the dot product of two single-precision floating-point vectors
    using alternative indexing semantics and with extended accumulation.

    While typed array views mandate a view offset based on the underlying
    buffer, the `offsetX` and `offsetY` parameters support indexing based on a
    starting index.

    Parameters
    ----------
    N: integer
        Number of indexed elements.

    scalar: number
        Scalar constant added to dot product.

    x: Float32Array
        First input array.

    strideX: integer
        Index increment for `x`.

    offsetX: integer
        Starting index for `x`.

    y: Float32Array
        Second input array.

    strideY: integer
        Index increment for `y`.

    offsetY: integer
        Starting index for `y`.

    Returns
    -------
    dot: number
        The dot product of `x` and `y`.

    Examples
    --------
    // Standard usage:
    > var x = new {{alias:@stdlib/array/float32}}( [ 4.0, 2.0, -3.0, 5.0, -1.0 ] );
    > var y = new {{alias:@stdlib/array/float32}}( [ 2.0, 6.0, -1.0, -4.0, 8.0 ] );
    > var dot = {{alias}}.ndarray( x.length, 0.0, x, 1, 0, y, 1, 0 )
    -5.0

    // Strides:
    > x = new {{alias:@stdlib/array/float32}}( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
    > y = new {{alias:@stdlib/array/float32}}( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );
    > var N = {{alias:@stdlib/math/base/special/floor}}( x.length / 2 );
    > dot = {{alias}}.ndarray( N, 0.0, x, 2, 0, y, 2, 0 )
    9.0

    // Using offset indices:
    > x = new {{alias:@stdlib/array/float32}}( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
    > y = new {{alias:@stdlib/array/float32}}( [ 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );
    > N = {{alias:@stdlib/math/base/special/floor}}( x.length / 2 );
    > dot = {{alias}}.ndarray( N, 0.0, x, -2, x.length-1, y, 1, 3 )
    128.0

    References
    ----------
    - Lawson, Charles L., Richard J. Hanson, Fred T. Krogh, and David Ronald
    Kincaid. 1979. "Algorithm 539: Basic Linear Algebra Subprograms for Fortran
    Usage [F1]." *ACM Transactions on Mathematical Software* 5 (3). New York,
    NY, USA: Association for Computing Machinery: 324–25.
    doi:10.1145/355841.355848.

    See Also
    --------