68static const int size_of[6] = {4, 8, 8, 16, 4, 8};
71 int *ierr,
char* filename) {
76 const char sep[] =
"\t\n ,";
79 fd = fopen(filename,
"r");
87 if ((*output_type) == TYPE_DOUBLE) {
90 while (getline(&buf, &buf_size,
fd) != -1) {
94 d = strtod(c, (
char **)NULL);
95 memcpy(
f +
i, &d, size_of[(*output_type)]);
96 c = (
char *)strtok((
char *)NULL, sep);
97 i += size_of[(*output_type)];
111 const char sep[] =
"\n\t ,";
113 int64_t curr_dims[3] = {0, 0, 0};
116 fd = fopen(filename,
"r");
124 while (getline(&buf, &buf_size,
fd) != -1) {
125 c = strtok(buf, sep);
127 prev_dims[0] = curr_dims[0];
134 c = (
char *)strtok((
char *)NULL, sep);
140 if (prev_dims[0] > 0 && curr_dims[0] > 0)
141 assert(curr_dims[0] == prev_dims[0]);
145 if (prev_dims[0] == 0 && curr_dims[0] != 0) {
146 prev_dims[1] = curr_dims[1];
152 if (prev_dims[1] > 0 && curr_dims[1] > 0)
153 assert(prev_dims[1] == curr_dims[1]);
158 if (curr_dims[0] > 0)
162 dims[0] = curr_dims[0];
163 dims[1] = curr_dims[1];
164 dims[2] = curr_dims[2];
166 if (dims[0]*dims[1]*dims[2] == 0) *ierr=1;
void * memcpy(void *__restrict __dest, const void *__restrict __src, size_t __n) __attribute__((__nothrow__
void read_csv(int64_t *np, void *f, int *output_type, int *ierr, char *filename)
int fclose(FILE *__stream)
void get_info_csv(int64_t *dims, int *ierr, char *filename)
static double f(double w, void *p)