-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
✨ Sorting designed SiDB gates #552
base: main
Are you sure you want to change the base?
Conversation
…irst operational gate is designed
… that certified the status `OPERATIONAL`
# Conflicts: # include/fiction/algorithms/physical_design/design_sidb_gates.hpp
Signed-off-by: GitHub Actions <[email protected]>
Signed-off-by: GitHub Actions <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clang-tidy made some suggestions
for (auto i = 0; i < designed_gate_layouts.size(); ++i) | ||
{ | ||
pairs.emplace_back(std::move(designed_gate_layouts.at(i)), | ||
std::move(sim_results_per_input_for_each_gate_design.at(i))); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: implicit conversion changes signedness: 'int' to 'size_type' (aka 'unsigned long') [clang-diagnostic-sign-conversion]
std::move(sim_results_per_input_for_each_gate_design.at(i)));
^
Additional context
include/fiction/algorithms/physical_design/design_sidb_gates.hpp:314: in instantiation of member function 'fiction::detail::design_sidb_gates_impl<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, kitty::dynamic_truth_table>::sort_designed_gate_layouts_by_ground_state_isolation' requested here
sort_designed_gate_layouts_by_ground_state_isolation(
^
include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1280: in instantiation of member function 'fiction::detail::design_sidb_gates_impl<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, kitty::dynamic_truth_table>::run_automatic_exhaustive_gate_designer' requested here
result = p.run_automatic_exhaustive_gate_designer();
^
test/algorithms/physical_design/design_sidb_gates.cpp:68: in instantiation of function template specialization 'fiction::design_sidb_gates<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, kitty::dynamic_truth_table>' requested here
const auto found_gate_layouts = design_sidb_gates(lyt, std::vector<tt>{create_xnor_tt()}, params);
^
[&minimum_ground_state_isolation_for_all_inputs, | ||
&average_ground_state_isolation_for_all_inputs](const auto& lhs, const auto& rhs) noexcept | ||
{ | ||
const double diff = minimum_ground_state_isolation_for_all_inputs(lhs.second) - |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: implicit conversion from 'typename __normal_iterator<const vector<charge_distribution_surface<cell_level_layout<sidb_technology, clocked_layout<cartesian_layout<coord_t>>>>> *, vector<vector<charge_distribution_surface<cell_level_layout<sidb_technology, clocked_layout<cartesian_layout<coord_t>>>>>>>::difference_type' (aka 'long') to 'const double' may lose precision [clang-diagnostic-implicit-int-float-conversion]
const double diff = minimum_ground_state_isolation_for_all_inputs(lhs.second) -
^
Additional context
/usr/include/c++/13/bits/predefined_ops.h:157: in instantiation of function template specialization 'fiction::detail::design_sidb_gates_impl<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>, kitty::dynamic_truth_table>::sort_designed_gate_layouts_by_ground_state_isolation(std::vector<cell_level_layout<sidb_technology, clocked_layout<cartesian_layout<coord_t>>>> &, std::vector<std::vector<std::vector<charge_distribution_surface<cell_level_layout<sidb_technology, clocked_layout<cartesian_layout<coord_t>>>>>>>)::(anonymous class)::operator()<std::pair<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>, std::pair<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>' requested here
{ return bool(_M_comp(*__it1, *__it2)); }
^
/usr/include/c++/13/bits/stl_algo.h:1636: in instantiation of function template specialization '__gnu_cxx::__ops::_Iter_comp_iter<(lambda at /github/workspace/include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1200:19)>::operator()<__gnu_cxx::__normal_iterator<std::pair<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>> *, std::vector<std::pair<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>, __gnu_cxx::__normal_iterator<std::pair<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>> *, std::vector<std::pair<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>>' requested here
if (__comp(__i, __first))
^
/usr/include/c++/13/bits/stl_algo.h:1909: in instantiation of function template specialization 'std::__heap_select<__gnu_cxx::__normal_iterator<std::pair<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>> *, std::vector<std::pair<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>, __gnu_cxx::__ops::_Iter_comp_iter<(lambda at /github/workspace/include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1200:19)>>' requested here
std::__heap_select(__first, __middle, __last, __comp);
^
/usr/include/c++/13/bits/stl_algo.h:1925: in instantiation of function template specialization 'std::__partial_sort<__gnu_cxx::__normal_iterator<std::pair<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>> *, std::vector<std::pair<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>, __gnu_cxx::__ops::_Iter_comp_iter<(lambda at /github/workspace/include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1200:19)>>' requested here
std::__partial_sort(__first, __last, __last, __comp);
^
/usr/include/c++/13/bits/stl_algo.h:1946: in instantiation of function template specialization 'std::__introsort_loop<__gnu_cxx::__normal_iterator<std::pair<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>> *, std::vector<std::pair<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>, long, __gnu_cxx::__ops::_Iter_comp_iter<(lambda at /github/workspace/include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1200:19)>>' requested here
std::__introsort_loop(__first, __last,
^
/usr/include/c++/13/bits/stl_algo.h:4893: in instantiation of function template specialization 'std::__sort<__gnu_cxx::__normal_iterator<std::pair<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>> *, std::vector<std::pair<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>, __gnu_cxx::__ops::_Iter_comp_iter<(lambda at /github/workspace/include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1200:19)>>' requested here
std::__sort(__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp));
^
include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1198: in instantiation of function template specialization 'std::sort<__gnu_cxx::__normal_iterator<std::pair<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>> *, std::vector<std::pair<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>, (lambda at /github/workspace/include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1200:19)>' requested here
std::sort(pairs.begin(), pairs.end(),
^
include/fiction/algorithms/physical_design/design_sidb_gates.hpp:314: in instantiation of member function 'fiction::detail::design_sidb_gates_impl<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>, kitty::dynamic_truth_table>::sort_designed_gate_layouts_by_ground_state_isolation' requested here
sort_designed_gate_layouts_by_ground_state_isolation(
^
include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1280: in instantiation of member function 'fiction::detail::design_sidb_gates_impl<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>, kitty::dynamic_truth_table>::run_automatic_exhaustive_gate_designer' requested here
result = p.run_automatic_exhaustive_gate_designer();
^
test/algorithms/physical_design/design_sidb_gates.cpp:351: in instantiation of function template specialization 'fiction::design_sidb_gates<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>, kitty::dynamic_truth_table>' requested here
const auto found_gate_layouts = design_sidb_gates(lyt, std::vector<tt>{create_and_tt()}, params);
^
[&minimum_ground_state_isolation_for_all_inputs, | ||
&average_ground_state_isolation_for_all_inputs](const auto& lhs, const auto& rhs) noexcept | ||
{ | ||
const double diff = minimum_ground_state_isolation_for_all_inputs(lhs.second) - |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: implicit conversion from 'typename __normal_iterator<const vector<charge_distribution_surface<sidb_defect_surface<cell_level_layout<sidb_technology, clocked_layout<cartesian_layout<coord_t>>>>>> *, vector<vector<charge_distribution_surface<sidb_defect_surface<cell_level_layout<sidb_technology, clocked_layout<cartesian_layout<coord_t>>>>>>>>::difference_type' (aka 'long') to 'const double' may lose precision [clang-diagnostic-implicit-int-float-conversion]
const double diff = minimum_ground_state_isolation_for_all_inputs(lhs.second) -
^
Additional context
/usr/include/c++/13/bits/predefined_ops.h:157: in instantiation of function template specialization 'fiction::detail::design_sidb_gates_impl<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, kitty::dynamic_truth_table>::sort_designed_gate_layouts_by_ground_state_isolation(std::vector<sidb_defect_surface<cell_level_layout<sidb_technology, clocked_layout<cartesian_layout<coord_t>>>, false>> &, std::vector<std::vector<std::vector<charge_distribution_surface<sidb_defect_surface<cell_level_layout<sidb_technology, clocked_layout<cartesian_layout<coord_t>>>, false>>>>>)::(anonymous class)::operator()<std::pair<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>, std::pair<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>' requested here
{ return bool(_M_comp(*__it1, *__it2)); }
^
/usr/include/c++/13/bits/stl_algo.h:1636: in instantiation of function template specialization '__gnu_cxx::__ops::_Iter_comp_iter<(lambda at /github/workspace/include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1200:19)>::operator()<__gnu_cxx::__normal_iterator<std::pair<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>> *, std::vector<std::pair<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>>, __gnu_cxx::__normal_iterator<std::pair<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>> *, std::vector<std::pair<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>>>' requested here
if (__comp(__i, __first))
^
/usr/include/c++/13/bits/stl_algo.h:1909: in instantiation of function template specialization 'std::__heap_select<__gnu_cxx::__normal_iterator<std::pair<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>> *, std::vector<std::pair<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>>, __gnu_cxx::__ops::_Iter_comp_iter<(lambda at /github/workspace/include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1200:19)>>' requested here
std::__heap_select(__first, __middle, __last, __comp);
^
/usr/include/c++/13/bits/stl_algo.h:1925: in instantiation of function template specialization 'std::__partial_sort<__gnu_cxx::__normal_iterator<std::pair<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>> *, std::vector<std::pair<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>>, __gnu_cxx::__ops::_Iter_comp_iter<(lambda at /github/workspace/include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1200:19)>>' requested here
std::__partial_sort(__first, __last, __last, __comp);
^
/usr/include/c++/13/bits/stl_algo.h:1946: in instantiation of function template specialization 'std::__introsort_loop<__gnu_cxx::__normal_iterator<std::pair<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>> *, std::vector<std::pair<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>>, long, __gnu_cxx::__ops::_Iter_comp_iter<(lambda at /github/workspace/include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1200:19)>>' requested here
std::__introsort_loop(__first, __last,
^
/usr/include/c++/13/bits/stl_algo.h:4893: in instantiation of function template specialization 'std::__sort<__gnu_cxx::__normal_iterator<std::pair<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>> *, std::vector<std::pair<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>>, __gnu_cxx::__ops::_Iter_comp_iter<(lambda at /github/workspace/include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1200:19)>>' requested here
std::__sort(__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp));
^
include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1198: in instantiation of function template specialization 'std::sort<__gnu_cxx::__normal_iterator<std::pair<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>> *, std::vector<std::pair<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>>, (lambda at /github/workspace/include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1200:19)>' requested here
std::sort(pairs.begin(), pairs.end(),
^
include/fiction/algorithms/physical_design/design_sidb_gates.hpp:314: in instantiation of member function 'fiction::detail::design_sidb_gates_impl<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, kitty::dynamic_truth_table>::sort_designed_gate_layouts_by_ground_state_isolation' requested here
sort_designed_gate_layouts_by_ground_state_isolation(
^
include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1280: in instantiation of member function 'fiction::detail::design_sidb_gates_impl<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, kitty::dynamic_truth_table>::run_automatic_exhaustive_gate_designer' requested here
result = p.run_automatic_exhaustive_gate_designer();
^
test/algorithms/physical_design/design_sidb_gates.cpp:372: in instantiation of function template specialization 'fiction::design_sidb_gates<fiction::sidb_defect_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, kitty::dynamic_truth_table>' requested here
const auto found_gate_layouts = design_sidb_gates(defect_layout, std::vector<tt>{create_and_tt()}, params);
^
[&minimum_ground_state_isolation_for_all_inputs, | ||
&average_ground_state_isolation_for_all_inputs](const auto& lhs, const auto& rhs) noexcept | ||
{ | ||
const double diff = minimum_ground_state_isolation_for_all_inputs(lhs.second) - |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: implicit conversion from 'typename __normal_iterator<const vector<charge_distribution_surface<sidb_defect_surface<sidb_lattice<sidb_100_lattice, cell_level_layout<sidb_technology, clocked_layout<cartesian_layout<coord_t>>>>>>> *, vector<vector<charge_distribution_surface<sidb_defect_surface<sidb_lattice<sidb_100_lattice, cell_level_layout<sidb_technology, clocked_layout<cartesian_layout<coord_t>>>>>>>>>::difference_type' (aka 'long') to 'const double' may lose precision [clang-diagnostic-implicit-int-float-conversion]
const double diff = minimum_ground_state_isolation_for_all_inputs(lhs.second) -
^
Additional context
/usr/include/c++/13/bits/predefined_ops.h:157: in instantiation of function template specialization 'fiction::detail::design_sidb_gates_impl<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>, kitty::dynamic_truth_table>::sort_designed_gate_layouts_by_ground_state_isolation(std::vector<sidb_defect_surface<sidb_lattice<sidb_100_lattice, cell_level_layout<sidb_technology, clocked_layout<cartesian_layout<coord_t>>>, false>, false>> &, std::vector<std::vector<std::vector<charge_distribution_surface<sidb_defect_surface<sidb_lattice<sidb_100_lattice, cell_level_layout<sidb_technology, clocked_layout<cartesian_layout<coord_t>>>, false>, false>>>>>)::(anonymous class)::operator()<std::pair<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>, std::pair<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>>' requested here
{ return bool(_M_comp(*__it1, *__it2)); }
^
/usr/include/c++/13/bits/stl_algo.h:1636: in instantiation of function template specialization '__gnu_cxx::__ops::_Iter_comp_iter<(lambda at /github/workspace/include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1200:19)>::operator()<__gnu_cxx::__normal_iterator<std::pair<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>> *, std::vector<std::pair<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>>>, __gnu_cxx::__normal_iterator<std::pair<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>> *, std::vector<std::pair<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>>>>' requested here
if (__comp(__i, __first))
^
/usr/include/c++/13/bits/stl_algo.h:1909: in instantiation of function template specialization 'std::__heap_select<__gnu_cxx::__normal_iterator<std::pair<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>> *, std::vector<std::pair<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>>>, __gnu_cxx::__ops::_Iter_comp_iter<(lambda at /github/workspace/include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1200:19)>>' requested here
std::__heap_select(__first, __middle, __last, __comp);
^
/usr/include/c++/13/bits/stl_algo.h:1925: in instantiation of function template specialization 'std::__partial_sort<__gnu_cxx::__normal_iterator<std::pair<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>> *, std::vector<std::pair<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>>>, __gnu_cxx::__ops::_Iter_comp_iter<(lambda at /github/workspace/include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1200:19)>>' requested here
std::__partial_sort(__first, __last, __last, __comp);
^
/usr/include/c++/13/bits/stl_algo.h:1946: in instantiation of function template specialization 'std::__introsort_loop<__gnu_cxx::__normal_iterator<std::pair<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>> *, std::vector<std::pair<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>>>, long, __gnu_cxx::__ops::_Iter_comp_iter<(lambda at /github/workspace/include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1200:19)>>' requested here
std::__introsort_loop(__first, __last,
^
/usr/include/c++/13/bits/stl_algo.h:4893: in instantiation of function template specialization 'std::__sort<__gnu_cxx::__normal_iterator<std::pair<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>> *, std::vector<std::pair<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>>>, __gnu_cxx::__ops::_Iter_comp_iter<(lambda at /github/workspace/include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1200:19)>>' requested here
std::__sort(__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp));
^
include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1198: in instantiation of function template specialization 'std::sort<__gnu_cxx::__normal_iterator<std::pair<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>> *, std::vector<std::pair<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>>>, (lambda at /github/workspace/include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1200:19)>' requested here
std::sort(pairs.begin(), pairs.end(),
^
include/fiction/algorithms/physical_design/design_sidb_gates.hpp:314: in instantiation of member function 'fiction::detail::design_sidb_gates_impl<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>, kitty::dynamic_truth_table>::sort_designed_gate_layouts_by_ground_state_isolation' requested here
sort_designed_gate_layouts_by_ground_state_isolation(
^
include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1280: in instantiation of member function 'fiction::detail::design_sidb_gates_impl<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>, kitty::dynamic_truth_table>::run_automatic_exhaustive_gate_designer' requested here
result = p.run_automatic_exhaustive_gate_designer();
^
test/algorithms/physical_design/design_sidb_gates.cpp:319: in instantiation of function template specialization 'fiction::design_sidb_gates<fiction::sidb_defect_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>, kitty::dynamic_truth_table>' requested here
design_sidb_gates(defect_layout, std::vector<tt>{create_fan_out_tt()}, params);
^
[&minimum_ground_state_isolation_for_all_inputs, | ||
&average_ground_state_isolation_for_all_inputs](const auto& lhs, const auto& rhs) noexcept | ||
{ | ||
const double diff = minimum_ground_state_isolation_for_all_inputs(lhs.second) - |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: implicit conversion from 'typename __normal_iterator<const vector<charge_distribution_surface<sidb_lattice<sidb_100_lattice, cell_level_layout<sidb_technology, clocked_layout<cartesian_layout<>>>>>> *, vector<vector<charge_distribution_surface<sidb_lattice<sidb_100_lattice, cell_level_layout<sidb_technology, clocked_layout<cartesian_layout<>>>>>>>>::difference_type' (aka 'long') to 'const double' may lose precision [clang-diagnostic-implicit-int-float-conversion]
const double diff = minimum_ground_state_isolation_for_all_inputs(lhs.second) -
^
Additional context
/usr/include/c++/13/bits/predefined_ops.h:157: in instantiation of function template specialization 'fiction::detail::design_sidb_gates_impl<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>, kitty::dynamic_truth_table>::sort_designed_gate_layouts_by_ground_state_isolation(std::vector<sidb_lattice<sidb_100_lattice, cell_level_layout<sidb_technology, clocked_layout<cartesian_layout<ucoord_t>>>, false>> &, std::vector<std::vector<std::vector<charge_distribution_surface<sidb_lattice<sidb_100_lattice, cell_level_layout<sidb_technology, clocked_layout<cartesian_layout<ucoord_t>>>, false>>>>>)::(anonymous class)::operator()<std::pair<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>>>>>, std::pair<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>>>>>>' requested here
{ return bool(_M_comp(*__it1, *__it2)); }
^
/usr/include/c++/13/bits/stl_algo.h:1636: in instantiation of function template specialization '__gnu_cxx::__ops::_Iter_comp_iter<(lambda at /github/workspace/include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1200:19)>::operator()<__gnu_cxx::__normal_iterator<std::pair<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>>>>> *, std::vector<std::pair<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>>>>>>>, __gnu_cxx::__normal_iterator<std::pair<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>>>>> *, std::vector<std::pair<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>>>>>>>>' requested here
if (__comp(__i, __first))
^
/usr/include/c++/13/bits/stl_algo.h:1909: in instantiation of function template specialization 'std::__heap_select<__gnu_cxx::__normal_iterator<std::pair<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>>>>> *, std::vector<std::pair<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>>>>>>>, __gnu_cxx::__ops::_Iter_comp_iter<(lambda at /github/workspace/include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1200:19)>>' requested here
std::__heap_select(__first, __middle, __last, __comp);
^
/usr/include/c++/13/bits/stl_algo.h:1925: in instantiation of function template specialization 'std::__partial_sort<__gnu_cxx::__normal_iterator<std::pair<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>>>>> *, std::vector<std::pair<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>>>>>>>, __gnu_cxx::__ops::_Iter_comp_iter<(lambda at /github/workspace/include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1200:19)>>' requested here
std::__partial_sort(__first, __last, __last, __comp);
^
/usr/include/c++/13/bits/stl_algo.h:1946: in instantiation of function template specialization 'std::__introsort_loop<__gnu_cxx::__normal_iterator<std::pair<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>>>>> *, std::vector<std::pair<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>>>>>>>, long, __gnu_cxx::__ops::_Iter_comp_iter<(lambda at /github/workspace/include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1200:19)>>' requested here
std::__introsort_loop(__first, __last,
^
/usr/include/c++/13/bits/stl_algo.h:4893: in instantiation of function template specialization 'std::__sort<__gnu_cxx::__normal_iterator<std::pair<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>>>>> *, std::vector<std::pair<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>>>>>>>, __gnu_cxx::__ops::_Iter_comp_iter<(lambda at /github/workspace/include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1200:19)>>' requested here
std::__sort(__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp));
^
include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1198: in instantiation of function template specialization 'std::sort<__gnu_cxx::__normal_iterator<std::pair<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>>>>> *, std::vector<std::pair<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>>>>>>>, (lambda at /github/workspace/include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1200:19)>' requested here
std::sort(pairs.begin(), pairs.end(),
^
include/fiction/algorithms/physical_design/design_sidb_gates.hpp:314: in instantiation of member function 'fiction::detail::design_sidb_gates_impl<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>, kitty::dynamic_truth_table>::sort_designed_gate_layouts_by_ground_state_isolation' requested here
sort_designed_gate_layouts_by_ground_state_isolation(
^
include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1280: in instantiation of member function 'fiction::detail::design_sidb_gates_impl<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>, kitty::dynamic_truth_table>::run_automatic_exhaustive_gate_designer' requested here
result = p.run_automatic_exhaustive_gate_designer();
^
test/algorithms/physical_design/design_sidb_gates.cpp:101: in instantiation of function template specialization 'fiction::design_sidb_gates<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layout<>>>>, kitty::dynamic_truth_table>' requested here
design_sidb_gates(lyt_in_offset_coord, std::vector<tt>{create_xnor_tt()}, params_offset);
^
[&minimum_ground_state_isolation_for_all_inputs, | ||
&average_ground_state_isolation_for_all_inputs](const auto& lhs, const auto& rhs) noexcept | ||
{ | ||
const double diff = minimum_ground_state_isolation_for_all_inputs(lhs.second) - |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: implicit conversion from 'typename __normal_iterator<const vector<charge_distribution_surface<sidb_lattice<sidb_111_lattice, cell_level_layout<sidb_technology, clocked_layout<cartesian_layout<coord_t>>>>>> *, vector<vector<charge_distribution_surface<sidb_lattice<sidb_111_lattice, cell_level_layout<sidb_technology, clocked_layout<cartesian_layout<coord_t>>>>>>>>::difference_type' (aka 'long') to 'const double' may lose precision [clang-diagnostic-implicit-int-float-conversion]
const double diff = minimum_ground_state_isolation_for_all_inputs(lhs.second) -
^
Additional context
/usr/include/c++/13/bits/predefined_ops.h:157: in instantiation of function template specialization 'fiction::detail::design_sidb_gates_impl<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, kitty::dynamic_truth_table>::sort_designed_gate_layouts_by_ground_state_isolation(std::vector<sidb_lattice<sidb_111_lattice, cell_level_layout<sidb_technology, clocked_layout<cartesian_layout<coord_t>>>, false>> &, std::vector<std::vector<std::vector<charge_distribution_surface<sidb_lattice<sidb_111_lattice, cell_level_layout<sidb_technology, clocked_layout<cartesian_layout<coord_t>>>, false>>>>>)::(anonymous class)::operator()<std::pair<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>, std::pair<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>' requested here
{ return bool(_M_comp(*__it1, *__it2)); }
^
/usr/include/c++/13/bits/stl_algo.h:1636: in instantiation of function template specialization '__gnu_cxx::__ops::_Iter_comp_iter<(lambda at /github/workspace/include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1200:19)>::operator()<__gnu_cxx::__normal_iterator<std::pair<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>> *, std::vector<std::pair<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>>, __gnu_cxx::__normal_iterator<std::pair<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>> *, std::vector<std::pair<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>>>' requested here
if (__comp(__i, __first))
^
/usr/include/c++/13/bits/stl_algo.h:1909: in instantiation of function template specialization 'std::__heap_select<__gnu_cxx::__normal_iterator<std::pair<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>> *, std::vector<std::pair<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>>, __gnu_cxx::__ops::_Iter_comp_iter<(lambda at /github/workspace/include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1200:19)>>' requested here
std::__heap_select(__first, __middle, __last, __comp);
^
/usr/include/c++/13/bits/stl_algo.h:1925: in instantiation of function template specialization 'std::__partial_sort<__gnu_cxx::__normal_iterator<std::pair<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>> *, std::vector<std::pair<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>>, __gnu_cxx::__ops::_Iter_comp_iter<(lambda at /github/workspace/include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1200:19)>>' requested here
std::__partial_sort(__first, __last, __last, __comp);
^
/usr/include/c++/13/bits/stl_algo.h:1946: in instantiation of function template specialization 'std::__introsort_loop<__gnu_cxx::__normal_iterator<std::pair<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>> *, std::vector<std::pair<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>>, long, __gnu_cxx::__ops::_Iter_comp_iter<(lambda at /github/workspace/include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1200:19)>>' requested here
std::__introsort_loop(__first, __last,
^
/usr/include/c++/13/bits/stl_algo.h:4893: in instantiation of function template specialization 'std::__sort<__gnu_cxx::__normal_iterator<std::pair<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>> *, std::vector<std::pair<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>>, __gnu_cxx::__ops::_Iter_comp_iter<(lambda at /github/workspace/include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1200:19)>>' requested here
std::__sort(__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp));
^
include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1198: in instantiation of function template specialization 'std::sort<__gnu_cxx::__normal_iterator<std::pair<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>> *, std::vector<std::pair<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, std::vector<std::vector<fiction::charge_distribution_surface<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>>>>>>, (lambda at /github/workspace/include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1200:19)>' requested here
std::sort(pairs.begin(), pairs.end(),
^
include/fiction/algorithms/physical_design/design_sidb_gates.hpp:314: in instantiation of member function 'fiction::detail::design_sidb_gates_impl<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, kitty::dynamic_truth_table>::sort_designed_gate_layouts_by_ground_state_isolation' requested here
sort_designed_gate_layouts_by_ground_state_isolation(
^
include/fiction/algorithms/physical_design/design_sidb_gates.hpp:1280: in instantiation of member function 'fiction::detail::design_sidb_gates_impl<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, kitty::dynamic_truth_table>::run_automatic_exhaustive_gate_designer' requested here
result = p.run_automatic_exhaustive_gate_designer();
^
test/algorithms/physical_design/design_sidb_gates.cpp:414: in instantiation of function template specialization 'fiction::design_sidb_gates<fiction::sidb_lattice<fiction::sidb_111_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>, kitty::dynamic_truth_table>' requested here
const auto found_gate_layouts = design_sidb_gates(lyt, std::vector<tt>{create_nor_tt()}, params);
^
bdl_input_iterator_params::input_bdl_configuration::PERTURBER_ABSENCE_ENCODED}, | ||
operational_condition::REJECT_KINKS}) | ||
.first == operational_status::NON_OPERATIONAL); | ||
SECTION("Reject kinks and keep simulation results") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: no header providing "SECTION" is directly included [misc-include-cleaner]
SECTION("Reject kinks and keep simulation results")
^
bdl_input_iterator_params::input_bdl_configuration::PERTURBER_ABSENCE_ENCODED}, | ||
operational_condition::REJECT_KINKS, | ||
is_operational_params::simulation_results_mode::KEEP_SIMULATION_RESULTS}); | ||
CHECK(p_no.first == operational_status::NON_OPERATIONAL); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: no header providing "CHECK" is directly included [misc-include-cleaner]
CHECK(p_no.first == operational_status::NON_OPERATIONAL);
^
operational_condition::TOLERATE_KINKS, | ||
is_operational_params::simulation_results_mode::KEEP_SIMULATION_RESULTS}); | ||
CHECK(p_o.first == operational_status::OPERATIONAL); | ||
REQUIRE(p_o.second.simulation_results.has_value()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: no header providing "REQUIRE" is directly included [misc-include-cleaner]
REQUIRE(p_o.second.simulation_results.has_value());
^
is_operational_params::simulation_results_mode::KEEP_SIMULATION_RESULTS}); | ||
CHECK(p_o.first == operational_status::OPERATIONAL); | ||
REQUIRE(p_o.second.simulation_results.has_value()); | ||
CHECK(p_o.second.simulation_results.value().size() == 4); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: unchecked access to optional value [bugprone-unchecked-optional-access]
CHECK(p_o.second.simulation_results.value().size() == 4);
^
@@ -151,11 +171,11 @@ | |||
* @param ps Parameters and settings for the gate designer. | |||
* @param st Statistics for the gate design process. | |||
*/ | |||
design_sidb_gates_impl(const Lyt& skeleton, const std::vector<TT>& spec, | |||
const design_sidb_gates_params<cell<Lyt>>& ps, design_sidb_gates_stats& st) : | |||
design_sidb_gates_impl(const Lyt& skeleton, const std::vector<TT>& spec, design_sidb_gates_params<cell<Lyt>> ps, |
Check notice
Code scanning / CodeQL
Large object passed by value Note
design_sidb_gates_params<coord_t>
This parameter of type
design_sidb_gates_params<coord_t>
This parameter of type
Description
This PR introduces an extension to
is_operational
anddesign_sidb_gates
. The former is now able to return the simulation results that certify the statusOPERATIONAL
, which may then be used by the extension to the latter, which uses the simulation results to return the designed layouts in a specific ordering. This PR implements a simple heuristic for this ordering, namely it prefers the layouts for the the ground state isolation is large, ie., the energetic gap between the ground state and the first excited state. Specifically, it sorts by the minimum ground state isolation for each input.To use this new feature when designing SiDB gates, make sure that all combinations are enumerated, and set the
post_design_process
parameter toPREFER_ENERGETICALLY_ISOLATED_GROUND_STATES
.Checklist: