| /* |
| |
| * 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 "third_party/sox/src/lpc10/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_ */ |
| |