Skip to main content

ModulatorVector

Struct ModulatorVector 

Source
pub struct ModulatorVector {
    pub dopamine: f32,
    pub serotonin: f32,
    pub acetylcholine: f32,
    pub norepinephrine: f32,
}
Expand description

A vector of neuromodulator concentrations.

Critics populate these fields from an Environment observation (and, for temporal critics, from internal state). Consumers typically feed the values into synaptic plasticity rules, attention gating, or other neuromodulatory pathways.

Field ranges depend on which critic produced the vector; see each field’s documentation and the critic-level docs for exact mappings. Vectors from try_assess are finite and inside those ranges; assess may yield NaN when given non-finite observations (IEEE passthrough).

Fields§

§dopamine: f32

Dopamine — shaped reward / objective-delta drive.

Semantic role: a bounded scalar that downstream plasticity can use to reinforce or weaken recent activity. TDCritic produces a signed value from an EMA of objective deltas, not from a learned prediction-error network.

Ranges by critic:

  • SimpleCritic: clamped to [0.0, 1.0] (non-negative objective mapped through; negative objective → 0.0).
  • TDCritic: signed, clamped to [-1.0, 1.0] after an EMA of the temporal-difference error is passed through tanh.
§serotonin: f32

Serotonin — risk / volatility.

Semantic role: tracks environmental uncertainty or risk load. Both critics read this from Environment::volatility and clamp it to [0.0, 1.0].

§acetylcholine: f32

Acetylcholine — focus / surprise.

Semantic role: elevates attention or learning rate when the world is novel or outcomes are unexpected.

Ranges by critic (both clamp to [0.0, 1.0]):

§norepinephrine: f32

Norepinephrine — stress / instability.

Semantic role: reflects system pressure (error rates, thermal load, latency spikes, etc.). Both critics map Environment::stress into this field and clamp it to [0.0, 1.0].

Trait Implementations§

Source§

impl Clone for ModulatorVector

Source§

fn clone(&self) -> ModulatorVector

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for ModulatorVector

Source§

impl Debug for ModulatorVector

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ModulatorVector

Source§

fn default() -> ModulatorVector

Returns the “default value” for a type. Read more
Source§

impl PartialEq for ModulatorVector

Source§

fn eq(&self, other: &ModulatorVector) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for ModulatorVector

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.