-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnumpy.h
More file actions
59 lines (48 loc) · 1.55 KB
/
Copy pathnumpy.h
File metadata and controls
59 lines (48 loc) · 1.55 KB
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
#ifndef NP_H
#define NP_H
template <typename T>
inline double np_sum(T* x, size_t len) {
double total = 0;
for(int i = len; i--; ) total += x[i];
return total;
}
void np_print(float* A, const size_t size_y, const size_t size_x) {
printf("[\n");
for (int i = 0; i < size_y; i++) {
for (int j = 0; j < size_x; j++ ) {
if ((i == size_y - 1) && (j == size_x - 1)) printf(" %.6f", A[i * size_x + j]);
else printf(" %.6f,", A[i * size_x + j]);
}
printf("\n");
}
printf("]\n");
}
void np_print(int* A, const size_t size_y, const size_t size_x) {
printf("[\n");
for (int i = 0; i < size_y; i++) {
for (int j = 0; j < size_x; j++ ) {
if ((i == size_y - 1) && (j == size_x - 1)) printf(" %d", A[i * size_x + j]);
else printf(" %d,", A[i * size_x + j]);
}
printf("\n");
}
printf("]\n");
}
double np_sum (float* arr, int start, int stop) {
double sum = 0;
for(int i = start; i < stop; i++) sum += arr[i];
return sum;
}
double np_sum (float* arr, int start, int stop, int length) {
double sum = 0;
for(int i = start; i < stop; i++)
for(int j = 0; j < length; j++) sum += arr[i*length + j];
return sum;
}
double np_sum (float* arr, int start, int stop, int length, int start_len, int stop_len) {
double sum = 0;
for(int i = start; i < stop; i++)
for(int j = start_len; j < stop_len; j++) sum += arr[i*length + j];
return sum;
}
#endif