pub struct Oracle {
pub products: Vec<Class>,
pub sums: Vec<Class>,
pub vectors: Vec<[u32; 3]>,
}Expand description
What the oracle is built from: the classes of the multiply and of the add, and the vectors its ROM holds.
Fields§
§products: Vec<Class>§sums: Vec<Class>§vectors: Vec<[u32; 3]>Implementations§
Source§impl Oracle
impl Oracle
Sourcepub fn from_ledger(json: &str) -> Result<Oracle, OracleError>
pub fn from_ledger(json: &str) -> Result<Oracle, OracleError>
The oracle benchmarks/silicon/d5005/fp_discriminators.json describes: each class’s first member, the
multiply’s and the add’s vectors with C zero, then fma_vectors.
Sourcepub fn counter_beats(&self) -> usize
pub fn counter_beats(&self) -> usize
The store’s beats of counters, eight to a beat.
Sourcepub fn records_at(&self) -> usize
pub fn records_at(&self) -> usize
The store’s first record beat.
Sourcepub fn record_cap(&self) -> usize
pub fn record_cap(&self) -> usize
The most records a run stores.
Sourcepub fn core_verilog(&self) -> String
pub fn core_verilog(&self) -> String
The oracle’s core (logos_fp_oracle) with its soft classes, its vector ROM and its store: every module the
engine top instantiates but the crossing and the hard block.
Sourcepub fn own_verilog(&self) -> String
pub fn own_verilog(&self) -> String
The modules the oracle writes itself, which say what the card measures and how its record reads: its classes’
units, its vector ROM and delay line, its core. The rest of Oracle::engine_verilog is the library’s it
embeds: the engine’s crossing, the store’s memory, and the persona’s engine top over the engine’s ports.
Sourcepub fn engine_verilog(&self) -> String
pub fn engine_verilog(&self) -> String
The persona’s logos_engine: the core behind the engine’s crossing, with every module it is built of but the
hard block, which Quartus places.
Trait Implementations§
impl StructuralPartialEq for Oracle
Auto Trait Implementations§
impl Freeze for Oracle
impl RefUnwindSafe for Oracle
impl Send for Oracle
impl Sync for Oracle
impl Unpin for Oracle
impl UnsafeUnpin for Oracle
impl UnwindSafe for Oracle
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.