SALSA Analysis Modules
|
User functions for accessing the analysis modules. More...
Go to the source code of this file.
Defines | |
#define | MODE_RETRIEVE 1 |
#define | MODE_COMPUTE 0 |
Functions | |
PetscErrorCode | AnaModInitialize () |
PetscErrorCode | AnaModFinalize () |
PetscErrorCode | AnaModGetTypeName (int id, const char **name) |
PetscErrorCode | AnaModGetTypeMySQLName (int id, const char **name) |
PetscErrorCode | RegisterModule (const char *cat, const char *cmp, AnalysisDataType type, PetscErrorCode(*f)(AnaModNumericalProblem, AnalysisItem *, int *, PetscTruth *)) |
PetscErrorCode | DeRegisterCategory (const char *cat) |
PetscErrorCode | DeregisterModules () |
PetscErrorCode | HasComputeCategory (const char *cat, PetscTruth *f) |
PetscErrorCode | HasComputeModule (const char *cat, const char *cmp, PetscTruth *f) |
static PetscErrorCode | ComputeOrRetrieveQuantity (AnaModNumericalProblem prob, const char *cat, const char *cmp, AnalysisItem *res, int *rreslen, PetscTruth *success, int mode) |
PetscErrorCode | ComputeQuantity (AnaModNumericalProblem prob, const char *cat, const char *cmp, AnalysisItem *res, int *rreslen, PetscTruth *success) |
PetscErrorCode | RetrieveQuantity (AnaModNumericalProblem prob, const char *cat, const char *cmp, AnalysisItem *res, int *rreslen, PetscTruth *success) |
PetscErrorCode | GetDataID (const char *cat, const char *cmp, int *id, PetscTruth *f) |
PetscErrorCode | GetDataType (const char *cat, const char *cmp, AnalysisDataType *t, PetscTruth *f) |
PetscErrorCode | HasQuantity (AnaModNumericalProblem prob, const char *cat, const char *cmp, PetscTruth *f) |
PetscErrorCode | HasQuantityByID (AnaModNumericalProblem prob, int id, AnalysisDataType type, PetscTruth *f) |
PetscErrorCode | RetrieveQuantityByID (AnaModNumericalProblem prob, int id, AnalysisDataType type, AnalysisItem *result, PetscTruth *f) |
PetscErrorCode | QuantityAsString (AnalysisItem *q, AnalysisDataType t, const char **s) |
Variables | |
struct { | |
int id | |
const char * name | |
const char * mysqlname | |
} | anamodtypenames [5] |
static int | nAnaModTypeNames |
static int | AnaModIsInitialized = 0 |
int | ncategories = 0 |
categoryobject * | categoryobjects = NULL |
User functions for accessing the analysis modules.
\ Analysis modules need to be defined with RegisterModule(), after which they can be invoked with ComputeQuantity(). See also HasQuantity(). The functions AnaModRegisterStandardModules() installs all standard available modules.
There are utility functions for querying the existence of modules: GetCategories(), CategoryGetModules(), HasComputeCategory(), HasComputeModule().
Utility functions: QuantityAsString(), GetDataType(), GetDataID(), GetCategoryIndex(), GetModuleIndex().
Definition in file module_functions.c.
#define MODE_COMPUTE 0 |
Definition at line 477 of file module_functions.c.
Referenced by ComputeOrRetrieveQuantity(), and ComputeQuantity().
#define MODE_RETRIEVE 1 |
Definition at line 476 of file module_functions.c.
Referenced by ComputeOrRetrieveQuantity(), and RetrieveQuantity().
PetscErrorCode AnaModFinalize | ( | ) |
Finalization for AnaMod. See also AnaModInitialize()
Definition at line 318 of file module_functions.c.
References FreeCategoryObjects().
Referenced by main().
{ PetscErrorCode ierr; PetscFunctionBegin; ierr = FreeCategoryObjects(); CHKERRQ(ierr); PetscFunctionReturn(0); }
PetscErrorCode AnaModGetTypeMySQLName | ( | int | id, |
const char ** | name | ||
) |
Definition at line 344 of file module_functions.c.
References AnaModIsInitialized, anamodtypenames, mysqlname, and nAnaModTypeNames.
Referenced by main().
{ int i; PetscFunctionBegin; if (AnaModIsInitialized<1) SETERRQ(1,"AnaMod has not been not formally initialized.\nInsert a call to AnaModInitialize() in your code"); for (i=0; i<nAnaModTypeNames; i++) { if (id==anamodtypenames[i].id) { *name = (char*)anamodtypenames[i].mysqlname; goto exit; } } SETERRQ1(1,"Unknown AnaMod datatype %d",id); exit: PetscFunctionReturn(0); }
PetscErrorCode AnaModGetTypeName | ( | int | id, |
const char ** | name | ||
) |
Definition at line 328 of file module_functions.c.
References anamodtypenames, and nAnaModTypeNames.
{ int i; PetscFunctionBegin; for (i=0; i<nAnaModTypeNames; i++) { if (id==anamodtypenames[i].id) { *name = (char*)anamodtypenames[i].name; goto exit; } } SETERRQ1(1,"Unknown AnaMod datatype %d",id); exit: PetscFunctionReturn(0); }
PetscErrorCode AnaModInitialize | ( | ) |
Initializatin for AnaMod. See also AnaModFinalize()
Definition at line 284 of file module_functions.c.
References AllocCategoryObjects(), AnaModIsInitialized, anamodtypenames, and nAnaModTypeNames.
Referenced by main().
{ PetscErrorCode ierr; PetscFunctionBegin; ierr = AllocCategoryObjects(); CHKERRQ(ierr); anamodtypenames[0].id = NMDString; anamodtypenames[0].name="string"; anamodtypenames[0].mysqlname="VARCHAR(256)"; anamodtypenames[1].id = NMDInt; anamodtypenames[1].name="int"; anamodtypenames[1].mysqlname="INTEGER"; anamodtypenames[2].id = NMDReal; anamodtypenames[2].name="real"; anamodtypenames[2].mysqlname="DOUBLE"; anamodtypenames[3].id = NMDIntarray; anamodtypenames[3].name="intarray"; anamodtypenames[3].mysqlname="VARCHAR(1024)"; anamodtypenames[4].id = NMDRealarray; anamodtypenames[4].name="realarray"; anamodtypenames[4].mysqlname="VARCHAR(1024)"; AnaModIsInitialized = 1; nAnaModTypeNames = 5; PetscFunctionReturn(0); }
static PetscErrorCode ComputeOrRetrieveQuantity | ( | AnaModNumericalProblem | prob, |
const char * | cat, | ||
const char * | cmp, | ||
AnalysisItem * | res, | ||
int * | rreslen, | ||
PetscTruth * | success, | ||
int | mode | ||
) | [static] |
Definition at line 481 of file module_functions.c.
References ANALYSISINTARRAY, AnaModHasTrace(), AnaModTraceArrays(), AnaModTraceMessage(), CategoryGetComponent(), ComponentCompute(), ComponentGetType(), ComponentRetrieve(), GetCategory(), MODE_COMPUTE, MODE_RETRIEVE, and QuantityAsString().
Referenced by ComputeQuantity(), and RetrieveQuantity().
{ categoryobject catg; componentobject cmpt; PetscTruth flg,trace; int reslen; PetscErrorCode ierr; PetscFunctionBegin; ierr = AnaModHasTrace(&trace); CHKERRQ(ierr); /* * Get the module and compute */ ierr = GetCategory(cat,&catg,&flg); CHKERRQ(ierr); if (!flg) SETERRQ1(1,"Could not find category <%s>",cat); ierr = CategoryGetComponent(catg,cmp,&cmpt,&flg); CHKERRQ(ierr); if (!flg) SETERRQ1(1,"Could not find component <%s>",cmp); if (mode==MODE_COMPUTE) { ierr = ComponentCompute(cmpt,prob,res,&reslen,&flg); CHKERRQ(ierr); } else if (mode==MODE_RETRIEVE) { ierr = ComponentRetrieve(cmpt,prob,res,&reslen,&flg); CHKERRQ(ierr); } else SETERRQ(1,"Invalid mode"); if (rreslen) *rreslen = reslen; if (success) *success = flg; /* * Tracing */ if (trace) { if (flg) { char *string; PetscTruth trace_arrays; AnalysisDataType t; ierr = ComponentGetType(cmpt,&t); CHKERRQ(ierr); ierr = AnaModTraceArrays(&trace_arrays); CHKERRQ(ierr); if (t<ANALYSISINTARRAY || trace_arrays) { ierr = QuantityAsString(res,t,(const char**)&string); CHKERRQ(ierr); ierr = AnaModTraceMessage ("Anamod computed <%s:%s> = <%s>\n",cat,cmp,string); CHKERRQ(ierr); ierr = PetscFree(string); CHKERRQ(ierr); } } else { ierr = AnaModTraceMessage ("Anamod failed to compute <%s:%s>\n",cat,cmp); CHKERRQ(ierr); } } PetscFunctionReturn(0); }
PetscErrorCode ComputeQuantity | ( | AnaModNumericalProblem | prob, |
const char * | cat, | ||
const char * | cmp, | ||
AnalysisItem * | res, | ||
int * | rreslen, | ||
PetscTruth * | success | ||
) |
Compute a computational module from a certain category.
Argument:
"(AnalysisItem*)&res"
; see types for the definition of the AnalysisItem data typeA call to this routine need not involve actual computation: the requested quantity can already be attached to the matrix object (see attached quantities for details). This mechanism is used in all the standard modules that come with the AnaMod package.
The workings of this function can be traced by specifying a trace function; see Tracing the analysis modules.
Definition at line 558 of file module_functions.c.
References AnaModIsInitialized, ComputeOrRetrieveQuantity(), and MODE_COMPUTE.
Referenced by analyze_matrix(), DepartureRuhe75(), LoBand(), MatrixComputeQuantity(), MaxEVbyImIm(), MaxEVbyImRe(), MaxEVbyMagIm(), MaxEVbyMagRe(), MaxEVbyRealIm(), MaxEVbyRealRe(), MinEVbyMagIm(), MinEVbyMagRe(), RelSymm(), and UpBand().
{ PetscErrorCode ierr; PetscFunctionBegin; if (!AnaModIsInitialized) SETERRQ(1,"AnaMod not initialized: insert call to AnaModInitialize()\n"); ierr = ComputeOrRetrieveQuantity (prob,cat,cmp,res,rreslen,success,MODE_COMPUTE); CHKERRQ(ierr); PetscFunctionReturn(0); }
PetscErrorCode DeRegisterCategory | ( | const char * | cat | ) |
Deallocate the storage for a particular category of analysis modules. No longer needed.
Definition at line 409 of file module_functions.c.
{ /* categoryobject catg; */ /* PetscTruth flg; PetscErrorCode ierr; */ PetscFunctionBegin; printf("Please remove use of legacy function DeRegisterCategory\n"); /* ierr = GetCategory(cat,&catg,&flg); CHKERRQ(ierr); */ /* if (!flg) SETERRQ1(1,"Invalid category <%s>",cat); */ /* ierr = DestroyCategoryObject(catg); CHKERRQ(ierr); */ PetscFunctionReturn(0); }
PetscErrorCode DeregisterModules | ( | void | ) |
This function is no longer needed
Definition at line 425 of file module_functions.c.
{ /* int icat,ncat; const char **cat; */ /* PetscErrorCode ierr; */ PetscFunctionBegin; printf("Please remove use of legacy function DeRegisterModules\n"); /* ierr = GetCategories(&ncat,&cat); CHKERRQ(ierr); */ /* for (icat=0; icat<ncat; icat++) { */ /* ierr = DeRegisterCategory(cat[icat]); CHKERRQ(ierr); */ /* } */ PetscFunctionReturn(0); }
PetscErrorCode GetDataID | ( | const char * | cat, |
const char * | cmp, | ||
int * | id, | ||
PetscTruth * | f | ||
) |
Definition at line 589 of file module_functions.c.
References CategoryGetComponent(), ComponentGetId(), and GetCategory().
Referenced by AvgDiagDist(), AvgDistFromDiag(), AvgNnzpRow(), BlockSize(), ColourOffsets(), Colours(), ColourSizes(), ColVariability(), Commutator(), compute_dd(), compute_dummy_rows(), compute_eigenvalues(), compute_ellipse_from_Ritz_values(), compute_icm_splits(), compute_nnz_structure(), compute_posdiag(), compute_singularvalues(), compute_tracea2(), ComputeDiagonal(), computennz(), computetrace(), ComputeVariability(), Departure(), DepartureLee95(), DepartureLee96L(), DepartureLee96U(), DepartureRuhe75(), DiagDefinite(), DiagonalAverage(), DiagonalDominance(), DiagonalSign(), DiagonalVariance(), DiagZeroStart(), DummyRows(), DummyRowsKind(), eigenvaluecomp(), JonesPlassmannColouring(), Kappa(), LBandWidth(), Lee95bounds(), Lee96bounds(), LeftSkyline(), LoBand(), MatCommutatorNormF(), MatSymmPartNormInf(), MaxEVbyImIm(), MaxEVbyImRe(), MaxEVbyMagIm(), MaxEVbyMagRe(), MaxEVbyRealIm(), MaxEVbyRealRe(), MaxNNonZerosPerRow(), MinEVbyMagIm(), MinEVbyMagRe(), MinNNonZerosPerRow(), NColours(), NDiags(), NDummyRows(), NNonZeros(), Nnz(), NnzDia(), NnzLow(), NnzUp(), norm1(), normF(), normInf(), NRitzValues(), nRows(), NSplits(), NUnstruct(), PosFraction(), RBandWidth(), regularblocks(), RelSymm(), RightSkyline(), RitzValuesC(), RitzValuesR(), RowVariability(), SigmaDiagDist(), SigmaMax(), SigmaMin(), SpectrumAX(), SpectrumAY(), SpectrumCX(), SpectrumCY(), Splits(), Symmetry(), SymmetryANorm(), SymmetryFANorm(), SymmetryFSNorm(), SymmetrySNorm(), Trace(), TraceA2(), TraceAbs(), UpBand(), and Version().
{ categoryobject catg; componentobject cmpt; PetscTruth flg; PetscErrorCode ierr; PetscFunctionBegin; ierr = GetCategory(cat,&catg,&flg); CHKERRQ(ierr); if (!flg) { if (!f) SETERRQ(1,"Could not find cat/cmp, but no flag to report this"); *f = PETSC_FALSE; PetscFunctionReturn(0); } ierr = CategoryGetComponent(catg,cmp,&cmpt,&flg); CHKERRQ(ierr); if (!flg) { if (!f) SETERRQ(1,"Could not find cat/cmp, but no flag to report this"); *f = PETSC_FALSE; PetscFunctionReturn(0); } ierr = ComponentGetId(cmpt,id); CHKERRQ(ierr); if (f) *f = PETSC_TRUE; PetscFunctionReturn(0); }
PetscErrorCode GetDataType | ( | const char * | cat, |
const char * | cmp, | ||
AnalysisDataType * | t, | ||
PetscTruth * | f | ||
) |
Definition at line 612 of file module_functions.c.
References CategoryGetComponent(), ComponentGetType(), and GetCategory().
Referenced by analyze_matrix().
{ categoryobject catg; componentobject cmpt; PetscTruth flg; PetscErrorCode ierr; PetscFunctionBegin; ierr = GetCategory(cat,&catg,&flg); CHKERRQ(ierr); if (!flg) { if (!f) SETERRQ(1,"Could not find cat/cmp, but no flag to report this"); *f = PETSC_FALSE; PetscFunctionReturn(0); } ierr = CategoryGetComponent(catg,cmp,&cmpt,&flg); CHKERRQ(ierr); if (!flg) { if (!f) SETERRQ(1,"Could not find cat/cmp, but no flag to report this"); *f = PETSC_FALSE; PetscFunctionReturn(0); } ierr = ComponentGetType(cmpt,t); CHKERRQ(ierr); if (f) *f = PETSC_TRUE; PetscFunctionReturn(0); }
PetscErrorCode HasComputeCategory | ( | const char * | cat, |
PetscTruth * | f | ||
) |
Query whether a specified category has been declared.
Definition at line 451 of file module_functions.c.
References GetCategory().
{ PetscErrorCode ierr; PetscFunctionBegin; ierr = GetCategory(cat,PETSC_NULL,f); CHKERRQ(ierr); PetscFunctionReturn(0); }
PetscErrorCode HasComputeModule | ( | const char * | cat, |
const char * | cmp, | ||
PetscTruth * | f | ||
) |
Query whether a specified module exists inside a specified category. The category need not itself have been declared.
Definition at line 465 of file module_functions.c.
References CategoryGetComponent(), and GetCategory().
Referenced by LoBand(), and UpBand().
{ categoryobject catg; PetscErrorCode ierr; PetscFunctionBegin; ierr = GetCategory(cat,&catg,f); CHKERRQ(ierr); if (*f) { ierr = CategoryGetComponent(catg,cmp,PETSC_NULL,f); CHKERRQ(ierr); } PetscFunctionReturn(0); }
PetscErrorCode HasQuantity | ( | AnaModNumericalProblem | prob, |
const char * | cat, | ||
const char * | cmp, | ||
PetscTruth * | f | ||
) |
Check if a certain quantity is precomputed, meaning that it can be retrieved (with a call to ComputeQuantity()) at no computational cost.
The category and module names have to exist. Use HasComputeModule() to test whether a category and module is known to the system.
See the page on attached quantities for an explanation of the mechanism behind this routine.
Definition at line 646 of file module_functions.c.
References CategoryGetComponent(), ComponentGetId(), ComponentGetType(), GetCategory(), HasQuantityByID(), and id.
Referenced by computennz().
{ categoryobject catg; componentobject cmpt; AnalysisDataType t; int id; PetscErrorCode ierr; PetscFunctionBegin; ierr = GetCategory(cat,&catg,f); CHKERRQ(ierr); if (!*f) PetscFunctionReturn(0); ierr = CategoryGetComponent(catg,cmp,&cmpt,f); CHKERRQ(ierr); if (!*f) PetscFunctionReturn(0); ierr = ComponentGetId(cmpt,&id); CHKERRQ(ierr); ierr = ComponentGetType(cmpt,&t); CHKERRQ(ierr); ierr = HasQuantityByID(prob,id,t,f); CHKERRQ(ierr); PetscFunctionReturn(0); }
PetscErrorCode HasQuantityByID | ( | AnaModNumericalProblem | prob, |
int | id, | ||
AnalysisDataType | type, | ||
PetscTruth * | f | ||
) |
Auxiliary routine with lookup by ID, which is much faster than by string indexing.
Definition at line 667 of file module_functions.c.
References ANALYSISDBLARRAY, ANALYSISDOUBLE, ANALYSISINTARRAY, and ANALYSISINTEGER.
Referenced by HasQuantity().
{ Mat A = (Mat)prob; PetscReal rv,*rsv; int iv,*isv; PetscErrorCode ierr; PetscFunctionBegin; switch (type) { case ANALYSISINTEGER : ierr = PetscObjectComposedDataGetInt ((PetscObject)A,id,iv,*f); CHKERRQ(ierr); break; case ANALYSISDOUBLE : ierr = PetscObjectComposedDataGetReal ((PetscObject)A,id,rv,*f); CHKERRQ(ierr); break; case ANALYSISINTARRAY : ierr = PetscObjectComposedDataGetIntstar ((PetscObject)A,id,isv,*f); CHKERRQ(ierr); break; case ANALYSISDBLARRAY : ierr = PetscObjectComposedDataGetRealstar ((PetscObject)A,id,rsv,*f); CHKERRQ(ierr); break; default : SETERRQ1(1,"Unknown data type %d",type); } PetscFunctionReturn(0); }
PetscErrorCode QuantityAsString | ( | AnalysisItem * | q, |
AnalysisDataType | t, | ||
const char ** | s | ||
) |
Generate a character string for a given quantity.
Definition at line 731 of file module_functions.c.
References ANALYSISDBLARRAY, ANALYSISDOUBLE, ANALYSISINTARRAY, ANALYSISINTEGER, ANALYSISSTRING, AnalysisItem::c, AnalysisItem::i, AnalysisItem::ii, AnalysisItem::len, AnalysisItem::r, and AnalysisItem::rr.
Referenced by ComputeOrRetrieveQuantity(), and ReportAnamodContent().
{ PetscErrorCode ierr; size_t l; PetscFunctionBegin; switch (t) { case ANALYSISINTEGER : ierr = PetscMalloc(12*sizeof(char),s); CHKERRQ(ierr); ierr = PetscMemzero((void*)*s,12*sizeof(char)); CHKERRQ(ierr); sprintf((char*)*s,"%d",q->i); break; case ANALYSISDOUBLE : ierr = PetscMalloc(22*sizeof(char),s); CHKERRQ(ierr); ierr = PetscMemzero((void*)*s,22*sizeof(char)); CHKERRQ(ierr); sprintf((char*)*s,"%e",q->r); break; case ANALYSISSTRING : ierr = PetscMalloc((strlen(q->c)+1)*sizeof(char),s); CHKERRQ(ierr); ierr = PetscMemzero((void*)*s,(strlen(q->c)+1)*sizeof(char)); CHKERRQ(ierr); sprintf((char*)*s,"%s",q->c); break; case ANALYSISINTARRAY : { int i,n,*iar; iar = q->ii; n = q->len; ierr = PetscMalloc((10*n+1)*sizeof(char),s); CHKERRQ(ierr); ierr = PetscMemzero((void*)*s,(10*n+1)*sizeof(char)); CHKERRQ(ierr); for (i=0; i<=n; i++) { ierr = PetscStrlen(*s,&l); CHKERRQ(ierr); sprintf((char*)*s+l,"%d,",iar[i]); } } break; case ANALYSISDBLARRAY : { int i,n; PetscReal *rar; rar = q->rr; n = q->len; ierr = PetscMalloc((15*n+1)*sizeof(char),s); CHKERRQ(ierr); ierr = PetscMemzero((void*)*s,(15*n+1)*sizeof(char)); CHKERRQ(ierr); for (i=0; i<=n; i++) { ierr = PetscStrlen(*s,&l); CHKERRQ(ierr); sprintf((char*)*s+l,"%e,",rar[i]); } } break; default : SETERRQ1(1,"Cannot string quantity type %d",t); } PetscFunctionReturn(0); }
PetscErrorCode RegisterModule | ( | const char * | cat, |
const char * | cmp, | ||
AnalysisDataType | type, | ||
PetscErrorCode(*)(AnaModNumericalProblem, AnalysisItem *, int *, PetscTruth *) | f | ||
) |
Register a new computational module
This adds a computational routine (the f
argument) into the modules database under the given category (cat
) and module (cmp
) label. If the category does not exist yet, it is created.
The available types are defined in anamodtypes.h
If the routine is NULL, only the category and component are created.
Routine prototype:
See also HasComputeModule(), ComputeQuantity().
Definition at line 382 of file module_functions.c.
References AnaModIsInitialized, CategoryComponentSetModule(), and id.
Referenced by RegisterICMKModules(), RegisterIprsModules(), RegisterJPLModules(), RegisterLapackModules(), RegisterNormalityModules(), RegisterSimpleModules(), RegisterSpectrumModules(), RegisterStatsModules(), RegisterStructureModules(), and RegisterVarianceModules().
{ int id; PetscErrorCode ierr; PetscFunctionBegin; if (!AnaModIsInitialized) SETERRQ(1,"AnaMod not initialized: insert call to AnaModInitialize()\n"); /* * Check for illegal names */ if (strchr(cat,':')) SETERRQ(1,"Illegal colon in category name"); if (strchr(cmp,':')) SETERRQ(1,"Illegal colon in component name"); #if defined(ANAMODDEBUG) printf("Defining module <%s:%s>\n",cat,cmp); #endif ierr = PetscObjectComposedDataRegister(&id); CHKERRQ(ierr); ierr = CategoryComponentSetModule(cat,cmp,type,id,f); CHKERRQ(ierr); PetscFunctionReturn(0); }
PetscErrorCode RetrieveQuantity | ( | AnaModNumericalProblem | prob, |
const char * | cat, | ||
const char * | cmp, | ||
AnalysisItem * | res, | ||
int * | rreslen, | ||
PetscTruth * | success | ||
) |
Retrieve an attached quantity. Note that this does not report the length of arrays; you have to know under which name this is stored.
Definition at line 577 of file module_functions.c.
References ComputeOrRetrieveQuantity(), and MODE_RETRIEVE.
{ PetscErrorCode ierr; PetscFunctionBegin; ierr = ComputeOrRetrieveQuantity (prob,cat,cmp,res,rreslen,success,MODE_RETRIEVE); CHKERRQ(ierr); PetscFunctionReturn(0); }
PetscErrorCode RetrieveQuantityByID | ( | AnaModNumericalProblem | prob, |
int | id, | ||
AnalysisDataType | type, | ||
AnalysisItem * | result, | ||
PetscTruth * | f | ||
) |
See also HasQuantityByID()
Definition at line 698 of file module_functions.c.
References ANALYSISDBLARRAY, ANALYSISDOUBLE, ANALYSISINTARRAY, ANALYSISINTEGER, AnalysisItem::i, AnalysisItem::ii, AnalysisItem::r, and AnalysisItem::rr.
{ Mat A = (Mat)prob; PetscErrorCode ierr; PetscFunctionBegin; switch (type) { case ANALYSISINTEGER : ierr = PetscObjectComposedDataGetInt ((PetscObject)A,id,result->i,*f); CHKERRQ(ierr); break; case ANALYSISDOUBLE : ierr = PetscObjectComposedDataGetReal ((PetscObject)A,id,result->r,*f); CHKERRQ(ierr); break; case ANALYSISINTARRAY : ierr = PetscObjectComposedDataGetIntstar ((PetscObject)A,id,result->ii,*f); CHKERRQ(ierr); break; case ANALYSISDBLARRAY : ierr = PetscObjectComposedDataGetRealstar ((PetscObject)A,id,result->rr,*f); CHKERRQ(ierr); break; default : SETERRQ1(1,"Unknown data type %d",type); } PetscFunctionReturn(0); }
int AnaModIsInitialized = 0 [static] |
Definition at line 276 of file module_functions.c.
Referenced by AnaModGetTypeMySQLName(), AnaModInitialize(), ComputeQuantity(), and RegisterModule().
struct { ... } anamodtypenames[5] [static] |
Referenced by AnaModGetTypeMySQLName(), AnaModGetTypeName(), and AnaModInitialize().
categoryobject* categoryobjects = NULL |
Definition at line 279 of file module_functions.c.
int id |
Definition at line 274 of file module_functions.c.
Referenced by AvgDiagDist(), AvgDistFromDiag(), AvgNnzpRow(), BlockSize(), ColourOffsets(), Colours(), ColourSizes(), ColVariability(), Commutator(), ComponentSetModule(), compute_dd(), compute_dummy_rows(), compute_eigenvalues(), compute_ellipse_from_Ritz_values(), compute_icm_splits(), compute_nnz_structure(), compute_posdiag(), compute_singularvalues(), compute_tracea2(), ComputeDiagonal(), computennz(), computetrace(), ComputeVariability(), Departure(), DepartureLee95(), DepartureLee96L(), DepartureLee96U(), DepartureRuhe75(), DiagDefinite(), DiagonalAverage(), DiagonalDominance(), DiagonalSign(), DiagonalVariance(), DiagZeroStart(), DummyRows(), DummyRowsKind(), eigenvaluecomp(), HasQuantity(), JonesPlassmannColouring(), Kappa(), LBandWidth(), Lee95bounds(), Lee96bounds(), LeftSkyline(), LoBand(), MatCommutatorNormF(), MatSymmPartNormInf(), MaxEVbyImIm(), MaxEVbyImRe(), MaxEVbyMagIm(), MaxEVbyMagRe(), MaxEVbyRealIm(), MaxEVbyRealRe(), MaxNNonZerosPerRow(), MinEVbyMagIm(), MinEVbyMagRe(), MinNNonZerosPerRow(), NColours(), NDiags(), NDummyRows(), NNonZeros(), Nnz(), NnzDia(), NnzLow(), NnzUp(), norm1(), normF(), normInf(), NRitzValues(), nRows(), NSplits(), NUnstruct(), PosFraction(), RBandWidth(), RegisterModule(), regularblocks(), RelSymm(), RightSkyline(), RitzValuesC(), RitzValuesR(), RowVariability(), SigmaDiagDist(), SigmaMax(), SigmaMin(), SpectrumAX(), SpectrumAY(), SpectrumCX(), SpectrumCY(), Splits(), Symmetry(), SymmetryANorm(), SymmetryFANorm(), SymmetryFSNorm(), SymmetrySNorm(), Trace(), TraceA2(), TraceAbs(), UpBand(), and Version().
const char * mysqlname |
Definition at line 274 of file module_functions.c.
Referenced by AnaModGetTypeMySQLName().
const char* name |
Definition at line 274 of file module_functions.c.
Referenced by AddToFeatureSet(), CategoryEnableByName(), and GetCategoryIndex().
int nAnaModTypeNames [static] |
Definition at line 275 of file module_functions.c.
Referenced by AnaModGetTypeMySQLName(), AnaModGetTypeName(), and AnaModInitialize().
int ncategories = 0 |
Definition at line 278 of file module_functions.c.
Referenced by AllocCategoryObjects(), CategoryEnableByName(), FreeCategoryObjects(), GetCategories(), GetCategoryIndex(), GetFirstCategory(), GetNextCategory(), and GetOrCreateCategory().