nstats.h
上传用户:lengbin
上传日期:2010-03-31
资源大小:121k
文件大小:3k
开发平台:

C/C++

  1. /*----------------------------------------------------------------------
  2.   File    : nstats.h
  3.   Contents: management of normalization statistics
  4.   Author  : Christian Borgelt
  5.   History : 12.08.2003 file created
  6.             12.08.2004 description and parse function added
  7. ----------------------------------------------------------------------*/
  8. #ifndef __NSTATS__
  9. #define __NSTATS__
  10. #include <stdio.h>
  11. #ifdef NST_PARSE
  12. #include "parse.h"
  13. #endif
  14. /*----------------------------------------------------------------------
  15.   Type Definitions
  16. ----------------------------------------------------------------------*/
  17. typedef struct {                /* --- numerical statistics --- */
  18.   int    dim;                   /* dimension of data space */
  19.   double reg;                   /* number of registered patterns */
  20.   double *mins;                 /* minimal data values */
  21.   double *maxs;                 /* maximal data values */
  22.   double *sums;                 /* sums of data values */
  23.   double *sqrs;                 /* sums of squared data values */
  24.   double *offs;                 /* offsets for data scaling */
  25.   double facs[1];               /* factors for data scaling */
  26. } NSTATS;                       /* (numerical statistics) */
  27. /*----------------------------------------------------------------------
  28.   Functions
  29. ----------------------------------------------------------------------*/
  30. extern NSTATS* nst_create (int dim);
  31. extern void    nst_delete (NSTATS *nst);
  32. extern int     nst_dim    (NSTATS *nst);
  33. extern void    nst_reg    (NSTATS *nst, const double *vec,
  34.                            double weight);
  35. extern void    nst_range  (NSTATS *nst, int idx,
  36.                            double min, double max);
  37. extern void    nst_expand (NSTATS *nst, int idx, double factor);
  38. extern void    nst_scale  (NSTATS *nst, int idx,
  39.                            double off, double fac);
  40. extern double  nst_min    (NSTATS *nst, int idx);
  41. extern double  nst_max    (NSTATS *nst, int idx);
  42. extern double  nst_offset (NSTATS *nst, int idx);
  43. extern double  nst_factor (NSTATS *nst, int idx);
  44. extern void    nst_norm   (NSTATS *nst, const double *vec, double *res);
  45. extern void    nst_inorm  (NSTATS *nst, const double *vec, double *res);
  46. extern void    nst_center (NSTATS *nst, double *vec);
  47. extern void    nst_spans  (NSTATS *nst, double *vec);
  48. extern int     nst_desc   (NSTATS *nst, FILE *file,
  49.                            const char *indent, int maxlen);
  50. #ifdef NST_PARSE
  51. extern NSTATS* nst_parse  (SCAN *scan, int dim);
  52. #endif
  53. /*----------------------------------------------------------------------
  54.   Preprocessor Definitions
  55. ----------------------------------------------------------------------*/
  56. #define nst_dim(s)        ((s)->dim)
  57. #define nst_min(s,i)      ((s)->mins[i])
  58. #define nst_max(s,i)      ((s)->maxs[i])
  59. #define nst_offset(s,i)   ((s)->offs[i])
  60. #define nst_factor(s,i)   ((s)->facs[i])
  61. #endif