docstr: !!! SGMSE authors observed instabilities around t=0.2. !!!
  
  Construct an Ornstein-Uhlenbeck Variance Preserving SDE:
  
  dx = -1/2 * beta(t) * stiffness * (y-x) dt + sqrt(beta(t)) * dw
  
  with
  
  beta(t) = beta_min + t(beta_max - beta_min)
  
  Note that the "steady-state mean" `y` is not provided at construction,
  but must rather be given as an argument to the methods which
  require it (e.g., `sde` or `marginal_prob`).
  
  Args:
      beta_min: smallest sigma.
      beta_max: largest sigma.
      stiffness: stiffness factor of the drift. 1 by default.
      N: number of discretization steps
code: def __init__(
      self, beta_min, beta_max, stiffness=1, N=1000, **ignored_kwargs
  ):
      """
      !!! SGMSE authors observed instabilities around t=0.2. !!!
  
      Construct an Ornstein-Uhlenbeck Variance Preserving SDE:
  
      dx = -1/2 * beta(t) * stiffness * (y-x) dt + sqrt(beta(t)) * dw
  
      with
  
      beta(t) = beta_min + t(beta_max - beta_min)
  
      Note that the "steady-state mean" `y` is not provided at construction,
      but must rather be given as an argument to the methods which
      require it (e.g., `sde` or `marginal_prob`).
  
      Args:
          beta_min: smallest sigma.
          beta_max: largest sigma.
          stiffness: stiffness factor of the drift. 1 by default.
          N: number of discretization steps
      """
      super().__init__(N)
      self.beta_min = beta_min
      self.beta_max = beta_max
      self.stiffness = stiffness
      self.N = N
  
imports: import abc
  import warnings
  import numpy
  import torch
label_desc: Use image node_id 1 to create a new OUVPSDE object from inherited base classes: SDE with example: obj = OUVPSDE(beta_min, beta_max, stiffness, N)