/* IO.c */
#include "../Pencil.h"
/*--------------------------------------------------------------------*/
/*
--------------------------------------------------------------------
purpose -- to read in a Pencil object from a file
input --
inpmtxAfileName -- filename for A, must be *.inpmtxb or *.inpmtxf
inpmtxBfileName -- filename for B, must be *.inpmtxb or *.inpmtxf
return value -- 1 if success, 0 if failure
created -- 97jul18, cca
-------------------------------------------------------------------
*/
int
Pencil_readFromFiles (
Pencil *pencil,
char *inpmtxAfileName,
char *inpmtxBfileName
) {
int rc = 1 ;
/*
---------------
check the input
---------------
*/
if ( pencil == NULL || inpmtxAfileName == NULL
|| inpmtxBfileName == NULL ) {
fprintf(stderr, "\n error in Pencil_readFromFile(%p,%s,%s)"
"\n bad input\n", pencil, inpmtxAfileName, inpmtxBfileName) ;
return(0) ;
}
if ( strcmp(inpmtxAfileName, "none") != 0 ) {
rc = InpMtx_readFromFile(pencil->inpmtxA, inpmtxAfileName) ;
if ( rc != 1 ) {
return(rc) ;
}
}
if ( strcmp(inpmtxBfileName, "none") != 0 ) {
rc = InpMtx_readFromFile(pencil->inpmtxB, inpmtxBfileName) ;
if ( rc != 1 ) {
return(rc) ;
}
}
return(rc) ; }
/*--------------------------------------------------------------------*/
/*
----------------------------------------------------
purpose -- to write a Pencil object for a human eye
return value -- 1 if success, 0 otherwise
created -- 97jul18, cca
----------------------------------------------------
*/
int
Pencil_writeForHumanEye (
Pencil *pencil,
FILE *fp
) {
if ( pencil == NULL || fp == NULL ) {
fprintf(stderr, "\n fatal error in Pencil_writeForHumanEye(%p,%p)"
"\n bad input\n", pencil, fp) ;
exit(-1) ;
}
/*
------------------------
write out the statistics
------------------------
*/
Pencil_writeStats(pencil, fp) ;
if ( pencil->inpmtxA != NULL ) {
fprintf(fp, "\n\n inpmtxA") ;
InpMtx_writeForHumanEye(pencil->inpmtxA, fp) ;
}
if ( pencil->inpmtxB != NULL ) {
fprintf(fp, "\n\n inpmtxB") ;
InpMtx_writeForHumanEye(pencil->inpmtxB, fp) ;
}
return(1) ; }
/*--------------------------------------------------------------------*/
/*
-------------------------------------------------------------
purpose -- to write out the statistics for the Pencil object
return value -- 1 if success, 0 otherwise
created -- 97jul18, cca
-------------------------------------------------------------
*/
int
Pencil_writeStats (
Pencil *pencil,
FILE *fp
) {
/*
---------------
check the input
---------------
*/
if ( pencil == NULL || fp == NULL ) {
fprintf(stderr, "\n error in Pencil_writeStats(%p,%p)"
"\n bad input\n", pencil, fp) ;
exit(-1) ;
}
fprintf(fp, "\n\n Pencil : matrix pencil object :") ;
if ( PENCIL_IS_REAL(pencil) ) {
fprintf(fp, " real entries") ;
fprintf(fp, "\n sigma = %20.12e ", pencil->sigma[0]) ;
} else if ( PENCIL_IS_COMPLEX(pencil) ) {
fprintf(fp, " complex entries") ;
fprintf(fp, "\n sigma = %20.12e + %20.12e*i",
pencil->sigma[0], pencil->sigma[1]) ;
}
if ( pencil->inpmtxA != NULL ) {
fprintf(fp, "\n\n inpmtxA") ;
InpMtx_writeStats(pencil->inpmtxA, fp) ;
}
if ( pencil->inpmtxB != NULL ) {
fprintf(fp, "\n\n inpmtxB") ;
InpMtx_writeStats(pencil->inpmtxB, fp) ;
}
return(1) ; }
/*--------------------------------------------------------------------*/
syntax highlighted by Code2HTML, v. 0.9.1