fiction Logo
  • What is this about?
  • Getting started
    • Quick Start
    • CLI (Docker)
    • CLI (Source)
      • Compilation requirements
      • Building the CLI
    • C++ Library
    • Python Bindings
      • Virtual Environment Setup
  • Advanced Configuration
    • Enabling dependent functions
      • SMT-based exact P&R
      • SAT-based onepass synthesis
      • ABC callback
      • ALGLIB-dependent ClusterComplete exact SiDB simulation
    • Building experiments
    • Building tests
    • Building code benchmarks
    • Noteworthy CMake options
      • Usage of jemalloc
    • Uninstall
  • Command Line Interface (CLI)
    • Preface
    • Stores
    • Circuit specifications
      • Truth tables
      • Logic synthesis
    • ABC Callback
      • Structural manipulation
    • Physical design
      • SMT-based (exact)
      • OGD-based (ortho)
      • SAT-based one-pass synthesis (onepass)
      • Graph-oriented layout design (gold)
      • Hexagonalization (hex)
      • Post-Layout Optimization (optimize)
    • Design rule checking (check)
    • Logical simulation (simulate)
    • Equivalence checking (equiv)
    • Energy dissipation (energy)
    • Physical synthesis (cell)
    • Physical Simulation of SiDBs
      • QuickExact (quickexact)
      • ClusterComplete (clustercomplete)
      • QuickSim (quicksim)
      • Critical Temperature (temp)
      • Operational Domain (opdom)
    • Area usage (area)
      • QCA (default QCADesigner settings)
      • iNML (default NMLSim settings)
      • SiDB (default SiQAD settings)
    • SVG export (show -c)
    • Benchmarking and scripting
  • Changelog
    • Unreleased
      • Added
      • Changed
      • Fixed
    • v0.6.12 - 2025-10-29
      • Added
      • Changed
      • Removed
      • Fixed
      • Removed
    • v0.6.11 - 2025-04-23
      • Added
      • Changed
      • Fixed
    • v0.6.10 - 2025-02-21
      • Added
      • Fixed
    • v0.6.9 - 2025-02-12
      • Added
      • Changed
      • Fixed
    • v0.6.8 - 2025-01-25
      • Added
      • Fixed
    • v0.6.7 - 2025-01-20
      • Added
      • Changed
      • Fixed
      • Removed
    • v0.6.6 - 2024-11-26
      • Added
      • Changed
      • Fixed
    • v0.6.5 - 2024-10-22
      • Added
      • Fixed
    • v0.6.4 - 2024-08-30
      • Added
      • Fixed
    • v0.6.3 - 2024-08-22
      • Added
      • Changed
      • Fixed
    • v0.6.2 - 2024-05-22
      • Added
      • Fixed
    • v0.6.1 - 2024-05-16
      • Added
      • Changed
      • Fixed
    • v0.6.0 - 2024-05-05
      • Added
      • Changed
      • Fixed
    • v0.5.0 - 2023-03-30
      • Added
      • Changed
      • Fixed
      • Removed
    • v0.4.0 - 2022-01-27
      • Added
      • Changed
      • Fixed
      • Removed
    • v0.3.2 - 2021-01-06
      • Added
      • Changed
      • Fixed
    • v0.3.1 - 2020-06-04
      • Added
      • Changed
      • Fixed
      • Removed
    • v0.3.0 - 2019-11-22
      • Added
      • Changed
      • Fixed
      • Removed
    • v0.2.1 - 2019-05-02
      • Added
      • Changed
      • Fixed
      • Removed
    • v0.2.0 - 2019-03-21
      • Added
      • Changed
      • Fixed
      • Removed
    • v0.1.1 - 2018-12-29
      • Added
      • Changed
      • Fixed
      • Removed
    • v0.1.0 - 2018-10-29
  • Publications
  • Acknowledgments
  • Contributing
    • Types of Contributions
    • First Contributions
    • Core Guidelines
    • Pull Request Workflow
  • Support

Networks

  • Technology Network
    • fiction::technology_network
      • is_po()
      • create_buf()
      • _create_node()
      • create_node()
      • is_buf()
      • is_fanout()
      • is_inv()
      • substitute_po_signals()
    • technology_network
      • technology_network.fanins()
      • technology_network.gates()
      • technology_network.get_name()
      • technology_network.get_output_name()
      • technology_network.has_name()
      • technology_network.has_output_name()
      • technology_network.is_and()
      • technology_network.is_buf()
      • technology_network.is_constant()
      • technology_network.is_fanout()
      • technology_network.is_inv()
      • technology_network.is_maj()
      • technology_network.is_nand()
      • technology_network.is_nor()
      • technology_network.is_or()
      • technology_network.is_pi()
      • technology_network.is_po()
      • technology_network.is_xnor()
      • technology_network.is_xor()
      • technology_network.nodes()
      • technology_network.num_gates()
      • technology_network.num_pis()
      • technology_network.num_pos()
      • technology_network.pis()
      • technology_network.po_at()
      • technology_network.po_index()
      • technology_network.pos()
      • technology_network.size()
  • Views
    • Edge Color View
      • fiction::out_of_place_edge_color_view
        • out_of_place_edge_color_view()
        • clear_colors()
        • edge_color()
        • paint_edge()
        • paint_edge()
        • paint_edge()
        • eval_edge_color()
        • eval_edge_color()
    • Static Depth View
      • fiction::static_depth_view
    • Mutable Rank View
      • fiction::mutable_rank_view

Layouts

  • Coordinate Systems
    • Offset coordinates
      • fiction::offset::ucoord_t
      • offset_coordinate
    • Cube coordinates
      • fiction::cube::coord_t
      • cube_coordinate
    • SiQAD coordinates
      • fiction::siqad::coord_t
      • siqad_coordinate
    • Coordinate iterator
      • fiction::coord_iterator
    • Utility functions
      • area()
      • volume()
      • to_fiction_coord()
      • to_siqad_coord()
      • offset_area()
      • cube_area()
      • siqad_area()
      • offset_volume()
      • cube_volume()
      • siqad_volume()
      • to_offset_coord()
      • to_cube_coord()
      • to_siqad_coord()
  • Cartesian Layout
    • fiction::cartesian_layout
      • cartesian_layout()
      • cartesian_layout()
      • clone()
      • coord()
      • x()
      • y()
      • z()
      • area()
      • resize()
      • north()
      • north_east()
      • east()
      • south_east()
      • south()
      • south_west()
      • west()
      • north_west()
      • above()
      • below()
      • is_north_of()
      • is_east_of()
      • is_south_of()
      • is_west_of()
      • is_adjacent_of()
      • is_adjacent_elevation_of()
      • is_above()
      • is_below()
      • is_northwards_of()
      • is_eastwards_of()
      • is_southwards_of()
      • is_westwards_of()
      • is_at_northern_border()
      • is_at_eastern_border()
      • is_at_southern_border()
      • is_at_western_border()
      • is_at_any_border()
      • northern_border_of()
      • eastern_border_of()
      • southern_border_of()
      • western_border_of()
      • is_ground_layer()
      • is_crossing_layer()
      • is_within_bounds()
      • coordinates()
      • foreach_coordinate()
      • ground_coordinates()
      • foreach_ground_coordinate()
      • adjacent_coordinates()
      • foreach_adjacent_coordinate()
      • adjacent_opposite_coordinates()
      • foreach_adjacent_opposite_coordinates()
      • fiction::cartesian_layout::cartesian_layout_storage
    • cartesian_layout
      • cartesian_layout.above()
      • cartesian_layout.adjacent_coordinates()
      • cartesian_layout.adjacent_opposite_coordinates()
      • cartesian_layout.area()
      • cartesian_layout.below()
      • cartesian_layout.coord()
      • cartesian_layout.coordinates()
      • cartesian_layout.east()
      • cartesian_layout.eastern_border_of()
      • cartesian_layout.ground_coordinates()
      • cartesian_layout.is_above()
      • cartesian_layout.is_adjacent_elevation_of()
      • cartesian_layout.is_adjacent_of()
      • cartesian_layout.is_at_any_border()
      • cartesian_layout.is_at_eastern_border()
      • cartesian_layout.is_at_northern_border()
      • cartesian_layout.is_at_southern_border()
      • cartesian_layout.is_at_western_border()
      • cartesian_layout.is_below()
      • cartesian_layout.is_crossing_layer()
      • cartesian_layout.is_east_of()
      • cartesian_layout.is_eastwards_of()
      • cartesian_layout.is_ground_layer()
      • cartesian_layout.is_north_of()
      • cartesian_layout.is_northwards_of()
      • cartesian_layout.is_south_of()
      • cartesian_layout.is_southwards_of()
      • cartesian_layout.is_west_of()
      • cartesian_layout.is_westwards_of()
      • cartesian_layout.is_within_bounds()
      • cartesian_layout.north()
      • cartesian_layout.north_east()
      • cartesian_layout.north_west()
      • cartesian_layout.northern_border_of()
      • cartesian_layout.resize()
      • cartesian_layout.south()
      • cartesian_layout.south_east()
      • cartesian_layout.south_west()
      • cartesian_layout.southern_border_of()
      • cartesian_layout.west()
      • cartesian_layout.western_border_of()
      • cartesian_layout.x()
      • cartesian_layout.y()
      • cartesian_layout.z()
  • Shifted Cartesian Layout
    • fiction::horizontal_shift_cartesian
    • fiction::vertical_shift_cartesian
    • fiction::odd_row_cartesian
    • fiction::even_row_cartesian
    • fiction::odd_column_cartesian
    • fiction::even_column_cartesian
    • fiction::shifted_cartesian_layout
      • shifted_cartesian_layout()
    • shifted_cartesian_layout
      • shifted_cartesian_layout.above()
      • shifted_cartesian_layout.adjacent_coordinates()
      • shifted_cartesian_layout.adjacent_opposite_coordinates()
      • shifted_cartesian_layout.area()
      • shifted_cartesian_layout.below()
      • shifted_cartesian_layout.coord()
      • shifted_cartesian_layout.coordinates()
      • shifted_cartesian_layout.east()
      • shifted_cartesian_layout.eastern_border_of()
      • shifted_cartesian_layout.ground_coordinates()
      • shifted_cartesian_layout.is_above()
      • shifted_cartesian_layout.is_adjacent_elevation_of()
      • shifted_cartesian_layout.is_adjacent_of()
      • shifted_cartesian_layout.is_at_any_border()
      • shifted_cartesian_layout.is_at_eastern_border()
      • shifted_cartesian_layout.is_at_northern_border()
      • shifted_cartesian_layout.is_at_southern_border()
      • shifted_cartesian_layout.is_at_western_border()
      • shifted_cartesian_layout.is_below()
      • shifted_cartesian_layout.is_crossing_layer()
      • shifted_cartesian_layout.is_east_of()
      • shifted_cartesian_layout.is_eastwards_of()
      • shifted_cartesian_layout.is_ground_layer()
      • shifted_cartesian_layout.is_north_of()
      • shifted_cartesian_layout.is_northwards_of()
      • shifted_cartesian_layout.is_south_of()
      • shifted_cartesian_layout.is_southwards_of()
      • shifted_cartesian_layout.is_west_of()
      • shifted_cartesian_layout.is_westwards_of()
      • shifted_cartesian_layout.is_within_bounds()
      • shifted_cartesian_layout.north()
      • shifted_cartesian_layout.north_east()
      • shifted_cartesian_layout.north_west()
      • shifted_cartesian_layout.northern_border_of()
      • shifted_cartesian_layout.resize()
      • shifted_cartesian_layout.south()
      • shifted_cartesian_layout.south_east()
      • shifted_cartesian_layout.south_west()
      • shifted_cartesian_layout.southern_border_of()
      • shifted_cartesian_layout.west()
      • shifted_cartesian_layout.western_border_of()
      • shifted_cartesian_layout.x()
      • shifted_cartesian_layout.y()
      • shifted_cartesian_layout.z()
  • Hexagonal Layout
    • fiction::pointy_top_hex
    • fiction::flat_top_hex
    • fiction::odd_row_hex
    • fiction::even_row_hex
    • fiction::odd_column_hex
    • fiction::even_column_hex
    • fiction::hexagonal_layout
      • hexagonal_layout()
      • clone()
      • coord()
      • x()
      • y()
      • z()
      • area()
      • resize()
      • is_in_odd_row()
      • is_in_even_row()
      • is_in_odd_column()
      • is_in_even_column()
      • north()
      • north_east()
      • east()
      • south_east()
      • south()
      • south_west()
      • west()
      • north_west()
      • above()
      • below()
      • is_north_of()
      • is_east_of()
      • is_south_of()
      • is_west_of()
      • is_adjacent_of()
      • is_adjacent_elevation_of()
      • is_above()
      • is_below()
      • is_northwards_of()
      • is_eastwards_of()
      • is_southwards_of()
      • is_westwards_of()
      • is_at_northern_border()
      • is_at_eastern_border()
      • is_at_southern_border()
      • is_at_western_border()
      • is_at_any_border()
      • northern_border_of()
      • eastern_border_of()
      • southern_border_of()
      • western_border_of()
      • is_ground_layer()
      • is_crossing_layer()
      • is_within_bounds()
      • coordinates()
      • foreach_coordinate()
      • ground_coordinates()
      • foreach_ground_coordinate()
      • adjacent_coordinates()
      • foreach_adjacent_coordinate()
      • adjacent_opposite_coordinates()
      • foreach_adjacent_opposite_coordinates()
      • to_cube_coordinate()
      • to_offset_coordinate()
      • fiction::hexagonal_layout::hexagonal_layout_storage
    • hexagonal_layout
      • hexagonal_layout.above()
      • hexagonal_layout.adjacent_coordinates()
      • hexagonal_layout.adjacent_opposite_coordinates()
      • hexagonal_layout.area()
      • hexagonal_layout.below()
      • hexagonal_layout.coord()
      • hexagonal_layout.coordinates()
      • hexagonal_layout.east()
      • hexagonal_layout.eastern_border_of()
      • hexagonal_layout.ground_coordinates()
      • hexagonal_layout.is_above()
      • hexagonal_layout.is_adjacent_elevation_of()
      • hexagonal_layout.is_adjacent_of()
      • hexagonal_layout.is_at_any_border()
      • hexagonal_layout.is_at_eastern_border()
      • hexagonal_layout.is_at_northern_border()
      • hexagonal_layout.is_at_southern_border()
      • hexagonal_layout.is_at_western_border()
      • hexagonal_layout.is_below()
      • hexagonal_layout.is_crossing_layer()
      • hexagonal_layout.is_east_of()
      • hexagonal_layout.is_eastwards_of()
      • hexagonal_layout.is_ground_layer()
      • hexagonal_layout.is_north_of()
      • hexagonal_layout.is_northwards_of()
      • hexagonal_layout.is_south_of()
      • hexagonal_layout.is_southwards_of()
      • hexagonal_layout.is_west_of()
      • hexagonal_layout.is_westwards_of()
      • hexagonal_layout.is_within_bounds()
      • hexagonal_layout.north()
      • hexagonal_layout.north_east()
      • hexagonal_layout.north_west()
      • hexagonal_layout.northern_border_of()
      • hexagonal_layout.resize()
      • hexagonal_layout.south()
      • hexagonal_layout.south_east()
      • hexagonal_layout.south_west()
      • hexagonal_layout.southern_border_of()
      • hexagonal_layout.west()
      • hexagonal_layout.western_border_of()
      • hexagonal_layout.x()
      • hexagonal_layout.y()
      • hexagonal_layout.z()
  • Tile-based Layout
    • fiction::tile_based_layout
  • Clocked Layout
    • fiction::clocked_layout
      • clocked_layout()
      • clocked_layout()
      • clocked_layout()
      • clocked_layout()
      • clone()
      • replace_clocking_scheme()
      • assign_clock_number()
      • get_clock_number()
      • num_clocks()
      • is_regularly_clocked()
      • is_clocking_scheme()
      • get_clocking_scheme()
      • is_incoming_clocked()
      • is_outgoing_clocked()
      • incoming_clocked_zones()
      • foreach_incoming_clocked_zone()
      • outgoing_clocked_zones()
      • foreach_outgoing_clocked_zone()
      • in_degree()
      • out_degree()
      • degree()
      • fiction::clocked_layout::clocked_layout_storage
    • clocked_cartesian_layout
      • clocked_cartesian_layout.assign_clock_number()
      • clocked_cartesian_layout.degree()
      • clocked_cartesian_layout.get_clock_number()
      • clocked_cartesian_layout.in_degree()
      • clocked_cartesian_layout.incoming_clocked_zones()
      • clocked_cartesian_layout.is_clocking_scheme()
      • clocked_cartesian_layout.is_incoming_clocked()
      • clocked_cartesian_layout.is_outgoing_clocked()
      • clocked_cartesian_layout.is_regularly_clocked()
      • clocked_cartesian_layout.num_clocks()
      • clocked_cartesian_layout.out_degree()
      • clocked_cartesian_layout.outgoing_clocked_zones()
    • clocked_hexagonal_layout
      • clocked_hexagonal_layout.assign_clock_number()
      • clocked_hexagonal_layout.degree()
      • clocked_hexagonal_layout.get_clock_number()
      • clocked_hexagonal_layout.in_degree()
      • clocked_hexagonal_layout.incoming_clocked_zones()
      • clocked_hexagonal_layout.is_clocking_scheme()
      • clocked_hexagonal_layout.is_incoming_clocked()
      • clocked_hexagonal_layout.is_outgoing_clocked()
      • clocked_hexagonal_layout.is_regularly_clocked()
      • clocked_hexagonal_layout.num_clocks()
      • clocked_hexagonal_layout.out_degree()
      • clocked_hexagonal_layout.outgoing_clocked_zones()
  • Clocking Schemes
    • fiction::clocking_scheme
      • clocking_scheme()
      • operator()()
      • operator==()
      • is_regular()
      • override_clock_number()
      • name
      • max_in_degree
      • max_out_degree
      • num_clocks
    • Pre-defined schemes
      • Open
        • open_clocking()
      • Columnar
        • columnar_clocking()
      • Row
        • row_clocking()
      • 2DDWave
        • twoddwave_clocking()
        • twoddwave_hex_clocking()
      • USE
        • use_clocking()
      • RES
        • res_clocking()
      • ESR
        • esr_clocking()
      • CFE
        • cfe_clocking()
      • Ripple
        • ripple_clocking()
      • SRS
        • srs_clocking()
      • BANCS
        • bancs_clocking()
    • Utility functions
      • ptr()
      • is_linear_scheme()
      • get_clocking_scheme()
  • Synchronization Element Layout
    • fiction::synchronization_element_layout
      • synchronization_element_layout()
      • synchronization_element_layout()
      • synchronization_element_layout()
      • synchronization_element_layout()
      • clone()
      • assign_synchronization_element()
      • is_synchronization_element()
      • get_synchronization_element()
      • is_incoming_clocked()
      • is_outgoing_clocked()
      • incoming_clocked_zones()
      • foreach_incoming_clocked_zone()
      • outgoing_clocked_zones()
      • foreach_outgoing_clocked_zone()
      • num_se()
      • in_degree()
      • out_degree()
      • degree()
      • fiction::synchronization_element_layout::synchronization_element_layout_storage
  • Gate-level Layout
    • fiction::gate_level_layout
      • gate_level_layout_storage
      • gate_level_layout()
      • gate_level_layout()
      • gate_level_layout()
      • gate_level_layout()
      • gate_level_layout()
      • clone()
      • is_pi_tile()
      • is_po_tile()
      • size()
      • num_gates()
      • num_wires()
      • num_crossings()
      • is_empty()
      • fanin_size()
      • fanout_size()
      • get_node()
      • get_node()
      • get_tile()
      • is_dead()
      • make_signal()
      • move_node()
      • connect()
      • clear_tile()
      • is_complemented()
      • is_gate()
      • is_buf()
      • is_wire()
      • is_inv()
      • is_fanout()
      • is_function()
      • is_gate_tile()
      • is_wire_tile()
      • is_empty_tile()
      • foreach_pi()
      • foreach_po()
      • foreach_node()
      • foreach_gate()
      • foreach_wire()
      • foreach_fanin()
      • incoming_data_flow()
      • foreach_fanout()
      • outgoing_data_flow()
      • is_incoming_signal()
      • has_northern_incoming_signal()
      • has_north_eastern_incoming_signal()
      • has_eastern_incoming_signal()
      • has_south_eastern_incoming_signal()
      • has_southern_incoming_signal()
      • has_south_western_incoming_signal()
      • has_western_incoming_signal()
      • has_north_western_incoming_signal()
      • has_no_incoming_signal()
      • is_outgoing_signal()
      • has_northern_outgoing_signal()
      • has_north_eastern_outgoing_signal()
      • has_eastern_outgoing_signal()
      • has_south_eastern_outgoing_signal()
      • has_southern_outgoing_signal()
      • has_south_western_outgoing_signal()
      • has_western_outgoing_signal()
      • has_north_western_outgoing_signal()
      • has_no_outgoing_signal()
      • has_opposite_incoming_and_outgoing_signals()
      • fiction::gate_level_layout::gate_level_layout_storage_data
      • fiction::gate_level_layout::gate_level_layout_storage_node
    • cartesian_gate_layout
      • cartesian_gate_layout.bounding_box_2d()
      • cartesian_gate_layout.clear_tile()
      • cartesian_gate_layout.create_and()
      • cartesian_gate_layout.create_buf()
      • cartesian_gate_layout.create_ge()
      • cartesian_gate_layout.create_gt()
      • cartesian_gate_layout.create_le()
      • cartesian_gate_layout.create_lt()
      • cartesian_gate_layout.create_maj()
      • cartesian_gate_layout.create_nand()
      • cartesian_gate_layout.create_nor()
      • cartesian_gate_layout.create_not()
      • cartesian_gate_layout.create_or()
      • cartesian_gate_layout.create_pi()
      • cartesian_gate_layout.create_po()
      • cartesian_gate_layout.create_xnor()
      • cartesian_gate_layout.create_xor()
      • cartesian_gate_layout.fanin_size()
      • cartesian_gate_layout.fanins()
      • cartesian_gate_layout.fanout_size()
      • cartesian_gate_layout.fanouts()
      • cartesian_gate_layout.gates()
      • cartesian_gate_layout.get_input_name()
      • cartesian_gate_layout.get_layout_name()
      • cartesian_gate_layout.get_name()
      • cartesian_gate_layout.get_node()
      • cartesian_gate_layout.get_output_name()
      • cartesian_gate_layout.get_tile()
      • cartesian_gate_layout.has_eastern_incoming_signal()
      • cartesian_gate_layout.has_eastern_outgoing_signal()
      • cartesian_gate_layout.has_no_incoming_signal()
      • cartesian_gate_layout.has_no_outgoing_signal()
      • cartesian_gate_layout.has_north_eastern_incoming_signal()
      • cartesian_gate_layout.has_north_eastern_outgoing_signal()
      • cartesian_gate_layout.has_north_western_incoming_signal()
      • cartesian_gate_layout.has_north_western_outgoing_signal()
      • cartesian_gate_layout.has_northern_incoming_signal()
      • cartesian_gate_layout.has_northern_outgoing_signal()
      • cartesian_gate_layout.has_south_eastern_incoming_signal()
      • cartesian_gate_layout.has_south_eastern_outgoing_signal()
      • cartesian_gate_layout.has_south_western_incoming_signal()
      • cartesian_gate_layout.has_south_western_outgoing_signal()
      • cartesian_gate_layout.has_southern_incoming_signal()
      • cartesian_gate_layout.has_southern_outgoing_signal()
      • cartesian_gate_layout.has_western_incoming_signal()
      • cartesian_gate_layout.has_western_outgoing_signal()
      • cartesian_gate_layout.is_and()
      • cartesian_gate_layout.is_dead()
      • cartesian_gate_layout.is_empty()
      • cartesian_gate_layout.is_empty_tile()
      • cartesian_gate_layout.is_fanout()
      • cartesian_gate_layout.is_gate_tile()
      • cartesian_gate_layout.is_ge()
      • cartesian_gate_layout.is_gt()
      • cartesian_gate_layout.is_incoming_signal()
      • cartesian_gate_layout.is_inv()
      • cartesian_gate_layout.is_le()
      • cartesian_gate_layout.is_lt()
      • cartesian_gate_layout.is_maj()
      • cartesian_gate_layout.is_nand()
      • cartesian_gate_layout.is_nor()
      • cartesian_gate_layout.is_or()
      • cartesian_gate_layout.is_outgoing_signal()
      • cartesian_gate_layout.is_pi()
      • cartesian_gate_layout.is_pi_tile()
      • cartesian_gate_layout.is_po()
      • cartesian_gate_layout.is_po_tile()
      • cartesian_gate_layout.is_wire()
      • cartesian_gate_layout.is_wire_tile()
      • cartesian_gate_layout.is_xnor()
      • cartesian_gate_layout.is_xor()
      • cartesian_gate_layout.make_signal()
      • cartesian_gate_layout.move_node()
      • cartesian_gate_layout.num_crossings()
      • cartesian_gate_layout.num_gates()
      • cartesian_gate_layout.num_pis()
      • cartesian_gate_layout.num_pos()
      • cartesian_gate_layout.num_wires()
      • cartesian_gate_layout.pis()
      • cartesian_gate_layout.pos()
      • cartesian_gate_layout.set_input_name()
      • cartesian_gate_layout.set_layout_name()
      • cartesian_gate_layout.set_output_name()
      • cartesian_gate_layout.wires()
    • hexagonal_gate_layout
      • hexagonal_gate_layout.bounding_box_2d()
      • hexagonal_gate_layout.clear_tile()
      • hexagonal_gate_layout.create_and()
      • hexagonal_gate_layout.create_buf()
      • hexagonal_gate_layout.create_ge()
      • hexagonal_gate_layout.create_gt()
      • hexagonal_gate_layout.create_le()
      • hexagonal_gate_layout.create_lt()
      • hexagonal_gate_layout.create_maj()
      • hexagonal_gate_layout.create_nand()
      • hexagonal_gate_layout.create_nor()
      • hexagonal_gate_layout.create_not()
      • hexagonal_gate_layout.create_or()
      • hexagonal_gate_layout.create_pi()
      • hexagonal_gate_layout.create_po()
      • hexagonal_gate_layout.create_xnor()
      • hexagonal_gate_layout.create_xor()
      • hexagonal_gate_layout.fanin_size()
      • hexagonal_gate_layout.fanins()
      • hexagonal_gate_layout.fanout_size()
      • hexagonal_gate_layout.fanouts()
      • hexagonal_gate_layout.gates()
      • hexagonal_gate_layout.get_input_name()
      • hexagonal_gate_layout.get_layout_name()
      • hexagonal_gate_layout.get_name()
      • hexagonal_gate_layout.get_node()
      • hexagonal_gate_layout.get_output_name()
      • hexagonal_gate_layout.get_tile()
      • hexagonal_gate_layout.has_eastern_incoming_signal()
      • hexagonal_gate_layout.has_eastern_outgoing_signal()
      • hexagonal_gate_layout.has_no_incoming_signal()
      • hexagonal_gate_layout.has_no_outgoing_signal()
      • hexagonal_gate_layout.has_north_eastern_incoming_signal()
      • hexagonal_gate_layout.has_north_eastern_outgoing_signal()
      • hexagonal_gate_layout.has_north_western_incoming_signal()
      • hexagonal_gate_layout.has_north_western_outgoing_signal()
      • hexagonal_gate_layout.has_northern_incoming_signal()
      • hexagonal_gate_layout.has_northern_outgoing_signal()
      • hexagonal_gate_layout.has_south_eastern_incoming_signal()
      • hexagonal_gate_layout.has_south_eastern_outgoing_signal()
      • hexagonal_gate_layout.has_south_western_incoming_signal()
      • hexagonal_gate_layout.has_south_western_outgoing_signal()
      • hexagonal_gate_layout.has_southern_incoming_signal()
      • hexagonal_gate_layout.has_southern_outgoing_signal()
      • hexagonal_gate_layout.has_western_incoming_signal()
      • hexagonal_gate_layout.has_western_outgoing_signal()
      • hexagonal_gate_layout.is_and()
      • hexagonal_gate_layout.is_dead()
      • hexagonal_gate_layout.is_empty()
      • hexagonal_gate_layout.is_empty_tile()
      • hexagonal_gate_layout.is_fanout()
      • hexagonal_gate_layout.is_gate_tile()
      • hexagonal_gate_layout.is_ge()
      • hexagonal_gate_layout.is_gt()
      • hexagonal_gate_layout.is_incoming_signal()
      • hexagonal_gate_layout.is_inv()
      • hexagonal_gate_layout.is_le()
      • hexagonal_gate_layout.is_lt()
      • hexagonal_gate_layout.is_maj()
      • hexagonal_gate_layout.is_nand()
      • hexagonal_gate_layout.is_nor()
      • hexagonal_gate_layout.is_or()
      • hexagonal_gate_layout.is_outgoing_signal()
      • hexagonal_gate_layout.is_pi()
      • hexagonal_gate_layout.is_pi_tile()
      • hexagonal_gate_layout.is_po()
      • hexagonal_gate_layout.is_po_tile()
      • hexagonal_gate_layout.is_wire()
      • hexagonal_gate_layout.is_wire_tile()
      • hexagonal_gate_layout.is_xnor()
      • hexagonal_gate_layout.is_xor()
      • hexagonal_gate_layout.make_signal()
      • hexagonal_gate_layout.move_node()
      • hexagonal_gate_layout.num_crossings()
      • hexagonal_gate_layout.num_gates()
      • hexagonal_gate_layout.num_pis()
      • hexagonal_gate_layout.num_pos()
      • hexagonal_gate_layout.num_wires()
      • hexagonal_gate_layout.pis()
      • hexagonal_gate_layout.pos()
      • hexagonal_gate_layout.set_input_name()
      • hexagonal_gate_layout.set_layout_name()
      • hexagonal_gate_layout.set_output_name()
      • hexagonal_gate_layout.wires()
  • Cell-level Layout
    • fiction::cell_level_layout
      • cell_level_layout()
      • cell_level_layout()
      • cell_level_layout()
      • cell_level_layout()
      • clone()
      • assign_cell_type()
      • get_cell_type()
      • get_cells_by_type()
      • num_cells_of_given_type()
      • is_empty_cell()
      • assign_cell_mode()
      • get_cell_mode()
      • assign_cell_name()
      • get_cell_name()
      • set_layout_name()
      • get_layout_name()
      • num_cells()
      • is_empty()
      • num_pis()
      • num_pos()
      • is_pi()
      • is_po()
      • get_tile_size_x()
      • set_tile_size_x()
      • get_tile_size_y()
      • set_tile_size_y()
      • get_clock_number()
      • is_incoming_clocked()
      • is_outgoing_clocked()
      • foreach_cell()
      • foreach_cell_position()
      • foreach_pi()
      • foreach_po()
      • fiction::cell_level_layout::cell_level_layout_storage
    • qca_layout
      • qca_layout.assign_cell_name()
      • qca_layout.assign_cell_type()
      • qca_layout.bounding_box_2d()
      • qca_layout.cells()
      • qca_layout.get_cell_name()
      • qca_layout.get_cell_type()
      • qca_layout.get_cells_by_type()
      • qca_layout.get_layout_name()
      • qca_layout.is_empty()
      • qca_layout.is_empty_cell()
      • qca_layout.is_pi()
      • qca_layout.is_po()
      • qca_layout.num_cells()
      • qca_layout.num_cells_of_given_type()
      • qca_layout.num_pis()
      • qca_layout.num_pos()
      • qca_layout.pis()
      • qca_layout.pos()
      • qca_layout.set_layout_name()
    • inml_layout
      • inml_layout.assign_cell_name()
      • inml_layout.assign_cell_type()
      • inml_layout.bounding_box_2d()
      • inml_layout.cells()
      • inml_layout.get_cell_name()
      • inml_layout.get_cell_type()
      • inml_layout.get_cells_by_type()
      • inml_layout.get_layout_name()
      • inml_layout.is_empty()
      • inml_layout.is_empty_cell()
      • inml_layout.is_pi()
      • inml_layout.is_po()
      • inml_layout.num_cells()
      • inml_layout.num_cells_of_given_type()
      • inml_layout.num_pis()
      • inml_layout.num_pos()
      • inml_layout.pis()
      • inml_layout.pos()
      • inml_layout.set_layout_name()
    • sidb_layout
      • sidb_layout.assign_cell_name()
      • sidb_layout.assign_cell_type()
      • sidb_layout.bounding_box_2d()
      • sidb_layout.cells()
      • sidb_layout.get_cell_name()
      • sidb_layout.get_cell_type()
      • sidb_layout.get_cells_by_type()
      • sidb_layout.get_layout_name()
      • sidb_layout.is_empty()
      • sidb_layout.is_empty_cell()
      • sidb_layout.is_pi()
      • sidb_layout.is_po()
      • sidb_layout.num_cells()
      • sidb_layout.num_cells_of_given_type()
      • sidb_layout.num_pis()
      • sidb_layout.num_pos()
      • sidb_layout.pis()
      • sidb_layout.pos()
      • sidb_layout.set_layout_name()
  • Obstruction Layout
    • fiction::obstruction_layout
    • fiction::obstruction_layout< Lyt, true >
    • fiction::obstruction_layout< Lyt, false >
      • obstruction_layout()
      • obstruction_layout()
      • obstruct_coordinate()
      • obstruct_connection()
      • clear_obstructed_coordinate()
      • clear_obstructed_connection()
      • clear_obstructed_coordinates()
      • clear_obstructed_connections()
      • is_obstructed_coordinate()
      • is_obstructed_connection()
      • fiction::obstruction_layout< Lyt, false >::obstruction_layout_storage
    • cartesian_obstruction_layout
      • cartesian_obstruction_layout.clear_obstructed_connection()
      • cartesian_obstruction_layout.clear_obstructed_connections()
      • cartesian_obstruction_layout.clear_obstructed_coordinate()
      • cartesian_obstruction_layout.clear_obstructed_coordinates()
      • cartesian_obstruction_layout.is_obstructed_connection()
      • cartesian_obstruction_layout.is_obstructed_coordinate()
      • cartesian_obstruction_layout.obstruct_connection()
      • cartesian_obstruction_layout.obstruct_coordinate()
    • shifted_cartesian_obstruction_layout
      • shifted_cartesian_obstruction_layout.clear_obstructed_connection()
      • shifted_cartesian_obstruction_layout.clear_obstructed_connections()
      • shifted_cartesian_obstruction_layout.clear_obstructed_coordinate()
      • shifted_cartesian_obstruction_layout.clear_obstructed_coordinates()
      • shifted_cartesian_obstruction_layout.is_obstructed_connection()
      • shifted_cartesian_obstruction_layout.is_obstructed_coordinate()
      • shifted_cartesian_obstruction_layout.obstruct_connection()
      • shifted_cartesian_obstruction_layout.obstruct_coordinate()
    • hexagonal_obstruction_layout
      • hexagonal_obstruction_layout.clear_obstructed_connection()
      • hexagonal_obstruction_layout.clear_obstructed_connections()
      • hexagonal_obstruction_layout.clear_obstructed_coordinate()
      • hexagonal_obstruction_layout.clear_obstructed_coordinates()
      • hexagonal_obstruction_layout.is_obstructed_connection()
      • hexagonal_obstruction_layout.is_obstructed_coordinate()
      • hexagonal_obstruction_layout.obstruct_connection()
      • hexagonal_obstruction_layout.obstruct_coordinate()
  • Bounding Box
    • fiction::bounding_box_2d
      • bounding_box_2d()
      • update_bounding_box()
      • get_min()
      • get_max()
      • get_x_size()
      • get_y_size()
    • bounding_box_2d()
    • bounding_box_2d()
    • bounding_box_2d()
    • bounding_box_2d()
    • bounding_box_2d()
    • bounding_box_2d()
    • bounding_box_2d()
    • bounding_box_2d()

Algorithms

  • Iterators
    • Aspect Ratio Iterator
      • fiction::aspect_ratio_iterator
        • aspect_ratio_iterator()
        • operator++()
        • operator++()
    • Gray Code Iterator
      • fiction::gray_code_iterator
        • gray_code_iterator()
        • operator*()
        • operator++()
        • operator==()
        • operator!=()
        • operator<()
        • operator<=()
        • operator-()
        • operator++()
        • operator+()
        • operator+=()
        • operator-()
        • operator--()
        • operator--()
        • operator-=()
        • operator=()
        • operator[]()
        • operator==()
        • operator!=()
        • operator<()
        • operator<=()
        • operator>()
        • operator>=()
    • BDL Input Iterator
      • fiction::bdl_input_iterator_params
        • input_bdl_configuration
        • bdl_wire_params
        • input_bdl_config
      • fiction::bdl_input_iterator
        • bdl_input_iterator()
        • bdl_input_iterator()
        • operator*()
        • operator++()
        • operator++()
        • operator+()
        • operator+=()
        • operator-()
        • operator--()
        • operator--()
        • operator-=()
        • operator=()
        • operator[]()
        • operator-()
        • operator==()
        • operator!=()
        • operator<()
        • operator<=()
        • operator>()
        • operator>=()
        • num_input_pairs()
        • get_current_input_index()
      • input_bdl_configuration
        • input_bdl_configuration.name
      • bdl_input_iterator_params
        • bdl_input_iterator_params.bdl_wire_params
        • bdl_input_iterator_params.input_bdl_config
      • bdl_input_iterator_100
        • bdl_input_iterator_100.get_layout()
        • bdl_input_iterator_100.num_input_pairs()
      • bdl_input_iterator_111
        • bdl_input_iterator_111.get_layout()
        • bdl_input_iterator_111.num_input_pairs()
  • Path Finding
    • Distance Functions
      • manhattan_distance()
      • euclidean_distance()
      • squared_euclidean_distance()
      • twoddwave_distance()
      • chebyshev_distance()
      • fiction::distance_functor
        • distance_functor()
        • ~distance_functor()
        • operator()()
      • fiction::manhattan_distance_functor
      • fiction::euclidean_distance_functor
      • fiction::squared_euclidean_distance_functor
      • fiction::twoddwave_distance_functor
      • fiction::chebyshev_distance_functor
      • manhattan_distance()
      • euclidean_distance()
      • squared_euclidean_distance()
      • twoddwave_distance()
      • chebyshev_distance()
    • Distance Maps
      • distance_map
      • sparse_distance_map
      • initialize_distance_map()
      • initialize_sparse_distance_map()
      • fiction::distance_map_functor
        • distance_map_functor()
        • operator()()
      • fiction::sparse_distance_map_functor
        • sparse_distance_map_functor()
        • operator()()
      • fiction::smart_distance_cache_functor
        • smart_distance_cache_functor()
        • operator()()
    • Cost Functions
      • unit_cost()
      • random_cost()
      • fiction::cost_functor
        • cost_functor()
        • ~cost_functor()
        • operator()()
      • fiction::unit_cost_functor
      • fiction::random_cost_functor
    • A* Shortest Path
      • fiction::a_star_params
        • crossings
      • a_star()
      • a_star_distance()
      • fiction::a_star_distance_functor
      • a_star_params
        • a_star_params.crossings
      • a_star()
      • a_star_distance()
    • Jump Point Search Shortest Path in a Cartesian Grid
      • jump_point_search()
    • k Shortest Paths
      • fiction::yen_k_shortest_paths_params
        • astar_params
      • yen_k_shortest_paths()
      • yen_k_shortest_paths_params
        • yen_k_shortest_paths_params.a_star_params
      • yen_k_shortest_paths()
    • Enumerate All Paths
      • fiction::enumerate_all_paths_params
        • crossings
      • enumerate_all_paths()
      • enumerate_all_paths_params
        • enumerate_all_paths_params.crossings
      • enumerate_all_paths()
  • Graph Algorithms
    • Generate Edge Intersection Graph
      • fiction::generate_edge_intersection_graph_params
        • crossings
        • path_limit
      • fiction::generate_edge_intersection_graph_stats
        • time_total
        • number_of_unroutable_objectives
        • cliques
        • num_vertices
      • generate_edge_intersection_graph()
    • Graph Coloring
      • graph_coloring_engine
        • MCS
        • DSATUR
        • LMXRLF
        • TABUCOL
        • SAT
      • graph_coloring_sat_search_tactic
        • LINEARLY_ASCENDING
        • LINEARLY_DESCENDING
        • BINARY_SEARCH
      • fiction::determine_vertex_coloring_sat_params
        • sat_engine
        • sat_search_tactic
        • cliques
        • clique_size_color_frequency
      • fiction::determine_vertex_coloring_heuristic_params
        • k_color_value
      • fiction::determine_vertex_coloring_params
        • engine
        • sat_params
        • heuristic_params
        • verify_coloring_after_computation
      • fiction::determine_vertex_coloring_stats
        • time_total
        • chromatic_number
        • most_frequent_color
        • color_frequency
        • coloring_verified
      • determine_vertex_coloring()
      • graph_coloring_engine
        • graph_coloring_engine.name
  • Optimization
    • Simulated Annealing
      • linear_temperature_schedule()
      • geometric_temperature_schedule()
      • simulated_annealing()
      • multi_simulated_annealing()
  • Network Transformation
    • Network Conversion
      • convert_network()
    • Network Balancing
      • fiction::network_balancing_params
        • unify_outputs
      • network_balancing()
      • network_balancing_params
        • network_balancing_params.unify_outputs
      • network_balancing()
      • is_balanced()
    • Fanout Substitution
      • fiction::fanout_substitution_params
        • substitution_strategy
        • strategy
        • degree
        • threshold
        • seed
      • fanout_substitution()
      • fanout_substitution_params
        • fanout_substitution_params.degree
        • fanout_substitution_params.seed
        • fanout_substitution_params.strategy
        • fanout_substitution_params.threshold
      • substitution_strategy
        • substitution_strategy.name
      • fanout_substitution()
      • is_fanout_substituted()
    • Technology Mapping
      • fiction::technology_mapping_params
        • mapper_params
        • decay
        • and2
        • nand2
        • or2
        • nor2
        • xor2
        • xnor2
        • lt2
        • gt2
        • le2
        • ge2
        • and3
        • xor_and
        • or_and
        • onehot
        • maj3
        • gamble
        • dot
        • mux
        • and_xor
      • and_or_not()
      • and_or_not_maj()
      • all_standard_2_input_functions()
      • all_standard_3_input_functions()
      • all_supported_standard_functions()
      • fiction::technology_mapping_stats
        • report()
        • mapper_stats
      • technology_mapping()
      • technology_mapping_params
        • technology_mapping_params.and2
        • technology_mapping_params.and3
        • technology_mapping_params.and_xor
        • technology_mapping_params.decay
        • technology_mapping_params.dot
        • technology_mapping_params.gamble
        • technology_mapping_params.maj3
        • technology_mapping_params.mux
        • technology_mapping_params.nand2
        • technology_mapping_params.nor2
        • technology_mapping_params.onehot
        • technology_mapping_params.or2
        • technology_mapping_params.or_and
        • technology_mapping_params.xnor2
        • technology_mapping_params.xor2
        • technology_mapping_params.xor_and
      • and_or_not()
      • and_or_not_maj()
      • all_standard_2_input_functions()
      • all_standard_3_input_functions()
      • all_supported_standard_functions()
      • technology_mapping_stats
        • technology_mapping_stats.mapper_stats
        • technology_mapping_stats.report()
      • technology_mapping()
    • Delete Virtual PIs
      • delete_virtual_pis()
  • Physical Design
    • SMT-based Exact Physical Design
      • fiction::exact_physical_design_params
        • scheme
        • upper_bound_area
        • upper_bound_x
        • upper_bound_y
        • fixed_size
        • num_threads
        • crossings
        • io_pins
        • border_io
        • synchronization_elements
        • straight_inverters
        • desynchronize
        • minimize_wires
        • minimize_crossings
        • timeout
        • technology_specifics
      • fiction::exact_physical_design_stats
      • exact()
      • exact_with_blacklist()
      • exact_params
        • exact_params.border_io
        • exact_params.crossings
        • exact_params.desynchronize
        • exact_params.fixed_size
        • exact_params.minimize_crossings
        • exact_params.minimize_wires
        • exact_params.num_threads
        • exact_params.scheme
        • exact_params.straight_inverters
        • exact_params.technology_specifics
        • exact_params.timeout
        • exact_params.upper_bound_x
        • exact_params.upper_bound_y
      • exact_cartesian()
      • exact_hexagonal()
    • Scalable Orthogonal Physical Design
      • fiction::orthogonal_physical_design_params
        • number_of_clock_phases
      • fiction::orthogonal_physical_design_stats
      • orthogonal()
      • orthogonal_params
      • orthogonal()
    • Graph-oriented Layout Design
      • fiction::graph_oriented_layout_design_params
        • effort_mode
        • cost_objective
        • mode
        • num_vertex_expansions
        • return_first
        • timeout
        • planar
        • cost
        • enable_multithreading
        • verbose
        • seed
        • straight_inverters
        • tiles_to_skip_between_pis
        • randomize_tiles_to_skip_between_pis
      • fiction::graph_oriented_layout_design_stats
        • report()
        • time_total
        • x_size
        • y_size
        • num_gates
        • num_wires
        • num_crossings
      • graph_oriented_layout_design()
      • graph_oriented_layout_design_params
        • graph_oriented_layout_design_params.cost
        • graph_oriented_layout_design_params.enable_multithreading
        • graph_oriented_layout_design_params.mode
        • graph_oriented_layout_design_params.num_vertex_expansions
        • graph_oriented_layout_design_params.planar
        • graph_oriented_layout_design_params.randomize_tiles_to_skip_between_pis
        • graph_oriented_layout_design_params.return_first
        • graph_oriented_layout_design_params.seed
        • graph_oriented_layout_design_params.straight_inverters
        • graph_oriented_layout_design_params.tiles_to_skip_between_pis
        • graph_oriented_layout_design_params.timeout
        • graph_oriented_layout_design_params.verbose
      • graph_oriented_layout_design_stats
        • graph_oriented_layout_design_stats.num_crossings
        • graph_oriented_layout_design_stats.num_gates
        • graph_oriented_layout_design_stats.num_wires
        • graph_oriented_layout_design_stats.time_total
        • graph_oriented_layout_design_stats.x_size
        • graph_oriented_layout_design_stats.y_size
      • graph_oriented_layout_design()
    • SAT-based One-pass Synthesis
      • fiction::one_pass_synthesis_params
        • scheme
        • upper_bound_x
        • upper_bound_y
        • fixed_size
        • enable_wires
        • enable_not
        • enable_and
        • enable_or
        • enable_maj
        • crossings
        • io_pins
        • num_threads
        • timeout
        • name
      • fiction::one_pass_synthesis_stats
      • one_pass_synthesis()
      • one_pass_synthesis()
    • Multi-Path Routing (Color Routing)
      • fiction::color_routing_params
        • conduct_partial_routing
        • crossings
        • path_limit
        • engine
        • partial_sat
      • fiction::color_routing_stats
        • time_total
        • number_of_unsatisfied_objectives
        • epg_stats
        • color_stats
      • color_routing()
      • color_routing_params
        • color_routing_params.conduct_partial_routing
        • color_routing_params.crossings
        • color_routing_params.engine
        • color_routing_params.partial_sat
        • color_routing_params.path_limit
      • color_routing()
    • Mapping Cartesian to Hexagonal Layouts
      • fiction::hexagonalization_params
        • io_pin_extension_mode
        • input_pin_extension
        • output_pin_extension
      • fiction::hexagonalization_stats
        • report()
        • time_total
        • x_size
        • y_size
        • num_gates
        • num_wires
        • num_crossings
      • hexagonalization()
      • hexagonalization_params
        • hexagonalization_params.input_pin_extension
        • hexagonalization_params.output_pin_extension
      • hexagonalization_stats
        • hexagonalization_stats.num_crossings
        • hexagonalization_stats.num_gates
        • hexagonalization_stats.num_wires
        • hexagonalization_stats.time_total
        • hexagonalization_stats.x_size
        • hexagonalization_stats.y_size
      • hexagonalization()
    • Optimizing 2DDWave-clocked Cartesian Layouts
      • fiction::post_layout_optimization_params
        • max_gate_relocations
        • optimize_pos_only
        • planar_optimization
        • timeout
      • fiction::post_layout_optimization_stats
        • report()
        • time_total
        • x_size_before
        • y_size_before
        • x_size_after
        • y_size_after
        • area_improvement
        • num_wires_before
        • num_wires_after
        • num_crossings_before
        • num_crossings_after
      • post_layout_optimization()
      • post_layout_optimization_params
        • post_layout_optimization_params.max_gate_relocations
        • post_layout_optimization_params.optimize_pos_only
        • post_layout_optimization_params.planar_optimization
        • post_layout_optimization_params.timeout
      • post_layout_optimization_stats
        • post_layout_optimization_stats.area_improvement
        • post_layout_optimization_stats.num_crossings_after
        • post_layout_optimization_stats.num_crossings_before
        • post_layout_optimization_stats.num_wires_after
        • post_layout_optimization_stats.num_wires_before
        • post_layout_optimization_stats.report()
        • post_layout_optimization_stats.time_total
        • post_layout_optimization_stats.x_size_after
        • post_layout_optimization_stats.x_size_before
        • post_layout_optimization_stats.y_size_after
        • post_layout_optimization_stats.y_size_before
      • post_layout_optimization()
    • Wiring Reduction in 2DDWave-clocked Cartesian Layouts
      • fiction::wiring_reduction_params
        • timeout
      • fiction::wiring_reduction_stats
        • report()
        • time_total
        • x_size_before
        • y_size_before
        • x_size_after
        • y_size_after
        • num_wires_before
        • num_wires_after
        • wiring_improvement
        • area_improvement
      • wiring_reduction()
      • wiring_reduction_params
        • wiring_reduction_params.timeout
      • wiring_reduction_stats
        • wiring_reduction_stats.area_improvement
        • wiring_reduction_stats.num_wires_after
        • wiring_reduction_stats.num_wires_before
        • wiring_reduction_stats.report()
        • wiring_reduction_stats.time_total
        • wiring_reduction_stats.wiring_improvement
        • wiring_reduction_stats.x_size_after
        • wiring_reduction_stats.x_size_before
        • wiring_reduction_stats.y_size_after
        • wiring_reduction_stats.y_size_before
      • wiring_reduction()
    • Determine Clocking
      • fiction::determine_clocking_params
        • sat_engine
      • fiction::determine_clocking_stats
        • report()
        • time_total
      • determine_clocking()
    • Apply Gate Library
      • apply_gate_library()
      • apply_gate_library_to_defective_surface()
      • apply_parameterized_gate_library()
      • apply_parameterized_gate_library_to_defective_surface()
      • apply_qca_one_library()
      • apply_topolinano_library()
      • apply_bestagon_library()
    • SiDB Gate Designer
      • fiction::design_sidb_gates_stats
        • report()
        • time_total
        • pruning_total
        • sim_engine
        • number_of_layouts
        • number_of_layouts_after_first_pruning
        • number_of_layouts_after_second_pruning
        • number_of_layouts_after_third_pruning
      • fiction::design_sidb_gates_params
        • termination_condition
        • design_sidb_gates_mode
        • operational_params
        • design_mode
        • canvas
        • number_of_canvas_sidbs
        • termination_cond
      • design_sidb_gates()
      • design_sidb_gates_stats
      • design_sidb_gates_params
        • design_sidb_gates_params.canvas
        • design_sidb_gates_params.design_mode
        • design_sidb_gates_params.number_of_canvas_sidbs
        • design_sidb_gates_params.operational_params
        • design_sidb_gates_params.termination_cond
      • design_sidb_gates()
    • SiDB Circuit Design Algorithm in the Presence of Atomic Defects
      • fiction::on_the_fly_sidb_circuit_design_on_defective_surface_params
        • sidb_on_the_fly_gate_library_parameters
        • exact_design_parameters
      • fiction::on_the_fly_sidb_circuit_design_params
        • sidb_on_the_fly_gate_library_parameters
      • fiction::on_the_fly_circuit_design_on_defective_surface_stats
        • time_total
        • exact_stats
        • gate_layout
      • on_the_fly_sidb_circuit_design_on_defective_surface()
      • on_the_fly_sidb_circuit_design()
  • Verification
    • Design Rule Violations (DRVs)
      • fiction::gate_level_drv_params
        • unplaced_nodes
        • placed_dead_nodes
        • missing_connections
        • crossing_gates
        • clocked_data_flow
        • has_io
        • empty_io
        • io_pins
        • border_io
        • out
      • fiction::gate_level_drv_stats
        • report
        • drvs
        • warnings
      • gate_level_drvs()
      • gate_level_drv_params
        • gate_level_drv_params.border_io
        • gate_level_drv_params.clocked_data_flow
        • gate_level_drv_params.crossing_gates
        • gate_level_drv_params.empty_io
        • gate_level_drv_params.has_io
        • gate_level_drv_params.io_pins
        • gate_level_drv_params.missing_connections
        • gate_level_drv_params.placed_dead_nodes
        • gate_level_drv_params.unplaced_nodes
      • gate_level_drvs()
    • Equivalence Checking
      • eq_type
        • NO
        • WEAK
        • STRONG
      • fiction::equivalence_checking_stats
        • eq
        • tp_spec
        • counter_example
        • runtime
        • spec_drv_stats
      • equivalence_checking()
      • eq_type
        • eq_type.name
      • equivalence_checking()
    • Virtual Miter
      • virtual_miter()
  • Simulation
    • Physical Simulation of Silicon Dangling Bond Logic
      • Physical Parameters
        • fiction::sidb_simulation_parameters
        • sidb_simulation_parameters
      • Simulation Result
        • fiction::sidb_simulation_result
        • sidb_simulation_result_100
        • sidb_simulation_result_111
      • Heuristic Ground State Simulation
        • fiction::quicksim_params
        • quicksim()
        • quicksim_params
        • quicksim()
      • Exhaustive Ground State Simulation
        • fiction::quickexact_params
        • quickexact()
        • fiction::clustercomplete_params
        • clustercomplete()
        • exhaustive_ground_state_simulation()
        • quickexact_params
        • quickexact()
        • clustercomplete_params
        • clustercomplete()
        • exhaustive_ground_state_simulation()
      • Engine Selectors
        • sidb_simulation_engine
        • exact_sidb_simulation_engine
        • heuristic_sidb_simulation_engine
        • sidb_simulation_engine_name()
        • sidb_simulation_engine
        • exact_sidb_simulation_engine
        • heuristic_sidb_simulation_engine
        • sidb_simulation_engine_name()
      • Energy Calculation
        • fiction::energy_state
        • fiction::energy_distribution
        • calculate_energy_distribution()
        • minimum_energy()
        • minimum_energy_distribution()
        • is_ground_state()
        • calculate_energy_distribution()
        • minimum_energy()
        • is_ground_state()
      • Temperature Behavior
        • fiction::critical_temperature_params
        • critical_temperature_gate_based()
        • critical_temperature_non_gate_based()
        • calculate_boltzmann_factor()
        • occupation_probability_gate_based()
        • occupation_probability_non_gate_based()
        • state_type
        • sidb_energy_and_state_type
        • calculate_energy_and_state_type_with_kinks_accepted()
        • calculate_energy_and_state_type_with_kinks_rejected()
        • critical_temperature_stats
        • critical_temperature_params
        • critical_temperature_gate_based()
        • critical_temperature_non_gate_based()
        • occupation_probability_gate_based()
        • occupation_probability_non_gate_based()
        • calculate_energy_and_state_type_with_kinks_accepted()
        • calculate_energy_and_state_type_with_kinks_rejected()
      • Ground State Space Construction
        • fiction::ground_state_space_results
        • ground_state_space()
      • Time-to-Solution (TTS) Statistics
        • fiction::time_to_solution_params
        • fiction::time_to_solution_stats
        • time_to_solution()
        • time_to_solution_for_given_simulation_results()
        • time_to_solution_params
        • time_to_solution_stats
        • time_to_solution()
        • time_to_solution_for_given_simulation_results()
      • Random SiDB Layout Generator
        • fiction::generate_random_sidb_layout_params
        • generate_random_sidb_layout()
        • generate_multiple_random_sidb_layouts()
        • generate_random_sidb_layout_params
        • generate_random_sidb_layout()
        • generate_multiple_random_sidb_layouts()
      • Operational Domain Computation
        • operational_status
        • fiction::is_operational_params
        • is_operational()
        • is_operational()
        • operational_input_patterns()
        • operational_input_patterns()
        • is_kink_induced_non_operational()
        • is_kink_induced_non_operational()
        • kink_induced_non_operational_input_patterns()
        • kink_induced_non_operational_input_patterns()
        • fiction::parameter_point
        • sweep_parameter
        • fiction::operational_domain
        • fiction::critical_temperature_domain
        • fiction::operational_domain_value_range
        • fiction::operational_domain_params
        • fiction::operational_domain_stats
        • operational_domain_grid_search()
        • operational_domain_random_sampling()
        • operational_domain_flood_fill()
        • operational_domain_contour_tracing()
        • critical_temperature_domain_grid_search()
        • critical_temperature_domain_random_sampling()
        • critical_temperature_domain_flood_fill()
        • critical_temperature_domain_contour_tracing()
        • fiction::operational_domain_ratio_params
        • operational_domain_ratio()
        • verify_logic_match()
        • operational_status
        • operational_condition
        • operational_analysis_strategy
        • is_operational_params
        • is_operational()
        • operational_input_patterns()
        • is_kink_induced_non_operational()
        • kink_induced_non_operational_input_patterns()
        • sweep_parameter
        • parameter_point
        • operational_domain
        • critical_temperature_domain
        • operational_domain_value_range
        • operational_domain_params
        • operational_domain_stats
        • operational_domain_grid_search()
        • operational_domain_random_sampling()
        • operational_domain_flood_fill()
        • operational_domain_contour_tracing()
        • critical_temperature_domain_grid_search()
        • critical_temperature_domain_random_sampling()
        • critical_temperature_domain_flood_fill()
        • critical_temperature_domain_contour_tracing()
        • operational_domain_ratio_params
        • operational_domain_ratio()
      • Physically Valid Parameters
        • physically_valid_parameters()
        • physically_valid_parameters_domain
        • physically_valid_parameters
      • Displacement Robustness Domain
        • fiction::displacement_robustness_domain
        • fiction::displacement_robustness_domain_params
        • fiction::displacement_robustness_domain_stats
        • determine_displacement_robustness_domain()
        • determine_probability_of_fabricating_operational_gate()
        • dimer_displacement_policy
        • displacement_analysis_mode
        • displacement_robustness_domain_params()
        • displacement_robustness_domain_stats()
        • displacement_robustness_domain_100()
        • displacement_robustness_domain_111()
        • determine_displacement_robustness_domain_100()
        • determine_displacement_robustness_domain_111()
      • Utility Functions
        • Simulation Equivalence Checking
        • Charge Detection
        • Binary-dot Logic (BDL) Pair Detection
        • Binary-dot Logic (BDL) Wire Detection
        • Assess Population Stability
        • Band-Bending Resilience
        • Convert Potential to Distance
      • Fabrication Defects
        • SiDB Defect Types
        • SiDB Defect Surface
        • SiDB Defect Analysis
  • Properties
    • Critical Path (CP) and Throughput (TP)
      • critical_path_length_and_throughput()
      • critical_path_length_and_throughput()
    • Number of Gate Types
      • count_gate_types()

Technology

  • FCN Cell Technologies
    • Quantum-dot Cellular Automata (QCA)
      • fiction::qca_technology
        • cell_type
        • cell_mode
        • cell_mark
        • CELL_WIDTH
        • CELL_HEIGHT
        • CELL_HSPACE
        • CELL_VSPACE
      • qca_technology
        • qca_technology.cell_type
    • in-plane Nanomagnet Logic (iNML)
      • fiction::inml_technology
        • cell_type
        • cell_mark
        • CELL_WIDTH
        • CELL_HEIGHT
        • CELL_HSPACE
        • CELL_VSPACE
        • fiction::inml_technology::cell_mode
      • inml_technology
        • inml_technology.cell_type
    • Silicon Dangling Bonds (SiDB)
      • fiction::sidb_technology
        • cell_type
        • cell_mark
        • CELL_WIDTH
        • CELL_HEIGHT
        • CELL_HSPACE
        • CELL_VSPACE
        • fiction::sidb_technology::cell_mode
      • sidb_technology
        • sidb_technology.cell_type
  • H-Si Lattice Orientations
    • fiction::sidb_100_lattice
      • LAT_A
      • LAT_B
      • LAT_C
    • fiction::sidb_111_lattice
      • LAT_A
      • LAT_B
      • LAT_C
    • sidb_100_lattice
      • sidb_100_lattice.clone()
    • sidb_111_lattice
      • sidb_111_lattice.clone()
  • SiDB Lattice Layout
    • fiction::sidb_lattice
    • sidb_100_lattice
      • sidb_100_lattice.clone()
    • sidb_111_lattice
      • sidb_111_lattice.clone()
  • Fabrication Defects
    • SiDB Defect Types
      • sidb_defect_type
        • NONE
        • DB
        • SI_VACANCY
        • SINGLE_DIHYDRIDE
        • DIHYDRIDE_PAIR
        • ONE_BY_ONE
        • THREE_BY_ONE
        • SILOXANE
        • RAISED_SI
        • MISSING_DIMER
        • ETCH_PIT
        • STEP_EDGE
        • GUNK
        • ARSENIC
        • UNKNOWN
      • fiction::sidb_defect
        • sidb_defect()
        • operator==()
        • operator!=()
        • type
        • charge
        • epsilon_r
        • lambda_tf
      • is_charged_defect_type()
      • is_neutral_defect_type()
      • is_positively_charged_defect()
      • is_negatively_charged_defect()
      • is_neutrally_charged_defect()
      • SIDB_CHARGED_DEFECT_HORIZONTAL_SPACING
      • SIDB_CHARGED_DEFECT_VERTICAL_SPACING
      • SIDB_NEUTRAL_DEFECT_HORIZONTAL_SPACING
      • SIDB_NEUTRAL_DEFECT_VERTICAL_SPACING
      • defect_extent()
      • sidb_defect_type
        • sidb_defect_type.name
      • sidb_defect
        • sidb_defect.charge
        • sidb_defect.epsilon_r
        • sidb_defect.lambda_tf
        • sidb_defect.type
      • is_charged_defect_type()
      • is_neutral_defect_type()
      • is_positively_charged_defect()
      • is_negatively_charged_defect()
      • is_neutrally_charged_defect()
      • defect_extent()
    • SiDB Defect Surface
      • fiction::sidb_defect_surface
      • fiction::sidb_defect_surface< Lyt, true >
      • fiction::sidb_defect_surface< Lyt, false >
        • sidb_defect_surface()
        • sidb_defect_surface()
        • sidb_defect_surface()
        • clone()
        • assign_sidb_defect()
        • move_sidb_defect()
        • get_sidb_defect()
        • num_defects()
        • num_positively_charged_defects()
        • num_negatively_charged_defects()
        • num_charged_defects()
        • num_neutral_defects()
        • foreach_sidb_defect()
        • affected_sidbs()
        • all_affected_sidbs()
        • fiction::sidb_defect_surface< Lyt, false >::sidb_surface_storage
    • SiDB Defect Analysis
      • sidb_surface_analysis()
  • Physical Simulation of SiDBs
    • SiDB Charge States
      • sidb_charge_state
        • NEGATIVE
        • NEUTRAL
        • POSITIVE
        • NONE
      • SIDB_CHARGE_STATES_BASE_2
      • SIDB_CHARGE_STATES_BASE_3
      • sidb_charge_states_for_base_number()
      • charge_state_to_sign()
      • sign_to_charge_state()
      • charge_configuration_to_string()
      • sidb_charge_state
        • sidb_charge_state.name
      • charge_state_to_sign()
      • sign_to_charge_state()
      • charge_configuration_to_string()
    • SiDB Charge Distribution Surface
      • dependent_cell_mode
        • FIXED
        • VARIABLE
      • energy_calculation
        • KEEP_OLD_ENERGY_VALUE
        • UPDATE_ENERGY
      • charge_distribution_history
        • CONSIDER
        • NEGLECT
      • charge_index_recomputation
        • FROM_SCRATCH
        • IGNORE_LEADING_ZEROES
      • charge_distribution_mode
        • UPDATE_CHARGE_DISTRIBUTION
        • KEEP_CHARGE_DISTRIBUTION
      • charge_index_mode
        • UPDATE_CHARGE_INDEX
        • KEEP_CHARGE_INDEX
      • charge_transition_threshold_bounds
        • NEGATIVE_UPPER_BOUND
        • POSITIVE_LOWER_BOUND
        • NEUTRAL_LOWER_BOUND
        • NEUTRAL_UPPER_BOUND
      • fiction::charge_distribution_surface
      • fiction::charge_distribution_surface< Lyt, true >
      • fiction::charge_distribution_surface< Lyt, false >
        • charge_distribution_surface()
        • charge_distribution_surface()
        • charge_distribution_surface()
        • operator=()
        • charge_distribution_surface()
        • operator=()
        • ~charge_distribution_surface()
        • clone()
        • set_sidb_simulation_engine()
        • determine_effective_charge_transition_thresholds()
        • get_effective_charge_transition_thresholds()
        • get_all_sidb_locations_in_nm()
        • assign_cell_type()
        • assign_physical_parameters()
        • get_simulation_params()
        • charge_exists()
        • cell_to_index()
        • assign_charge_state()
        • assign_charge_state_by_index()
        • assign_all_charge_states()
        • assign_dependent_cell()
        • assign_base_number()
        • add_sidb_defect_to_potential_landscape()
        • erase_defect()
        • get_charge_state()
        • get_charge_state_by_index()
        • get_all_sidb_charges()
        • negative_sidb_detection()
        • get_nm_distance_between_sidbs()
        • get_nm_distance_by_indices()
        • calculate_chargeless_potential_between_sidbs_by_index()
        • calculate_chargeless_potential_between_sidbs()
        • get_chargeless_potential_between_sidbs()
        • get_chargeless_potential_by_indices()
        • get_potential_between_sidbs()
        • update_local_internal_potential()
        • update_local_external_potential()
        • update_local_defect_potential()
        • get_local_potential()
        • get_local_potential_by_index()
        • get_local_internal_potential()
        • get_local_internal_potential_by_index()
        • get_local_external_potential()
        • get_local_external_potential_by_index()
        • get_local_potential_caused_by_defects()
        • get_local_potential_caused_by_defects_by_index()
        • get_local_defect_potential()
        • assign_local_internal_potential_by_index()
        • assign_electrostatic_potential_energy_to_zero()
        • recompute_electrostatic_potential_energy()
        • get_electrostatic_potential_energy()
        • update_after_charge_change()
        • is_configuration_stable()
        • validity_check()
        • is_physically_valid()
        • declare_physically_valid()
        • charge_distribution_to_index_general()
        • charge_distribution_to_index()
        • get_charge_index_and_base()
        • increase_charge_index_by_one()
        • get_max_charge_index()
        • assign_charge_index()
        • adjacent_search()
        • is_three_state_simulation_required()
        • num_negative_sidbs()
        • num_neutral_sidbs()
        • num_positive_sidbs()
        • get_positive_candidates()
        • three_state_cell_to_index()
        • two_state_cell_to_index()
        • index_to_cell()
        • index_to_three_state_cell()
        • index_to_two_state_cell()
        • chargeless_potential_at_given_distance()
        • chargeless_potential_generated_by_defect_at_given_distance()
        • assign_global_external_potential()
        • assign_local_external_potential()
        • get_local_external_potential_map()
        • reset_local_external_potentials()
        • get_local_defect_potentials()
        • get_defects()
        • update_charge_state_of_dependent_cell()
        • get_charge_index_of_sub_layout()
        • charge_index_gray_code_to_charge_distribution()
        • increase_charge_index_of_sub_layout_by_one()
        • assign_charge_index_by_gray_code()
        • reset_charge_index_sub_layout()
        • get_max_charge_index_sub_layout()
        • assign_charge_index_by_two_gray_codes()
        • get_sidb_order()
        • add_sidb()
        • fiction::charge_distribution_surface< Lyt, false >::charge_distribution_storage
      • dependent_cell_mode
        • dependent_cell_mode.name
      • energy_calculation
        • energy_calculation.name
      • charge_index_mode
        • charge_index_mode.name
      • charge_index_mode
        • charge_index_mode.name
      • charge_distribution_surface_100
        • charge_distribution_surface_100.add_sidb()
        • charge_distribution_surface_100.add_sidb_defect_to_potential_landscape()
        • charge_distribution_surface_100.adjacent_search()
        • charge_distribution_surface_100.assign_all_charge_states()
        • charge_distribution_surface_100.assign_base_number()
        • charge_distribution_surface_100.assign_cell_type()
        • charge_distribution_surface_100.assign_charge_index()
        • charge_distribution_surface_100.assign_charge_index_by_gray_code()
        • charge_distribution_surface_100.assign_charge_index_by_two_gray_codes()
        • charge_distribution_surface_100.assign_charge_state()
        • charge_distribution_surface_100.assign_charge_state_by_index()
        • charge_distribution_surface_100.assign_dependent_cell()
        • charge_distribution_surface_100.assign_electrostatic_potential_energy_to_zero()
        • charge_distribution_surface_100.assign_global_external_potential()
        • charge_distribution_surface_100.assign_local_external_potential()
        • charge_distribution_surface_100.assign_physical_parameters()
        • charge_distribution_surface_100.bounding_box_2d()
        • charge_distribution_surface_100.calculate_chargeless_potential_between_sidbs()
        • charge_distribution_surface_100.calculate_chargeless_potential_between_sidbs_by_index()
        • charge_distribution_surface_100.cell_to_index()
        • charge_distribution_surface_100.cells()
        • charge_distribution_surface_100.charge_distribution_to_index()
        • charge_distribution_surface_100.charge_distribution_to_index_general()
        • charge_distribution_surface_100.charge_exists()
        • charge_distribution_surface_100.charge_index_gray_code_to_charge_distribution()
        • charge_distribution_surface_100.chargeless_potential_at_given_distance()
        • charge_distribution_surface_100.chargeless_potential_generated_by_defect_at_given_distance()
        • charge_distribution_surface_100.determine_effective_charge_transition_thresholds()
        • charge_distribution_surface_100.erase_defect()
        • charge_distribution_surface_100.get_all_sidb_charges()
        • charge_distribution_surface_100.get_all_sidb_locations_in_nm()
        • charge_distribution_surface_100.get_charge_index_and_base()
        • charge_distribution_surface_100.get_charge_index_of_sub_layout()
        • charge_distribution_surface_100.get_charge_state()
        • charge_distribution_surface_100.get_charge_state_by_index()
        • charge_distribution_surface_100.get_chargeless_potential_between_sidbs()
        • charge_distribution_surface_100.get_chargeless_potential_by_indices()
        • charge_distribution_surface_100.get_defects()
        • charge_distribution_surface_100.get_effective_charge_transition_thresholds()
        • charge_distribution_surface_100.get_electrostatic_potential_energy()
        • charge_distribution_surface_100.get_local_defect_potentials()
        • charge_distribution_surface_100.get_local_external_potential()
        • charge_distribution_surface_100.get_local_external_potential_by_index()
        • charge_distribution_surface_100.get_local_external_potential_map()
        • charge_distribution_surface_100.get_local_internal_potential()
        • charge_distribution_surface_100.get_local_internal_potential_by_index()
        • charge_distribution_surface_100.get_local_potential()
        • charge_distribution_surface_100.get_local_potential_by_index()
        • charge_distribution_surface_100.get_local_potential_caused_by_defects()
        • charge_distribution_surface_100.get_local_potential_caused_by_defects_by_index()
        • charge_distribution_surface_100.get_max_charge_index()
        • charge_distribution_surface_100.get_max_charge_index_sub_layout()
        • charge_distribution_surface_100.get_nm_distance_between_sidbs()
        • charge_distribution_surface_100.get_nm_distance_by_indices()
        • charge_distribution_surface_100.get_phys_params()
        • charge_distribution_surface_100.get_positive_candidates()
        • charge_distribution_surface_100.get_potential_between_sidbs()
        • charge_distribution_surface_100.get_sidb_order()
        • charge_distribution_surface_100.increase_charge_index_by_one()
        • charge_distribution_surface_100.increase_charge_index_of_sub_layout_by_one()
        • charge_distribution_surface_100.index_to_cell()
        • charge_distribution_surface_100.index_to_three_state_cell()
        • charge_distribution_surface_100.index_to_two_state_cell()
        • charge_distribution_surface_100.is_physically_valid()
        • charge_distribution_surface_100.is_three_state_simulation_required()
        • charge_distribution_surface_100.is_within_bounds()
        • charge_distribution_surface_100.negative_sidb_detection()
        • charge_distribution_surface_100.num_negative_sidbs()
        • charge_distribution_surface_100.num_neutral_sidbs()
        • charge_distribution_surface_100.num_positive_sidbs()
        • charge_distribution_surface_100.pis()
        • charge_distribution_surface_100.pos()
        • charge_distribution_surface_100.recompute_electrostatic_potential_energy()
        • charge_distribution_surface_100.reset_charge_index_sub_layout()
        • charge_distribution_surface_100.reset_local_external_potential()
        • charge_distribution_surface_100.three_state_cell_to_index()
        • charge_distribution_surface_100.two_state_cell_to_index()
        • charge_distribution_surface_100.update_after_charge_change()
        • charge_distribution_surface_100.update_charge_state_of_dependent_cell()
        • charge_distribution_surface_100.update_local_internal_potential()
        • charge_distribution_surface_100.validity_check()
      • charge_distribution_surface_111
        • charge_distribution_surface_111.add_sidb()
        • charge_distribution_surface_111.add_sidb_defect_to_potential_landscape()
        • charge_distribution_surface_111.adjacent_search()
        • charge_distribution_surface_111.assign_all_charge_states()
        • charge_distribution_surface_111.assign_base_number()
        • charge_distribution_surface_111.assign_cell_type()
        • charge_distribution_surface_111.assign_charge_index()
        • charge_distribution_surface_111.assign_charge_index_by_gray_code()
        • charge_distribution_surface_111.assign_charge_index_by_two_gray_codes()
        • charge_distribution_surface_111.assign_charge_state()
        • charge_distribution_surface_111.assign_charge_state_by_index()
        • charge_distribution_surface_111.assign_dependent_cell()
        • charge_distribution_surface_111.assign_electrostatic_potential_energy_to_zero()
        • charge_distribution_surface_111.assign_global_external_potential()
        • charge_distribution_surface_111.assign_local_external_potential()
        • charge_distribution_surface_111.assign_physical_parameters()
        • charge_distribution_surface_111.bounding_box_2d()
        • charge_distribution_surface_111.calculate_chargeless_potential_between_sidbs()
        • charge_distribution_surface_111.calculate_chargeless_potential_between_sidbs_by_index()
        • charge_distribution_surface_111.cell_to_index()
        • charge_distribution_surface_111.cells()
        • charge_distribution_surface_111.charge_distribution_to_index()
        • charge_distribution_surface_111.charge_distribution_to_index_general()
        • charge_distribution_surface_111.charge_exists()
        • charge_distribution_surface_111.charge_index_gray_code_to_charge_distribution()
        • charge_distribution_surface_111.chargeless_potential_at_given_distance()
        • charge_distribution_surface_111.chargeless_potential_generated_by_defect_at_given_distance()
        • charge_distribution_surface_111.determine_effective_charge_transition_thresholds()
        • charge_distribution_surface_111.erase_defect()
        • charge_distribution_surface_111.get_all_sidb_charges()
        • charge_distribution_surface_111.get_all_sidb_locations_in_nm()
        • charge_distribution_surface_111.get_charge_index_and_base()
        • charge_distribution_surface_111.get_charge_index_of_sub_layout()
        • charge_distribution_surface_111.get_charge_state()
        • charge_distribution_surface_111.get_charge_state_by_index()
        • charge_distribution_surface_111.get_chargeless_potential_between_sidbs()
        • charge_distribution_surface_111.get_chargeless_potential_by_indices()
        • charge_distribution_surface_111.get_defects()
        • charge_distribution_surface_111.get_effective_charge_transition_thresholds()
        • charge_distribution_surface_111.get_electrostatic_potential_energy()
        • charge_distribution_surface_111.get_local_defect_potentials()
        • charge_distribution_surface_111.get_local_external_potential()
        • charge_distribution_surface_111.get_local_external_potential_by_index()
        • charge_distribution_surface_111.get_local_external_potential_map()
        • charge_distribution_surface_111.get_local_internal_potential()
        • charge_distribution_surface_111.get_local_internal_potential_by_index()
        • charge_distribution_surface_111.get_local_potential()
        • charge_distribution_surface_111.get_local_potential_by_index()
        • charge_distribution_surface_111.get_local_potential_caused_by_defects()
        • charge_distribution_surface_111.get_local_potential_caused_by_defects_by_index()
        • charge_distribution_surface_111.get_max_charge_index()
        • charge_distribution_surface_111.get_max_charge_index_sub_layout()
        • charge_distribution_surface_111.get_nm_distance_between_sidbs()
        • charge_distribution_surface_111.get_nm_distance_by_indices()
        • charge_distribution_surface_111.get_phys_params()
        • charge_distribution_surface_111.get_positive_candidates()
        • charge_distribution_surface_111.get_potential_between_sidbs()
        • charge_distribution_surface_111.get_sidb_order()
        • charge_distribution_surface_111.increase_charge_index_by_one()
        • charge_distribution_surface_111.increase_charge_index_of_sub_layout_by_one()
        • charge_distribution_surface_111.index_to_cell()
        • charge_distribution_surface_111.index_to_three_state_cell()
        • charge_distribution_surface_111.index_to_two_state_cell()
        • charge_distribution_surface_111.is_physically_valid()
        • charge_distribution_surface_111.is_three_state_simulation_required()
        • charge_distribution_surface_111.is_within_bounds()
        • charge_distribution_surface_111.negative_sidb_detection()
        • charge_distribution_surface_111.num_negative_sidbs()
        • charge_distribution_surface_111.num_neutral_sidbs()
        • charge_distribution_surface_111.num_positive_sidbs()
        • charge_distribution_surface_111.pis()
        • charge_distribution_surface_111.pos()
        • charge_distribution_surface_111.recompute_electrostatic_potential_energy()
        • charge_distribution_surface_111.reset_charge_index_sub_layout()
        • charge_distribution_surface_111.reset_local_external_potential()
        • charge_distribution_surface_111.three_state_cell_to_index()
        • charge_distribution_surface_111.two_state_cell_to_index()
        • charge_distribution_surface_111.update_after_charge_change()
        • charge_distribution_surface_111.update_charge_state_of_dependent_cell()
        • charge_distribution_surface_111.update_local_internal_potential()
        • charge_distribution_surface_111.validity_check()
    • Is SiDB gate design deemed impossible
      • fiction::is_sidb_gate_design_impossible_params
        • simulation_params
        • bdl_iterator_params
      • is_sidb_gate_design_impossible()
    • Physical Constants
      • BOLTZMANN_CONSTANT
      • EV_TO_JOULE
      • EPSILON
      • ELEMENTARY_CHARGE
      • K_E
      • ERROR_MARGIN
      • PI
    • Euclidean distance between two SiDBs in nanometers
      • sidb_nm_distance()
      • sidb_nm_distance_100
      • sidb_nm_distance_111
    • SiDB Cluster Hierarchy
      • sidb_cluster_hierarchy_linkage_method
        • COMPLETE
        • SINGLE
        • UNWEIGHTED_AVERAGE
        • WEIGHTED_AVERAGE
        • MINIMUM_VARIANCE
      • fiction::sidb_binary_cluster_hierarchy_node
        • sidb_binary_cluster_hierarchy_node()
        • c
        • sub
      • sidb_cluster_hierarchy()
      • fiction::sidb_cluster_receptor_state
        • cluster
        • sidb_ix
      • fiction::sidb_cluster_projector_state
      • sidb_cluster_projector_state_ptr
      • bound_direction
        • LOWER
        • UPPER
      • potential_bound_top()
      • take_meet_of_potential_bounds()
      • fiction::potential_bounds_store
        • num_sidbs()
        • get()
        • set()
        • set()
        • update()
        • update()
        • initialize_complete_potential_bounds()
        • operator+=()
        • operator-=()
      • partial_potential_bounds_store
      • complete_potential_bounds_store
      • fiction::sidb_charge_space_composition
        • proj_states
        • pot_bounds
      • fiction::sidb_clustering_state
        • sidb_clustering_state()
        • ~sidb_clustering_state()
        • sidb_clustering_state()
        • operator=()
        • sidb_clustering_state()
        • operator=()
        • proj_states
        • pot_bounds
      • fiction::sidb_cluster_charge_state
        • sidb_cluster_charge_state()
        • sidb_cluster_charge_state()
        • sidb_cluster_charge_state()
        • operator uint64_t()
        • add_charge()
        • sidb_cluster_charge_state()
        • operator==()
        • operator()()
        • operator+=()
        • operator-=()
        • neg_count
        • pos_count
        • compositions
      • singleton_multiset_conf_to_charge_state()
      • fiction::potential_projection
        • potential_projection()
        • potential_projection()
        • potential_projection()
        • operator<()
        • operator+=()
        • pot_val
        • multiset
      • fiction::potential_projection_order
        • pot_proj_order
        • potential_projection_order()
        • potential_projection_order()
        • potential_projection_order()
        • get_bound()
        • get_next_bound()
        • get_pot_proj_for_m_conf()
        • remove_m_conf()
        • add()
        • order
      • sidb_cluster_charge_state_space
      • sidb_clustering
      • fiction::sidb_cluster
        • uid_t
        • sidb_ix
        • sidb_cluster()
        • get_parent()
        • initialize_singleton_cluster_charge_space()
        • num_sidbs()
        • operator==()
        • uid
        • sidbs
        • external_sidbs
        • children
        • parent
        • received_ext_pot_bounds
        • pot_projs
        • charge_space
      • get_projector_state_compositions()
      • to_unique_sidb_cluster()
      • to_sidb_cluster()
  • FCN Gate Libraries
    • Abstract Gate Library
      • fiction::fcn_gate_library
        • cell_list
        • fcn_gate
        • gate_functions
        • gate_ports
        • fcn_gate_library()
        • cell_list_to_gate()
        • rotate_90()
        • rotate_180()
        • rotate_270()
        • merge()
        • mark_cell()
        • gate_x_size()
        • gate_y_size()
      • fiction::unsupported_gate_type_exception
      • fiction::unsupported_gate_orientation_exception
        • where()
        • which_ports()
      • fiction::port_position
        • port_position()
        • port_position()
        • operator<()
        • operator==()
        • x
        • pi
        • po
      • fiction::port_direction
        • cardinal
        • port_direction()
        • port_direction()
        • operator<()
        • operator==()
        • dir
        • pi
        • po
      • fiction::port_list
        • port_type
        • port_list()
        • port_list()
        • operator==()
        • operator+=()
        • inp
    • QCA ONE Library
      • fiction::qca_one_library
        • set_up_gate()
        • post_layout_optimization()
    • iNML ToPoliNano Library
      • fiction::inml_topolinano_library
        • set_up_gate()
        • post_layout_optimization()
    • SiDB Bestagon Library
      • fiction::sidb_bestagon_library
        • set_up_gate()
        • get_functional_implementations()
        • get_gate_ports()
    • Parameterized SiDB Library
      • fiction::sidb_on_the_fly_gate_library_params
        • complex_gate_design_policy
        • design_gate_params
        • canvas_sidb_complex_gates
        • using_predefined_crossing_and_double_wire_if_possible
        • influence_radius_charged_defects
      • fiction::sidb_on_the_fly_gate_library
        • set_up_gate()
      • fiction::gate_design_exception
        • gate_design_exception()
        • which_tile()
        • which_truth_table()
        • which_port_list()

Input/Output

  • Input Parsing
    • Logic Networks
      • fiction::network_reader
        • network_reader()
        • get_networks()
      • read_technology_network()
    • Truth Tables
      • fiction::tt_reader
        • tt_reader()
        • tt_reader()
        • next()
    • Gate-level Layouts
      • read_fgl_layout()
      • read_fgl_layout()
      • read_fgl_layout()
      • read_fgl_layout()
      • fiction::fgl_parsing_error
      • read_cartesian_fgl_layout()
      • read_shifted_cartesian_fgl_layout()
      • read_hexagonal_fgl_layout()
      • fgl_parsing_error
    • Cell-level Layouts
      • read_sqd_layout()
      • read_sqd_layout()
      • read_sqd_layout()
      • read_sqd_layout()
      • fiction::sqd_parsing_error
      • read_sqd_layout_100()
      • read_sqd_layout_111()
      • sqd_parsing_error
      • read_fqca_layout()
      • read_fqca_layout()
      • fiction::unsupported_character_exception
      • fiction::undefined_cell_label_exception
      • fiction::unrecognized_cell_definition_exception
      • read_fqca_layout()
    • SiDB Surface Defects
      • read_sidb_surface_defects()
      • read_sidb_surface_defects()
      • fiction::unsupported_defect_index_exception
      • fiction::missing_sidb_position_exception
  • Visualization
    • Layout Printing
      • print_gate_level_layout()
      • print_cell_level_layout()
      • print_sidb_layout()
      • print_layout()
    • Graphviz (DOT) Drawers
      • fiction::technology_dot_drawer
      • fiction::color_view_drawer
      • fiction::edge_color_view_drawer
      • fiction::simple_gate_layout_tile_drawer
      • fiction::gate_layout_cartesian_drawer
      • fiction::gate_layout_shifted_cartesian_drawer
      • fiction::gate_layout_hexagonal_drawer
      • write_dot_layout()
      • write_dot_layout()
      • write_dot_layout()
    • SVG Images
      • fiction::write_qca_layout_svg_params
        • simple
      • write_qca_layout_svg()
      • write_qca_layout_svg()
      • fiction::unsupported_cell_type_exception
      • fiction::write_sidb_layout_svg_params
        • color_mode
        • sidb_lattice_mode
        • lattice_point_size
        • sidb_size
        • sidb_border_width
        • color_background
        • lattice_mode
      • write_sidb_layout_svg()
      • write_sidb_layout_svg()
      • write_qca_layout_svg_params
        • write_qca_layout_svg_params.simple
      • write_qca_layout_svg()
      • write_sidb_layout_svg_params
        • write_sidb_layout_svg_params.color_background
        • write_sidb_layout_svg_params.lattice_mode
        • write_sidb_layout_svg_params.lattice_point_size
        • write_sidb_layout_svg_params.sidb_border_width
        • write_sidb_layout_svg_params.sidb_size
      • write_sidb_layout_svg()
      • write_sidb_layout_svg_to_string()
  • Physical Simulation
    • QCADesigner
      • fiction::write_qca_layout_params
        • create_inter_layer_via_cells
      • write_qca_layout()
      • write_qca_layout()
      • write_qca_layout_params
        • write_qca_layout_params.create_inter_layer_via_cells
      • write_qca_layout()
    • QCA-STACK
      • fiction::write_fqca_layout_params
        • create_inter_layer_via_cells
      • write_fqca_layout()
      • write_fqca_layout()
      • fiction::out_of_cell_names_exception
      • write_fqca_layout_params
        • write_fqca_layout_params.create_inter_layer_via_cells
      • write_fqca_layout()
      • out_of_cell_names_exception
      • read_fqca_layout()
      • read_fqca_layout()
      • fiction::unsupported_character_exception
      • fiction::undefined_cell_label_exception
      • fiction::unrecognized_cell_definition_exception
      • read_fqca_layout()
      • unsupported_character_exception
      • undefined_cell_label_exception
      • unrecognized_cell_definition_exception
    • ToPoliNano
      • fiction::write_qcc_layout_params
        • use_filename_as_component_name
        • filename
      • write_qcc_layout()
      • write_qcc_layout()
      • write_qcc_layout()
    • MagCAD & SCERPA
      • write_qll_layout()
      • write_qll_layout()
      • write_qll_layout()
    • SiQAD
      • write_sqd_layout()
      • write_sqd_layout()
      • write_sqd_sim_result()
      • write_sqd_sim_result()
      • write_location_and_ground_state()
      • write_location_and_ground_state()
      • read_sqd_layout()
      • read_sqd_layout()
      • read_sqd_layout()
      • read_sqd_layout()
      • fiction::sqd_parsing_error
      • write_sqd_layout()
      • write_sqd_sim_result()
      • read_sqd_layout_100()
      • read_sqd_layout_111()
      • sqd_parsing_error
    • SiDB Operational Domain
      • fiction::write_operational_domain_params
        • sample_writing_mode
        • operational_tag
        • non_operational_tag
        • writing_mode
      • write_operational_domain()
      • write_operational_domain()
      • write_operational_domain_params
        • write_operational_domain_params.non_operational_tag
        • write_operational_domain_params.operational_tag
        • write_operational_domain_params.writing_mode
      • write_operational_domain()
      • write_critical_temperature_domain()
    • Technology-independent Gate-level Layouts
      • write_fgl_layout()
      • write_fgl_layout()
      • fiction::fgl_parsing_error
        • fgl_parsing_error()
      • write_fgl_layout()
      • fgl_parsing_error
  • Utility
    • fiction::csv_writer

Utility

  • Network Utils
    • mockturtle::edge
    • foreach_edge()
    • foreach_outgoing_edge()
    • foreach_incoming_edge()
    • fanouts()
    • fiction::fanin_container
      • fanin_nodes
      • constant_fanin
    • fanins()
    • num_constant_fanins()
    • fiction::high_degree_fanin_exception
    • has_high_degree_fanin_nodes()
    • fiction::fanin_edge_container
      • fanin_edges
    • fanin_edges()
    • has_incoming_primary_input()
    • all_incoming_edge_paths()
    • inverse_levels()
    • high_degree_fanin_exception
    • has_high_degree_fanin_nodes()
  • Truth Table Utils
    • create_id_tt()
    • create_not_tt()
    • create_and_tt()
    • create_or_tt()
    • create_nand_tt()
    • create_nor_tt()
    • create_xor_tt()
    • create_xnor_tt()
    • create_lt_tt()
    • create_gt_tt()
    • create_le_tt()
    • create_ge_tt()
    • create_and3_tt()
    • create_xor_and_tt()
    • create_or_and_tt()
    • create_onehot_tt()
    • create_maj_tt()
    • create_gamble_tt()
    • create_dot_tt()
    • create_ite_tt()
    • create_and_xor_tt()
    • create_xor3_tt()
    • create_double_wire_tt()
    • create_crossing_wire_tt()
    • create_fan_out_tt()
    • create_half_adder_tt()
    • create_id_tt()
    • create_not_tt()
    • create_and_tt()
    • create_or_tt()
    • create_nand_tt()
    • create_nor_tt()
    • create_xor_tt()
    • create_xnor_tt()
    • create_lt_tt()
    • create_gt_tt()
    • create_le_tt()
    • create_ge_tt()
    • create_and3_tt()
    • create_xor_and_tt()
    • create_or_and_tt()
    • create_onehot_tt()
    • create_maj_tt()
    • create_gamble_tt()
    • create_dot_tt()
    • create_ite_tt()
    • create_and_xor_tt()
    • create_xor3_tt()
    • create_double_wire_tt()
    • create_crossing_wire_tt()
    • create_fan_out_tt()
    • create_half_adder_tt()
  • Layout Utils
    • num_adjacent_coordinates()
    • relative_to_absolute_cell_position()
    • port_direction_to_coordinate()
    • normalize_layout_coordinates()
    • convert_layout_to_siqad_coordinates()
    • convert_layout_to_fiction_coordinates()
    • random_coordinate()
    • all_coordinates_in_spanned_area()
    • num_adjacent_coordinates()
    • normalize_layout_coordinates()
    • convert_layout_to_siqad_coordinates()
    • random_coordinate()
  • Map utils
    • find_key_with_tolerance()
  • Placement Utils
    • reserve_input_nodes()
    • place()
    • place()
    • place()
    • place()
    • place()
    • fiction::branching_signal_container
      • operator[]()
      • update_branch()
      • fiction::branching_signal_container::branching_signal
    • place()
    • reserve_input_nodes()
    • place()
  • Routing Utils
    • fiction::routing_objective
      • operator==()
    • fiction::layout_coordinate_path
    • fiction::path_collection
    • fiction::path_set
    • is_crossable_wire()
    • route_path()
    • extract_routing_objectives()
    • clear_routing()
    • is_crossable_wire()
    • route_path()
    • extract_routing_objectives()
    • clear_routing()
  • Name Utils
    • get_name()
    • set_name()
    • restore_network_name()
    • restore_input_names()
    • restore_output_names()
    • restore_signal_names()
    • restore_signal_names()
    • restore_names()
    • restore_names()
    • get_name()
    • set_name()
  • Array Utils
    • create_array()
    • convert_array()
    • convert_array_of_arrays()
  • STL Extensions
    • find_first_two_of()
    • fiction::searchable_priority_queue
      • find()
      • find()
      • contains()
    • safe_localtime()
  • Execution Policy Macros
    • FICTION_EXECUTION_POLICY_SEQ
    • FICTION_EXECUTION_POLICY_PAR
    • FICTION_EXECUTION_POLICY_PAR_UNSEQ
  • Ranges
    • fiction::range_t
      • range_t()
      • begin()
      • end()
      • cbegin()
      • cend()
  • Hashing
    • hash_combine()
  • Math Utils
    • round_to_n_decimal_places()
    • integral_abs()
    • binomial_coefficient()
    • determine_all_combinations_of_distributing_k_entities_on_n_positions()
    • cartesian_combinations()
  • phmap
    • locked_parallel_flat_hash_map
fiction
  • Search


© Copyright 2018-2023: Marcel Walter. 2023-present: Chair for Design Automation, Technical University of Munich (TUM).

Built with Sphinx using a theme provided by Read the Docs.