command mrdump
This commit is contained in:
parent
dffe4ed156
commit
8f3f757813
|
|
@ -1,3 +1,7 @@
|
||||||
|
2012-02-19 Holger Vogt
|
||||||
|
* com_cdump.c, com_cdump.h, commands.c, smpdefs.h, spoutput.c, spsmp.c,
|
||||||
|
command mrdump to dump the RHS of the matrix to stdout or to a file
|
||||||
|
|
||||||
2012-02-19 Holger Vogt
|
2012-02-19 Holger Vogt
|
||||||
* spiceif.c: savesnap, loadsnap enabled (still experimental!)
|
* spiceif.c: savesnap, loadsnap enabled (still experimental!)
|
||||||
* com_cdump.c, com_cdump.h, commands.c, smpdefs.h, spoutput.c, spsmp.c,
|
* com_cdump.c, com_cdump.h, commands.c, smpdefs.h, spoutput.c, spsmp.c,
|
||||||
|
|
|
||||||
|
|
@ -172,3 +172,29 @@ com_mdump(wordlist *wl)
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
com_rdump(wordlist *wl)
|
||||||
|
{
|
||||||
|
CKTcircuit *ckt = NULL;
|
||||||
|
char *s;
|
||||||
|
|
||||||
|
if (!ft_curckt || !ft_curckt->ci_ckt) {
|
||||||
|
fprintf(cp_err, "Error: no circuit loaded.\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ckt = ft_curckt->ci_ckt;
|
||||||
|
|
||||||
|
if ((ckt->CKTmatrix) && (ckt->CKTrhs))
|
||||||
|
if (wl == NULL)
|
||||||
|
SMPprintRHS( ckt->CKTmatrix , NULL, ckt->CKTrhs, ckt->CKTirhs);
|
||||||
|
else {
|
||||||
|
s = cp_unquote(wl->wl_word);
|
||||||
|
SMPprintRHS( ckt->CKTmatrix , s, ckt->CKTrhs, ckt->CKTirhs);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
fprintf(cp_err, "Error: no matrix or RHS available.\n");
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
void com_cdump(wordlist *wl);
|
void com_cdump(wordlist *wl);
|
||||||
void com_mdump(wordlist *wl);
|
void com_mdump(wordlist *wl);
|
||||||
|
void com_rdump(wordlist *wl);
|
||||||
#define TABINDENT 2 /* CDHW */ /* The orginal value was 8 */
|
#define TABINDENT 2 /* CDHW */ /* The orginal value was 8 */
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -553,6 +553,10 @@ struct comm spcp_coms[] = {
|
||||||
{ 0, 0, 0, 0 }, E_DEFHMASK, 0, 1,
|
{ 0, 0, 0, 0 }, E_DEFHMASK, 0, 1,
|
||||||
NULL,
|
NULL,
|
||||||
"outfile: Dump the current matrix." } ,
|
"outfile: Dump the current matrix." } ,
|
||||||
|
{ "mrdump", com_rdump, FALSE, FALSE,
|
||||||
|
{ 0, 0, 0, 0 }, E_DEFHMASK, 0, 1,
|
||||||
|
NULL,
|
||||||
|
"outfile: Dump the current RHS to file." } ,
|
||||||
{ "settype", com_stype, FALSE, FALSE,
|
{ "settype", com_stype, FALSE, FALSE,
|
||||||
{ 0200000, 040000, 040000, 040000 }, E_DEFHMASK, 2, LOTS,
|
{ 0200000, 040000, 040000, 040000 }, E_DEFHMASK, 2, LOTS,
|
||||||
NULL,
|
NULL,
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@ int SMPnewMatrix( SMPmatrix ** );
|
||||||
void SMPdestroy( SMPmatrix *);
|
void SMPdestroy( SMPmatrix *);
|
||||||
int SMPpreOrder( SMPmatrix *);
|
int SMPpreOrder( SMPmatrix *);
|
||||||
void SMPprint( SMPmatrix * , char *);
|
void SMPprint( SMPmatrix * , char *);
|
||||||
|
void SMPprintRHS( SMPmatrix * , char *, double*, double*);
|
||||||
void SMPgetError( SMPmatrix *, int *, int *);
|
void SMPgetError( SMPmatrix *, int *, int *);
|
||||||
int SMPcProdDiag( SMPmatrix *, SPcomplex *, int *);
|
int SMPcProdDiag( SMPmatrix *, SPcomplex *, int *);
|
||||||
int SMPcDProd(SMPmatrix *Matrix, SPcomplex *pMantissa, int *pExponent);
|
int SMPcDProd(SMPmatrix *Matrix, SPcomplex *pMantissa, int *pExponent);
|
||||||
|
|
|
||||||
|
|
@ -606,10 +606,14 @@ spFileVector(MatrixPtr eMatrix, char *File, RealVector RHS, RealVector iRHS)
|
||||||
/* Begin `spFileVector'. */
|
/* Begin `spFileVector'. */
|
||||||
assert( IS_SPARSE( Matrix ) && RHS != NULL);
|
assert( IS_SPARSE( Matrix ) && RHS != NULL);
|
||||||
|
|
||||||
|
if (File) {
|
||||||
/* Open File in append mode. */
|
/* Open File in append mode. */
|
||||||
pMatrixFile = fopen(File,"a");
|
pMatrixFile = fopen(File,"a");
|
||||||
if (pMatrixFile == NULL)
|
if (pMatrixFile == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
pMatrixFile=stdout;
|
||||||
|
|
||||||
/* Output vector. */
|
/* Output vector. */
|
||||||
Size = Matrix->Size;
|
Size = Matrix->Size;
|
||||||
|
|
@ -634,6 +638,7 @@ spFileVector(MatrixPtr eMatrix, char *File, RealVector RHS, RealVector iRHS)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Close file. */
|
/* Close file. */
|
||||||
|
if (File)
|
||||||
if (fclose(pMatrixFile) < 0) return 0;
|
if (fclose(pMatrixFile) < 0) return 0;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -277,6 +277,16 @@ SMPpreOrder(SMPmatrix *Matrix)
|
||||||
return spError( Matrix );
|
return spError( Matrix );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SMPprint()
|
||||||
|
*/
|
||||||
|
|
||||||
|
void
|
||||||
|
SMPprintRHS(SMPmatrix *Matrix, char *Filename, RealVector RHS, RealVector iRHS)
|
||||||
|
{
|
||||||
|
spFileVector( Matrix, Filename, RHS, iRHS );
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* SMPprint()
|
* SMPprint()
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue