#include "benchmark/benchmark_api.h"

#include <sstream>
double __attribute__((noinline)) istream_numbers();

double istream_numbers() {
  const char *a[] = {
    "-6  69 -71  2.4882e-02 -100 101 -2.00005 5000000 -50000000",
    "-25 71   7 -9.3262e+01 -100 101 -2.00005 5000000 -50000000",
    "-14 53  46 -6.7026e-02 -100 101 -2.00005 5000000 -50000000"
  };

  int a1, a2, a3, a4, a5, a6, a7;
  double f1 = 0.0, f2 = 0.0, q = 0.0;
  for (int i=0; i < 3; i++) {
    std::istringstream s(a[i]);
    s >> a1
      >> a2
      >> a3
      >> f1
      >> a4
      >> a5
      >> f2
      >> a6
      >> a7;
    q += (a1 + a2 + a3 + a4 + a5 + a6 + a7 + f1 + f2)/1000000;
  }
  return q;
}

static void BM_Istream_numbers(benchmark::State &state) {
  double i = 0;
  while (state.KeepRunning())
    benchmark::DoNotOptimize(i += istream_numbers());
}

BENCHMARK(BM_Istream_numbers)->RangeMultiplier(2)->Range(1024, 4096);
BENCHMARK_MAIN()
