// Copyright 2012 and onwards Google Inc.
// Author: martint@google.com (Martin Thuresson)

#ifndef THIRD_PARTY_OPEN64_LIBACML_MV_ACML_TRACE_H__
#define THIRD_PARTY_OPEN64_LIBACML_MV_ACML_TRACE_H__

// Log files gathered from a complete run of rephil/docs. Contains the
// arguments to all exp/log/pow call.
#define BASE_TRACE_PATH "google3/third_party/open64_libacml_mv/testdata/"
#define EXP_LOGFILE (BASE_TRACE_PATH "/exp.rephil_docs.builtin.baseline.trace")
#define EXPF_LOGFILE (BASE_TRACE_PATH "/expf.fastmath_unittest.trace")
#define LOG_LOGFILE (BASE_TRACE_PATH "/log.rephil_docs.builtin.baseline.trace")
#define POW_LOGFILE (BASE_TRACE_PATH "/pow.rephil_docs.builtin.baseline.trace")

#include <memory>
#include <vector>

std::unique_ptr<std::vector<std::pair<double, double> >> GetTraceDoublePair(
    const char *filename);

std::unique_ptr<std::vector<double>> GetTraceDouble(const char *filename);

std::unique_ptr<std::vector<float>> GetTraceFloat(const char *filename);

#endif  // THIRD_PARTY_OPEN64_LIBACML_MV_ACML_TRACE_H__
