SPRAAK
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Functions
lda.c File Reference

Calcultate the LDA transformation for a given set of data-points. More...

Functions

double ** spr_lda_stats_alloc (double **moments, int nclasses, int vlen)
 
double ** spr_lda_stats_diag_alloc (double **moments, int nclasses, int vlen)
 
void spr_lda_stats_update (double *restrict moments, const SprMathReal *data, int vlen, float weight)
 Update the 2nd order statistics for a given vector (and class). More...
 
void spr_lda_stats_diag_update (double *restrict moments, const SprMathReal *data, int vlen, float weight)
 
void spr_lda_calc_class_covar (double **moments, int vlen, int nclasses, double Beta, SprStatsStats *within_class_covar, SprStatsStats *between_class_covar)
 
void spr_lda_calc_transf (SprStatsStats *lda_transf, int vlen, SprStatsStats *within_class_covar, SprStatsStats *between_class_covar)
 

Detailed Description

Calcultate the LDA transformation for a given set of data-points.

Author
Kris Demuynck
Date
September 1997

Example code:

  double **moments = alloc_lda_stats(NULL,nclasses,vlen);
  Stats  *wcc      = AllocStats(NULL,MEAN+SIGMA+COVAR,vlen);
  Stats  *bcc      = AllocStats(NULL,MEAN+SIGMA+COVAR,vlen);
  Stats  *transf   = AllocStats(NULL,MEAN+SIGMA+COVAR,vlen);
  for(i=0;i<ndata,i++)
    update_lda_stats(moments[class[i]],data[i],vlen,1.0);
  calc_class_covar(moments,vlen,nclasses,ndata,wcc,bcc);
  calc_lda_transf(transf,vlen,wcc,bcc);
Revision History:
09/97 - K.D.
extracted from mvg_init
10/97 - K.D.
the LDA-transf now gives a unit WCC-mat (used to be different for consistency with matlab)