
/*! ****************************************************************************
\ingroup SPEC_MATH_STAT_GROUP
\fn int find_max_abs(double* a, int n, double* m, int* ind)
\brief Поиск максимального по модулю элемента вещественного вектора `a`

Функция производит поиск максимального по модулю значения вектора `a`. \n
Максимальное по модулю значение `max|a[k]|` сохраняется по адресу `m`, а индекс
данного значения в векторе `a` сохраняется по адресу `ind`. \n

\param[in]  a
Указатель на вещественный вектор `a`. \n
Размер вектора `[n x 1]`. \n \n

\param[in]  n
Размер входного вектора `a`. \n \n


\param[out] m
Указатель на адрес памяти, в который сохранить
максимальное по модулю значение вектора `a`. \n
Указатель может быть `NULL`, в этом случае максимальное по модулю значение 
не сохраняется. \n \n

\param[out] ind Указатель на переменную, в которую будет сохранен
индекс максимального по модулю значению вектора `a`. \n
Указатель может быть `NULL`, в этом случае индекс не возвращается. \n \n

\return
`RES_OK` если функция выполнена успешно. \n
 В противном случае \ref ERROR_CODE_GROUP "код ошибки".

Пример:
\code{.cpp}
  double a[5] = {0.0, 2.0, -5.0, 4.0, 2.0};
  double m;
  int ind;
  find_max_abs(a, 5, &m, &ind);
  printf("\n\nmax absolute value:    %8.1f  (index %d)", m, ind);
\endcode 
В результате в переменную `m` будет записано значение `5`, 
а в переменную `ind` значение `2`.

\author 
Бахурин Сергей 
www.dsplib.org
**************************************************************************** */