ESYS13
Revision_
|
00001 00002 /******************************************************* 00003 * 00004 * Copyright (c) 2003-2012 by University of Queensland 00005 * Earth Systems Science Computational Center (ESSCC) 00006 * http://www.uq.edu.au/esscc 00007 * 00008 * Primary Business: Queensland, Australia 00009 * Licensed under the Open Software License version 3.0 00010 * http://www.opensource.org/licenses/osl-3.0.php 00011 * 00012 *******************************************************/ 00013 00014 00015 /**************************************************************/ 00016 00017 /* Paso: pattern */ 00018 00019 /**************************************************************/ 00020 00021 /* Author: Lutz Gross, l.gross@uq.edu.au */ 00022 00023 /**************************************************************/ 00024 00025 #ifndef INC_PASO_INDEX_LIST 00026 #define INC_PASO_INDEX_LIST 00027 00028 #include "Common.h" 00029 00030 /**************************************************************/ 00031 00032 #define INDEXLIST_LENGTH 85 00033 00034 typedef struct Paso_IndexList { 00035 index_t index[INDEXLIST_LENGTH]; 00036 dim_t n; 00037 struct Paso_IndexList *extension; 00038 } Paso_IndexList; 00039 00040 typedef struct Paso_IndexListArray { 00041 dim_t n; 00042 Paso_IndexList* index_list; 00043 } Paso_IndexListArray; 00044 00045 PASO_DLL_API 00046 void Paso_IndexList_insertIndex(Paso_IndexList*, index_t); 00047 00048 PASO_DLL_API 00049 void Paso_IndexList_toArray(Paso_IndexList*, index_t*, index_t, index_t, index_t); 00050 00051 PASO_DLL_API 00052 dim_t Paso_IndexList_count(Paso_IndexList*, index_t, index_t); 00053 00054 PASO_DLL_API 00055 void Paso_IndexList_free(Paso_IndexList*); 00056 00057 PASO_DLL_API 00058 Paso_IndexListArray* Paso_IndexListArray_alloc(const dim_t n); 00059 00060 PASO_DLL_API 00061 void Paso_IndexListArray_free(Paso_IndexListArray* in); 00062 00063 #define Paso_IndexListArray_insertIndex(__a__,i,j) Paso_IndexList_insertIndex(&((__a__)->index_list[i]),j); 00064 00065 #endif /* #ifndef INC_PASO_INDEX_LIST */