Program Listing for File zero.h
↰ Return to documentation for file (include/zero.h
)
/* #############################################
* This file is part of
* ZERO
*
* Copyright (c) 2020
* Released under the Creative Commons
* CC BY-NC-SA 4.0 License
*
* Find out more at
* https://github.com/ds4dm/ZERO
* #############################################*/
#pragma once
#include "include/loguru.hpp"
#include <armadillo>
#include <iostream>
#include <map>
#include <memory>
#include <string>
#include <vector>
using perps = std::vector<std::pair<unsigned int, unsigned int>>;
std::ostream & operator<<(std::ostream &ost, perps C);
template <class T> std::ostream & operator<<(std::ostream &ost, std::vector<T> v);
template <class T, class S> std::ostream &operator<<(std::ostream &ost, std::pair<T, S> p);
using spmat_Vec = std::vector<std::unique_ptr<arma::sp_mat>>;
using vec_Vec = std::vector<std::unique_ptr<arma::vec>>;
template <typename T1, typename T2, typename T3> using triple = std::tuple<T1, T2, T3>;
using bound = triple<unsigned int, double, double>;
using VariableBounds = std::vector<std::pair<double, double>>;
#include "support/codes.h"
#include "support/utils.h"
#include "support/version.h"
// Forward declarations
class ZEROException;
enum class ZEROErrorCode;
namespace MathOpt {
struct QP_Objective;
struct QP_Constraints;
class MP_Param;
class QP_Param;
class IP_Param;
class LCP;
class PolyLCP;
} // namespace MathOpt
namespace Game {
class NashGame;
class EPEC;
class IPG;
} // namespace Game
namespace Solvers {
class PATH;
} // namespace Solvers
namespace Algorithms {
class AbstractAlgorithm;
namespace EPEC {
class PolyBase;
class FullEnumeration;
class InnerApproximation;
class CombinatorialPNE;
class CutAndPlay;
} // namespace EPEC
namespace IPG {
class Algorithm;
class CutAndPlay;
class ZERORegrets;
} // namespace IPG
} // namespace Algorithms
class ZEROAlgorithmData;
namespace Data {
namespace EPEC {
class DataObject;
}
namespace IPG {
class DataObject;
enum class CutsAggressiveness;
enum class Objectives;
}
namespace LCP {
enum class PolyhedraStrategy;
enum class Algorithms;
} // namespace LCP
} // namespace Data
#include "games/games.h"
#include "mathopt/mathopt.h"