class_docstr: Stores relevant information about the domain on which PRVs are discretized, and
  includes a few convenience methods for manipulating it.
code: def create_aligned(
      cls, t_min: float, t_max: float, dt: float
  ) -> "Domain":
      t_min = np.floor(t_min / dt) * dt
      t_max = np.ceil(t_max / dt) * dt
  
      size = int(np.round((t_max - t_min) / dt)) + 1
  
      if size % 2 == 1:
          size += 1
          t_max += dt
  
      domain = cls(t_min, t_max, size)
  
      if np.abs(domain.dt - dt) / dt >= 1e-8:
          raise RuntimeError
  
      return domain
  
file_path: opacus/opacus/accountants/analysis/prv/domain.py
imports: from dataclasses import dataclass
  from typing import Sequence
  import numpy
  from ...rdp import RDPAccountant
label_desc: Use image node_id 2 for calling the Domain obj's underlying member method code with example usage: obj.create_aligned(cls, t_min, t_max, dt) and returns: domain