コード例 #1
0
inline bool LBackSubstitute(const MatrixTemplate<T>& a, const MatrixTemplate<T>& b, MatrixTemplate<T>& x)
{
  if(x.isEmpty()) x.resize(a.n,b.n);
  else Assert(x.m == a.n && x.n == b.n);
  for(int i=0;i<x.n;i++) {
    VectorTemplate<T> xi,bi;
    x.getColRef(i,xi);
    b.getColRef(i,bi);
    if(!LBackSubstitute(a,bi,xi)) return false;
  }
  return true;
}
コード例 #2
0
ファイル: gaussian.cpp プロジェクト: YajiaZhang/LoopTK_SLIKMC
T Gaussian<T>::probability(const VectorT& x) const
{
  int d = numDims();
  T det=One;
  for(int i=0;i<d;i++) det*=L(i,i);
  T invc = Pow(2.0*Pi,0.5*T(d))*det;
  VectorT x_mu,y;
  x_mu.sub(x,mu);
  y.resize(L.n);
  LBackSubstitute(L,x_mu,y);
  return Exp(-Half*y.normSquared())/invc;
}