System Preprocessors
|
00001 #ifndef TRANSFORM_H 00002 #define TRANSFORM_H 00003 00004 #include "syspro.h" 00005 #include "petsc.h" 00006 00007 extern PetscErrorCode NewTransform(const char*,SalsaTransform*); 00008 extern PetscErrorCode DeregisterTransform(SalsaTransform); 00009 extern PetscErrorCode TransformGetName(SalsaTransform,const char**); 00010 extern PetscErrorCode TransformGetByName(const char*,SalsaTransform*); 00011 00012 extern PetscErrorCode NewTransformObject(const char*,const char*,SalsaTransformObject*); 00013 extern PetscErrorCode FreeTransformObject(SalsaTransformObject tf); 00014 extern PetscErrorCode TransformObjectGetByName 00015 (const char*,const char*,SalsaTransformObject*); 00016 extern PetscErrorCode TransformGetObjects(SalsaTransform,int*,SalsaTransformObject**); 00017 extern PetscErrorCode TransformObjectGetName(SalsaTransformObject,const char**); 00018 extern PetscErrorCode TransformObjectGetTransformName(SalsaTransformObject,char**); 00019 extern PetscErrorCode TransformObjectsGetNames(SalsaTransform,const char***); 00020 extern PetscErrorCode TransformObjectSetExplanation(SalsaTransformObject,const char*); 00021 extern PetscErrorCode TransformObjectSetSuitabilityFunction 00022 (SalsaTransformObject,void*,PetscErrorCode(*)(NumericalProblem,void*,SuitabilityValue*)); 00023 extern PetscErrorCode SetSuitabilityContextTester(SalsaTransform,PetscErrorCode(*)(void*)); 00024 extern PetscErrorCode TransformObjectGetSuitabilityFunction 00025 (SalsaTransformObject,void **,PetscErrorCode(**)(NumericalProblem,void*,SuitabilityValue*)); 00026 extern PetscErrorCode TransformObjectAddOptionExplanation(SalsaTransformObject,int,const char*); 00027 00028 extern PetscErrorCode TransformItemGetFirstOption(const char*,const char*,int*,PetscBool*); 00029 extern PetscErrorCode TransformItemGetNextOption(const char*,const char*,int*,PetscBool*); 00030 00031 extern PetscErrorCode TransformReportTeXTable(SalsaTransform,FILE*); 00032 extern PetscErrorCode TransformReportEnabled(SalsaTransform,const char**); 00033 extern PetscErrorCode TransformItemDescribeShort(SalsaTransform,char*,int,char**); 00034 extern PetscErrorCode TransformItemDescribeLong(SalsaTransform,char*,int,char**); 00035 00036 /* 00037 * Marking 00038 */ 00039 extern PetscErrorCode TransformObjectMark(SalsaTransformObject tf); 00040 extern PetscErrorCode TransformObjectUnmark(SalsaTransformObject tf); 00041 extern PetscErrorCode TransformObjectsMarkAll(SalsaTransform tf); 00042 extern PetscErrorCode TransformObjectsUnmarkAll(SalsaTransform tf); 00043 extern PetscErrorCode TransformObjectGetMark(SalsaTransformObject,int*); 00044 extern PetscErrorCode TransformItemOptionMark(SalsaTransform,const char*,int); 00045 extern PetscErrorCode TransformGetNUnmarked(SalsaTransform,int*); 00046 extern PetscErrorCode TransformObjectsUseOnly(SalsaTransform,const char*); 00047 extern PetscErrorCode TransformItemOptionsUseOnly(SalsaTransformObject,const char*); 00048 extern PetscErrorCode TransformGetNItems(SalsaTransform,int *n); 00049 extern PetscErrorCode TransformGetNextUnmarkedItem 00050 (SalsaTransform,const char*,SalsaTransformObject*,PetscBool*); 00051 extern PetscErrorCode PreprocessorSaveAprioriSelection(SystemPreprocessor); 00052 extern PetscErrorCode PreprocessorApplyAprioriSelection(SystemPreprocessor); 00053 00054 /* 00055 * annotations 00056 */ 00057 extern PetscErrorCode SysProDefineCharAnnotation(const char*,const char*); 00058 extern PetscErrorCode TransformCharAnnotationGetIndex(SalsaTransform,const char*,int*,PetscBool*); 00059 extern PetscErrorCode TransformObjectCharAnnotate(SalsaTransformObject,const char*,const char*); 00060 extern PetscErrorCode TransformObjectIntAnnotate(SalsaTransformObject,const char*,int); 00061 extern PetscErrorCode TransformObjectGetIntAnnotation 00062 (SalsaTransformObject,const char*,int*,PetscBool*); 00063 extern PetscErrorCode SysProDefineIntAnnotation(const char*,const char*); 00064 extern PetscErrorCode TransformIntAnnotationGetIndex 00065 (SalsaTransform,const char*,int*,PetscBool*); 00066 extern PetscErrorCode TransformItemIntAnnotate(SalsaTransform,int,int); 00067 extern PetscErrorCode TransformItemGetIntAnnotation 00068 (SalsaTransform,int idx,char *an,int *v,PetscBool *f); 00069 00070 /* 00071 * options 00072 */ 00073 extern PetscErrorCode TransformObjectDefineOption(SalsaTransformObject,const char*); 00074 extern PetscErrorCode TransformObjectAddOption(SalsaTransformObject,int); 00075 00076 extern PetscErrorCode TransformItemCharAnnotationGetIndex(SalsaTransform,char*,int*); 00077 extern PetscErrorCode TransformItemGetCharAnnotation 00078 (SalsaTransform,int idx,char *an,char **v,PetscBool*); 00079 00080 00081 extern PetscErrorCode TransformCurrentItemDefineOption(SalsaTransform,char*,char*); 00082 extern PetscErrorCode TransformItemDefineOption(SalsaTransform,int,char*,char*); 00083 extern PetscErrorCode TransformItemGetNOptions(SalsaTransform,int it,int *nopt); 00084 extern PetscErrorCode TransformItemGetOptionI(SalsaTransform,int it,int iopt,int *v); 00085 00086 extern PetscErrorCode TransformSetUserChoices(SalsaTransform,PetscBool); 00087 extern PetscErrorCode TransformGetUserChoices(SalsaTransform,PetscBool*); 00088 extern PetscErrorCode SalsaTransformIntegrityTest(SalsaTransform tf); 00089 00090 #endif