diff options
Diffstat (limited to 'lib/Numeric/GSL')
-rw-r--r-- | lib/Numeric/GSL/gsl-aux.c | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/lib/Numeric/GSL/gsl-aux.c b/lib/Numeric/GSL/gsl-aux.c index b3b524d..d129aeb 100644 --- a/lib/Numeric/GSL/gsl-aux.c +++ b/lib/Numeric/GSL/gsl-aux.c | |||
@@ -351,7 +351,7 @@ int polySolve(KRVEC(a), CVEC(z)) { | |||
351 | } | 351 | } |
352 | 352 | ||
353 | int vector_fscanf(char*filename, RVEC(a)) { | 353 | int vector_fscanf(char*filename, RVEC(a)) { |
354 | DEBUGMSG("gsl_matrix_fscanf"); | 354 | DEBUGMSG("gsl_vector_fscanf"); |
355 | DVVIEW(a); | 355 | DVVIEW(a); |
356 | FILE * f = fopen(filename,"r"); | 356 | FILE * f = fopen(filename,"r"); |
357 | CHECK(!f,BAD_FILE); | 357 | CHECK(!f,BAD_FILE); |
@@ -373,7 +373,7 @@ int vector_fprintf(char*filename, char*fmt, RVEC(a)) { | |||
373 | } | 373 | } |
374 | 374 | ||
375 | int vector_fread(char*filename, RVEC(a)) { | 375 | int vector_fread(char*filename, RVEC(a)) { |
376 | DEBUGMSG("gsl_matrix_fscanf"); | 376 | DEBUGMSG("gsl_vector_fread"); |
377 | DVVIEW(a); | 377 | DVVIEW(a); |
378 | FILE * f = fopen(filename,"r"); | 378 | FILE * f = fopen(filename,"r"); |
379 | CHECK(!f,BAD_FILE); | 379 | CHECK(!f,BAD_FILE); |
@@ -384,7 +384,7 @@ int vector_fread(char*filename, RVEC(a)) { | |||
384 | } | 384 | } |
385 | 385 | ||
386 | int vector_fwrite(char*filename, RVEC(a)) { | 386 | int vector_fwrite(char*filename, RVEC(a)) { |
387 | DEBUGMSG("gsl_vector_fprintf"); | 387 | DEBUGMSG("gsl_vector_fwrite"); |
388 | DVVIEW(a); | 388 | DVVIEW(a); |
389 | FILE * f = fopen(filename,"w"); | 389 | FILE * f = fopen(filename,"w"); |
390 | CHECK(!f,BAD_FILE); | 390 | CHECK(!f,BAD_FILE); |
@@ -394,6 +394,25 @@ int vector_fwrite(char*filename, RVEC(a)) { | |||
394 | OK | 394 | OK |
395 | } | 395 | } |
396 | 396 | ||
397 | int matrix_fprintf(char*filename, char*fmt, int ro, RMAT(m)) { | ||
398 | DEBUGMSG("matrix_fprintf"); | ||
399 | FILE * f = fopen(filename,"w"); | ||
400 | CHECK(!f,BAD_FILE); | ||
401 | int i,j,sr,sc; | ||
402 | if (ro==1) { sr = mc; sc = 1;} else { sr = 1; sc = mr;} | ||
403 | #define AT(M,r,c) (M##p[(r)*sr+(c)*sc]) | ||
404 | for (i=0; i<mr; i++) { | ||
405 | for (j=0; j<mc-1; j++) { | ||
406 | fprintf(f,fmt,AT(m,i,j)); | ||
407 | fprintf(f," "); | ||
408 | } | ||
409 | fprintf(f,fmt,AT(m,i,j)); | ||
410 | fprintf(f,"\n"); | ||
411 | } | ||
412 | fclose (f); | ||
413 | OK | ||
414 | } | ||
415 | |||
397 | //--------------------------------------------------------------- | 416 | //--------------------------------------------------------------- |
398 | 417 | ||
399 | typedef double Trawfun(int, double*); | 418 | typedef double Trawfun(int, double*); |