You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
825 B

6 years ago
  1. #ifndef BSON_2_WMIS_QUBO_H
  2. #define BSON_2_WMIS_QUBO_H
  3. #include "bsoncxx/document/view.hpp"
  4. #include "bsoncxx/array/view.hpp"
  5. #include "bsoncxx/types.hpp"
  6. #include "util/convert.h"
  7. #include <iostream>
  8. #include "bsoncxx/json.hpp"
  9. #include <map>
  10. #include <unordered_map>
  11. #include <tuple>
  12. #include "util/wmis_qubo.h"
  13. #include "util/bson_2_qubo_coupler.h"
  14. namespace satlab
  15. {
  16. namespace types
  17. {
  18. template<typename = wmis_qubo, typename = bsoncxx::document::view>
  19. void convert(wmis_qubo& qubo, const bsoncxx::document::view& docView)
  20. {
  21. qubo = wmis_qubo();
  22. for(auto& entry : docView["qubo"].get_array().value)
  23. {
  24. wmis_qubo::COUPLER coupler;
  25. convert(coupler, entry.get_array().value);
  26. qubo.add(coupler);
  27. }
  28. }
  29. }
  30. }
  31. #endif // BSON_2_WMIS_QUBO_H