pub struct VecEnv { /* private fields */ }Expand description
A vectorized environment that steps multiple sub-environments in parallel.
Implementations§
Source§impl VecEnv
impl VecEnv
Sourcepub fn new(envs: Vec<Box<dyn RLEnv>>) -> Result<Self, RloxError>
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.
pub fn num_envs(&self) -> usize
pub fn action_space(&self) -> &ActionSpace
Sourcepub fn step_all(
&mut self,
actions: &[Action],
) -> Result<BatchTransition, RloxError>
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.
Sourcepub fn step_all_flat(
&mut self,
actions: &[Action],
) -> Result<BatchTransition, RloxError>
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.
Trait Implementations§
Source§impl BatchSteppable for VecEnv
impl BatchSteppable for VecEnv
Source§fn step_batch(
&mut self,
actions: &[Action],
) -> Result<BatchTransition, RloxError>
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>
fn reset_batch( &mut self, seed: Option<u64>, ) -> Result<Vec<Observation>, RloxError>
Reset all environments, optionally seeding them deterministically.
Source§fn action_space(&self) -> &ActionSpace
fn action_space(&self) -> &ActionSpace
The shared action space (all sub-environments must have the same space).
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> 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
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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