Skip to content

Commit

Permalink
Better TableView
Browse files Browse the repository at this point in the history
  • Loading branch information
jedbrown committed Mar 8, 2011
1 parent 15fdd50 commit 264357d
Show file tree
Hide file tree
Showing 6 changed files with 25 additions and 19 deletions.
4 changes: 2 additions & 2 deletions include/dohp.h
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,8 @@
#define dStrlen(s,l) PetscStrlen((s),(l))
extern dErr dObjectGetComm(dObject obj,MPI_Comm *comm);

extern dErr dRealTableView(dInt m,dInt n,const dReal mat[],const char *name,dViewer viewer);
extern dErr dIntTableView(dInt m,dInt n,const dInt mat[],const char *name,dViewer viewer);
extern dErr dRealTableView(dInt m,dInt n,const dReal mat[],dViewer viewer,const char *format,...);
extern dErr dIntTableView(dInt m,dInt n,const dInt mat[],dViewer viewer,const char *format,...);

static inline dInt dMaxInt(dInt a,dInt b) { return (a > b) ? a : b; }
static inline dInt dMinInt(dInt a,dInt b) { return (a < b) ? a : b; }
Expand Down
4 changes: 2 additions & 2 deletions src/jacobi/impls/modal/modaltopo.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ static dErr ModalBasisView(dInt Q,dInt P,const dReal interp[],const dReal deriv[
err = PetscTypeCompare((PetscObject)viewer,PETSCVIEWERASCII,&ascii);dCHK(err);
if (!ascii) dFunctionReturn(0);
err = PetscViewerASCIIPrintf(viewer,"Modal basis with %d point rule and %d point basis.\n",Q,P);dCHK(err);
err = dRealTableView(Q,P,interp,"interp",viewer);dCHK(err);
err = dRealTableView(Q,3*P,deriv,"deriv",viewer);dCHK(err);
err = dRealTableView(Q,P,interp,viewer,"interp");dCHK(err);
err = dRealTableView(Q,3*P,deriv,viewer,"deriv");dCHK(err);
dFunctionReturn(0);
}

Expand Down
6 changes: 3 additions & 3 deletions src/jacobi/impls/tensor/tensor.c
Original file line number Diff line number Diff line change
Expand Up @@ -126,9 +126,9 @@ dErr TensorBasisView(const TensorBasis basis,PetscViewer viewer) /* exported so
err = PetscTypeCompare((PetscObject)viewer,PETSCVIEWERASCII,&ascii);dCHK(err);
if (!ascii) dFunctionReturn(0);
err = PetscViewerASCIIPrintf(viewer,"TensorBasis with rule=%d basis=%d.\n",basis->Q,basis->P);dCHK(err);
err = dRealTableView(basis->Q,basis->P,basis->interp,"interp",viewer);dCHK(err);
err = dRealTableView(basis->Q,3*basis->P,basis->deriv,"deriv",viewer);dCHK(err);
err = dRealTableView(1,basis->P,basis->node,"node",viewer);dCHK(err);
err = dRealTableView(basis->Q,basis->P,basis->interp,viewer,"interp");dCHK(err);
err = dRealTableView(basis->Q,basis->P,basis->deriv,viewer,"deriv");dCHK(err);
err = dRealTableView(1,basis->P,basis->node,viewer,"node");dCHK(err);
dFunctionReturn(0);
}

Expand Down
4 changes: 2 additions & 2 deletions src/jacobi/quadrature/impls/tensor/tensorquad.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ dErr TensorRuleView(TensorRule rule,PetscViewer viewer)
err = PetscTypeCompare((PetscObject)viewer,PETSCVIEWERASCII,&ascii);dCHK(err);
if (!ascii) dFunctionReturn(0);
err = PetscViewerASCIIPrintf(viewer,"TensorRule with %d nodes.\n",rule->size);dCHK(err);
err = dRealTableView(1,rule->size,rule->coord,"q",viewer);dCHK(err);
err = dRealTableView(1,rule->size,rule->weight,"w",viewer);dCHK(err);
err = dRealTableView(1,rule->size,rule->coord,viewer,"q");dCHK(err);
err = dRealTableView(1,rule->size,rule->weight,viewer,"w");dCHK(err);
dFunctionReturn(0);
}

Expand Down
4 changes: 2 additions & 2 deletions src/jacobi/tests/ex4.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@ static dErr TestPatches(dJacobi jac,PetscViewer viewer)
err = dRuleGetPatches(rule,&npatches,&patchsize,&ind,&weight);dCHK(err);
if (npatches*patchsize != tsize[0]*tsize[1]*tsize[2]) dERROR(PETSC_COMM_SELF,PETSC_ERR_PLIB,"Inconsistent patch sizes");
err = PetscViewerASCIIPrintf(viewer,"Element %D: npatches %D patchsize %D\n",i,npatches,patchsize);dCHK(err);
err = dIntTableView(npatches,patchsize,ind,"indices",viewer);dCHK(err);
err = dRealTableView(npatches,patchsize,weight,"weights",viewer);dCHK(err);
err = dIntTableView(npatches,patchsize,ind,viewer,"indices");dCHK(err);
err = dRealTableView(npatches,patchsize,weight,viewer,"weights");dCHK(err);
}
err = dFree(rules);dCHK(err);
err = dFree(efs);dCHK(err);
Expand Down
22 changes: 14 additions & 8 deletions src/util/util.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,22 +28,25 @@ dErr dStrcpyS(char dest[restrict],size_t n,const char src[restrict])
dErr dObjectGetComm(dObject obj,MPI_Comm *comm)
{ return PetscObjectGetComm(obj,comm); }

dErr dRealTableView(dInt m,dInt n,const dReal mat[],const char *name,dViewer viewer)
dErr dRealTableView(dInt m,dInt n,const dReal mat[],dViewer viewer,const char *format,...)
{
va_list Argp;
size_t fullLen;
char name[4096];
dBool ascii;
dErr err;

dFunctionBegin;
va_start(Argp,format);
err = PetscVSNPrintf(name,sizeof name,format,&fullLen,Argp);dCHK(err);
err = PetscTypeCompare((PetscObject)viewer,PETSCVIEWERASCII,&ascii);dCHK(err);
if (!ascii) dFunctionReturn(0);
if (!mat) {
err = PetscViewerASCIIPrintf(viewer,"%10s: null %D*%D\n",name,m,n);dCHK(err);
dFunctionReturn(0);
}
for (dInt i=0; i<m; i++) {
if (name) {
err = PetscViewerASCIIPrintf(viewer,"%10s[%2d][%2d:%2d] ",name,i,0,n);dCHK(err);
}
err = PetscViewerASCIIPrintf(viewer,"%10s[%2d][%2d:%2d] ",name,i,0,n);dCHK(err);
err = PetscViewerASCIIUseTabs(viewer,PETSC_FALSE);dCHK(err);
for (dInt j=0; j<n; j++) {
err = PetscViewerASCIIPrintf(viewer," % 9.5f",mat[i*n+j]);dCHK(err);
Expand All @@ -54,22 +57,25 @@ dErr dRealTableView(dInt m,dInt n,const dReal mat[],const char *name,dViewer vie
dFunctionReturn(0);
}

dErr dIntTableView(dInt m,dInt n,const dInt mat[],const char *name,dViewer viewer)
dErr dIntTableView(dInt m,dInt n,const dInt mat[],dViewer viewer,const char *format,...)
{
va_list Argp;
size_t fullLen;
char name[4096];
dBool ascii;
dErr err;

dFunctionBegin;
va_start(Argp,format);
err = PetscVSNPrintf(name,sizeof name,format,&fullLen,Argp);dCHK(err);
err = PetscTypeCompare((PetscObject)viewer,PETSCVIEWERASCII,&ascii);dCHK(err);
if (!ascii) dFunctionReturn(0);
if (!mat) {
err = PetscViewerASCIIPrintf(viewer,"%10s: null %D*%D\n",name,m,n);dCHK(err);
dFunctionReturn(0);
}
for (dInt i=0; i<m; i++) {
if (name) {
err = PetscViewerASCIIPrintf(viewer,"%10s[%2d][%2d:%2d] ",name,i,0,n);dCHK(err);
}
err = PetscViewerASCIIPrintf(viewer,"%10s[%2d][%2d:%2d] ",name,i,0,n);dCHK(err);
err = PetscViewerASCIIUseTabs(viewer,PETSC_FALSE);dCHK(err);
for (dInt j=0; j<n; j++) {
err = PetscViewerASCIIPrintf(viewer," %3D",mat[i*n+j]);dCHK(err);
Expand Down

0 comments on commit 264357d

Please sign in to comment.