/* $Log$ Revision 1.15 2004/06/26 03:50:14 markster Merge source cleanups (bug #1911) Revision 1.14 2003/02/12 13:59:15 matteo mer feb 12 14:56:57 CET 2003 Revision 1.1.1.1 2003/02/12 13:59:15 matteo mer feb 12 14:56:57 CET 2003 Revision 1.2 2000/01/05 08:20:39 markster Some OSS fixes and a few lpc changes to make it actually work * 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" #ifdef P_R_O_T_O_T_Y_P_E_S extern int energy_(integer *len, real *speech, real *rms); #endif /* ********************************************************************* */ /* ENERGY Version 50 */ /* $Log$ * Revision 1.15 2004/06/26 03:50:14 markster * Merge source cleanups (bug #1911) * * Revision 1.14 2003/02/12 13:59:15 matteo * mer feb 12 14:56:57 CET 2003 * * Revision 1.1.1.1 2003/02/12 13:59:15 matteo * mer feb 12 14:56:57 CET 2003 * * Revision 1.2 2000/01/05 08:20:39 markster * Some OSS fixes and a few lpc changes to make it actually work * * 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 = (real)sqrt(*rms / *len); return 0; } /* energy_ */