/// <summary> /// Does a point wise multiplication of two arrays <c>z = x * y</c>. This can be used /// to multiple elements of vectors or matrices. /// </summary> /// <param name="x">The array x.</param> /// <param name="y">The array y.</param> /// <param name="result">The result of the point wise multiplication.</param> /// <remarks>There is no equivalent BLAS routine, but many libraries /// provide optimized (parallel and/or vectorized) versions of this /// routine.</remarks> public override void PointWiseMultiplyArrays(float[] x, float[] y, float[] result) { if (y == null) { throw new ArgumentNullException("y"); } if (x == null) { throw new ArgumentNullException("x"); } if (x.Length != y.Length) { throw new ArgumentException(Resources.ArgumentArraysSameLength); } if (x.Length != result.Length) { throw new ArgumentException(Resources.ArgumentArraysSameLength); } SafeNativeMethods.s_vector_multiply(x.Length, x, y, result); }
/// <summary> /// Does a point wise multiplication of two arrays <c>z = x * y</c>. This can be used /// to multiple elements of vectors or matrices. /// </summary> /// <param name="x">The array x.</param> /// <param name="y">The array y.</param> /// <param name="result">The result of the point wise multiplication.</param> /// <remarks>There is no equivalent BLAS routine, but many libraries /// provide optimized (parallel and/or vectorized) versions of this /// routine.</remarks> public override void PointWiseMultiplyArrays(float[] x, float[] y, float[] result) { if (y == null) { throw new ArgumentNullException(nameof(y)); } if (x == null) { throw new ArgumentNullException(nameof(x)); } if (x.Length != y.Length) { throw new ArgumentException("The array arguments must have the same length."); } if (x.Length != result.Length) { throw new ArgumentException("The array arguments must have the same length."); } SafeNativeMethods.s_vector_multiply(x.Length, x, y, result); }