1 #include <../../nrnconf.h> 35 static char rcsid[] =
"matrixio.c,v 1.1 1997/12/04 17:55:35 hines Exp";
62 while ( (c=getc(
fp)) !=
'\n' )
79 if ( isatty(fileno(
fp)) )
96 { m = mat->
m; n = mat->
n; dynamic =
FALSE; }
102 fprintf(stderr,
"Matrix: rows cols:");
110 for ( i=0; i<m; i++ )
114 for ( j=0; j<
n; j++ )
118 fprintf(stderr,
"entry (%u,%u): ",i,j);
120 fprintf(stderr,
"old %14.9g new: ",
124 if ( (*
line ==
'b' || *
line ==
'B') && j > 0 )
125 { j--; dynamic =
FALSE;
goto redo2; }
126 if ( (*
line ==
'f' || *
line ==
'F') && j < n-1 )
127 { j++; dynamic =
FALSE;
goto redo2; }
129 }
while ( *
line==
'\0' || sscanf(
line,
"%lf",&mat->
me[i][j])<1 );
131 }
while ( *
line==
'\0' || sscanf(
line,
"%f",&mat->
me[i][j])<1 );
134 if(fscanf(
fp,
"%c",&c) != 1) {
137 if ( c ==
'n' || c ==
'N' )
138 { dynamic =
FALSE;
goto redo; }
139 if ( (c ==
'b' || c ==
'B') )
142 dynamic =
FALSE;
goto redo;
159 if ((io_code=fscanf(
fp,
" Matrix: %u by %u",&m,&n)) < 2 ||
168 for ( i=0; i<m; i++ )
171 if ( fscanf(
fp,
" row %u:",&dummy) < 1 )
172 error(E_FORMAT,
"bm_finput");
173 for ( j=0; j<
n; j++ )
175 if ((io_code=fscanf(
fp,
"%lf",&mat->
me[i][j])) < 1 )
177 if ((io_code=fscanf(
fp,
"%f",&mat->
me[i][j])) < 1 )
179 error(io_code==EOF ? 7 : 6,
"bm_finput");
191 if ( isatty(fileno(
fp)) )
214 fprintf(stderr,
"Permutation: size: ");
217 }
while ( sscanf(
line,
"%u",&size)<1 || size>
MAXDIM );
229 fprintf(stderr,
"entry %u: ",i);
231 fprintf(stderr,
"old: %u->%u new: ",
235 if ( (*
line ==
'b' || *
line ==
'B') && i > 0 )
236 { i--; dynamic =
FALSE;
goto redo; }
237 }
while ( *
line==
'\0' || sscanf(
line,
"%u",&entry) < 1 );
240 for ( j=0; j<
i; j++ )
241 ok &= (entry != px->
pe[j]);
262 if ((io_code=fscanf(
fp,
" Permutation: size:%u",&size)) < 1 ||
264 error(io_code==EOF ? 7 : 6,
"bpx_finput");
276 if ((io_code=fscanf(
fp,
"%*u -> %u",&entry)) < 1 )
277 error(io_code==EOF ? 7 : 6,
"bpx_finput");
280 for ( j=0; j<
i; j++ )
281 ok &= (entry != px->
pe[j]);
301 if ( isatty(fileno(
fp)) )
316 { dim = vec->
dim; dynamic =
FALSE; }
322 fprintf(stderr,
"Vector: dim: ");
325 }
while ( sscanf(
line,
"%u",&dim)<1 || dim>
MAXDIM );
330 for ( i=0; i<dim; i++ )
334 fprintf(stderr,
"entry %u: ",i);
336 fprintf(stderr,
"old %14.9g new: ",vec->
ve[i]);
339 if ( (*
line ==
'b' || *
line ==
'B') && i > 0 )
340 { i--; dynamic =
FALSE;
goto redo; }
341 if ( (*
line ==
'f' || *
line ==
'F') && i < dim-1 )
342 { i++; dynamic =
FALSE;
goto redo; }
344 }
while ( *
line==
'\0' || sscanf(
line,
"%lf",&vec->
ve[i]) < 1 );
346 }
while ( *
line==
'\0' || sscanf(
line,
"%f",&vec->
ve[
i]) < 1 );
362 if ((io_code=fscanf(
fp,
" Vector: dim:%u",&dim)) < 1 ||
364 error(io_code==EOF ? 7 : 6,
"bfin_vec");
372 for ( i=0; i<dim; i++ )
374 if ((io_code=fscanf(
fp,
"%lf",&vec->
ve[i])) < 1 )
376 if ((io_code=fscanf(
fp,
"%f",&vec->
ve[i])) < 1 )
378 error(io_code==EOF ? 7 : 6,
"bfin_vec");
393 if ( f_string != (
char *)
NULL && *f_string !=
'\0' )
406 {
fprintf(
fp,
"Matrix: NULL\n");
return; }
408 if ( a->
me == (
Real **)NULL )
410 for ( i=0; i<a->
m; i++ )
413 for ( j=0, tmp=2; j<a->
n; j++, tmp++ )
416 if ( ! (tmp % 5) ) putc(
'\n',
fp);
418 if ( tmp % 5 != 1 ) putc(
'\n',
fp);
429 {
fprintf(
fp,
"Permutation: NULL\n");
return; }
433 for ( i=0; i<px->
size; i++ )
434 if ( ! (i % 8) && i != 0 )
448 {
fprintf(
fp,
"Vector: NULL\n");
return; }
450 if ( x->
ve == (
Real *)NULL )
452 for ( i=0, tmp=0; i<x->
dim; i++, tmp++ )
455 if ( tmp % 5 == 4 ) putc(
'\n',
fp);
457 if ( tmp % 5 != 0 ) putc(
'\n',
fp);
468 {
fprintf(
fp,
"Matrix: NULL\n");
return; }
469 fprintf(
fp,
"Matrix: %d by %d @ 0x%p\n",a->
m,a->
n,a);
470 fprintf(
fp,
"\tmax_m = %d, max_n = %d, max_size = %d\n",
472 if ( a->
me == (
Real **)NULL )
476 for ( i=0; i<a->
m; i++ )
479 for ( j=0, tmp=2; j<a->
n; j++, tmp++ )
482 if ( ! (tmp % 5) ) putc(
'\n',
fp);
484 if ( tmp % 5 != 1 ) putc(
'\n',
fp);
495 {
fprintf(
fp,
"Permutation: NULL\n");
return; }
500 for ( i=0; i<px->
size; i++ )
513 {
fprintf(
fp,
"Vector: NULL\n");
return; }
518 for ( i=0, tmp=0; i<x->
dim; i++, tmp++ )
521 if ( tmp % 5 == 4 ) putc(
'\n',
fp);
523 if ( tmp % 5 != 0 ) putc(
'\n',
fp);
char * setformat(char *f_string)
static Object ** v_resize(void *v)
MAT * m_finput(FILE *fp, MAT *a)
void v_dump(FILE *fp, VEC *x)
void px_dump(FILE *fp, PERM *px)
void m_dump(FILE *fp, MAT *a)
MAT * bm_finput(FILE *fp, MAT *mat)
int const size_t const size_t n
PERM * bpx_finput(FILE *fp, PERM *px)
MAT * im_finput(FILE *fp, MAT *mat)
PERM * px_resize(PERM *, int)
void m_foutput(FILE *fp, MAT *a)
VEC * ifin_vec(FILE *fp, VEC *vec)
static char line[MAXLINE]
fprintf(stderr, "Don't know the location of params at %p\, pp)
static double v_get(void *v)
PERM * ipx_finput(FILE *fp, PERM *px)
VEC * v_finput(FILE *fp, VEC *x)
void v_foutput(FILE *fp, VEC *x)
void px_foutput(FILE *fp, PERM *px)
static Object ** m_resize(void *v)
#define error(err_num, fn_name)
PERM * px_finput(FILE *fp, PERM *px)
VEC * bfin_vec(FILE *fp, VEC *vec)