|
Bicameral Engine
GPU-resident engine for a magic-research open-world game
|
Functions | |
| bool | IsObserverSlot (const MultiresNest &nest, uint32_t slot) |
| void | RefineShadowLevel (MultiresNest &nest, uint32_t parentSlot, uint32_t childSlot, const MultiresPoint &point) |
| void | PullBackLevel (MultiresNest &nest, const ReactionTableView &table, uint32_t shadowSlot) |
| Wide256 | MakeWide256 (uint64_t high, uint64_t low, bool negative) |
| Wide256 | ShiftLeft (const Wide256 &value, uint32_t bits) |
| Wide256 | MultiplySmall (Wide256 value, uint32_t factor) |
| void | AddTo (Wide256 &sum, const Wide256 &value) |
| void | AddCellTotals (ConservedTotals &totals, const BakedReactionTable &table, const RxCell &cell, const MrFraction &fraction, uint32_t shiftBits) |
| Wide256 | LedgerValue (uint64_t value, int32_t level, int32_t finestLevel) |
| void | AddLedgerColumn (ConservedTotals &totals, const BakedReactionTable &table, uint32_t column, const Wide256 &amount) |
| void | AddLedgerTotals (ConservedTotals &totals, const MultiresNest &nest, const BakedReactionTable &table, int32_t finestLevel) |
| uint64_t | HashFraction (const MrFraction &fraction) |
| uint64_t | HashBlock (const MrBlock &block) |
| uint64_t | FractionEnergy (const MultiresNest &nest, uint32_t fractionSlot, uint32_t index) |
| nest_detail::BlockStepResult | StepPagedBlock (MultiresNest &nest, const ReactionTableView &view, uint32_t slot, uint64_t worldSeed, uint64_t tick, bool react, std::span< const MrEnergyDelta > deltas) |
| reaction::RxCell & | CellAt (MultiresNest &nest, uint32_t slot, uint32_t index) |
| multires::MrFraction | FractionAt (const MultiresNest &nest, uint32_t fractionSlot, uint32_t index) |
| reaction::RxCell & | PageCellAt (MultiresNest &nest, uint32_t page, uint32_t index) |
| reaction::RxCell & | UniformAt (MultiresNest &nest, uint32_t slot) |
| void bicameral::sim::anonymous_namespace{multires_nest.cpp}::AddCellTotals | ( | ConservedTotals & | totals, |
| const BakedReactionTable & | table, | ||
| const RxCell & | cell, | ||
| const MrFraction & | fraction, | ||
| uint32_t | shiftBits ) |
Definition at line 112 of file multires_nest.cpp.
References AddCellTotals(), AddTo(), bicameral::sim::ConservedTotals::elements, bicameral::sim::ConservedTotals::energy, MakeWide256(), MultiplySmall(), ShiftLeft(), and bicameral::sim::BakedReactionTable::speciesElements.
Referenced by AddCellTotals().
| void bicameral::sim::anonymous_namespace{multires_nest.cpp}::AddLedgerColumn | ( | ConservedTotals & | totals, |
| const BakedReactionTable & | table, | ||
| uint32_t | column, | ||
| const Wide256 & | amount ) |
Definition at line 138 of file multires_nest.cpp.
References AddLedgerColumn(), AddTo(), bicameral::sim::ConservedTotals::elements, bicameral::sim::ConservedTotals::energy, MultiplySmall(), and bicameral::sim::BakedReactionTable::speciesElements.
Referenced by AddLedgerColumn(), and AddLedgerTotals().
| void bicameral::sim::anonymous_namespace{multires_nest.cpp}::AddLedgerTotals | ( | ConservedTotals & | totals, |
| const MultiresNest & | nest, | ||
| const BakedReactionTable & | table, | ||
| int32_t | finestLevel ) |
Definition at line 154 of file multires_nest.cpp.
References AddLedgerColumn(), AddLedgerTotals(), bicameral::sim::MultiresNest::capacity, bicameral::sim::MultiresNest::ledger, bicameral::sim::MultiresCapacity::ledgerColumns, and LedgerValue().
Referenced by AddLedgerTotals().
| void bicameral::sim::anonymous_namespace{multires_nest.cpp}::AddTo | ( | Wide256 & | sum, |
| const Wide256 & | value ) |
Definition at line 102 of file multires_nest.cpp.
References AddTo().
Referenced by AddCellTotals(), AddLedgerColumn(), and AddTo().
|
inline |
Definition at line 40 of file multires_nest_internal.h.
Referenced by PullBackLevel(), and StepPagedBlock().
|
inline |
Definition at line 59 of file multires_nest_internal.h.
Referenced by FractionEnergy().
| uint64_t bicameral::sim::anonymous_namespace{multires_nest.cpp}::FractionEnergy | ( | const MultiresNest & | nest, |
| uint32_t | fractionSlot, | ||
| uint32_t | index ) |
Definition at line 195 of file multires_nest.cpp.
References FractionAt(), and FractionEnergy().
Referenced by FractionEnergy(), and StepPagedBlock().
| uint64_t bicameral::sim::anonymous_namespace{multires_nest.cpp}::HashBlock | ( | const MrBlock & | block | ) |
Definition at line 178 of file multires_nest.cpp.
References HashBlock().
Referenced by HashBlock().
| uint64_t bicameral::sim::anonymous_namespace{multires_nest.cpp}::HashFraction | ( | const MrFraction & | fraction | ) |
Definition at line 167 of file multires_nest.cpp.
References HashFraction().
Referenced by HashFraction().
| bool bicameral::sim::anonymous_namespace{multires_nest.cpp}::IsObserverSlot | ( | const MultiresNest & | nest, |
| uint32_t | slot ) |
Definition at line 25 of file multires_nest.cpp.
References bicameral::sim::MultiresNest::blocks, bicameral::sim::MultiresNest::capacity, IsObserverSlot(), and bicameral::sim::MultiresCapacity::worldBlocks.
Referenced by IsObserverSlot(), and RefineShadowLevel().
| Wide256 bicameral::sim::anonymous_namespace{multires_nest.cpp}::LedgerValue | ( | uint64_t | value, |
| int32_t | level, | ||
| int32_t | finestLevel ) |
Definition at line 131 of file multires_nest.cpp.
References LedgerValue(), and ShiftLeft().
Referenced by AddLedgerTotals(), and LedgerValue().
| Wide256 bicameral::sim::anonymous_namespace{multires_nest.cpp}::MakeWide256 | ( | uint64_t | high, |
| uint64_t | low, | ||
| bool | negative ) |
Definition at line 67 of file multires_nest.cpp.
References MakeWide256().
Referenced by AddCellTotals(), and MakeWide256().
| Wide256 bicameral::sim::anonymous_namespace{multires_nest.cpp}::MultiplySmall | ( | Wide256 | value, |
| uint32_t | factor ) |
Definition at line 90 of file multires_nest.cpp.
References MultiplySmall().
Referenced by AddCellTotals(), AddLedgerColumn(), and MultiplySmall().
|
inline |
Definition at line 35 of file multires_nest_internal.h.
Referenced by RefineShadowLevel().
| void bicameral::sim::anonymous_namespace{multires_nest.cpp}::PullBackLevel | ( | MultiresNest & | nest, |
| const ReactionTableView & | table, | ||
| uint32_t | shadowSlot ) |
Definition at line 44 of file multires_nest.cpp.
References bicameral::sim::MultiresNest::blocks, CellAt(), bicameral::sim::MultiresNest::counters, bicameral::sim::LoadNestCell(), and PullBackLevel().
Referenced by PullBackLevel().
| void bicameral::sim::anonymous_namespace{multires_nest.cpp}::RefineShadowLevel | ( | MultiresNest & | nest, |
| uint32_t | parentSlot, | ||
| uint32_t | childSlot, | ||
| const MultiresPoint & | point ) |
Definition at line 29 of file multires_nest.cpp.
References bicameral::sim::MultiresNest::blocks, bicameral::sim::MultiresNest::capacity, IsObserverSlot(), bicameral::sim::MultiresPoint::level, bicameral::sim::LoadNestCell(), PageCellAt(), RefineShadowLevel(), bicameral::sim::MultiresCapacity::worldBlocks, bicameral::sim::MultiresPoint::x, bicameral::sim::MultiresPoint::y, and bicameral::sim::MultiresPoint::z.
Referenced by RefineShadowLevel().
| Wide256 bicameral::sim::anonymous_namespace{multires_nest.cpp}::ShiftLeft | ( | const Wide256 & | value, |
| uint32_t | bits ) |
Definition at line 74 of file multires_nest.cpp.
References ShiftLeft().
Referenced by AddCellTotals(), LedgerValue(), and ShiftLeft().
| nest_detail::BlockStepResult bicameral::sim::anonymous_namespace{multires_nest.cpp}::StepPagedBlock | ( | MultiresNest & | nest, |
| const ReactionTableView & | view, | ||
| uint32_t | slot, | ||
| uint64_t | worldSeed, | ||
| uint64_t | tick, | ||
| bool | react, | ||
| std::span< const MrEnergyDelta > | deltas ) |
Definition at line 201 of file multires_nest.cpp.
References bicameral::sim::nest_detail::ApplyEnergyDelta(), bicameral::sim::MultiresNest::blocks, CellAt(), bicameral::sim::nest_detail::BlockStepResult::changed, bicameral::sim::MultiresNest::counters, bicameral::sim::nest_detail::BlockStepResult::evaluated, FractionEnergy(), bicameral::sim::nest_detail::PageCellAddress(), StepPagedBlock(), and bicameral::sim::nest_detail::BlockStepResult::wakeTick.
Referenced by StepPagedBlock().
|
inline |
Definition at line 27 of file multires_nest_internal.h.