/* k6opt.h vector functions optimized for MMX extensions to x86 * * Copyright (C) 1999 by Stanley J. Brooks * * Any use of this software is permitted provided that this notice is not * removed and that neither the authors nor the Technische Universitaet Berlin * are deemed to have made any representations as to the suitability of this * software for any purpose nor are held responsible for any defects of * this software. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE; * not even the implied warranty of MERCHANTABILITY or FITNESS FOR * A PARTICULAR PURPOSE. * * Chicago, 03.12.1999 * Stanley J. Brooks */ extern void Weighting_filter P2((e, x), const word * e, /* signal [-5..0.39.44] IN */ word * x /* signal [0..39] OUT */ ) ; extern longword k6maxcc P3((wt,dp,Nc_out), const word *wt, const word *dp, word * Nc_out /* OUT */ ) ; /* * k6maxmin(p,n,out[]) * input p[n] is array of shorts (require n>0) * returns (long) maximum absolute value.. * if out!=NULL, also returns out[0] the maximum and out[1] the minimum */ extern longword k6maxmin P3((p,n,out), const word *p, int n, word *out /* out[0] is max, out[1] is min */ ) ; extern longword k6iprod P3((p,q,n), const word *p, const word *q, int n ) ; /* * k6vsraw(p,n,bits) * input p[n] is array of shorts (require n>0) * shift/round each to the right by bits>=0 bits. */ extern void k6vsraw P3((p,n,bits), const word *p, int n, int bits ) ; /* * k6vsllw(p,n,bits) * input p[n] is array of shorts (require n>0) * shift each to the left by bits>=0 bits. */ extern void k6vsllw P3((p,n,bits), const word *p, int n, int bits ) ; #if 1 /* there isn't any significant speed gain from mmx here: */ extern void Short_term_analysis_filteringx P4((u0,rp0,k_n,s), register word * u0, register word * rp0, /* [0..7] IN */ register int k_n, /* k_end - k_start */ register word * s /* [0..n-1] IN/OUT */ ) ; /* #define Short_term_analysis_filtering Short_term_analysis_filteringx */ #endif