Main Page   Class Hierarchy   Alphabetical List   Data Structures   File List   Data Fields   Globals  

mmxavg.h File Reference

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Go to the source code of this file.

Defines

#define __attribute__(x)

Functions

char __attribute__ ((unused)) mmxavg_h[]="$Id
int mmxavgInit (MMXAVG_STRUCT *mmxavg, double *space, int size)
int mmxavgReset (MMXAVG_STRUCT *mmxavg)
int mmxavgAdd (MMXAVG_STRUCT *mmxavg, double num)
double mmxavgMin (MMXAVG_STRUCT *mmxavg)
double mmxavgMax (MMXAVG_STRUCT *mmxavg)
double mmxavgAvg (MMXAVG_STRUCT *mmxavg)

Variables

 MMXAVG_STRUCT


Define Documentation

#define __attribute__  
 

Definition at line 17 of file mmxavg.h.


Function Documentation

char __attribute__ (unused)    [static]
 

Definition at line 21 of file mmxavg.h.

00021                                                      : mmxavg.h,v 1.2 2000/10/27 20:34:42 terrylr Exp $";
00022 
00023 #ifdef __cplusplus
00024 extern "C" {
00025 #endif
00026 
00027 typedef struct
00028 {
00029   double sum;                   /* total */
00030   double *nums;                 /* array for stored values */
00031   int index;                    /* index into array for next spot */
00032   int in;                       /* how many in array */
00033   int size;                     /* size of array; 0 <= index < max */
00034   int inited;                   /* non-zero means at least one value in */
00035   double min, max;              /* saved min, max values */
00036 } MMXAVG_STRUCT;

int mmxavgAdd MMXAVG_STRUCT   mmxavg,
double    num
 

Definition at line 55 of file mmxavg.c.

Referenced by emcmotController().

00056 {
00057   if(0 == mmxavg)
00058     {
00059       return -1;
00060     }
00061   if(mmxavg->index >= mmxavg->size ||
00062      mmxavg->index < 0 )
00063     {
00064       return -1;
00065     }
00066   if (mmxavg->in == mmxavg->size)
00067     {
00068       /* already full-- knock off oldest */
00069       mmxavg->sum -= mmxavg->nums[mmxavg->index];
00070     }
00071   else
00072     {
00073       mmxavg->in++;
00074     }
00075 
00076   mmxavg->nums[mmxavg->index] = num;
00077   mmxavg->sum += num;
00078   mmxavg->index++;
00079   if (mmxavg->index == mmxavg->size)
00080     {
00081       mmxavg->index = 0;
00082     }
00083 
00084   if (! mmxavg->inited)
00085     {
00086       mmxavg->min = num;
00087       mmxavg->max = num;
00088       mmxavg->inited = 1;
00089     }
00090   else if (num < mmxavg->min)
00091     {
00092       mmxavg->min = num;
00093     }
00094   else if (num > mmxavg->max)
00095     {
00096       mmxavg->max = num;
00097     }
00098 
00099   return 0;
00100 }

double mmxavgAvg MMXAVG_STRUCT   mmxavg
 

Definition at line 120 of file mmxavg.c.

Referenced by emcmotController().

00121 {
00122   if(0 == mmxavg)
00123     {
00124       return -1;
00125     }
00126   if (mmxavg->in > 0)
00127     {
00128       return mmxavg->sum / mmxavg->in;
00129     }
00130   else
00131     {
00132       return 0.0;
00133     }
00134 }

int mmxavgInit MMXAVG_STRUCT   mmxavg,
double *    space,
int    size
 

Referenced by init_module().

double mmxavgMax MMXAVG_STRUCT   mmxavg
 

Definition at line 111 of file mmxavg.c.

Referenced by emcmotController().

00112 {
00113   if(0 == mmxavg)
00114     {
00115       return -1;
00116     }
00117   return mmxavg->max;
00118 }

double mmxavgMin MMXAVG_STRUCT   mmxavg
 

Definition at line 102 of file mmxavg.c.

Referenced by emcmotController().

00103 {
00104   if(0 == mmxavg)
00105     {
00106       return -1;
00107     }
00108   return mmxavg->min;
00109 }

int mmxavgReset MMXAVG_STRUCT   mmxavg
 

Definition at line 39 of file mmxavg.c.

Referenced by __attribute__().

00040 {
00041   if(0 == mmxavg)
00042     {
00043       return -1;
00044     }
00045   mmxavg->sum = 0;
00046   mmxavg->index = 0;
00047   mmxavg->in = 0;
00048   mmxavg->inited = 0;
00049   mmxavg->min = 0.0;
00050   mmxavg->max = 0.0;
00051 
00052   return 0;
00053 }


Variable Documentation

MMXAVG_STRUCT
 

Definition at line 36 of file mmxavg.h.


Generated on Sun Dec 2 15:28:10 2001 for EMC by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001