library

This documentation is automatically generated by online-judge-tools/verification-helper

View the Project on GitHub matumoto1234/library

:warning: tools/function-measure.hpp

Depends on

Code

#pragma once

#include "./base.hpp"

#include <chrono>
#include <functional>
#include <iomanip>
#include <ios>
#include <iostream>

namespace matumoto {
  struct FunctionMeasure {
    chrono::system_clock::time_point start, end;

    template <auto f, typename... Args>
    void measure(Args... args) {
      start = chrono::system_clock::now();

      f(args...);

      end = chrono::system_clock::now();
    }

    // bias:1000 -> [ms]
    double time(double bias = 1000.0) {
      return static_cast<double>(chrono::duration_cast<chrono::microseconds>(end - start).count() / bias);
    }

    void print(double bias = 1000.0) {
      cout << fixed << setprecision(10);
      cout << time(bias) << "\n";
    }
  };
} // namespace matumoto
#line 2 "tools/function-measure.hpp"

#line 2 "tools/base.hpp"

namespace matumoto {
  using namespace std;
}
#line 4 "tools/function-measure.hpp"

#include <chrono>
#include <functional>
#include <iomanip>
#include <ios>
#include <iostream>

namespace matumoto {
  struct FunctionMeasure {
    chrono::system_clock::time_point start, end;

    template <auto f, typename... Args>
    void measure(Args... args) {
      start = chrono::system_clock::now();

      f(args...);

      end = chrono::system_clock::now();
    }

    // bias:1000 -> [ms]
    double time(double bias = 1000.0) {
      return static_cast<double>(chrono::duration_cast<chrono::microseconds>(end - start).count() / bias);
    }

    void print(double bias = 1000.0) {
      cout << fixed << setprecision(10);
      cout << time(bias) << "\n";
    }
  };
} // namespace matumoto
Back to top page