33 #include <QAbstractTableModel> 38 #include <gsl/gsl_matrix.h> 39 #include <gsl/gsl_permutation.h> 48 MatrixModel(
int rows = 32,
int cols = 32, QObject *parent = 0);
54 Qt::ItemFlags
flags(
const QModelIndex & index )
const;
58 void resample(
int rows,
int cols,
int method = 0);
60 int rowCount(
const QModelIndex &parent = QModelIndex())
const;
63 int columnCount(
const QModelIndex &parent = QModelIndex())
const;
66 bool removeRows(
int row,
int count,
const QModelIndex & parent = QModelIndex());
67 bool insertRows(
int row,
int count,
const QModelIndex & parent = QModelIndex());
69 bool removeColumns(
int column,
int count,
const QModelIndex & parent = QModelIndex());
70 bool insertColumns(
int column,
int count,
const QModelIndex & parent = QModelIndex());
72 double x(
int col)
const;
73 double y(
int row)
const;
75 double cell(
int row,
int col);
76 void setCell(
int row,
int col,
double val);
78 QString
text(
int row,
int col);
79 void setText(
int row,
int col,
const QString&);
83 double data(
int row,
int col)
const;
84 QVariant
data(
const QModelIndex &index,
int role = Qt::DisplayRole)
const;
85 bool setData(
const QModelIndex & index,
const QVariant & value,
int role);
88 QVariant
headerData(
int section, Qt::Orientation orientation,
int role = Qt::DisplayRole)
const;
92 bool importASCII(
const QString &fname,
const QString &sep,
int ignoredLines,
bool stripSpaces,
93 bool simplifySpaces,
const QString& commentString,
int importAs,
94 const QLocale& locale,
int endLineChar = 0,
int maxRows = -1);
105 void fft(
bool inverse);
106 void clear(
int startRow = 0,
int endRow = -1,
int startCol = 0,
int endCol = -1);
107 bool calculate(
int startRow = 0,
int endRow = -1,
int startCol = 0,
int endCol = -1);
108 bool muParserCalculate(
int startRow = 0,
int endRow = -1,
int startCol = 0,
int endCol = -1);
109 double*
dataCopy(
int startRow = 0,
int endRow = -1,
int startCol = 0,
int endCol = -1);
110 void pasteData(
double *clipboardBuffer,
int topRow,
int leftCol,
int rows,
int cols);
void clear(int startRow=0, int endRow=-1, int startCol=0, int endCol=-1)
Definition: MatrixModel.cpp:756
Definition: MatrixModel.h:43
Matrix * matrix()
Definition: MatrixModel.h:52
void flipVertically()
Definition: MatrixModel.cpp:628
bool insertRows(int row, int count, const QModelIndex &parent=QModelIndex())
Definition: MatrixModel.cpp:425
void setLocale(const QLocale &locale)
Definition: MatrixModel.h:96
MatrixModel(int rows=32, int cols=32, QObject *parent=0)
Definition: MatrixModel.cpp:51
gsl_matrix * d_direct_matrix
Pointers to GSL matrices used during inversion operations.
Definition: MatrixModel.h:125
void fft(bool inverse)
Definition: MatrixModel.cpp:941
~MatrixModel()
Definition: MatrixModel.h:50
void rotate90(bool clockwise)
Definition: MatrixModel.cpp:670
char d_txt_format
Format code for displaying numbers.
Definition: MatrixModel.h:118
void flipHorizontally()
Definition: MatrixModel.cpp:649
int columnCount(const QModelIndex &parent=QModelIndex()) const
Definition: MatrixModel.cpp:123
void init()
Definition: MatrixModel.cpp:81
void transpose()
Definition: MatrixModel.cpp:605
void setCell(int row, int col, double val)
Definition: MatrixModel.cpp:183
double cell(int row, int col)
Definition: MatrixModel.cpp:174
bool initWorkspace()
Definition: MatrixModel.cpp:705
double data(int row, int col) const
Definition: MatrixModel.cpp:222
bool importASCII(const QString &fname, const QString &sep, int ignoredLines, bool stripSpaces, bool simplifySpaces, const QString &commentString, int importAs, const QLocale &locale, int endLineChar=0, int maxRows=-1)
Definition: MatrixModel.cpp:486
gsl_permutation * d_inv_perm
Pointer to a GSL permutation used during inversion operations.
Definition: MatrixModel.h:127
int d_cols
Definition: MatrixModel.h:114
bool insertColumns(int column, int count, const QModelIndex &parent=QModelIndex())
Definition: MatrixModel.cpp:399
double * d_data
Definition: MatrixModel.h:115
QLocale d_locale
Locale used to display data.
Definition: MatrixModel.h:122
bool calculate(int startRow=0, int endRow=-1, int startCol=0, int endCol=-1)
Definition: MatrixModel.cpp:880
void pasteData(double *clipboardBuffer, int topRow, int leftCol, int rows, int cols)
Definition: MatrixModel.cpp:1004
bool setData(const QModelIndex &index, const QVariant &value, int role)
Definition: MatrixModel.cpp:316
QSize d_data_block_size
Definition: MatrixModel.h:128
Matrix * d_matrix
Definition: MatrixModel.h:116
int d_num_precision
Number of significant digits.
Definition: MatrixModel.h:120
Qt::ItemFlags flags(const QModelIndex &index) const
Definition: MatrixModel.cpp:110
Matrix worksheet class.
Definition: Matrix.h:57
void setText(int row, int col, const QString &)
Definition: MatrixModel.cpp:206
QString text(int row, int col)
Definition: MatrixModel.cpp:192
double x(int col) const
Definition: MatrixModel.cpp:231
bool canResize(int rows, int cols)
Definition: MatrixModel.cpp:354
QImage renderImage()
Definition: MatrixModel.cpp:464
bool muParserCalculate(int startRow=0, int endRow=-1, int startCol=0, int endCol=-1)
Definition: MatrixModel.cpp:798
int rowCount(const QModelIndex &parent=QModelIndex()) const
Definition: MatrixModel.cpp:118
bool removeRows(int row, int count, const QModelIndex &parent=QModelIndex())
Definition: MatrixModel.cpp:446
void setImage(const QImage &image)
Definition: MatrixModel.cpp:96
gsl_matrix * d_inv_matrix
Definition: MatrixModel.h:125
void setRowCount(int rows)
Definition: MatrixModel.cpp:128
void invert()
Definition: MatrixModel.cpp:724
double * dataCopy(int startRow=0, int endRow=-1, int startCol=0, int endCol=-1)
Definition: MatrixModel.cpp:773
void setNumericFormat(char f, int prec)
Definition: MatrixModel.cpp:596
bool removeColumns(int column, int count, const QModelIndex &parent=QModelIndex())
Definition: MatrixModel.cpp:380
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const
Definition: MatrixModel.cpp:261
int d_rows
Definition: MatrixModel.h:114
double y(int row) const
Definition: MatrixModel.cpp:246
void setColumnCount(int cols)
Definition: MatrixModel.cpp:143
void setDimensions(int rows, int cols)
Definition: MatrixModel.cpp:158
double * dataVector()
Definition: MatrixModel.h:87
void resample(int rows, int cols, int method=0)
Definition: MatrixModel.cpp:1024