예제 #1
0
        // --------------------------------------------------------------------
        static matrix_type _create_b_vec(
                const matrix_type & current_values,
                const size_t        row_padding)
        {
            assert(current_values.is_vector());

            const auto K = current_values.get_length();

            matrix_type b_vec (K + K + row_padding, 1);

            for (size_t k = 0; k < K; k++)
            {
                b_vec[k] = current_values[k];
                b_vec[k + K] = value_type(1) - current_values[k];
            }

            for (size_t k = K + K; k < b_vec.get_height(); k++)
                b_vec[k] = value_type(0);

            return b_vec;
        }
예제 #2
0
TEST(PerfGraphTest, test)
{
  PerfGraph graph("Unit");

  auto a_id = graph.registerSection("a", 1);
  auto b_id = graph.registerSection("b", 1);
  auto c_id = graph.registerSection("c", 1);

  unsigned int a = 0;
  unsigned int b = 0;
  unsigned int c = 0;

  std::vector<double> a_vec(100000, 2);
  std::vector<double> b_vec(100000, 3);
  std::vector<double> c_vec(100000, 2);

  {
    PerfGuard guard(graph, a_id);
    for (auto & aval : a_vec)
      aval += a++;

    {
      PerfGuard guard(graph, c_id);
      for (auto & cval : c_vec)
        cval += c++;
    }
  }

  {
    PerfGuard guard(graph, b_id);
    for (auto & bval : b_vec)
      bval += b++;

    {
      PerfGuard guard(graph, c_id);
      for (auto & cval : c_vec)
        cval += c++;
    }
  }
}