/root/doris/contrib/openblas/kernel/arm/zscal.c
Line | Count | Source |
1 | | /*************************************************************************** |
2 | | Copyright (c) 2013, The OpenBLAS Project |
3 | | All rights reserved. |
4 | | Redistribution and use in source and binary forms, with or without |
5 | | modification, are permitted provided that the following conditions are |
6 | | met: |
7 | | 1. Redistributions of source code must retain the above copyright |
8 | | notice, this list of conditions and the following disclaimer. |
9 | | 2. Redistributions in binary form must reproduce the above copyright |
10 | | notice, this list of conditions and the following disclaimer in |
11 | | the documentation and/or other materials provided with the |
12 | | distribution. |
13 | | 3. Neither the name of the OpenBLAS project nor the names of |
14 | | its contributors may be used to endorse or promote products |
15 | | derived from this software without specific prior written permission. |
16 | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
17 | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
18 | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
19 | | ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBLAS PROJECT OR CONTRIBUTORS BE |
20 | | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
21 | | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
22 | | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
23 | | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
24 | | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE |
25 | | USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | | *****************************************************************************/ |
27 | | |
28 | | /************************************************************************************** |
29 | | * 2013/09/14 Saar |
30 | | * BLASTEST float : OK |
31 | | * BLASTEST double : OK |
32 | | * CTEST : OK |
33 | | * TEST : OK |
34 | | * |
35 | | **************************************************************************************/ |
36 | | |
37 | | #include "common.h" |
38 | | |
39 | | // The c/zscal_k function is called not only by cblas_c/zscal but also by other upper-level interfaces. |
40 | | // In certain cases, the expected return values for cblas_s/zscal differ from those of other upper-level interfaces. |
41 | | // To handle this, we use the dummy2 parameter to differentiate between them. |
42 | | int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da_r,FLOAT da_i, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT *dummy, BLASLONG dummy2) |
43 | 0 | { |
44 | 0 | BLASLONG i = 0; |
45 | 0 | BLASLONG inc_x2; |
46 | 0 | BLASLONG ip = 0; |
47 | 0 | FLOAT temp; |
48 | |
|
49 | 0 | if ((n <= 0) || (inc_x <= 0)) |
50 | 0 | return(0); |
51 | | |
52 | 0 | inc_x2 = 2 * inc_x; |
53 | 0 | if (dummy2 == 0) { |
54 | 0 | for (i = 0; i < n; i++) |
55 | 0 | { |
56 | 0 | if (da_r == 0.0 && da_i == 0.0) |
57 | 0 | { |
58 | 0 | x[ip] = 0.0; |
59 | 0 | x[ip+1] = 0.0; |
60 | 0 | } |
61 | 0 | else |
62 | 0 | { |
63 | 0 | temp = da_r * x[ip] - da_i * x[ip+1]; |
64 | 0 | x[ip+1] = da_r * x[ip+1] + da_i * x[ip] ; |
65 | 0 | x[ip] = temp; |
66 | 0 | } |
67 | |
|
68 | 0 | ip += inc_x2; |
69 | 0 | } |
70 | 0 | return(0); |
71 | 0 | } |
72 | 0 | for (i = 0; i < n; i++) |
73 | 0 | { |
74 | 0 | temp = da_r * x[ip] - da_i * x[ip+1]; |
75 | 0 | x[ip+1] = da_r * x[ip+1] + da_i * x[ip] ; |
76 | |
|
77 | 0 | x[ip] = temp; |
78 | 0 | ip += inc_x2; |
79 | 0 | } |
80 | |
|
81 | 0 | return(0); |
82 | 0 | } Unexecuted instantiation: cscal_k_PRESCOTT Unexecuted instantiation: zscal_k_PRESCOTT Unexecuted instantiation: cscal_k_CORE2 Unexecuted instantiation: zscal_k_CORE2 Unexecuted instantiation: cscal_k_NEHALEM Unexecuted instantiation: zscal_k_NEHALEM Unexecuted instantiation: cscal_k_BARCELONA Unexecuted instantiation: zscal_k_BARCELONA Unexecuted instantiation: zscal_k_SANDYBRIDGE |