def sim_step_torch()

in ml3/envs/mountain_car.py [0:0]


    def sim_step_torch(self, state, action):

        position = state[0]
        velocity = state[1]

        action = torch.clamp(action, min=self.min_action, max=self.max_action)

        velocity = velocity + (self.g * self.m * torch.cos(3.0 * position) + (action / self.m) - (
                    self.k * velocity)) * self.delta_t
        position = position + (velocity * self.delta_t)

        if (velocity.data > self.max_speed): velocity.data = torch.Tensor([self.max_speed])
        if (velocity.data < -self.max_speed): velocity.data = torch.Tensor([-self.max_speed])

        if (position.data >= self.max_position): position.data = torch.Tensor([self.max_position])
        if (position.data < self.min_position): position.data = torch.Tensor([self.min_position])
        if (position.data == self.min_position and velocity.data < 0): velocity.data = torch.Tensor([0.0])

        new_state = torch.stack([position.squeeze(), velocity.squeeze()])
        return new_state