Source code for layeredrl.envs.affine_rew_wrapper

from typing import SupportsFloat

from gymnasium import RewardWrapper


[docs] class AffineRewWrapper(RewardWrapper): """Applies an affine linear transformation to the reward signal."""
[docs] def __init__( self, env, r_offset: SupportsFloat = 0.0, r_scale: SupportsFloat = 1.0 ): super().__init__(env) self._r_offset = float(r_offset) self._r_scale = float(r_scale) self.reward_range = (0.0, 1.0)
[docs] def reward(self, r: SupportsFloat) -> SupportsFloat: return self._r_scale * (r + self._r_offset)