SNAP Library 2.3, Developer Reference  2014-06-16 11:58:46
SNAP, a general purpose, high performance system for analysis and manipulation of large networks
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
TVVec< TVal > Class Template Reference

#include <ds.h>

Collaboration diagram for TVVec< TVal >:

Public Member Functions

 TVVec ()
 
 TVVec (const TVVec &Vec)
 
 TVVec (const int &_XDim, const int &_YDim)
 
 TVVec (const TVec< TVal > &_ValV, const int &_XDim, const int &_YDim)
 
 TVVec (TSIn &SIn)
 
void Load (TSIn &SIn)
 
void Save (TSOut &SOut) const
 
TVVec< TVal > & operator= (const TVVec< TVal > &Vec)
 
bool operator== (const TVVec &Vec) const
 
bool Empty () const
 
void Clr ()
 
void Gen (const int &_XDim, const int &_YDim)
 
int GetXDim () const
 
int GetYDim () const
 
int GetRows () const
 
int GetCols () const
 
TVec< TVal > & Get1DVec ()
 
const TVal & At (const int &X, const int &Y) const
 
TVal & At (const int &X, const int &Y)
 
TVal & operator() (const int &X, const int &Y)
 
const TVal & operator() (const int &X, const int &Y) const
 
void PutXY (const int &X, const int &Y, const TVal &Val)
 
void PutAll (const TVal &Val)
 
void PutX (const int &X, const TVal &Val)
 
void PutY (const int &Y, const TVal &Val)
 
TVal GetXY (const int &X, const int &Y) const
 
void GetRow (const int &RowN, TVec< TVal > &Vec) const
 
void GetCol (const int &ColN, TVec< TVal > &Vec) const
 
void SwapX (const int &X1, const int &X2)
 
void SwapY (const int &Y1, const int &Y2)
 
void Swap (TVVec< TVal > &Vec)
 
void ShuffleX (TRnd &Rnd)
 
void ShuffleY (TRnd &Rnd)
 
void GetMxValXY (int &X, int &Y) const
 
void CopyFrom (const TVVec< TVal > &VVec)
 
void AddXDim ()
 
void AddYDim ()
 
void DelX (const int &X)
 
void DelY (const int &Y)
 

Private Attributes

TInt XDim
 
TInt YDim
 
TVec< TVal > ValV
 

Detailed Description

template<class TVal>
class TVVec< TVal >

Definition at line 3100 of file ds.h.

Constructor & Destructor Documentation

template<class TVal>
TVVec< TVal >::TVVec ( )
inline

Definition at line 3105 of file ds.h.

3105 : XDim(), YDim(), ValV(){}
TInt YDim
Definition: ds.h:3102
TInt XDim
Definition: ds.h:3102
TVec< TVal > ValV
Definition: ds.h:3103
template<class TVal>
TVVec< TVal >::TVVec ( const TVVec< TVal > &  Vec)
inline

Definition at line 3106 of file ds.h.

3106  :
3107  XDim(Vec.XDim), YDim(Vec.YDim), ValV(Vec.ValV){}
TInt YDim
Definition: ds.h:3102
TInt XDim
Definition: ds.h:3102
TVec< TVal > ValV
Definition: ds.h:3103
template<class TVal>
TVVec< TVal >::TVVec ( const int &  _XDim,
const int &  _YDim 
)
inline

Definition at line 3108 of file ds.h.

3108  :
3109  XDim(), YDim(), ValV(){Gen(_XDim, _YDim);}
TInt YDim
Definition: ds.h:3102
TInt XDim
Definition: ds.h:3102
void Gen(const int &_XDim, const int &_YDim)
Definition: ds.h:3124
TVec< TVal > ValV
Definition: ds.h:3103
template<class TVal>
TVVec< TVal >::TVVec ( const TVec< TVal > &  _ValV,
const int &  _XDim,
const int &  _YDim 
)
inlineexplicit

Definition at line 3110 of file ds.h.

3110  :
3111  XDim(_XDim), YDim(_YDim), ValV(_ValV){ IAssert(ValV.Len()==XDim*YDim); }
#define IAssert(Cond)
Definition: bd.h:262
TInt YDim
Definition: ds.h:3102
TSizeTy Len() const
Returns the number of elements in the vector.
Definition: ds.h:535
TInt XDim
Definition: ds.h:3102
TVec< TVal > ValV
Definition: ds.h:3103
template<class TVal>
TVVec< TVal >::TVVec ( TSIn SIn)
inlineexplicit

Definition at line 3112 of file ds.h.

3112 {Load(SIn);}
void Load(TSIn &SIn)
Definition: ds.h:3113

Member Function Documentation

template<class TVal >
void TVVec< TVal >::AddXDim ( )

Definition at line 3221 of file ds.h.

References TVVec< TVal >::CopyFrom().

3221  {
3222  TVVec<TVal> NewVVec(XDim+1, YDim);
3223  NewVVec.CopyFrom(*this);
3224  *this=NewVVec;
3225 }
TInt YDim
Definition: ds.h:3102
TInt XDim
Definition: ds.h:3102
Definition: ds.h:3100

Here is the call graph for this function:

template<class TVal >
void TVVec< TVal >::AddYDim ( )

Definition at line 3228 of file ds.h.

References TVVec< TVal >::CopyFrom().

3228  {
3229  TVVec<TVal> NewVVec(XDim, YDim+1);
3230  NewVVec.CopyFrom(*this);
3231  *this=NewVVec;
3232 }
TInt YDim
Definition: ds.h:3102
TInt XDim
Definition: ds.h:3102
Definition: ds.h:3100

Here is the call graph for this function:

template<class TVal>
const TVal& TVVec< TVal >::At ( const int &  X,
const int &  Y 
) const
inline

Definition at line 3133 of file ds.h.

Referenced by TMAGNodeSimple::AttrGen(), TMAGNodeBern::AttrGen(), TMAGNodeBeta::AttrGen(), CalcNonNegativeFactorization(), TMAGFitBern::ComputeJointAdjLL(), TMAGFitBern::ComputeJointLL(), TMAGFitBern::ComputeJointOneLL(), TVVec< TVal >::CopyFrom(), TMom::DefVV(), TVVec< TVal >::DelX(), TVVec< TVal >::DelY(), TMAGFitBern::DoEMAlg(), TMAGFitBern::DoEStepApxOneIter(), TMAGFitBern::DoEStepOneIter(), TLinAlg::Gemm(), TMAGParam< TNodeAttr >::GenAttrMAG(), TMAGParam< TNodeAttr >::GenMAG(), TStr::GetDChStr(), TMAGFitBern::GetInCoeff(), TMAGFitBern::GetOutCoeff(), TMAGFitBern::GetProbMu(), TMAGFitBern::GetProbPhi(), TSnap::GetSngVals(), TSnap::GetSngVec(), TLinReg::GetXV(), TSvd::GetXV(), TLogRegFit::Hessian(), TLinAlg::InverseSVD(), TMom::IsUsableVV(), TMom::NewVV(), TLinReg::NR_covsrt(), TLinReg::NR_gaussj(), TLinReg::NR_lfit(), TSvd::NR_svbksb(), TSvd::NR_svdcmp(), TSvd::NR_svdfit(), TSvd::NR_svdvar(), TVVec< TFlt >::operator()(), TLAMisc::PrintTFltVV(), TVVec< TFlt >::PutX(), TVVec< TFlt >::PutXY(), TVVec< TFlt >::PutY(), TMAGFitBern::RandomInit(), TSvd::Svd(), TGraphKey::TakeSig(), TLinAlg::Transpose(), TMAGFitBern::UpdateApxPhiMI(), TMAGFitBern::UpdateMu(), TMAGFitBern::UpdatePhi(), and TMAGFitBern::UpdatePhiMI().

3133  {
3134  Assert((0<=X)&&(X<int(XDim))&&(0<=Y)&&(Y<int(YDim)));
3135  return ValV[X*YDim+Y];}
TInt YDim
Definition: ds.h:3102
TInt XDim
Definition: ds.h:3102
#define Assert(Cond)
Definition: bd.h:251
TVec< TVal > ValV
Definition: ds.h:3103

Here is the caller graph for this function:

template<class TVal>
TVal& TVVec< TVal >::At ( const int &  X,
const int &  Y 
)
inline

Definition at line 3136 of file ds.h.

3136  {
3137  Assert((0<=X)&&(X<int(XDim))&&(0<=Y)&&(Y<int(YDim)));
3138  return ValV[X*YDim+Y];}
TInt YDim
Definition: ds.h:3102
TInt XDim
Definition: ds.h:3102
#define Assert(Cond)
Definition: bd.h:251
TVec< TVal > ValV
Definition: ds.h:3103
template<class TVal>
void TVVec< TVal >::Clr ( )
inline

Definition at line 3123 of file ds.h.

Referenced by TMAGFitBern::Clr(), TMAGFitBern::ComputeJointLL(), TMAGFitBern::DoEStep(), TLAMisc::LoadMatlabTFltVV(), and TMAGFitBern::UpdateAffMtxV().

3123 {XDim=0; YDim=0; ValV.Clr();}
TInt YDim
Definition: ds.h:3102
TInt XDim
Definition: ds.h:3102
void Clr(const bool &DoDel=true, const TSizeTy &NoDelLim=-1)
Clears the contents of the vector.
Definition: ds.h:953
TVec< TVal > ValV
Definition: ds.h:3103

Here is the caller graph for this function:

template<class TVal>
void TVVec< TVal >::CopyFrom ( const TVVec< TVal > &  VVec)

Definition at line 3210 of file ds.h.

References TVVec< TVal >::At(), TInt::GetMn(), TVVec< TVal >::GetXDim(), and TVVec< TVal >::GetYDim().

Referenced by TVVec< TVal >::AddXDim(), and TVVec< TVal >::AddYDim().

3210  {
3211  int CopyXDim=TInt::GetMn(GetXDim(), VVec.GetXDim());
3212  int CopyYDim=TInt::GetMn(GetYDim(), VVec.GetYDim());
3213  for (int X=0; X<CopyXDim; X++){
3214  for (int Y=0; Y<CopyYDim; Y++){
3215  At(X, Y)=VVec.At(X, Y);
3216  }
3217  }
3218 }
int GetXDim() const
Definition: ds.h:3127
static int GetMn(const int &Int1, const int &Int2)
Definition: dt.h:1087
int GetYDim() const
Definition: ds.h:3128
const TVal & At(const int &X, const int &Y) const
Definition: ds.h:3133

Here is the call graph for this function:

Here is the caller graph for this function:

template<class TVal >
void TVVec< TVal >::DelX ( const int &  X)

Definition at line 3235 of file ds.h.

References TVVec< TVal >::At().

Referenced by TSvd::Svd(), and TSvd::Svd1Based().

3235  {
3236  TVVec<TVal> NewVVec(XDim-1, YDim);
3237  for (int Y=0; Y<YDim; Y++){
3238  for (int LX=0; LX<X; LX++){
3239  NewVVec.At(LX, Y)=At(LX, Y);}
3240  for (int RX=X+1; RX<XDim; RX++){
3241  NewVVec.At(RX-1, Y)=At(RX, Y);}
3242  }
3243  *this=NewVVec;
3244 }
TInt YDim
Definition: ds.h:3102
TInt XDim
Definition: ds.h:3102
Definition: ds.h:3100
const TVal & At(const int &X, const int &Y) const
Definition: ds.h:3133

Here is the call graph for this function:

Here is the caller graph for this function:

template<class TVal >
void TVVec< TVal >::DelY ( const int &  Y)

Definition at line 3247 of file ds.h.

References TVVec< TVal >::At().

Referenced by TSvd::Svd(), and TSvd::Svd1Based().

3247  {
3248  TVVec<TVal> NewVVec(XDim, YDim-1);
3249  for (int X=0; X<XDim; X++){
3250  for (int LY=0; LY<Y; LY++){
3251  NewVVec.At(X, LY)=At(X, LY);}
3252  for (int RY=Y+1; RY<YDim; RY++){
3253  NewVVec.At(X, RY-1)=At(X, RY);}
3254  }
3255  *this=NewVVec;
3256 }
TInt YDim
Definition: ds.h:3102
TInt XDim
Definition: ds.h:3102
Definition: ds.h:3100
const TVal & At(const int &X, const int &Y) const
Definition: ds.h:3133

Here is the call graph for this function:

Here is the caller graph for this function:

template<class TVal>
bool TVVec< TVal >::Empty ( ) const
inline

Definition at line 3122 of file ds.h.

Referenced by TStr::GetDChStr().

3122 {return ValV.Len()==0;}
TSizeTy Len() const
Returns the number of elements in the vector.
Definition: ds.h:535
TVec< TVal > ValV
Definition: ds.h:3103

Here is the caller graph for this function:

template<class TVal>
void TVVec< TVal >::Gen ( const int &  _XDim,
const int &  _YDim 
)
inline
template<class TVal>
TVec<TVal>& TVVec< TVal >::Get1DVec ( )
inline

Definition at line 3131 of file ds.h.

3131 {return ValV;}
TVec< TVal > ValV
Definition: ds.h:3103
template<class TVal>
void TVVec< TVal >::GetCol ( const int &  ColN,
TVec< TVal > &  Vec 
) const

Definition at line 3267 of file ds.h.

References TVec< TVal, TSizeTy >::Add(), and TVec< TVal, TSizeTy >::Gen().

Referenced by TSnap::GetEigVec(), TSnap::GetInvParticipRat(), and TSnap::GetSngVec().

3267  {
3268  Vec.Gen(GetRows(), 0);
3269  for (int row = 0; row < GetRows(); row++) {
3270  Vec.Add(At(row, ColN));
3271  }
3272 }
void Gen(const TSizeTy &_Vals)
Constructs a vector (an array) of _Vals elements.
Definition: ds.h:486
TSizeTy Add()
Adds a new element at the end of the vector, after its current last element.
Definition: ds.h:559
int GetRows() const
Definition: ds.h:3129
const TVal & At(const int &X, const int &Y) const
Definition: ds.h:3133

Here is the call graph for this function:

Here is the caller graph for this function:

template<class TVal >
void TVVec< TVal >::GetMxValXY ( int &  X,
int &  Y 
) const

Definition at line 3203 of file ds.h.

3203  {
3204  int MxValN=ValV.GetMxValN();
3205  Y=MxValN%YDim;
3206  X=MxValN/YDim;
3207 }
TInt YDim
Definition: ds.h:3102
TVec< TVal > ValV
Definition: ds.h:3103
TSizeTy GetMxValN() const
Returns the position of the largest element in the vector.
Definition: ds.h:1467
template<class TVal>
void TVVec< TVal >::GetRow ( const int &  RowN,
TVec< TVal > &  Vec 
) const

Definition at line 3259 of file ds.h.

References TVec< TVal, TSizeTy >::Add(), and TVec< TVal, TSizeTy >::Gen().

Referenced by TMAGFitBern::UpdateApxPhiMI().

3259  {
3260  Vec.Gen(GetCols(), 0);
3261  for (int col = 0; col < GetCols(); col++) {
3262  Vec.Add(At(RowN, col));
3263  }
3264 }
void Gen(const TSizeTy &_Vals)
Constructs a vector (an array) of _Vals elements.
Definition: ds.h:486
TSizeTy Add()
Adds a new element at the end of the vector, after its current last element.
Definition: ds.h:559
int GetCols() const
Definition: ds.h:3130
const TVal & At(const int &X, const int &Y) const
Definition: ds.h:3133

Here is the call graph for this function:

Here is the caller graph for this function:

template<class TVal>
int TVVec< TVal >::GetXDim ( ) const
inline
template<class TVal>
TVal TVVec< TVal >::GetXY ( const int &  X,
const int &  Y 
) const
inline

Definition at line 3150 of file ds.h.

3150  {
3151  Assert((0<=X)&&(X<int(XDim))&&(0<=Y)&&(Y<int(YDim)));
3152  return ValV[X*YDim+Y];}
TInt YDim
Definition: ds.h:3102
TInt XDim
Definition: ds.h:3102
#define Assert(Cond)
Definition: bd.h:251
TVec< TVal > ValV
Definition: ds.h:3103
template<class TVal>
void TVVec< TVal >::Load ( TSIn SIn)
inline

Definition at line 3113 of file ds.h.

Referenced by TVVec< TFlt >::TVVec().

3113 {XDim.Load(SIn); YDim.Load(SIn); ValV.Load(SIn);}
TInt YDim
Definition: ds.h:3102
void Load(TSIn &SIn)
Definition: ds.h:877
TInt XDim
Definition: ds.h:3102
void Load(TSIn &SIn)
Definition: dt.h:1056
TVec< TVal > ValV
Definition: ds.h:3103

Here is the caller graph for this function:

template<class TVal>
TVal& TVVec< TVal >::operator() ( const int &  X,
const int &  Y 
)
inline

Definition at line 3139 of file ds.h.

3139  {
3140  return At(X, Y);}
const TVal & At(const int &X, const int &Y) const
Definition: ds.h:3133
template<class TVal>
const TVal& TVVec< TVal >::operator() ( const int &  X,
const int &  Y 
) const
inline

Definition at line 3141 of file ds.h.

3141  {
3142  return At(X, Y);}
const TVal & At(const int &X, const int &Y) const
Definition: ds.h:3133
template<class TVal>
TVVec<TVal>& TVVec< TVal >::operator= ( const TVVec< TVal > &  Vec)
inline

Definition at line 3117 of file ds.h.

3117  {
3118  if (this!=&Vec){XDim=Vec.XDim; YDim=Vec.YDim; ValV=Vec.ValV;} return *this;}
TInt YDim
Definition: ds.h:3102
TInt XDim
Definition: ds.h:3102
TVec< TVal > ValV
Definition: ds.h:3103
template<class TVal>
bool TVVec< TVal >::operator== ( const TVVec< TVal > &  Vec) const
inline

Definition at line 3119 of file ds.h.

3119  {
3120  return (XDim==Vec.XDim)&&(YDim==Vec.YDim)&&(ValV==Vec.ValV);}
TInt YDim
Definition: ds.h:3102
TInt XDim
Definition: ds.h:3102
TVec< TVal > ValV
Definition: ds.h:3103
template<class TVal>
void TVVec< TVal >::PutAll ( const TVal &  Val)
inline

Definition at line 3145 of file ds.h.

Referenced by TMAGNodeSimple::AttrGen(), TMAGNodeBern::AttrGen(), TMAGNodeBeta::AttrGen(), TMAGFitBern::ComputeMI(), TMAGFitBern::DoEStepApxOneIter(), TMAGFitBern::Init(), TMAGFitBern::RandomInit(), TMAGFitBern::SetPhiVV(), TMAGFitBern::UpdateApxPhiMI(), and TMAGFitBern::UpdatePhiMI().

3145 {ValV.PutAll(Val);}
void PutAll(const TVal &Val)
Sets all elements of the vector to value Val.
Definition: ds.h:1130
TVec< TVal > ValV
Definition: ds.h:3103

Here is the caller graph for this function:

template<class TVal>
void TVVec< TVal >::PutX ( const int &  X,
const TVal &  Val 
)
inline

Definition at line 3146 of file ds.h.

3146  {
3147  for (int Y=0; Y<int(YDim); Y++){At(X, Y)=Val;}}
TInt YDim
Definition: ds.h:3102
const TVal & At(const int &X, const int &Y) const
Definition: ds.h:3133
template<class TVal>
void TVVec< TVal >::PutXY ( const int &  X,
const int &  Y,
const TVal &  Val 
)
inline

Definition at line 3144 of file ds.h.

3144 {At(X, Y)=Val;}
const TVal & At(const int &X, const int &Y) const
Definition: ds.h:3133
template<class TVal>
void TVVec< TVal >::PutY ( const int &  Y,
const TVal &  Val 
)
inline

Definition at line 3148 of file ds.h.

Referenced by TMAGFitBern::SetPhiVV().

3148  {
3149  for (int X=0; X<int(XDim); X++){At(X, Y)=Val;}}
TInt XDim
Definition: ds.h:3102
const TVal & At(const int &X, const int &Y) const
Definition: ds.h:3133

Here is the caller graph for this function:

template<class TVal>
void TVVec< TVal >::Save ( TSOut SOut) const
inline

Definition at line 3114 of file ds.h.

3114  {
3115  XDim.Save(SOut); YDim.Save(SOut); ValV.Save(SOut);}
TInt YDim
Definition: ds.h:3102
void Save(TSOut &SOut) const
Definition: dt.h:1057
TInt XDim
Definition: ds.h:3102
void Save(TSOut &SOut) const
Definition: ds.h:885
TVec< TVal > ValV
Definition: ds.h:3103
template<class TVal >
void TVVec< TVal >::ShuffleX ( TRnd Rnd)

Definition at line 3193 of file ds.h.

References TRnd::GetUniDevInt().

3193  {
3194  for (int X=0; X<XDim-1; X++){SwapX(X, X+Rnd.GetUniDevInt(XDim-X));}
3195 }
TInt XDim
Definition: ds.h:3102
void SwapX(const int &X1, const int &X2)
Definition: ds.h:3172
int GetUniDevInt(const int &Range=0)
Definition: dt.cpp:39

Here is the call graph for this function:

template<class TVal >
void TVVec< TVal >::ShuffleY ( TRnd Rnd)

Definition at line 3198 of file ds.h.

References TRnd::GetUniDevInt().

3198  {
3199  for (int Y=0; Y<YDim-1; Y++){SwapY(Y, Y+Rnd.GetUniDevInt(YDim-Y));}
3200 }
TInt YDim
Definition: ds.h:3102
void SwapY(const int &Y1, const int &Y2)
Definition: ds.h:3178
int GetUniDevInt(const int &Range=0)
Definition: dt.cpp:39

Here is the call graph for this function:

template<class TVal>
void TVVec< TVal >::Swap ( TVVec< TVal > &  Vec)

Definition at line 3184 of file ds.h.

References Swap(), TVVec< TVal >::ValV, TVVec< TVal >::XDim, and TVVec< TVal >::YDim.

3184  { //J:
3185  if (this!=&Vec){
3186  ::Swap(XDim, Vec.XDim);
3187  ::Swap(YDim, Vec.YDim);
3188  ValV.Swap(Vec.ValV);
3189  }
3190 }
TInt YDim
Definition: ds.h:3102
TInt XDim
Definition: ds.h:3102
void Swap(TVec< TVal, TSizeTy > &Vec)
Swaps the contents of the vector with Vec.
Definition: ds.h:1011
TVec< TVal > ValV
Definition: ds.h:3103
void Swap(TVVec< TVal > &Vec)
Definition: ds.h:3184

Here is the call graph for this function:

template<class TVal >
void TVVec< TVal >::SwapX ( const int &  X1,
const int &  X2 
)

Definition at line 3172 of file ds.h.

3172  {
3173  for (int Y=0; Y<int(YDim); Y++){
3174  TVal Val=At(X1, Y); At(X1, Y)=At(X2, Y); At(X2, Y)=Val;}
3175 }
TInt YDim
Definition: ds.h:3102
const TVal & At(const int &X, const int &Y) const
Definition: ds.h:3133
template<class TVal >
void TVVec< TVal >::SwapY ( const int &  Y1,
const int &  Y2 
)

Definition at line 3178 of file ds.h.

3178  {
3179  for (int X=0; X<int(XDim); X++){
3180  TVal Val=At(X, Y1); At(X, Y1)=At(X, Y2); At(X, Y2)=Val;}
3181 }
TInt XDim
Definition: ds.h:3102
const TVal & At(const int &X, const int &Y) const
Definition: ds.h:3133

Member Data Documentation


The documentation for this class was generated from the following file: