void cmp_process(const float tmp_a, const float tmp_b, float *tmp_max, float *tmp_min)
{
if(tmp_a > tmp_b){
if(tmp_a > *tmp_max) *tmp_max = tmp_a;
if(tmp_b < *tmp_min) *tmp_min = tmp_b;
}
else{
if(tmp_a < *tmp_min) *tmp_min = tmp_a;
if(tmp_b > *tmp_max) *tmp_max = tmp_b;
}
}
void array_max_min_float(const float data[], unsigned short N, float *data_max, float *data_min)
{
unsigned short i;
if(N%2)
{
*data_max = *data_min = data[0];
for(i = 2; i < N; i += 2){
cmp_process(data[i-1], data[i], data_max, data_min);
}
}
else{
if(data[0]>data[1]){
*data_max = data[1];
*data_min = data[0];
}
else{
*data_max = data[0];
*data_min = data[1];
}
for(i = 3; i < N; i += 2){
cmp_process(data[i-1], data[i], data_max, data_min);
}
}
}