MTL 复数向量 找 最大元素

//复数向量 找 最大元素
//整理 by RobinKin
//

#include "mtl/mtl.h"
#include "mtl/utils.h"
#include "mtl/linalg_vec.h"

using namespace mtl;
//begin
typedef complex c;
typedef external_vec 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;
}

你可能感兴趣的:(MTL)