SparseMatrix.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00037
#ifndef SPARSEMATRIX
00038
#define SPARSEMATRIX
00039
00040
#include "Mat.h"
00041
#include <plearn/base/Array.h>
00042
00043
namespace PLearn {
00044
using namespace std;
00045
00046
00057 class SparseMatrix {
00058
public:
00059 int n_rows;
00060 Vec beginRow;
00061 Vec endRow;
00062 Vec row;
00063 Vec values;
00064
00065 int length()
const {
return n_rows; }
00066 int width()
const {
return beginRow.
length(); }
00067
00068 SparseMatrix() {}
00069 SparseMatrix(
int nbrows,
int n_columns,
int n_non_zero)
00070 :
n_rows(nbrows),
beginRow(n_columns),
endRow(n_columns),
00071
row(n_non_zero),
values(n_non_zero) {}
00072 SparseMatrix(
Vec bRow,
Vec eRow,
Vec Row,
Vec Values,
int nbrows)
00073 :
n_rows(nbrows),
beginRow(bRow),
endRow(eRow),
00074
row(Row),
values(Values) {}
00075
00077
SparseMatrix(
Mat m);
00078
00079 SparseMatrix(
string filename) {
loadFortran(filename.c_str()); }
00080
00081
void resize(
int nbrows,
int n_columns,
int n_non_zero);
00082
00085
void loadFortran(
const char* filename);
00086
void saveFortran(
const char* filename);
00087
00089
Mat toMat();
00090
00093
void product(
const Vec& x,
Vec& y);
00095
void diag(
Vec& d);
00098
void diagonalOfSquare(
Vec& d);
00100
real dotRow(
int i,
Vec v);
00102
real dotColumn(
int j,
Vec v);
00103 };
00104
00107 SparseMatrix
operator+(
const SparseMatrix& A,
const SparseMatrix& B);
00109 SparseMatrix
add(Array<SparseMatrix>& matrices);
00110
00111
00112 }
00113
00114
#endif
Generated on Tue Aug 17 16:06:22 2004 for PLearn by
1.3.7