-rw-r--r-- 999 cryptattacktester-20231020/attack.h raw
#ifndef attack_h
#define attack_h
#include <map>
#include <string>
#include <vector>
#include "bit.h"
#include "bigint.h"
#include "bigint.h"
#include "bigfloat.h"
struct attack {
  const char *problemname;
  const char *name;
  std::vector<bit> (*circuit)(
    const std::vector<bit> &,
    const std::vector<bigint> &,
    const std::vector<bigint> &
  );
  bool (*params_valid)(const std::vector<bigint> &,const std::vector<bigint> &);
  void (*params)(const std::vector<bigint> &,std::map<std::string,std::string> &,int (*)(const std::vector<bigint> &));
  bigint (*cost)(const std::vector<bigint> &,const std::vector<bigint> &);
  bigfloat (*prob)(const std::vector<bigint> &,const std::vector<bigint> &);
  std::vector<const char *> paramnames;
} ;
extern std::vector<attack> attack_list;
#include "problem.h"
#include "selection.h"
extern selection_type attack_selection;
int attack_handle(const problem &,const std::vector<bigint> &,const attack &,const std::vector<bigint> &);
#endif