Press n or j to go to the next uncovered block, b, p or k for the previous block.
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 | 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 15x 15x 15x 15x 15x 15x 15x 15x 15x 15x 15x 3x 3x 3x 3x 3x | /** * @license Apache-2.0 * * Copyright (c) 2025 The Stdlib Authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ 'use strict'; // MODULES // var float64ToFloat32 = require( '@stdlib/number/float64/base/to-float32' ); // MAIN // /** * Performs a multiply-add operation involving three single-precision complex floating-point numbers stored in real-valued strided array views and assigns results to a provided strided output array. * * @param {Float32Array} alpha - first complex number view * @param {integer} strideA - stride length for `alpha` * @param {NonNegativeInteger} offsetA - starting index for `alpha` * @param {Float32Array} x - second complex number view * @param {integer} strideX - stride length for `x` * @param {NonNegativeInteger} offsetX - starting index for `x` * @param {Float32Array} y - third complex number view * @param {integer} strideY - stride length for `y` * @param {NonNegativeInteger} offsetY - starting index for `y` * @param {Collection} out - output array * @param {integer} strideOut - stride length for `out` * @param {NonNegativeInteger} offsetOut - starting index for `out` * @returns {Collection} output array * * @example * var Float32Array = require( '@stdlib/array/float32' ); * * var alpha = new Float32Array( [ 5.0, 3.0 ] ); * var x = new Float32Array( [ -2.0, 1.0 ] ); * var y = new Float32Array( [ 7.0, -8.0 ] ); * * var out = strided( alpha, 1, 0, x, 1, 0, y, 1, 0, new Float32Array( 2 ), 1, 0 ); * // returns <Float32Array>[ -6.0, -9.0 ] */ function strided( alpha, strideA, offsetA, x, strideX, offsetX, y, strideY, offsetY, out, strideOut, offsetOut ) { // eslint-disable-line max-len, max-params var re0 = alpha[ offsetA ]; var im0 = alpha[ offsetA+strideA ]; var re1 = x[ offsetX ]; var im1 = x[ offsetX+strideX ]; var re2 = y[ offsetY ]; var im2 = y[ offsetY+strideY ]; out[ offsetOut ] = float64ToFloat32( float64ToFloat32(re0*re1) - float64ToFloat32(im0*im1) + re2 ); out[ offsetOut+strideOut ] = float64ToFloat32( float64ToFloat32(re0*im1) + float64ToFloat32(im0*re1) + im2 ); return out; } // EXPORTS // module.exports = strided; |