VecEnv

Struct VecEnv 

Source
pub struct VecEnv { /* private fields */ }
Expand description

A vectorized environment that steps multiple sub-environments in parallel.

Implementations§

Source§

impl VecEnv

Source

pub fn new(envs: Vec<Box<dyn RLEnv>>) -> Result<Self, RloxError>

Create a new vectorized environment from a list of sub-environments.

§Errors

Returns RloxError::EnvError if envs is empty.

Source

pub fn num_envs(&self) -> usize

Source

pub fn action_space(&self) -> &ActionSpace

Source

pub fn step_all( &mut self, actions: &[Action], ) -> Result<BatchTransition, RloxError>

Step all environments in parallel using Rayon.

If an environment is done after stepping, it is automatically reset and the returned observation is from the fresh episode.

Source

pub fn step_all_flat( &mut self, actions: &[Action], ) -> Result<BatchTransition, RloxError>

Step all environments in parallel, returning observations as a flat contiguous buffer.

Unlike step_all, this avoids per-env Vec allocations by collecting observations directly into obs_flat: Vec<f32> of shape [n_envs * obs_dim]. The obs field is left empty.

Source

pub fn reset_all( &mut self, seed: Option<u64>, ) -> Result<Vec<Observation>, RloxError>

Reset all environments, optionally seeding them deterministically.

When a master seed is provided, each env i gets derive_seed(master, i).

Trait Implementations§

Source§

impl BatchSteppable for VecEnv

Source§

fn step_batch( &mut self, actions: &[Action], ) -> Result<BatchTransition, RloxError>

Step all environments with the given actions (one per env).
Source§

fn reset_batch( &mut self, seed: Option<u64>, ) -> Result<Vec<Observation>, RloxError>

Reset all environments, optionally seeding them deterministically.
Source§

fn num_envs(&self) -> usize

Number of sub-environments in this batch.
Source§

fn action_space(&self) -> &ActionSpace

The shared action space (all sub-environments must have the same space).
Source§

fn obs_space(&self) -> &ObsSpace

The shared observation space.
Source§

impl Debug for VecEnv

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for VecEnv

§

impl !RefUnwindSafe for VecEnv

§

impl Send for VecEnv

§

impl Sync for VecEnv

§

impl Unpin for VecEnv

§

impl !UnwindSafe for VecEnv

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> 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

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

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V