#pragma once

#include <vector>
#include <set>

namespace dichotomy {

    typedef double WEIGHT;
    typedef double COST;

    // alias for cost vectors and weight vector
    typedef std::vector<dichotomy::WEIGHT> WeightVec;
    typedef std::vector<dichotomy::COST> CostVec;

    // alias for representing the weight graph
    typedef std::vector<std::set<std::size_t>> WeightGraph;

    const WEIGHT epsilon1 = 1e-3;
    const WEIGHT epsilon2 = 1e-6;

    /*!
     * \brief Direction type for optimization direction (minimisation or maximisation)
     */
    enum Direction {MIN=0, MAX=1};

}
