/* ======================================================================== */
/*  TEXAS INSTRUMENTS, INC.                                                 */
/*                                                                          */
/*  DSPLIB  DSP Signal Processing Library                                   */
/*                                                                          */
/*      Release:        Version 1.02                                        */
/*      CVS Revision:   1.4     Fri Mar 29 20:00:04 2002 (UTC)              */
/*      Snapshot date:  18-Apr-2002                                         */
/*                                                                          */
/*  This library contains proprietary intellectual property of Texas        */
/*  Instruments, Inc.  The library and its source code are protected by     */
/*  various copyrights, and portions may also be protected by patents or    */
/*  other legal protections.                                                */
/*                                                                          */
/*  This software is licensed for use with Texas Instruments TMS320         */
/*  family DSPs.  This license was provided to you prior to installing      */
/*  the software.  You may review this license by consulting the file       */
/*  TI_license.PDF which accompanies the files in this library.             */
/* ------------------------------------------------------------------------ */
/*          Copyright (C) 2002 Texas Instruments, Incorporated.             */
/*                          All Rights Reserved.                            */
/* ======================================================================== */
/* ======================================================================== */
/*                                                                          */
/*  TEXAS INSTRUMENTS, INC.                                                 */
/*                                                                          */
/*  NAME                                                                    */
/*      DSP_vecsumsq                                                        */
/*                                                                          */
/*  REVISION DATE                                                           */
/*      13-Aug-1999                                                         */
/*                                                                          */
/*  USAGE                                                                   */
/*      This routine is C callable, and has the following C prototype:      */
/*                                                                          */
/*          int DSP_vecsumsq                                                */
/*          (                                                               */
/*              const short *x,    // Pointer to vector  //                 */
/*              int          nx    // Length of vector.  //                 */
/*          )                                                               */
/*                                                                          */
/*      This routine returns the sum of squares as its return value.        */
/*                                                                          */
/*  DESCRIPTION                                                             */
/*      The "DSP_vecsumsq" function returns the sum of squares of the       */
/*      elements contained in vector "x".                                   */
/*                                                                          */
/*  C CODE                                                                  */
/*      The following C code is a general implementation without            */
/*      restrictions.  This implementation may have restrictions, as        */
/*      noted under "ASSUMPTIONS" below.                                    */
/*                                                                          */
/*          int DSP_vecsumsq                                                */
/*          (                                                               */
/*              const short *x,    // Pointer to vector  //                 */
/*              int          nx    // Length of vector.  //                 */
/*          )                                                               */
/*          {                                                               */
/*              int i, sum = 0;                                             */
/*                                                                          */
/*              for (i = 0; i < nx; i++)                                    */
/*                  sum += x[i] * x[i];                                     */
/*                                                                          */
/*              return sum;                                                 */
/*          }                                                               */
/*                                                                          */
/*                                                                          */
/*  ASSUMPTIONS                                                             */
/*      The input length is a multiple of 2 and at least 8.                 */
/*                                                                          */
/*  NOTES                                                                   */
/*      This function is interrupt tolerant, but not interruptible.         */
/*      It locks out interrupts for its entire duration.                    */
/*                                                                          */
/*  MEMORY NOTE                                                             */
/*      This function is ENDIAN NEUTRAL.                                    */
/*      No bank conflicts occur under any conditions.                       */
/*                                                                          */
/*  CYCLES                                                                  */
/*      cycles = count/2 + 19.                                              */
/*                                                                          */
/*  CODESIZE                                                                */
/*      192 bytes                                                           */
/*                                                                          */
/* ------------------------------------------------------------------------ */
/*            Copyright (c) 2002 Texas Instruments, Incorporated.           */
/*                           All Rights Reserved.                           */
/* ======================================================================== */
#ifndef DSP_VECSUMSQ_H_
#define DSP_VECSUMSQ_H_ 1

int DSP_vecsumsq
(
    const short *x,    /* Pointer to vector  */
    int          nx    /* Length of vector.  */
);

#endif
/* ======================================================================== */
/*  End of file:  dsp_vecsumsq.h                                            */
/* ------------------------------------------------------------------------ */
/*            Copyright (c) 2002 Texas Instruments, Incorporated.           */
/*                           All Rights Reserved.                           */
/* ======================================================================== */