70static const int size_of[6] = {4, 8, 8, 16, 4, 8};
73 int *ierr,
char* filename) {
78 const char sep[] =
"\t\n ,";
81 fd = fopen(filename,
"r");
89 buf = (
char *)malloc(buf_size *
sizeof(
char));
92 if ((*output_type) == TYPE_DOUBLE) {
95 while (fgets(buf, buf_size *
sizeof(
char),
fd) != NULL) {
99 d = strtod(c, (
char **)NULL);
100 memcpy(
f +
i, &d, size_of[(*output_type)]);
101 c = (
char *)strtok((
char *)NULL, sep);
102 i += size_of[(*output_type)];
115 int buf_size = 65536;
116 const char sep[] =
"\n\t ,";
118 int64_t curr_dims[3] = {0, 0, 0};
121 fd = fopen(filename,
"r");
129 buf = (
char *)malloc(buf_size *
sizeof(
char));
131 while (fgets(buf, buf_size *
sizeof(
char),
fd) != NULL) {
132 c = strtok(buf, sep);
134 prev_dims[0] = curr_dims[0];
141 c = (
char *)strtok((
char *)NULL, sep);
147 if (prev_dims[0] > 0 && curr_dims[0] > 0)
148 assert(curr_dims[0] == prev_dims[0]);
152 if (prev_dims[0] == 0 && curr_dims[0] != 0) {
153 prev_dims[1] = curr_dims[1];
159 if (prev_dims[1] > 0 && curr_dims[1] > 0)
160 assert(prev_dims[1] == curr_dims[1]);
165 if (curr_dims[0] > 0)
169 dims[0] = curr_dims[0];
170 dims[1] = curr_dims[1];
171 dims[2] = curr_dims[2];
173 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)