int array_read(FILE *istrm, float *array, int max_array) { // reads in an array of floats from a single line of istrm // returns the number of elements read in char in_string[MAX_STR_LEN]; if(fgets(in_string, MAX_STR_LEN, istrm) == NULL ) return(FAIL); #ifdef DEBUG_ARRAY printf("\nInput String\n %s", in_string); #endif int slen = strlen(in_string); int k=0; while(isspace(in_string[k]) && k < slen) k++; if(slen==0 || !(isdigit(in_string[k]) || in_string[k] == '.' || in_string[k] == '+' || in_string[k] == '-')) { return(0); // skip blank and non-numerical lines } int nread = array_read(in_string,array,max_array); return(nread); // return the number of elements read }
int read_lambdal(char *directory) { int size = terms_late; int lambdal_total_size = size*size; lambdal = (double **)create_array(size,size); array_read(&lambdal_total_size, lambdal_data_file, &lambdal[0][0]); return 0; }
int read_orthol(char *directory) { int size = terms_late; int orthol_total_size = size*size; orthol = (double **)create_array(size,size); array_read(&orthol_total_size, orthol_data_file, &orthol[0][0]); return 0; }
static ssize_t vobject_list_get_next_header(void *object, void *buf, size_t mtu, uint8_t *hi) { struct pbap_object *obj = object; struct pbap_session *pbap = obj->session; /* Backend still busy reading contacts */ if (!pbap->cache.valid) return -EAGAIN; *hi = OBEX_HDR_APPARAM; if (pbap->params->maxlistcount == 0) return array_read(obj->aparams, buf, mtu); return 0; }
int main(int argc, char** argv) { // Declarations struct array * array; // Load input data from file array = array_read(argv[1]); // Compute and output result printf("Computing summation... %i\n", prefix_sum(array)); // Free memory out array_free(array); // Everything went well return 0; }
static ssize_t vobject_pull_get_next_header(void *object, void *buf, size_t mtu, uint8_t *hi) { struct pbap_object *obj = object; struct pbap_session *pbap = obj->session; if (!obj->buffer && !obj->aparams) return -EAGAIN; *hi = OBEX_HDR_APPARAM; if (pbap->params->maxlistcount == 0 || obj->firstpacket) { obj->firstpacket = FALSE; return array_read(obj->aparams, buf, mtu); } return 0; }
int read_beta(){ int number = 2; int *sizes = create_ivector(number); ivector_read(&number, proj_size_file, &sizes[0]); b_lsize = sizes[0]-1; b_xsize = sizes[1]-1; b_lvec = create_ivector(b_lsize); b_xvec = create_vector(b_xsize); int data_size = (b_lsize+1) * (b_xsize+1); double **data = create_array(b_lsize+1, b_xsize+1); char filename[100]; //int xsize_pad = (b_xsize + 7) & ~7; create_beta(b_lsize, b_xsize); int n,l,i; double (*restrict beta)[pmax_prim+1][b_xsize] = (double (*restrict)[pmax_prim+1][b_xsize]) beta_flat; if(eflag_order_prim!=4) { for(n=0;n<pmax_prim+1;n++) { char suffix[3] = ""; sprintf(suffix, "%d", n); filename[0] = '\0'; strcat(filename, proj_data_file); strcat(filename, "_"); strcat(filename, suffix); array_read(&data_size, filename, &data[0][0]); if(n==0) { for (i=0; i<b_xsize; i++) b_xvec[i] = data[0][i+1]; for (l=0; l<b_lsize; l++) b_lvec[l] = (int)data[l+1][0]; } for(l=0; l<b_lsize; l++) beta[l][n][0] = 0.0; for(i=0; i<b_xsize; i++) { for(l=0; l<b_lsize; l++) { beta[l][n][i] = data[l+1][i+1]; } } } } else { for(n=0;n<pmax_prim-1;n++) { char suffix[3] = ""; sprintf(suffix, "%d", n); filename[0] = '\0'; strcat(filename, proj_data_file); strcat(filename, "_"); strcat(filename, suffix); array_read(&data_size, filename, &data[0][0]); if(n==0) { for (i=0; i<b_xsize; i++) b_xvec[i] = data[0][i+1]; for (l=0; l<b_lsize; l++) b_lvec[l] = (int)data[l+1][0]; } for(l=0; l<b_lsize; l++) beta[l][n][0] = 0.0; for(i=0; i<b_xsize; i++) { for(l=0; l<b_lsize; l++) { beta[l][n][i] = data[l+1][i+1]; } } } filename[0] = '\0'; strcat(filename, proj_data_file); strcat(filename, "_l1"); array_read(&data_size, filename, &data[0][0]); for(l=0; l<b_lsize; l++) beta[l][pmax_prim-1][0] = 0.0; for(i=0; i<b_xsize; i++){ for(l=0; l<b_lsize; l++){ beta[l][pmax_prim-1][i] = data[l+1][i+1]; } } filename[0] = '\0'; strcat(filename, proj_data_file); strcat(filename, "_l2"); array_read(&data_size, filename, &data[0][0]); for(l=0; l<b_lsize; l++) beta[l][pmax_prim][0] = 0.0; for(i=0; i<b_xsize; i++){ for(l=0; l<b_lsize; l++){ beta[l][pmax_prim][i] = data[l+1][i+1]; } } } destroy_array(data); /* // jb offload the values of the globals to the MIC int beta_flat_size = b_lsize * (xsize_pad) * (pmax_prim+1); int offload_target; MPI_Comm_rank(MPI_COMM_WORLD, &offload_target); #pragma offload_transfer target(mic:offload_target) in(b_xvec[0:b_xsize] : ALLOC RETAIN) \ in(beta_flat[0:beta_flat_size] : ALLOC RETAIN) \ in(b_lsize) \ in(b_xsize) */ return 0; }