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];
#define MATRIX_FORMAT_BLK1
Definition Paso.h:63
#define MATRIX_FORMAT_OFFSET1
Definition Paso.h:64
PasoException exception class.
Definition PasoException.h:34
index_t dim_t
Definition DataTypes.h:66
int index_t
type for array/matrix indices used both globally and on each rank
Definition DataTypes.h:61
Definition BiCGStab.cpp:25
boost::shared_ptr< Pattern > Pattern_ptr
Definition Pattern.h:40
boost::shared_ptr< const Pattern > const_Pattern_ptr
Definition Pattern.h:41
#define PASO_DLL_API
Definition paso/src/system_dep.h:29
Definition escriptcore/src/IndexList.h:29
dim_t numInput
Definition Pattern.h:135
index_t * hb_col
Definition Pattern.h:151
index_t * hb_row
Definition Pattern.h:149
int type
Definition Pattern.h:131
dim_t getNumColors()
Definition Pattern.h:81
index_t * coloring
Definition Pattern.h:147
index_t * ptr
Definition Pattern.h:139
dim_t len
Definition Pattern.h:137
bool isEmpty() const
Definition Pattern.h:76
void csrToHB()
Definition Pattern.h:107
dim_t maxDeg() const
Definition Pattern.h:88
dim_t numOutput
Definition Pattern.h:133
index_t * index
Definition Pattern.h:141
dim_t numColors
Definition Pattern.h:145
index_t * main_iptr
Definition Pattern.h:143