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

✨ QuickCell: An Algorithm for Automatic Standard Cell Design #481

Merged
merged 391 commits into from
Oct 21, 2024
Merged
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
391 commits
Select commit Hold shift + click to select a range
6a0fd27
:zap: Performance improvements by reserving vector space prior to ass…
marcelwa Jul 23, 2024
ef0c071
Merge remote-tracking branch 'origin/opdomain-explorer-additions' int…
marcelwa Jul 23, 2024
ab6f12d
Merge branch 'main' into quickcell
Drewniok Jul 25, 2024
cc7386a
Merge branch 'main' into quickcell
Drewniok Jul 25, 2024
1f3d2de
:art: update code after merge.
Drewniok Jul 25, 2024
0f177aa
:art: small fix.
Drewniok Jul 28, 2024
e58479d
Merge branch 'main' into quickcell
Drewniok Jul 28, 2024
7c4ecbd
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Jul 28, 2024
88adaa6
:memo: Update pyfiction docstrings
actions-user Jul 28, 2024
3f47e3e
:white_check_mark: add unit test.
Drewniok Jul 28, 2024
df07c2f
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Jul 28, 2024
afa269d
:art: small fix.
Drewniok Jul 29, 2024
1a1a2ca
:memo: Update pyfiction docstrings
actions-user Jul 29, 2024
731f1ed
:art: small fix.
Drewniok Jul 29, 2024
b0a3d24
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Jul 29, 2024
328d4cd
:art: Minor consistency fixes
marcelwa Jul 29, 2024
4d09761
:alembic: Small 3D operational domain experiment adjustments
marcelwa Jul 29, 2024
9e08578
:alembic: Increased number of random samples
marcelwa Jul 29, 2024
e1c1bd4
:alembic: Increased resolution for 3D operational domain experiments
marcelwa Jul 29, 2024
a1ae982
:white_check_mark: add a test
Drewniok Jul 30, 2024
465cebb
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Jul 30, 2024
94e343e
:art: small fix.
Drewniok Jul 30, 2024
6927848
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Jul 30, 2024
7aafdee
:memo: Update pyfiction docstrings
actions-user Jul 30, 2024
bfbf987
:art: small fix.
Drewniok Jul 30, 2024
4f5d069
Merge remote-tracking branch 'origin/quickcell' into quickcell
Drewniok Jul 30, 2024
af0cdb9
:arrow_down: use original pybind11 version
Drewniok Jul 30, 2024
f43c304
Merge branch 'main' into quickcell
Drewniok Aug 1, 2024
7e8778c
:twisted_rightwards_arrows: merge.
Drewniok Aug 1, 2024
977354f
:twisted_rightwards_arrows: merge.
Drewniok Aug 1, 2024
dbd1962
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Aug 1, 2024
8204229
:art: small fix.
Drewniok Aug 1, 2024
1d9667a
:sparkles: integrate atomic defect support to quickcell.
Drewniok Aug 6, 2024
444ee4f
Merge branch 'main' into quickcell
Drewniok Aug 6, 2024
44d11b5
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Aug 6, 2024
219d8ab
:memo: Update pyfiction docstrings
actions-user Aug 6, 2024
bb9339c
Merge branch 'main' into quickcell
Drewniok Aug 6, 2024
7fb4bec
:art: small change.
Drewniok Aug 6, 2024
8669f11
:art: small fix.
Drewniok Aug 6, 2024
bca46e6
:memo: Update pyfiction docstrings
actions-user Aug 6, 2024
248ce0a
:bug: ensure that storage is empty before initialization.
Drewniok Aug 7, 2024
61aa567
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Aug 7, 2024
ed8295f
:bug: small fix.
Drewniok Aug 7, 2024
3150295
Merge remote-tracking branch 'origin/quickcell' into quickcell
Drewniok Aug 7, 2024
90217b4
:memo: Update pyfiction docstrings
actions-user Aug 7, 2024
4ceb2f3
:art: add note to quicksim.
Drewniok Aug 7, 2024
63ddce2
:memo: Update pyfiction docstrings
actions-user Aug 7, 2024
87e919f
:art: small fix.
Drewniok Aug 7, 2024
41458e0
Merge remote-tracking branch 'origin/quickcell' into quickcell
Drewniok Aug 7, 2024
256553e
:art: ensuring that quicksim is used for layouts without defect surface.
Drewniok Aug 7, 2024
0bc51e8
:art: do not delete params.
Drewniok Aug 7, 2024
3002f7b
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Aug 7, 2024
a6a1aa1
:art: small fix.
Drewniok Aug 7, 2024
ff18c67
Merge branch 'main' into quickcell
Drewniok Aug 7, 2024
f5f80f8
:art: small fix.
Drewniok Aug 8, 2024
e303780
:art: small fixes.
Drewniok Aug 8, 2024
d60d1e6
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Aug 8, 2024
1aefb17
:zap: Improved load-balancing in multithreaded grid search-based oper…
marcelwa Aug 8, 2024
57506f2
:memo: Update pyfiction docstrings
actions-user Aug 8, 2024
dfa15d6
:pencil2: Fixed a typo
marcelwa Aug 8, 2024
763f691
Merge remote-tracking branch 'origin/opdomain-explorer-additions' int…
marcelwa Aug 8, 2024
b3e3ad8
:memo: Fixed a docstring ambiguity
marcelwa Aug 8, 2024
fd2f179
:memo: Update pyfiction docstrings
actions-user Aug 8, 2024
08d8da6
Merge branch 'main' into opdomain-explorer-additions
Drewniok Aug 8, 2024
1894070
:twisted_rightwards_arrows: conduct merge. Python bindings are not up…
Drewniok Aug 8, 2024
78de1d0
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Aug 8, 2024
acfd1e0
:memo: Update pyfiction docstrings
actions-user Aug 8, 2024
8ec2bc4
:twisted_rightwards_arrows: adjust some python APIs
Drewniok Aug 8, 2024
416c270
:art: small adjustments after merge.
Drewniok Aug 9, 2024
4eb4a5f
:memo: Update pyfiction docstrings
actions-user Aug 9, 2024
6c3699a
:arrow_up: use submodule versions from main.
Drewniok Aug 9, 2024
aeeed65
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Aug 9, 2024
d807dc8
:art: small fix of experiments after merge.
Drewniok Aug 9, 2024
eda1445
Merge remote-tracking branch 'origin/opdomain-explorer-additions' int…
Drewniok Aug 9, 2024
4aa22ec
Merge branch 'main' into opdomain-explorer-additions
Drewniok Aug 9, 2024
dceca21
:snake: adjust python binding after merge
Drewniok Aug 9, 2024
48eeb08
:bug: use mutex to avoid race conditions.
Drewniok Aug 9, 2024
0344a19
:memo: Update pyfiction docstrings
actions-user Aug 9, 2024
1dd55f3
:thread: use multithreading for grid_search_for_physically_valid_para…
Drewniok Aug 9, 2024
ef37804
Merge remote-tracking branch 'origin/opdomain-explorer-additions' int…
Drewniok Aug 9, 2024
ab279a1
:memo: fix docu.
Drewniok Aug 9, 2024
42c9564
:memo: Update pyfiction docstrings
actions-user Aug 9, 2024
32fd1c7
:memo: small fix.
Drewniok Aug 9, 2024
db83f6e
Merge branch 'main' into opdomain-explorer-additions
Drewniok Aug 9, 2024
5112815
:memo: fix missing doc-label.
Drewniok Aug 9, 2024
73fecfe
:memo: Update pyfiction docstrings
actions-user Aug 9, 2024
044d3bf
Merge branch 'main' into quickcell
Drewniok Aug 11, 2024
7b1b9f7
:art: small fix.
Drewniok Aug 11, 2024
e951a87
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Aug 11, 2024
15dffc0
:memo: Update pyfiction docstrings
actions-user Aug 11, 2024
fd429fe
:white_check_mark: unit test for math utils function.
Drewniok Aug 11, 2024
83e0cbe
:white_check_mark: fix unit test.
Drewniok Aug 11, 2024
8d0c22f
:white_check_mark: add unit tests.
Drewniok Aug 11, 2024
c444c72
:white_check_mark: add test for parameter point.
Drewniok Aug 12, 2024
bde1292
:white_check_mark: fix unit test.
Drewniok Aug 12, 2024
413fc60
:art: small fixes.
Drewniok Aug 12, 2024
5d989b8
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Aug 12, 2024
db07f69
Merge branch 'main' into quickcell
Drewniok Aug 13, 2024
d1e60e3
:white_check_mark: change test to save runtime.
Drewniok Aug 13, 2024
24549ba
:art: Improved consistency in naming, docstrings, formatting, etc.
marcelwa Aug 13, 2024
ee14b1a
:memo: Update pyfiction docstrings
actions-user Aug 13, 2024
2b26f38
:art: Remove unnecessary lock guards
marcelwa Aug 13, 2024
96508f7
Merge remote-tracking branch 'origin/opdomain-explorer-additions' int…
marcelwa Aug 13, 2024
1cb096e
:art: Remove unnecessary lock guards
marcelwa Aug 13, 2024
b5b22be
:thread: Thread-safe value-retrieval from std::atomic types
marcelwa Aug 13, 2024
64c946d
:art: Minor consistency fixes
marcelwa Aug 14, 2024
5283a07
:thread: Switched std::mutex to std::shared_mutex for parallel read a…
marcelwa Aug 14, 2024
9c0dc56
:memo: Update pyfiction docstrings
actions-user Aug 14, 2024
58c5de2
:thread: Removed the need for manual mutexes and locks in operational…
marcelwa Aug 14, 2024
836d0df
Merge branch 'main' into quickcell
Drewniok Aug 14, 2024
8706b66
:memo: Update pyfiction docstrings
actions-user Aug 14, 2024
44e8242
Merge branch 'main' into opdomain-explorer-additions
Drewniok Aug 16, 2024
93083ee
Merge branch 'main' into quickcell
Drewniok Aug 16, 2024
32ff699
Merge branch 'main' into opdomain-explorer-additions
marcelwa Aug 16, 2024
6612c20
Merge branch 'main' into quickcell
Drewniok Aug 17, 2024
51bee38
Merge branch 'main' into opdomain-explorer-additions
Drewniok Aug 17, 2024
bf24656
Merge branch 'main' into quickcell
Drewniok Aug 18, 2024
57a8e93
:twisted_rightwards_arrows: conduct merging.
Drewniok Aug 18, 2024
df2d608
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Aug 18, 2024
81cb1b3
:memo: Update pyfiction docstrings
actions-user Aug 18, 2024
0819e93
:art: small fix.
Drewniok Aug 18, 2024
77b5226
:memo: Update pyfiction docstrings
actions-user Aug 18, 2024
963ba08
:art: update experiment after merge.
Drewniok Aug 18, 2024
e40f25b
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Aug 18, 2024
5a4d72d
:art: small fix.
Drewniok Aug 19, 2024
d68ccf2
:memo: small changes.
Drewniok Aug 19, 2024
b8cb8cd
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Aug 19, 2024
2132fcc
:memo: Update pyfiction docstrings
actions-user Aug 19, 2024
71976a3
:art: small fix.
Drewniok Aug 19, 2024
cf18df7
:memo: Update pyfiction docstrings
actions-user Aug 19, 2024
2d1afa4
:art: small fix.
Drewniok Aug 19, 2024
e2d98ac
Merge remote-tracking branch 'origin/quickcell' into quickcell
Drewniok Aug 19, 2024
f31f65b
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Aug 19, 2024
d2e13b0
:children_crossing: Added sweep parameter validity checks
marcelwa Aug 19, 2024
59c989a
:bug: Fixed operational domain z-dimension handling in the CLI's `opd…
marcelwa Aug 19, 2024
088bee2
:bug: Fixed command `tt`'s truth table string parsing
marcelwa Aug 19, 2024
0fe136f
:memo: Added documentation on the new `opdom` CLI functionality
marcelwa Aug 19, 2024
1a7eca2
:memo: Updated the operational domain docstrings for flood fill and c…
marcelwa Aug 19, 2024
19ffd5b
:children_crossing: Added checks for step size values (negative, 0) t…
marcelwa Aug 19, 2024
a3da061
Merge remote-tracking branch 'origin/opdomain-explorer-additions' int…
marcelwa Aug 19, 2024
760f425
:memo: Clarified docstring
marcelwa Aug 19, 2024
8abc94a
:memo: Fixed a documentation copy-paste bug
marcelwa Aug 19, 2024
3debb91
:art: `const`ness and include cleanup
marcelwa Aug 19, 2024
3fc8b94
:memo: Fixed header date in experiment script
marcelwa Aug 19, 2024
06128a2
:memo: Update pyfiction docstrings
actions-user Aug 19, 2024
3d14d54
:bug: Fixed return value of `operational_domain::get_value`
marcelwa Aug 19, 2024
5357338
:snake: Updated pyfiction docstrings with regard to operational domai…
marcelwa Aug 19, 2024
2b9f60f
:memo: Update pyfiction docstrings
actions-user Aug 19, 2024
278cf4b
:memo: Fixed Python documentation for `bdl_input_iterator`
marcelwa Aug 19, 2024
0e88d45
Merge remote-tracking branch 'origin/opdomain-explorer-additions' int…
marcelwa Aug 19, 2024
193e273
:art: Removed unused include
marcelwa Aug 19, 2024
05ff17e
:art: Moved `contains_parameter_point` and `find_key_with_tolerance` …
marcelwa Aug 19, 2024
e1f608a
:memo: Update pyfiction docstrings
actions-user Aug 19, 2024
bfb5765
:bug: Added missing forward-declaration to fix compiler error
marcelwa Aug 19, 2024
54ca3e2
Merge remote-tracking branch 'origin/opdomain-explorer-additions' int…
marcelwa Aug 19, 2024
3eb8e38
:memo: Update pyfiction docstrings
actions-user Aug 19, 2024
91f95de
:bug: Fixed compiler error in `determine_physically_valid_parameters`
marcelwa Aug 19, 2024
abdb2c2
Merge remote-tracking branch 'origin/opdomain-explorer-additions' int…
marcelwa Aug 19, 2024
4da7e0b
:art: Incorporated Jan's feedback
marcelwa Aug 20, 2024
b69819c
:art: Restructured code in an effort to circumvent the alice bug that…
marcelwa Aug 20, 2024
dd88794
:memo: Mentioned CLI bug in docstring
marcelwa Aug 20, 2024
080d9bb
:memo: Update pyfiction docstrings
actions-user Aug 20, 2024
780e80f
:snake: Added `sample_writing_mode` to `write_operational_domain`'s P…
marcelwa Aug 20, 2024
e57edd4
Merge branch 'main' into opdomain-explorer-additions
Drewniok Aug 21, 2024
6e2ba6e
Merge branch 'main' into quickcell
Drewniok Aug 21, 2024
fff8542
Merge remote-tracking branch 'upstream/opdomain-explorer-additions' i…
Drewniok Aug 21, 2024
b0485d7
:twisted_rightwards_arrows: merge with main.
Drewniok Aug 21, 2024
ee55552
:memo: Update pyfiction docstrings
actions-user Aug 21, 2024
918880c
:twisted_rightwards_arrows: merge with main.
Drewniok Aug 21, 2024
8166094
:memo: Update pyfiction docstrings
actions-user Aug 21, 2024
1152b00
:art: small fix.
Drewniok Aug 21, 2024
17fd3e5
:memo: Update pyfiction docstrings
actions-user Aug 21, 2024
1c39bfc
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Aug 21, 2024
be149c3
:art: small fix.
Drewniok Aug 21, 2024
1a4c5d8
:art: small fix.
Drewniok Aug 21, 2024
47b7ceb
:art: small fix in experiments after merge.
Drewniok Aug 21, 2024
77532ff
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Aug 21, 2024
f7dc751
:art: small fix after merge.
Drewniok Aug 21, 2024
a542b36
:memo: Update pyfiction docstrings
actions-user Aug 21, 2024
88237e6
Merge branch 'main' into quickcell
Drewniok Aug 21, 2024
7244af0
:art: smlall issues after merge conflict.
Drewniok Aug 21, 2024
46b9847
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Aug 21, 2024
0cf06cd
Merge branch 'main' into quickcell
Drewniok Aug 30, 2024
9dca6d8
Merge branch 'main' into quickcell
Drewniok Aug 31, 2024
2422d6a
:art: integrate one part of Marcel's comments.
Drewniok Aug 31, 2024
8f0a99d
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Aug 31, 2024
4a33efe
:memo: Update pyfiction docstrings
actions-user Aug 31, 2024
d25406b
:art: small fix.
Drewniok Aug 31, 2024
fabfe90
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Aug 31, 2024
b9c9e5c
:art: small fix.
Drewniok Sep 2, 2024
7371066
:memo: Update pyfiction docstrings
actions-user Sep 2, 2024
d7cf5c9
Merge branch 'main' into quickcell
Drewniok Sep 2, 2024
262474d
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Sep 2, 2024
98f97fd
Merge branch 'main' into quickcell
Drewniok Sep 3, 2024
80b609c
:art: small fix.
Drewniok Sep 6, 2024
e37f4dc
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Sep 6, 2024
3e86131
Merge branch 'main' into quickcell
Drewniok Sep 8, 2024
899c872
:twisted_rightwards_arrows: solve merge conflicts.
Drewniok Sep 9, 2024
f2c243d
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Sep 9, 2024
d3f3b2f
:memo: Update pyfiction docstrings
actions-user Sep 9, 2024
20c320f
:snake: fix bindings after merge.
Drewniok Sep 9, 2024
e0ae7d2
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Sep 9, 2024
7086e80
:snake: small fix.
Drewniok Sep 9, 2024
ef33275
:art: small fix.
Drewniok Sep 9, 2024
7112d37
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Sep 9, 2024
d944b22
:alembic: small fix.
Drewniok Sep 9, 2024
c78d205
:rotating_light: fix clang-tidy warnings.
Drewniok Sep 10, 2024
deebf85
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Sep 13, 2024
2a435a7
:rotating_light: fix clang-tidy.
Drewniok Sep 13, 2024
0500a1f
:art: small fixes.
Drewniok Sep 16, 2024
ed8f109
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Sep 16, 2024
b767450
:memo: Update pyfiction docstrings
actions-user Sep 16, 2024
24a12e3
:rotating_light: fix clang-tidy.
Drewniok Sep 16, 2024
ff58ff1
Merge branch 'main' into quickcell
Drewniok Sep 16, 2024
c2bde93
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Sep 16, 2024
307fd37
:rotating_light: fix clang-tidy.
Drewniok Sep 16, 2024
c73fe94
Merge branch 'main' into quickcell
Drewniok Sep 23, 2024
443ce3b
:twisted_rightwards_arrows: conduct merge.
Drewniok Sep 25, 2024
2034f37
:snake: update unittests.
Drewniok Sep 25, 2024
d7768e8
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Sep 25, 2024
14cdccd
:rotating_light: integrate clang-tidy warnings.
Drewniok Sep 26, 2024
d1def5c
:art: small fix.
Drewniok Sep 26, 2024
42203b2
:art: small fix.
Drewniok Sep 26, 2024
24baaaa
:memo: Update pyfiction docstrings
actions-user Sep 26, 2024
1f46e34
Merge branch 'main' into quickcell
Drewniok Oct 8, 2024
3f87d59
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Oct 8, 2024
d13f168
Merge branch 'main' into quickcell
Drewniok Oct 14, 2024
0246de1
:art: refactoring.
Drewniok Oct 17, 2024
438a9ac
Merge branch 'main' into quickcell
Drewniok Oct 17, 2024
4edce6c
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Oct 17, 2024
3fd759f
:memo: Update pyfiction docstrings
actions-user Oct 17, 2024
93f7514
:art: implement Marcel's feedback.
Drewniok Oct 18, 2024
1f3580c
:memo: Update pyfiction docstrings
actions-user Oct 18, 2024
9e56b15
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Oct 18, 2024
e7212c7
:art: small fixes.
Drewniok Oct 18, 2024
0f7efca
:white_check_mark: add more tests.
Drewniok Oct 18, 2024
d543de4
:snake: small change.
Drewniok Oct 18, 2024
aac84ec
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Oct 18, 2024
10c26e8
:memo: Update pyfiction docstrings
actions-user Oct 18, 2024
12ff645
:white_check_mark: small fix.
Drewniok Oct 18, 2024
eeed9b7
Merge remote-tracking branch 'origin/quickcell' into quickcell
Drewniok Oct 18, 2024
909b392
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Oct 18, 2024
c647e08
:snake: small fix.
Drewniok Oct 18, 2024
86f60ff
Merge branch 'main' into quickcell
Drewniok Oct 21, 2024
341798c
:art: rename attributes.
Drewniok Oct 21, 2024
485d090
:art: small fix.
Drewniok Oct 21, 2024
6b45a66
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Oct 21, 2024
dc43d83
:memo: Update pyfiction docstrings
actions-user Oct 21, 2024
deff77d
:art: small fix.
Drewniok Oct 21, 2024
b69f9a9
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Oct 21, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ void bdl_input_iterator(pybind11::module& m, const std::string& lattice)

py::class_<fiction::bdl_input_iterator<Lyt>>(m, fmt::format("bdl_input_iterator_{}", lattice).c_str(),
DOC(fiction_bdl_input_iterator))
.def(py::init<const Lyt&, const fiction::detect_bdl_pairs_params&>(), "lyt"_a,
"params"_a = fiction::detect_bdl_pairs_params{}, DOC(fiction_bdl_input_iterator_bdl_input_iterator))
.def(py::init<const Lyt&, const fiction::detect_bdl_wires_params&>(), "lyt"_a,
"params"_a = fiction::detect_bdl_wires_params{}, DOC(fiction_bdl_input_iterator_bdl_input_iterator))
.def(
"__next__",
[](fiction::bdl_input_iterator<Lyt>& self) -> Lyt&
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,22 +25,38 @@ void design_sidb_gates(pybind11::module& m)
using namespace py::literals;

m.def("design_sidb_gates", &fiction::design_sidb_gates<Lyt, py_tt>, "skeleton"_a, "spec"_a,
"params"_a = fiction::design_sidb_gates_params<fiction::cell<Lyt>>{}, DOC(fiction_design_sidb_gates));
"params"_a = fiction::design_sidb_gates_params<fiction::cell<Lyt>>{}, "stats"_a = nullptr,
DOC(fiction_design_sidb_gates));
}

} // namespace detail

inline void design_sidb_gates(pybind11::module& m)
{
namespace py = pybind11;

py::class_<fiction::design_sidb_gates_stats>(m, "design_sidb_gates_stats", DOC(fiction_design_sidb_gates_stats))
.def(py::init<>())
.def("__repr__",
[](const fiction::design_sidb_gates_stats& stats)
{
std::stringstream stream{};
stats.report(stream);
return stream.str();
});

/**
* Design approach selector type.
*/
pybind11::enum_<typename fiction::design_sidb_gates_params<fiction::offset::ucoord_t>::design_sidb_gates_mode>(
m, "design_sidb_gates_mode", DOC(fiction_design_sidb_gates_params_design_sidb_gates_mode))
.value("EXHAUSTIVE",
fiction::design_sidb_gates_params<fiction::offset::ucoord_t>::design_sidb_gates_mode::EXHAUSTIVE,
DOC(fiction_design_sidb_gates_params_design_sidb_gates_mode_EXHAUSTIVE))
.value("QUICKCELL",
fiction::design_sidb_gates_params<fiction::offset::ucoord_t>::design_sidb_gates_mode::QUICKCELL,
DOC(fiction_design_sidb_gates_params_design_sidb_gates_mode_QUICKCELL))
.value("AUTOMATIC_EXHAUSTIVE_GATE_DESIGNER",
fiction::design_sidb_gates_params<
fiction::offset::ucoord_t>::design_sidb_gates_mode::AUTOMATIC_EXHAUSTIVE_GATE_DESIGNER,
DOC(fiction_design_sidb_gates_params_design_sidb_gates_mode_QUICKCELL))
.value("RANDOM", fiction::design_sidb_gates_params<fiction::offset::ucoord_t>::design_sidb_gates_mode::RANDOM,
DOC(fiction_design_sidb_gates_params_design_sidb_gates_mode_RANDOM));

Expand All @@ -50,18 +66,16 @@ inline void design_sidb_gates(pybind11::module& m)
py::class_<fiction::design_sidb_gates_params<fiction::offset::ucoord_t>>(m, "design_sidb_gates_params",
DOC(fiction_design_sidb_gates_params))
.def(py::init<>())
.def_readwrite("simulation_parameters",
&fiction::design_sidb_gates_params<fiction::offset::ucoord_t>::simulation_parameters,
.def_readwrite("operational_params",
&fiction::design_sidb_gates_params<fiction::offset::ucoord_t>::operational_params,
DOC(fiction_design_sidb_gates_params))
.def_readwrite("design_mode", &fiction::design_sidb_gates_params<fiction::offset::ucoord_t>::design_mode,
DOC(fiction_design_sidb_gates_params_design_mode))
.def_readwrite("canvas", &fiction::design_sidb_gates_params<fiction::offset::ucoord_t>::canvas,
DOC(fiction_design_sidb_gates_params_canvas))
.def_readwrite("number_of_sidbs",
&fiction::design_sidb_gates_params<fiction::offset::ucoord_t>::number_of_sidbs,
DOC(fiction_design_sidb_gates_params_number_of_sidbs))
.def_readwrite("sim_engine", &fiction::design_sidb_gates_params<fiction::offset::ucoord_t>::sim_engine,
DOC(fiction_design_sidb_gates_params_sim_engine));
DOC(fiction_design_sidb_gates_params_number_of_sidbs));

detail::design_sidb_gates<py_sidb_100_lattice>(m);
detail::design_sidb_gates<py_sidb_111_lattice>(m);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,8 @@ inline void critical_temperature(pybind11::module& m)
DOC(fiction_critical_temperature_params_confidence_level))
.def_readwrite("max_temperature", &fiction::critical_temperature_params::max_temperature,
DOC(fiction_critical_temperature_params_max_temperature))
.def_readwrite("bdl_params", &fiction::critical_temperature_params::bdl_params,
DOC(fiction_critical_temperature_params_bdl_params));
.def_readwrite("bdl_wire_params", &fiction::critical_temperature_params::bdl_wire_params,
DOC(fiction_critical_temperature_params_bdl_wire_params));

// NOTE be careful with the order of the following calls! Python will resolve the first matching overload!

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,9 @@ namespace detail
template <typename Lyt>
void detect_bdl_pairs(pybind11::module& m)
{
namespace py = pybind11;
using namespace pybind11::literals;

m.def("detect_bdl_pairs", &fiction::detect_bdl_pairs<Lyt>, "lyt"_a, "type"_a,
m.def("detect_bdl_pairs", &fiction::detect_bdl_pairs<Lyt>, "lyt"_a, "type"_a = nullptr,
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
"params"_a = fiction::detect_bdl_pairs_params{}, DOC(fiction_detect_bdl_pairs));
}

Expand Down
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
//
// Created by Jan Drewniok on 17.07.24.
//

#ifndef PYFICTION_DETECT_BDL_WIRES_HPP
#define PYFICTION_DETECT_BDL_WIRES_HPP

#include "pyfiction/documentation.hpp"
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
#include "pyfiction/types.hpp"

#include <fiction/algorithms/simulation/sidb/detect_bdl_pairs.hpp>
#include <fiction/algorithms/simulation/sidb/detect_bdl_wires.hpp>
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
Drewniok marked this conversation as resolved.
Show resolved Hide resolved

Drewniok marked this conversation as resolved.
Show resolved Hide resolved
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
#include <pybind11/pybind11.h>
#include <pybind11/stl.h>

#include <vector>
Drewniok marked this conversation as resolved.
Show resolved Hide resolved

Drewniok marked this conversation as resolved.
Show resolved Hide resolved
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
marcelwa marked this conversation as resolved.
Show resolved Hide resolved
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
namespace pyfiction
{

namespace detail
{

template <typename Lyt>
void detect_bdl_wires(pybind11::module& m)
{
using namespace pybind11::literals;

m.def("detect_bdl_wires", &fiction::detect_bdl_wires<Lyt>, "lyt"_a, "params"_a = fiction::detect_bdl_wires_params{},
"wire_selection"_a = fiction::bdl_wire_selection::ALL);
}

} // namespace detail

inline void detect_bdl_wires(pybind11::module& m)
{
namespace py = pybind11;
using namespace pybind11::literals;

py::class_<fiction::bdl_wire<fiction::offset::ucoord_t>>(m, "bdl_wire")
.def(py::init<>())
.def(py::init<std::vector<fiction::bdl_pair<fiction::offset::ucoord_t>>>(), "p"_a, DOC(fiction_bdl_wire))
.def_readwrite("pairs", &fiction::bdl_wire<fiction::offset::ucoord_t>::pairs, DOC(fiction_bdl_wire_pairs))
.def_readwrite("direction", &fiction::bdl_wire<fiction::offset::ucoord_t>::direction,
DOC(fiction_bdl_wire_direction));

py::enum_<fiction::bdl_wire_direction>(m, "bdl_wire_direction")
.value("NORTH_SOUTH", fiction::bdl_wire_direction::NORTH_SOUTH)
.value("SOUTH_NORTH", fiction::bdl_wire_direction::SOUTH_NORTH)
.value("NO_DIRECTION", fiction::bdl_wire_direction::NO_DIRECTION);

py::enum_<fiction::bdl_wire_selection>(m, "bdl_wire_selection")
.value("ALL", fiction::bdl_wire_selection::ALL)
.value("INPUT", fiction::bdl_wire_selection::INPUT)
.value("OUTPUT", fiction::bdl_wire_selection::OUTPUT);

py::class_<fiction::detect_bdl_wires_params>(m, "detect_bdl_wires_params")
.def(py::init<>())
.def_readwrite("threshold_bdl_interdistance", &fiction::detect_bdl_wires_params::threshold_bdl_interdistance)
.def_readwrite("params_bdl_pairs", &fiction::detect_bdl_wires_params::params_bdl_pairs);

// NOTE be careful with the order of the following calls! Python will resolve the first matching overload!

detail::detect_bdl_wires<py_sidb_100_lattice>(m);
detail::detect_bdl_wires<py_sidb_111_lattice>(m);
}

} // namespace pyfiction

#endif // PYFICTION_DETECT_BDL_WIRES_HPP
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ void is_operational(pybind11::module& m)
using namespace pybind11::literals;

m.def("is_operational", &fiction::is_operational<Lyt, py_tt>, "lyt"_a, "spec"_a,
"params"_a = fiction::is_operational_params{}, DOC(fiction_is_operational));
"params"_a = fiction::is_operational_params{}, "input_bdl_wire"_a = nullptr, "output_bdl_wire"_a = nullptr,
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
DOC(fiction_is_operational));

m.def("operational_input_patterns", &fiction::operational_input_patterns<Lyt, py_tt>, "lyt"_a, "spec"_a,
"params"_a = fiction::is_operational_params{}, DOC(fiction_is_operational));
Expand All @@ -44,17 +45,22 @@ inline void is_operational(pybind11::module& m)
.value("NON_OPERATIONAL", fiction::operational_status::NON_OPERATIONAL,
DOC(fiction_operational_status_NON_OPERATIONAL));

py::enum_<fiction::operational_condition>(m, "operational_condition", DOC(fiction_operational_condition))
.value("ALLOWING_KINKS", fiction::operational_condition::ALLOWING_KINKS,
DOC(fiction_operational_condition_ALLOWING_KINKS))
.value("FORBIDDING_KINKS", fiction::operational_condition::FORBIDDING_KINKS,
DOC(fiction_operational_condition_FORBIDDING_KINKS));

py::class_<fiction::is_operational_params>(m, "is_operational_params", DOC(fiction_is_operational_params))
.def(py::init<>())
.def_readwrite("simulation_parameters", &fiction::is_operational_params::simulation_parameters,
DOC(fiction_is_operational_params))
.def_readwrite("sim_engine", &fiction::is_operational_params::sim_engine,
DOC(fiction_is_operational_params_sim_engine))
.def_readwrite("bdl_params", &fiction::is_operational_params::bdl_params,
DOC(fiction_is_operational_params_bdl_params));
.def_readwrite("bdl_wire_params", &fiction::is_operational_params::bdl_wire_params)
.def_readwrite("op_condition", &fiction::is_operational_params::op_condition);

// NOTE be careful with the order of the following calls! Python will resolve the first matching overload!

detail::is_operational<py_sidb_100_lattice>(m);
detail::is_operational<py_sidb_111_lattice>(m);
}
Expand Down
Drewniok marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
Expand Up @@ -107,14 +107,10 @@ inline void operational_domain(pybind11::module& m)
py::class_<fiction::operational_domain_params>(m, "operational_domain_params",
DOC(fiction_operational_domain_params))
.def(py::init<>())
.def_readwrite("simulation_parameters", &fiction::operational_domain_params::simulation_parameters,
DOC(fiction_operational_domain_params_simulation_parameters))
.def_readwrite("sim_engine", &fiction::operational_domain_params::sim_engine,
DOC(fiction_operational_domain_params_sim_engine))
.def_readwrite("operational_params", &fiction::operational_domain_params::operational_params,
DOC(fiction_operational_domain_params_operational_params))
.def_readwrite("sweep_dimensions", &fiction::operational_domain_params::sweep_dimensions,
DOC(fiction_operational_domain_params_sweep_dimensions))
.def_readwrite("bdl_params", &fiction::operational_domain_params::bdl_params,
DOC(fiction_operational_domain_params_bdl_params))

;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ void fcn_technology_cell_level_layout(pybind11::module& m)
}
else if constexpr (std::is_same_v<Technology, fiction::sidb_technology>)
{
// no additional cell types required
cell_type.value("LOGIC", Technology::cell_type::LOGIC);
}
// NOTE: more technologies go here

Expand Down
Loading
Loading