Skip to content

Commit 94ab4e6

Browse files
authored
Add ARM implementations of ?sum
(trivial copies of the respective ?asum with the fabs calls removed)
1 parent c3cfc69 commit 94ab4e6

File tree

5 files changed

+541
-0
lines changed

5 files changed

+541
-0
lines changed

kernel/arm/KERNEL.ARMV5

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,11 @@ DASUMKERNEL = ../arm/asum.c
3535
CASUMKERNEL = ../arm/zasum.c
3636
ZASUMKERNEL = ../arm/zasum.c
3737

38+
SSUMKERNEL = ../arm/sum.c
39+
DSUMKERNEL = ../arm/sum.c
40+
CSUMKERNEL = ../arm/zsum.c
41+
ZSUMKERNEL = ../arm/zsum.c
42+
3843
SAXPYKERNEL = ../arm/axpy.c
3944
DAXPYKERNEL = ../arm/axpy.c
4045
CAXPYKERNEL = ../arm/zaxpy.c

kernel/arm/KERNEL.ARMV6

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ DASUMKERNEL = asum_vfp.S
3737
CASUMKERNEL = asum_vfp.S
3838
ZASUMKERNEL = asum_vfp.S
3939

40+
SSUMKERNEL = sum_vfp.S
41+
DSUMKERNEL = sum_vfp.S
42+
4043
SAXPYKERNEL = axpy_vfp.S
4144
DAXPYKERNEL = axpy_vfp.S
4245
CAXPYKERNEL = axpy_vfp.S

kernel/arm/sum.c

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
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+
* trivial copy of asum.c with the ABS() removed *
30+
**************************************************************************************/
31+
32+
33+
#include "common.h"
34+
#include <math.h>
35+
36+
FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x)
37+
{
38+
BLASLONG i=0;
39+
FLOAT sumf = 0.0;
40+
if (n <= 0 || inc_x <= 0) return(sumf);
41+
42+
n *= inc_x;
43+
while(i < n)
44+
{
45+
sumf += x[i];
46+
i += inc_x;
47+
}
48+
return(sumf);
49+
}
50+
51+

0 commit comments

Comments
 (0)