ProbSparseMatrix.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 ProbSparseMatrix_INC
00038
#define ProbSparseMatrix_INC
00039
00040
#include "DoubleAccessSparseMatrix.h"
00041
00042
namespace PLearn {
00043
using namespace std;
00044
00045 class ProbSparseMatrix :
public DoubleAccessSparseMatrix<real>
00046 {
00047
00048
public:
00049
00050
ProbSparseMatrix(
int n_rows = 0,
int n_cols = 0,
string name =
"pXY",
int mode =
ROW_WISE,
bool double_access =
false);
00051
00052
void incr(
int i,
int j,
real inc = 1.0,
bool warning =
true);
00053
00054
void set(
int i,
int j,
real value,
bool warning =
true);
00055
00056
bool checkCondProbIntegrity();
00057
00058
bool checkJointProbIntegrity();
00059
00060
void normalizeCond(
ProbSparseMatrix& nXY,
bool clear_nXY =
false);
00061
00062
void normalizeJoint(
ProbSparseMatrix& nXY,
bool clear_nXY =
false);
00063
00064
void normalizeCond();
00065
00066
void normalizeJoint();
00067
00068 string getClassName()
const {
return "ProbSparseMatrix"; }
00069
00070 };
00071
00072
template <
class T>
00073 inline PStream&
operator<<(
PStream &out,
const ProbSparseMatrix &p)
00074 {
00075 p.
write(out);
00076
return out;
00077 }
00078
00079
template <
class T>
00080 inline PStream&
operator>>(
PStream &in,
ProbSparseMatrix &p)
00081 {
00082 p.
read(in);
00083
return in;
00084 }
00085
00086 class PSMat :
public PP<ProbSparseMatrix>
00087 {
00088
00089
public:
00090
00091 PSMat(
int n_rows = 0,
int n_cols = 0,
string name =
"pXY",
int mode = ROW_WISE,
bool double_access =
false) :
PP<
ProbSparseMatrix>(new
ProbSparseMatrix(n_rows, n_cols, name,
mode, double_access)) {}
00092
00093 PSMat(
ProbSparseMatrix* p) :
PP<
ProbSparseMatrix>(p) {}
00094
00095 };
00096
00097 }
00098
00099
#endif
Generated on Tue Aug 17 16:02:52 2004 for PLearn by
1.3.7