|
Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
|
Canonical quadtree node. More...
#include <tpl_ca_hashlife.H>
Public Attributes | |
| std::uint8_t | level |
1 ⇒ 2x2 leaf; k ⇒ 2^k × 2^k node | |
| std::uint8_t | bits |
| for level-1 leaves: NW NE SW SE bits | |
| std::uint64_t | population |
| number of alive cells covered by this node | |
| Node * | nw |
| Node * | ne |
| Node * | sw |
| Node * | se |
| Node * | result |
memoised next-generation result (level level - 1) | |
Canonical quadtree node.
Nodes are interned: two nodes with identical children (or identical bits, for level-1 leaves) are the same Node *.
Definition at line 215 of file tpl_ca_hashlife.H.
| std::uint8_t Aleph::CA::ca_hashlife_detail::Node::bits |
for level-1 leaves: NW NE SW SE bits
Definition at line 218 of file tpl_ca_hashlife.H.
Referenced by Aleph::CA::Hashlife_Engine::evolve_level_2(), Aleph::CA::Hashlife_Engine::expand(), Aleph::CA::Hashlife_Engine::set_in_node(), and Aleph::CA::Hashlife_Engine::visit_alive().
| std::uint8_t Aleph::CA::ca_hashlife_detail::Node::level |
1 ⇒ 2x2 leaf; k ⇒ 2^k × 2^k node
Definition at line 217 of file tpl_ca_hashlife.H.
Referenced by Aleph::CA::Hashlife_Engine::advance(), Aleph::CA::Hashlife_Engine::alive_at(), Aleph::CA::Hashlife_Engine::bbox(), Aleph::CA::Hashlife_Engine::evolve(), Aleph::CA::Hashlife_Engine::expand(), Aleph::CA::Hashlife_Engine::for_each_alive(), Aleph::CA::Hashlife_Engine::make_leaf(), Aleph::CA::Hashlife_Engine::make_node(), Aleph::CA::Hashlife_Engine::set_alive(), Aleph::CA::Hashlife_Engine::set_in_node(), Aleph::CA::Hashlife_Engine::stats(), and Aleph::CA::Hashlife_Engine::visit_alive().
| Node* Aleph::CA::ca_hashlife_detail::Node::ne |
Definition at line 221 of file tpl_ca_hashlife.H.
Referenced by Aleph::CA::Hashlife_Engine::center_of_4(), Aleph::CA::Hashlife_Engine::evolve(), Aleph::CA::Hashlife_Engine::evolve_level_2(), Aleph::CA::Hashlife_Engine::expand(), Aleph::CA::Hashlife_Engine::make_node(), Aleph::CA::ca_hashlife_detail::Node_Key::operator==(), Aleph::CA::Hashlife_Engine::set_in_node(), Aleph::CA::Hashlife_Engine::vertical_centered(), and Aleph::CA::Hashlife_Engine::visit_alive().
| Node* Aleph::CA::ca_hashlife_detail::Node::nw |
Definition at line 220 of file tpl_ca_hashlife.H.
Referenced by Aleph::CA::Hashlife_Engine::center_of_4(), Aleph::CA::Hashlife_Engine::evolve(), Aleph::CA::Hashlife_Engine::evolve_level_2(), Aleph::CA::Hashlife_Engine::expand(), Aleph::CA::Hashlife_Engine::horizontal_centered(), Aleph::CA::ca_hashlife_detail::Node_Key::operator==(), Aleph::CA::Hashlife_Engine::set_in_node(), Aleph::CA::Hashlife_Engine::vertical_centered(), and Aleph::CA::Hashlife_Engine::visit_alive().
| std::uint64_t Aleph::CA::ca_hashlife_detail::Node::population |
number of alive cells covered by this node
Definition at line 219 of file tpl_ca_hashlife.H.
Referenced by Aleph::CA::Hashlife_Engine::bbox(), Aleph::CA::Hashlife_Engine::for_each_alive(), Aleph::CA::Hashlife_Engine::make_node(), Aleph::CA::Hashlife_Engine::population(), and Aleph::CA::Hashlife_Engine::visit_alive().
| Node* Aleph::CA::ca_hashlife_detail::Node::result |
memoised next-generation result (level level - 1)
Definition at line 224 of file tpl_ca_hashlife.H.
Referenced by Aleph::CA::Hashlife_Engine::evolve().
| Node* Aleph::CA::ca_hashlife_detail::Node::se |
Definition at line 223 of file tpl_ca_hashlife.H.
Referenced by Aleph::CA::Hashlife_Engine::center_of_4(), Aleph::CA::Hashlife_Engine::evolve(), Aleph::CA::Hashlife_Engine::evolve_level_2(), Aleph::CA::Hashlife_Engine::expand(), Aleph::CA::Hashlife_Engine::horizontal_centered(), Aleph::CA::Hashlife_Engine::make_node(), Aleph::CA::ca_hashlife_detail::Node_Key::operator==(), Aleph::CA::Hashlife_Engine::set_in_node(), Aleph::CA::Hashlife_Engine::vertical_centered(), and Aleph::CA::Hashlife_Engine::visit_alive().
| Node* Aleph::CA::ca_hashlife_detail::Node::sw |
Definition at line 222 of file tpl_ca_hashlife.H.
Referenced by Aleph::CA::Hashlife_Engine::center_of_4(), Aleph::CA::Hashlife_Engine::evolve(), Aleph::CA::Hashlife_Engine::evolve_level_2(), Aleph::CA::Hashlife_Engine::expand(), Aleph::CA::Hashlife_Engine::horizontal_centered(), Aleph::CA::Hashlife_Engine::make_node(), Aleph::CA::ca_hashlife_detail::Node_Key::operator==(), Aleph::CA::Hashlife_Engine::set_in_node(), Aleph::CA::Hashlife_Engine::vertical_centered(), and Aleph::CA::Hashlife_Engine::visit_alive().