/* TriDiag2Vector: Copy diagonal from m into v */
void TriDiag2Vector(TriMat m, Vector v)
{
   int i,size;

   if (TriMatSize(m) != (size=VectorSize(v)))
      HError(2090,"TriDiag2Vector: Covariance sizes differ %d vs %d",
             TriMatSize(m),VectorSize(v));
   for (i=1; i<=size; i++)
      v[i] = m[i][i];
}
Example #2
0
/* CloneSTriMat: return a clone of given TriMat */
STriMat CloneSTriMat(MemHeap *hmem, STriMat s, Boolean sharing)
{
   STriMat t;  /* the target */

   if (s==NULL) return NULL;
   if (GetUse(s)>0 && sharing) {
      IncUse(s);
      return s;
   }
   t = CreateSTriMat(hmem,TriMatSize(s));
   CopyTriMat(s,t);
   return t;
}
Example #3
0
/* FullInvGConst: compute gConst for inv covariance */
static float FullInvGConst(TriMat ic)
{
   return TriMatSize(ic)*log(TPI) - CovDet(ic);
}