Skip to content
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

Open
wants to merge 19 commits into
base: main
Choose a base branch
from

Conversation

wlambooy
Copy link
Contributor

Description

This PR introduces an extension to is_operational and design_sidb_gates. The former is now able to return the simulation results that certify the status OPERATIONAL, 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 to PREFER_ENERGETICALLY_ISOLATED_GROUND_STATES.

Checklist:

  • The pull request only contains commits that are related to it.
  • I have added appropriate tests and documentation.
  • I have added a changelog entry.
  • I have created/adjusted the Python bindings for any new or updated functionality.
  • I have made sure that all CI jobs on GitHub pass.
  • The pull request introduces no new warnings and follows the project's style guidelines.

Copy link
Contributor

@github-actions github-actions bot left a 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)));
Copy link
Contributor

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) -
Copy link
Contributor

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) -
Copy link
Contributor

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) -
Copy link
Contributor

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) -
Copy link
Contributor

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) -
Copy link
Contributor

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")
Copy link
Contributor

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);
Copy link
Contributor

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());
Copy link
Contributor

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);
Copy link
Contributor

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

This parameter of type
design_sidb_gates_params<coord_t>
is 128 bytes - consider passing a const pointer/reference instead.
This parameter of type
design_sidb_gates_params<coord_t>
is 136 bytes - consider passing a const pointer/reference instead.
This parameter of type
design_sidb_gates_params<ucoord_t>
is 120 bytes - consider passing a const pointer/reference instead.
@Drewniok Drewniok added the enhancement New feature or request label Nov 1, 2024
Copy link
Contributor

@github-actions github-actions bot left a 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

[&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) -
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

warning: invalid operands to binary expression ('std::vector<fiction::charge_distribution_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>' and 'std::vector<fiction::charge_distribution_surface<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::siqad::coord_t>>>>') [clang-diagnostic-error]

                      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);
                                        ^

/usr/include/c++/13/bits/stl_iterator.h:624: candidate template ignored: could not match 'reverse_iterator' against 'vector'

    operator-(const reverse_iterator<_IteratorL>& __x,
    ^

/usr/include/c++/13/bits/stl_iterator.h:1799: candidate template ignored: could not match 'move_iterator' against 'vector'

    operator-(const move_iterator<_IteratorL>& __x,
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:343: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const _Expr<_Dom1, typename _Dom1::value_type>& __v,   \
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:356: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const _Expr<_Dom, typename _Dom::value_type>& __v,     \
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:369: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const typename _Dom::value_type& __t,                  \
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:382: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const _Expr<_Dom,typename _Dom::value_type>& __e,      \
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:395: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const valarray<typename _Dom::value_type>& __v,        \
    ^

/usr/include/c++/13/valarray:1196: candidate template ignored: could not match 'valarray' against 'vector'

_DEFINE_BINARY_OPERATOR(-, __minus)
^

/usr/include/c++/13/valarray:1165: expanded from macro '_DEFINE_BINARY_OPERATOR'

    operator _Op(const valarray<_Tp>& __v, const valarray<_Tp>& __w)	\
    ^

/usr/include/c++/13/valarray:1196: candidate template ignored: could not match 'valarray' against 'vector'

_DEFINE_BINARY_OPERATOR(-, __minus)
^

/usr/include/c++/13/valarray:1176: expanded from macro '_DEFINE_BINARY_OPERATOR'

    operator _Op(const valarray<_Tp>& __v,				\
    ^

/usr/include/c++/13/valarray:1196: candidate template ignored: could not match 'valarray' against 'vector'

_DEFINE_BINARY_OPERATOR(-, __minus)
^

/usr/include/c++/13/valarray:1187: expanded from macro '_DEFINE_BINARY_OPERATOR'

    operator _Op(const typename valarray<_Tp>::value_type& __t,		\
    ^

[&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) -
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

warning: invalid operands to binary expression ('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>>>>>' and '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>>>>>') [clang-diagnostic-error]

                      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);
                                        ^

/usr/include/c++/13/bits/stl_iterator.h:624: candidate template ignored: could not match 'reverse_iterator' against 'vector'

    operator-(const reverse_iterator<_IteratorL>& __x,
    ^

/usr/include/c++/13/bits/stl_iterator.h:1799: candidate template ignored: could not match 'move_iterator' against 'vector'

    operator-(const move_iterator<_IteratorL>& __x,
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:343: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const _Expr<_Dom1, typename _Dom1::value_type>& __v,   \
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:356: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const _Expr<_Dom, typename _Dom::value_type>& __v,     \
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:369: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const typename _Dom::value_type& __t,                  \
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:382: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const _Expr<_Dom,typename _Dom::value_type>& __e,      \
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:395: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const valarray<typename _Dom::value_type>& __v,        \
    ^

/usr/include/c++/13/valarray:1196: candidate template ignored: could not match 'valarray' against 'vector'

_DEFINE_BINARY_OPERATOR(-, __minus)
^

/usr/include/c++/13/valarray:1165: expanded from macro '_DEFINE_BINARY_OPERATOR'

    operator _Op(const valarray<_Tp>& __v, const valarray<_Tp>& __w)	\
    ^

/usr/include/c++/13/valarray:1196: candidate template ignored: could not match 'valarray' against 'vector'

_DEFINE_BINARY_OPERATOR(-, __minus)
^

/usr/include/c++/13/valarray:1176: expanded from macro '_DEFINE_BINARY_OPERATOR'

    operator _Op(const valarray<_Tp>& __v,				\
    ^

/usr/include/c++/13/valarray:1196: candidate template ignored: could not match 'valarray' against 'vector'

_DEFINE_BINARY_OPERATOR(-, __minus)
^

/usr/include/c++/13/valarray:1187: expanded from macro '_DEFINE_BINARY_OPERATOR'

    operator _Op(const typename valarray<_Tp>::value_type& __t,		\
    ^

[&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) -
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

warning: invalid operands to binary expression ('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>>>>>>' and '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>>>>>>') [clang-diagnostic-error]

                      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);
            ^

/usr/include/c++/13/bits/stl_iterator.h:624: candidate template ignored: could not match 'reverse_iterator' against 'vector'

    operator-(const reverse_iterator<_IteratorL>& __x,
    ^

/usr/include/c++/13/bits/stl_iterator.h:1799: candidate template ignored: could not match 'move_iterator' against 'vector'

    operator-(const move_iterator<_IteratorL>& __x,
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:343: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const _Expr<_Dom1, typename _Dom1::value_type>& __v,   \
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:356: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const _Expr<_Dom, typename _Dom::value_type>& __v,     \
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:369: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const typename _Dom::value_type& __t,                  \
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:382: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const _Expr<_Dom,typename _Dom::value_type>& __e,      \
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:395: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const valarray<typename _Dom::value_type>& __v,        \
    ^

/usr/include/c++/13/valarray:1196: candidate template ignored: could not match 'valarray' against 'vector'

_DEFINE_BINARY_OPERATOR(-, __minus)
^

/usr/include/c++/13/valarray:1165: expanded from macro '_DEFINE_BINARY_OPERATOR'

    operator _Op(const valarray<_Tp>& __v, const valarray<_Tp>& __w)	\
    ^

/usr/include/c++/13/valarray:1196: candidate template ignored: could not match 'valarray' against 'vector'

_DEFINE_BINARY_OPERATOR(-, __minus)
^

/usr/include/c++/13/valarray:1176: expanded from macro '_DEFINE_BINARY_OPERATOR'

    operator _Op(const valarray<_Tp>& __v,				\
    ^

/usr/include/c++/13/valarray:1196: candidate template ignored: could not match 'valarray' against 'vector'

_DEFINE_BINARY_OPERATOR(-, __minus)
^

/usr/include/c++/13/valarray:1187: expanded from macro '_DEFINE_BINARY_OPERATOR'

    operator _Op(const typename valarray<_Tp>::value_type& __t,		\
    ^

[&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) -
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

warning: invalid operands to binary expression ('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<>>>>>>' and '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<>>>>>>') [clang-diagnostic-error]

                      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);
            ^

/usr/include/c++/13/bits/stl_iterator.h:624: candidate template ignored: could not match 'reverse_iterator' against 'vector'

    operator-(const reverse_iterator<_IteratorL>& __x,
    ^

/usr/include/c++/13/bits/stl_iterator.h:1799: candidate template ignored: could not match 'move_iterator' against 'vector'

    operator-(const move_iterator<_IteratorL>& __x,
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:343: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const _Expr<_Dom1, typename _Dom1::value_type>& __v,   \
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:356: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const _Expr<_Dom, typename _Dom::value_type>& __v,     \
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:369: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const typename _Dom::value_type& __t,                  \
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:382: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const _Expr<_Dom,typename _Dom::value_type>& __e,      \
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:395: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const valarray<typename _Dom::value_type>& __v,        \
    ^

/usr/include/c++/13/valarray:1196: candidate template ignored: could not match 'valarray' against 'vector'

_DEFINE_BINARY_OPERATOR(-, __minus)
^

/usr/include/c++/13/valarray:1165: expanded from macro '_DEFINE_BINARY_OPERATOR'

    operator _Op(const valarray<_Tp>& __v, const valarray<_Tp>& __w)	\
    ^

/usr/include/c++/13/valarray:1196: candidate template ignored: could not match 'valarray' against 'vector'

_DEFINE_BINARY_OPERATOR(-, __minus)
^

/usr/include/c++/13/valarray:1176: expanded from macro '_DEFINE_BINARY_OPERATOR'

    operator _Op(const valarray<_Tp>& __v,				\
    ^

/usr/include/c++/13/valarray:1196: candidate template ignored: could not match 'valarray' against 'vector'

_DEFINE_BINARY_OPERATOR(-, __minus)
^

/usr/include/c++/13/valarray:1187: expanded from macro '_DEFINE_BINARY_OPERATOR'

    operator _Op(const typename valarray<_Tp>::value_type& __t,		\
    ^

[&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) -
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

warning: invalid operands to binary expression ('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_layoutfiction::cube::coord_t>>>>>' and '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_layoutfiction::cube::coord_t>>>>>') [clang-diagnostic-error]

                      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_layoutfiction::cube::coord_t>>>, 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<coord_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<coord_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_layoutfiction::cube::coord_t>>>, 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_layoutfiction::cube::coord_t>>>>>>>, std::pair<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::cube::coord_t>>>, 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_layoutfiction::cube::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_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::cube::coord_t>>>, 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_layoutfiction::cube::coord_t>>>>>>> *, std::vector<std::pair<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::cube::coord_t>>>, 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_layoutfiction::cube::coord_t>>>>>>>>>, __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_layoutfiction::cube::coord_t>>>, 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_layoutfiction::cube::coord_t>>>>>>> *, std::vector<std::pair<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::cube::coord_t>>>, 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_layoutfiction::cube::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_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::cube::coord_t>>>, 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_layoutfiction::cube::coord_t>>>>>>> *, std::vector<std::pair<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::cube::coord_t>>>, 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_layoutfiction::cube::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_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::cube::coord_t>>>, 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_layoutfiction::cube::coord_t>>>>>>> *, std::vector<std::pair<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::cube::coord_t>>>, 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_layoutfiction::cube::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_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::cube::coord_t>>>, 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_layoutfiction::cube::coord_t>>>>>>> *, std::vector<std::pair<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::cube::coord_t>>>, 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_layoutfiction::cube::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_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::cube::coord_t>>>, 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_layoutfiction::cube::coord_t>>>>>>> *, std::vector<std::pair<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::cube::coord_t>>>, 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_layoutfiction::cube::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_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::cube::coord_t>>>, 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_layoutfiction::cube::coord_t>>>>>>> *, std::vector<std::pair<fiction::sidb_lattice<fiction::sidb_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::cube::coord_t>>>, 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_layoutfiction::cube::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_100_lattice, fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::cartesian_layoutfiction::cube::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::cube::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:84: 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::cube::coord_t>>>, kitty::dynamic_truth_table>' requested here

            design_sidb_gates(lyt_in_cube_coord, std::vector<tt>{create_xnor_tt()}, params_cube);
            ^

/usr/include/c++/13/bits/stl_iterator.h:624: candidate template ignored: could not match 'reverse_iterator' against 'vector'

    operator-(const reverse_iterator<_IteratorL>& __x,
    ^

/usr/include/c++/13/bits/stl_iterator.h:1799: candidate template ignored: could not match 'move_iterator' against 'vector'

    operator-(const move_iterator<_IteratorL>& __x,
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:343: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const _Expr<_Dom1, typename _Dom1::value_type>& __v,   \
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:356: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const _Expr<_Dom, typename _Dom::value_type>& __v,     \
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:369: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const typename _Dom::value_type& __t,                  \
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:382: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const _Expr<_Dom,typename _Dom::value_type>& __e,      \
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:395: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const valarray<typename _Dom::value_type>& __v,        \
    ^

/usr/include/c++/13/valarray:1196: candidate template ignored: could not match 'valarray' against 'vector'

_DEFINE_BINARY_OPERATOR(-, __minus)
^

/usr/include/c++/13/valarray:1165: expanded from macro '_DEFINE_BINARY_OPERATOR'

    operator _Op(const valarray<_Tp>& __v, const valarray<_Tp>& __w)	\
    ^

/usr/include/c++/13/valarray:1196: candidate template ignored: could not match 'valarray' against 'vector'

_DEFINE_BINARY_OPERATOR(-, __minus)
^

/usr/include/c++/13/valarray:1176: expanded from macro '_DEFINE_BINARY_OPERATOR'

    operator _Op(const valarray<_Tp>& __v,				\
    ^

/usr/include/c++/13/valarray:1196: candidate template ignored: could not match 'valarray' against 'vector'

_DEFINE_BINARY_OPERATOR(-, __minus)
^

/usr/include/c++/13/valarray:1187: expanded from macro '_DEFINE_BINARY_OPERATOR'

    operator _Op(const typename valarray<_Tp>::value_type& __t,		\
    ^

[&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) -
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

warning: invalid operands to binary expression ('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_layoutfiction::siqad::coord_t>>>>>' and '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_layoutfiction::siqad::coord_t>>>>>') [clang-diagnostic-error]

                      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_layoutfiction::siqad::coord_t>>>, 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<coord_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<coord_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_layoutfiction::siqad::coord_t>>>, 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_layoutfiction::siqad::coord_t>>>>>>>, std::pair<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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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);
                                        ^

/usr/include/c++/13/bits/stl_iterator.h:624: candidate template ignored: could not match 'reverse_iterator' against 'vector'

    operator-(const reverse_iterator<_IteratorL>& __x,
    ^

/usr/include/c++/13/bits/stl_iterator.h:1799: candidate template ignored: could not match 'move_iterator' against 'vector'

    operator-(const move_iterator<_IteratorL>& __x,
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:343: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const _Expr<_Dom1, typename _Dom1::value_type>& __v,   \
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:356: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const _Expr<_Dom, typename _Dom::value_type>& __v,     \
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:369: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const typename _Dom::value_type& __t,                  \
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:382: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const _Expr<_Dom,typename _Dom::value_type>& __e,      \
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:395: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const valarray<typename _Dom::value_type>& __v,        \
    ^

/usr/include/c++/13/valarray:1196: candidate template ignored: could not match 'valarray' against 'vector'

_DEFINE_BINARY_OPERATOR(-, __minus)
^

/usr/include/c++/13/valarray:1165: expanded from macro '_DEFINE_BINARY_OPERATOR'

    operator _Op(const valarray<_Tp>& __v, const valarray<_Tp>& __w)	\
    ^

/usr/include/c++/13/valarray:1196: candidate template ignored: could not match 'valarray' against 'vector'

_DEFINE_BINARY_OPERATOR(-, __minus)
^

/usr/include/c++/13/valarray:1176: expanded from macro '_DEFINE_BINARY_OPERATOR'

    operator _Op(const valarray<_Tp>& __v,				\
    ^

/usr/include/c++/13/valarray:1196: candidate template ignored: could not match 'valarray' against 'vector'

_DEFINE_BINARY_OPERATOR(-, __minus)
^

/usr/include/c++/13/valarray:1187: expanded from macro '_DEFINE_BINARY_OPERATOR'

    operator _Op(const typename valarray<_Tp>::value_type& __t,		\
    ^

[&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) -
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

warning: invalid operands to binary expression ('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>>>>>' and '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>>>>>') [clang-diagnostic-error]

                      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);
                                        ^

/usr/include/c++/13/bits/stl_iterator.h:624: candidate template ignored: could not match 'reverse_iterator' against 'vector'

    operator-(const reverse_iterator<_IteratorL>& __x,
    ^

/usr/include/c++/13/bits/stl_iterator.h:1799: candidate template ignored: could not match 'move_iterator' against 'vector'

    operator-(const move_iterator<_IteratorL>& __x,
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:343: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const _Expr<_Dom1, typename _Dom1::value_type>& __v,   \
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:356: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const _Expr<_Dom, typename _Dom::value_type>& __v,     \
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:369: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const typename _Dom::value_type& __t,                  \
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:382: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const _Expr<_Dom,typename _Dom::value_type>& __e,      \
    ^

/usr/include/c++/13/bits/valarray_after.h:405: candidate template ignored: could not match '_Expr' against 'vector'

    _DEFINE_EXPR_BINARY_OPERATOR(-, struct std::__minus)
    ^

/usr/include/c++/13/bits/valarray_after.h:395: expanded from macro '_DEFINE_EXPR_BINARY_OPERATOR'

    operator _Op(const valarray<typename _Dom::value_type>& __v,        \
    ^

/usr/include/c++/13/valarray:1196: candidate template ignored: could not match 'valarray' against 'vector'

_DEFINE_BINARY_OPERATOR(-, __minus)
^

/usr/include/c++/13/valarray:1165: expanded from macro '_DEFINE_BINARY_OPERATOR'

    operator _Op(const valarray<_Tp>& __v, const valarray<_Tp>& __w)	\
    ^

/usr/include/c++/13/valarray:1196: candidate template ignored: could not match 'valarray' against 'vector'

_DEFINE_BINARY_OPERATOR(-, __minus)
^

/usr/include/c++/13/valarray:1176: expanded from macro '_DEFINE_BINARY_OPERATOR'

    operator _Op(const valarray<_Tp>& __v,				\
    ^

/usr/include/c++/13/valarray:1196: candidate template ignored: could not match 'valarray' against 'vector'

_DEFINE_BINARY_OPERATOR(-, __minus)
^

/usr/include/c++/13/valarray:1187: expanded from macro '_DEFINE_BINARY_OPERATOR'

    operator _Op(const typename valarray<_Tp>::value_type& __t,		\
    ^

Copy link
Contributor

@github-actions github-actions bot left a 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)));
Copy link
Contributor

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:1281: 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);
                                        ^

Copy link
Contributor

@github-actions github-actions bot left a 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

const std::vector<std::vector<charge_distribution_surface<Lyt>>>& res_per_input) noexcept
{
std::vector<double> ground_state_isolations{};
std::transform(res_per_input.cbegin(), res_per_input.cend(), std::back_inserter(ground_state_isolations),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

warning: no header providing "std::back_inserter" is directly included [misc-include-cleaner]

include/fiction/algorithms/physical_design/design_sidb_gates.hpp:35:

- #include <limits>
+ #include <iterator>
+ #include <limits>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants