Go to the documentation of this file.
29 #ifndef __PASO_PATTERN_H__
30 #define __PASO_PATTERN_H__
35 #include <escript/IndexList.h>
51 dim_t inputBlockSize);
55 const index_t* newColIndex)
const;
58 void mis(
index_t* mis_marker)
const;
60 void reduceBandwidth(
index_t* oldToNew);
66 index_t* borrowMainDiagonalPointer();
72 index_t* borrowColoringPointer();
78 return (!ptr && !index);
84 borrowColoringPointer();
95 for (
dim_t i = 0; i < numInput; ++i) {
96 loc_deg=std::max(loc_deg, ptr[i+1]-ptr[i]);
100 deg = std::max(deg, loc_deg);
112 "Paso: Harwell-Boeing format requires CSR format with index offset 1 and block size 1.");
115 if ( !(hb_row == NULL && hb_col == NULL) ) {
121 for (
dim_t i=0, k=0; i<numOutput; i++)
123 for (
dim_t j=ptr[i]; j<ptr[i+1]; j++, k++)
126 hb_col[k] = index[j-1];
157 #endif // __PASO_PATTERN_H__
#define MATRIX_FORMAT_BLK1
Definition: Paso.h:63
void mis(index_t *mis_marker) const
Searches for a maximal independent set MIS in the matrix pattern.
Definition: Pattern_mis.cpp:48
Pattern_ptr unrollBlocks(int newType, dim_t outputBlockSize, dim_t inputBlockSize)
Definition: Pattern.cpp:249
#define PASO_DLL_API
Definition: paso/src/system_dep.h:29
void csrToHB()
Definition: Pattern.h:107
index_t * hb_row
Definition: Pattern.h:149
void toArray(DataTypes::index_t *array, DataTypes::index_t range_min, DataTypes::index_t range_max, DataTypes::index_t index_offset) const
index list to array
Definition: escriptcore/src/IndexList.h:68
static Pattern_ptr fromIndexListArray(dim_t n0, dim_t n, const escript::IndexList *index_list_array, index_t range_min, index_t range_max, index_t index_offset)
Definition: Pattern.cpp:105
index_t * hb_col
Definition: Pattern.h:151
index_t cumsum(dim_t N, index_t *array)
calculates the cumulative sum in array and returns the total sum
Definition: PasoUtil.cpp:86
dim_t maxDeg() const
Definition: Pattern.h:88
dim_t numColors
Definition: Pattern.h:145
dim_t numInput
Definition: Pattern.h:135
index_t * borrowColoringPointer()
Definition: Pattern.cpp:166
dim_t numOutput
Definition: Pattern.h:133
#define MATRIX_FORMAT_OFFSET1
Definition: Paso.h:64
dim_t getNumColors()
Definition: Pattern.h:81
DataTypes::dim_t count(DataTypes::index_t range_min, DataTypes::index_t range_max) const
counts the number of row indices in the IndexList in
Definition: escriptcore/src/IndexList.h:54
int comparIndex(const void *index1, const void *index2)
this int-comparison function is used by qsort/bsearch in various places
Definition: PasoUtil.cpp:25
index_t dim_t
Definition: DataTypes.h:66
index_t * coloring
Definition: Pattern.h:147
Pattern_ptr binop(int type, const_Pattern_ptr other) const
Definition: Pattern.cpp:333
Pattern_ptr multiply(int type, const_Pattern_ptr other) const
Definition: Pattern.cpp:311
index_t * index
Definition: Pattern.h:141
dim_t len
Definition: Pattern.h:137
index_t * main_iptr
Definition: Pattern.h:143
PasoException exception class.
Definition: PasoException.h:34
boost::shared_ptr< const Pattern > const_Pattern_ptr
Definition: Pattern.h:41
Pattern_ptr getSubpattern(dim_t newNumRows, dim_t newNumCols, const index_t *rowList, const index_t *newColIndex) const
Definition: Pattern.cpp:199
int index_t
type for array/matrix indices used both globally and on each rank
Definition: DataTypes.h:61
bool isEmpty() const
Definition: Pattern.h:76
boost::shared_ptr< Pattern > Pattern_ptr
Definition: Pattern.h:39
int type
Definition: Pattern.h:131
Definition: escriptcore/src/IndexList.h:29
bool isAny(dim_t N, const index_t *array, index_t value)
returns true if array contains value
Definition: PasoUtil.cpp:30
Definition: BiCGStab.cpp:25
index_t * borrowMainDiagonalPointer()
Definition: Pattern.cpp:139
Pattern(int type, dim_t numOutput, dim_t numInput, index_t *ptr, index_t *index)
Definition: Pattern.cpp:38
#define MATRIX_FORMAT_DEFAULT
Definition: Paso.h:61
index_t * ptr
Definition: Pattern.h:139
~Pattern()
Definition: Pattern.cpp:94