mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-25 22:18:07 +00:00 
			
		
		
		
	https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r45079 | file | 2006-10-13 14:42:49 -0400 (Fri, 13 Oct 2006) | 2 lines And file said... let the compiler warnings STOP! ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45080 65c4cc65-6c06-0410-ace0-fbb531ad65f3
		
			
				
	
	
		
			134 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			134 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
| 
 | |
| $Log$
 | |
| Revision 1.15  2004/06/26 03:50:14  markster
 | |
| Merge source cleanups (bug #1911)
 | |
| 
 | |
| Revision 1.14  2003/02/12 13:59:14  matteo
 | |
| mer feb 12 14:56:57 CET 2003
 | |
| 
 | |
| Revision 1.1.1.1  2003/02/12 13:59:14  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:31  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 difmag_(real *speech, integer *lpita, integer *tau, integer *ltau, integer *maxlag, real *amdf, integer *minptr, integer *maxptr);
 | |
| #endif
 | |
| 
 | |
| /* ********************************************************************** */
 | |
| 
 | |
| /* 	DIFMAG Version 49 */
 | |
| 
 | |
| /* $Log$
 | |
|  * Revision 1.15  2004/06/26 03:50:14  markster
 | |
|  * Merge source cleanups (bug #1911)
 | |
|  *
 | |
|  * Revision 1.14  2003/02/12 13:59:14  matteo
 | |
|  * mer feb 12 14:56:57 CET 2003
 | |
|  *
 | |
|  * Revision 1.1.1.1  2003/02/12 13:59:14  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:31  jaf
 | |
|  * Initial revision
 | |
|  * */
 | |
| /* Revision 1.3  1996/03/15  23:09:39  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  14:41:31  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:04  jaf */
 | |
| /* Initial revision */
 | |
| 
 | |
| 
 | |
| /* ********************************************************************* */
 | |
| 
 | |
| /*  Compute Average Magnitude Difference Function */
 | |
| 
 | |
| /* Inputs: */
 | |
| /*  SPEECH - Low pass filtered speech */
 | |
| /*           Indices MIN_N1 through MAX_N1+LPITA-1 are read, where */
 | |
| /*      MIN_N1 = (MAXLAG - MAX_TAU)/2+1  MAX_TAU = max of TAU(I) for I=1,LTAU
 | |
| */
 | |
| /*      MAX_N1 = (MAXLAG - MIN_TAU)/2+1  MIN_TAU = min of TAU(I) for I=1,LTAU
 | |
| */
 | |
| /*  LPITA  - Length of speech buffer */
 | |
| /*  TAU    - Table of lags */
 | |
| /*           Indices 1 through LTAU read. */
 | |
| /*  LTAU   - Number of lag values to compute */
 | |
| /*  MAXLAG - Maximum possible lag value */
 | |
| /* Outputs: */
 | |
| /*  (All of these outputs are also read, but only after being written.) */
 | |
| /*  AMDF   - Average Magnitude Difference for each lag in TAU */
 | |
| /*           Indices 1 through LTAU written */
 | |
| /*  MINPTR - Index of minimum AMDF value */
 | |
| /*  MAXPTR - Index of maximum AMDF value */
 | |
| 
 | |
| /* This subroutine has no local state. */
 | |
| 
 | |
| /* Subroutine */ int difmag_(real *speech, integer *lpita, integer *tau, 
 | |
| 	integer *ltau, integer *maxlag, real *amdf, integer *minptr, integer *
 | |
| 	maxptr)
 | |
| {
 | |
|     /* System generated locals */
 | |
|     integer i__1, i__2;
 | |
|     real r__1;
 | |
| 
 | |
|     /* Local variables */
 | |
|     integer i__, j, n1, n2;
 | |
|     real sum;
 | |
| 
 | |
| /*       Arguments */
 | |
| /*       Local variables that need not be saved */
 | |
| /*       Local state */
 | |
| /*       None */
 | |
|     /* Parameter adjustments */
 | |
|     --amdf;
 | |
|     --tau;
 | |
|     --speech;
 | |
| 
 | |
|     /* Function Body */
 | |
|     *minptr = 1;
 | |
|     *maxptr = 1;
 | |
|     i__1 = *ltau;
 | |
|     for (i__ = 1; i__ <= i__1; ++i__) {
 | |
| 	n1 = (*maxlag - tau[i__]) / 2 + 1;
 | |
| 	n2 = n1 + *lpita - 1;
 | |
| 	sum = 0.f;
 | |
| 	i__2 = n2;
 | |
| 	for (j = n1; j <= i__2; j += 4) {
 | |
| 	    sum += (r__1 = speech[j] - speech[j + tau[i__]], abs(r__1));
 | |
| 	}
 | |
| 	amdf[i__] = sum;
 | |
| 	if (amdf[i__] < amdf[*minptr]) {
 | |
| 	    *minptr = i__;
 | |
| 	}
 | |
| 	if (amdf[i__] > amdf[*maxptr]) {
 | |
| 	    *maxptr = i__;
 | |
| 	}
 | |
|     }
 | |
|     return 0;
 | |
| } /* difmag_ */
 | |
| 
 |