/* Compute the sum of the squares of a vector of signed shorts * Copyright 2004 Phil Karn, KA9Q * May be used under the terms of the GNU Lesser General Public License (LGPL) */ #include <stdlib.h> #include "fec.h" unsigned long long sumsq_port(signed short *,int); #ifdef __i386__ unsigned long long sumsq_mmx(signed short *,int); unsigned long long sumsq_sse(signed short *,int); unsigned long long sumsq_sse2(signed short *,int); #endif #ifdef __VEC__ unsigned long long sumsq_av(signed short *,int); #endif unsigned long long sumsq(signed short *in,int cnt){ switch(Cpu_mode){ case PORT: default: return sumsq_port(in,cnt); #ifdef __i386__ case SSE: case MMX: return sumsq_mmx(in,cnt); case SSE2: return sumsq_sse2(in,cnt); #endif #ifdef __VEC__ case ALTIVEC: return sumsq_av(in,cnt); #endif } }