//复数向量 找 最大元素
//整理 by RobinKin
//
#include "mtl/mtl.h"
#include "mtl/utils.h"
#include "mtl/linalg_vec.h"
using namespace mtl;
//begin
typedef complex<float> c;
typedef external_vec<c> Vec;
//end
/*
Note: the Sun Perf Lib docs show the correct answer
as item 1. This is incorrect. The correct answer
is item 5.cvazac
abs( (5,-4) ) = sqrt(5^2 + 4^2) = 6.40312
abs( (0, 8) ) = 8
Sample Output
[(5,-4),(-3,-2),(5,-4),(6,0),(0,8),]
Largest element in the vector x is item 5
*/
int
main()
{
//begin
const int N = 5;
c dx[] = { c(5,-4), c(-3,-2),
c(5,-4), c(6,0), c(0,8) };
Vec x(dx, N);
int imax = max_index(x);
//end
#if !defined(_MSVCPP_) && !defined(__sgi) || defined(__GNUC__)
// VC++ and SGI CC do not have operator << defined for complex numbers
print_vector(x);
#endif
std::cout << "Largest element in the vector x is item " << imax + 1 << std::endl;
return 0;
}