sdsdot_f.c (1636B)
1 /** 2 * @license Apache-2.0 3 * 4 * Copyright (c) 2020 The Stdlib Authors. 5 * 6 * Licensed under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 */ 18 19 /** 20 * Compute the dot product of two single-precision floating-point vectors with extended accumulation. 21 * 22 * @see <a href="http://www.netlib.org/lapack/expolore-html/df/d28/group__single__blas__level1.html">sdsdot</a> 23 */ 24 #include "stdlib/blas/base/sdsdot.h" 25 #include "stdlib/blas/base/sdsdot_fortran.h" 26 27 /** 28 * Computes the dot product of two single-precision floating-point vectors with extended accumulation. 29 * 30 * Arguments are passed by reference to a Fortran subroutine implementing `sdsdot`. 31 * 32 * @param N number of values over which to compute the dot product 33 * @param scalar scalar constant added to the dot product 34 * @param X first array 35 * @param strideX X stride length 36 * @param Y second array 37 * @param strideY Y stride length 38 * @returns the dot product of X and Y 39 */ 40 float c_sdsdot( const int N, const float scalar, const float *X, const int strideX, const float *Y, const int strideY ) { 41 float dot; 42 sdsdotsub( &N, &scalar, X, &strideX, Y, &strideY, &dot ); 43 return dot; 44 }