Texas Instruments TMS320C64X User Manual

Page 91

Advertising
background image

DSP_maxidx

4-63

C64x+ DSPLIB Reference

Index of Maximum Element of Vector

DSP_maxidx

Function

int DSP_maxidx (const short *x, int nx)

Arguments

x[nx]

Pointer to input vector of size nx. Must be double-word aligned.

nx

Length of input data vector. Must be multiple of 16 and

48.

return int

Index for vector element with maximum value.

Description

This routine finds the max value of a vector and returns the index of that value.

The input array is treated as 16 separate columns that are interleaved
throughout the array. If values in different columns are equal to the maximum
value, then the element in the leftmost column is returned. If two values within
a column are equal to the maximum, then the one with the lower index is
returned. Column takes precedence over index.

Algorithm

This is the C equivalent of the assembly code without restrictions. Note that
the assembly code is hand optimized and restrictions may apply.

int DSP_maxidx(short x[ ], int nx)

{

int max, index, i;

max = −32768;

for (i = 0; i < nx; i++)

if (x[i] > max) {

max = x[i];

index = i;

}

return index;

}

Special Requirements

-

nx must be a multiple of 16 and greater than or equal to 48.

-

The input vector x[ ] must be double-word aligned.

Advertising