double f(gsl_vector * x) { #ifndef NOCACHE return f_cached(x, f_read_from_stdin); #else return f_read_from_stdin(x); #endif }
int main(int argc, char **argv){ FILE *in; int i; int j; int dims[2]; float **imat; float *sig; float *av; float *sq_sig; if(argc == 1){ imat = f_clear_alloc_matrix(X,Y); f_read_from_stdin(imat,dims); }else if(argc == 2){ imat = f_clear_alloc_matrix(X,Y); if((in = fopen(argv[1],"r")) == NULL){ perror(argv[1]); exit(1); } f_read_from_file(in,imat,dims); fclose(in); } sig = add_column(dims[0],dims[1],imat); av = f_alloc_list(dims[0]); for(i=0;i<dims[1];i++){ av[i] = sig[i]/dims[0]; } free(sig); for(i=0;i<dims[0];i++){ for(j=0;j<dims[1];j++){ imat[i][j] = pow((double)(imat[i][j] - av[j]),2); } } free(av); sq_sig = add_column(dims[0],dims[1],imat); printf("%f",sq_sig[0]/dims[0]); for(i=1;i<dims[1];i++){ printf(" %f",sq_sig[i]/dims[0]); } printf("\n"); return(0); }