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