libxmp/libxmpf in Omni Compiler
1.3.4
|
#include <string.h>
#include <stdlib.h>
#include "xmp_internal.h"
#include "xmp_math_function.h"
◆ alloc_csd()
◆ bsd2csd()
226 if (!bsd)
return NULL;
231 for (
int i = 0; i < bsd->
b; i++){
232 csd->
l[i] = bsd->
l + i;
233 int t = (bsd->
u - csd->
l[i]) / bsd->
c;
234 csd->
u[i] = csd->
l[i] + bsd->
c * t;
◆ copy_csd()
184 for (
int i = 0; i < csd->
n; i++){
185 new_csd->
l[i] = csd->
l[i];
186 new_csd->
u[i] = csd->
u[i];
◆ csd2comm_set()
246 if (!csd || csd->
n == 0)
return NULL;
251 comm_set->
l = csd->
l[0];
252 comm_set->
u = csd->
l[0];
253 comm_set->
next = NULL;
255 for (
int j = 0; csd->
l[0] + j <= csd->
u[0]; j+= csd->
s){
257 for (
int i = 0; i < csd->
n; i++){
259 int l = csd->
l[i] + j;
261 if (l > csd->
u[i])
continue;
263 if (l == comm_set->
u + 1){
266 else if (l <= comm_set->u){
271 comm_set = comm_set->
next;
274 comm_set->
next = NULL;
◆ free_comm_set()
◆ free_csd()
◆ get_csd_size()
195 for (
int i = 0; i < csd->
n; i++){
◆ intersection_csds()
118 if (!csd1 || !csd2)
return NULL;
126 for (
int i = 0; i < csd1->
n; i++){
127 for (
int j = 0; j < csd2->
n; j++){
142 while (csd0->
l[p-1] > tmp->
l && p > 0){
144 s = csd0->
l[p-1]; csd0->
l[p-1] = csd0->
l[p]; csd0->
l[p] = s;
145 s = csd0->
u[p-1]; csd0->
u[p-1] = csd0->
u[p]; csd0->
u[p] = s;
◆ intersection_rsds()
86 if (!_rsd1 || !_rsd2)
return NULL;
88 if (_rsd1->
l <= _rsd2->
l){
97 if (rsd2->
l <= rsd1->
u){
98 int min_u =
MIN(rsd1->
u, rsd2->
u);
99 for (
int i = rsd2->
l; i <= min_u; i += rsd2->s){
100 if ((i - rsd1->
l) % rsd1->
s == 0){
104 int t = (min_u - rsd0->
l) / rsd0->
s;
105 rsd0->
u = rsd0->
l + rsd0->
s * t;
◆ print_bsd()
27 printf(
"(%d : %d : %d : %d)\n", bsd->
l, bsd->
u, bsd->
b, bsd->
c);
◆ print_comm_set()
71 printf(
"(%d : %d)", comm_set->
l, comm_set->
u);
73 while ((comm_set = comm_set->
next)){
74 printf(
", (%d : %d)", comm_set->
l, comm_set->
u);
◆ print_csd()
34 if (!csd || csd->
n == 0){
41 printf(
"(%d", csd->
l[0]);
42 for (
int i = 1; i < csd->
n; i++){
43 printf(
", %d", csd->
l[i]);
49 printf(
"(%d", csd->
u[0]);
50 for (
int i = 1; i < csd->
n; i++){
51 printf(
", %d", csd->
u[i]);
57 printf(
"%d)\n", csd->
s);
◆ print_rsd()
14 printf(
"(%d : %d : %d)\n", rsd->
l, rsd->
u, rsd->
s);
◆ reduce_csd()
void reduce_csd |
( |
_XMP_csd_t * |
csd[_XMP_N_MAX_DIM], |
|
|
int |
ndims |
|
) |
| |
287 for (
int i = 0; i < ndims; i++){
288 if (!csd[i] || csd[i]->n == 0){
289 for (
int j = 0; j < ndims; j++){
◆ rsd2csd()
214 if (!rsd)
return NULL;
int u
Definition: xmp_data_struct.h:411
void * _XMP_alloc(size_t size)
Definition: xmp_util.c:21
int n
Definition: xmp_data_struct.h:433
int * u
Definition: xmp_data_struct.h:432
void free_csd(_XMP_csd_t *csd)
Definition: xmp_section_desc.c:173
int u
Definition: xmp_data_struct.h:421
#define MAX(a, b)
Definition: xmp_internal.h:16
int b
Definition: xmp_data_struct.h:422
_XMP_csd_t * alloc_csd(int n)
Definition: xmp_section_desc.c:164
int l
Definition: xmp_data_struct.h:410
_XMP_rsd_t * intersection_rsds(_XMP_rsd_t *_rsd1, _XMP_rsd_t *_rsd2)
Definition: xmp_section_desc.c:82
int s
Definition: xmp_data_struct.h:434
int u
Definition: xmp_data_struct.h:441
struct _XMP_comm_set_type * next
Definition: xmp_data_struct.h:442
void _XMP_free(void *p)
Definition: xmp_util.c:37
int * l
Definition: xmp_data_struct.h:431
int c
Definition: xmp_data_struct.h:423
int _XMP_lcm(int a, int b)
Definition: xmp_math_function.c:66
Definition: xmp_data_struct.h:430
Definition: xmp_data_struct.h:409
int l
Definition: xmp_data_struct.h:420
#define _XMP_M_COUNT_TRIPLETi(l_, u_, s_)
Definition: xmp_gpu_func.hpp:25
int s
Definition: xmp_data_struct.h:412
Definition: xmp_data_struct.h:439
int l
Definition: xmp_data_struct.h:440
#define MIN(a, b)
Definition: xmp_internal.h:12