00001 00013 #if !defined(INC_OSKI_INMATPROP_H) 00014 00015 #define INC_OSKI_INMATPROP_H 00016 00017 #include <assert.h> 00018 #include <stdarg.h> 00019 #include <oski/userconst.h> 00020 00030 #define INMATPROP_UNDEFINED (int)(INMATPROP_NULL) 00031 00033 #define MIN_INMATPROP MAT_GENERAL 00034 00035 #define MAX_INMATPROP (INMATPROP_MAX-1) 00036 00047 typedef struct 00048 { 00049 oski_inmatprop_t pattern; 00050 int has_unit_diag_implicit; 00051 int index_base; 00052 int has_sorted_indices; 00053 int has_unique_indices; 00054 } 00055 oski_inmatpropset_t; 00056 00060 void oski_ClearInMatPropSet (oski_inmatpropset_t * props); 00061 00065 void oski_CompleteDefaultInMatPropSet (oski_inmatpropset_t * props); 00066 00070 int oski_IsInMatPropSetConsistent (const oski_inmatpropset_t * props); 00071 00075 void oski_DisplayInMatPropSet (const oski_inmatpropset_t * props); 00076 00092 int oski_CollectInMatProps (oski_inmatpropset_t* props, int k, ...); 00093 00097 int oski_CollectInMatProps_va (oski_inmatpropset_t* props, 00098 int k, 00099 va_list ap); 00100 00104 int oski_CollectInMatProps_arr (oski_inmatpropset_t* props, 00105 int k, const oski_inmatprop_t* in_props); 00106 00107 #endif /* !defined(INC_OSKI_INMATPROP_H) */ 00108 00109 /* eof */