ref: 80123617fccf01cc375afeff9177027e3d510567
dir: /lpc10/energy.c/
/* * Revision 1.1 1996/08/19 22:32:17 jaf * Initial revision * */ /* -- translated by f2c (version 19951025). You must link the resulting object file with the libraries: -lf2c -lm (in that order) */ #include "f2c.h" extern int energy_(integer *len, real *speech, real *rms); /* ********************************************************************* */ /* ENERGY Version 50 */ /* * Revision 1.1 1996/08/19 22:32:17 jaf * Initial revision * */ /* Revision 1.3 1996/03/18 21:17:41 jaf */ /* Just added a few comments about which array indices of the arguments */ /* are used, and mentioning that this subroutine has no local state. */ /* Revision 1.2 1996/03/13 16:46:02 jaf */ /* Comments added explaining that none of the local variables of this */ /* subroutine need to be saved from one invocation to the next. */ /* Revision 1.1 1996/02/07 14:45:40 jaf */ /* Initial revision */ /* ********************************************************************* */ /* Compute RMS energy. */ /* Input: */ /* LEN - Length of speech buffer */ /* SPEECH - Speech buffer */ /* Indices 1 through LEN read. */ /* Output: */ /* RMS - Root Mean Square energy */ /* This subroutine has no local state. */ /* Subroutine */ int energy_(integer *len, real *speech, real *rms) { /* System generated locals */ integer i__1; /* Builtin functions */ double sqrt(doublereal); /* Local variables */ integer i__; /* Arguments */ /* Local variables that need not be saved */ /* Parameter adjustments */ --speech; /* Function Body */ *rms = 0.f; i__1 = *len; for (i__ = 1; i__ <= i__1; ++i__) { *rms += speech[i__] * speech[i__]; } *rms = sqrt(*rms / *len); return 0; } /* energy_ */