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