Loops ===== ``cubie.integrators.loops`` --------------------------- The loop package supplies the CUDA-oriented orchestration layer for Cubie's integrators. The :class:`~cubie.integrators.loops.IVPLoop` factory compiles a device function that drives per-step algorithms, manages shared-memory buffers, and coordinates summary collection through the provided callbacks. Supporting configuration classes in :mod:`cubie.integrators.loops.ode_loop_config` describe shared and persistent local memory layouts expected during kernel launches. .. toctree:: :hidden: :maxdepth: 1 :titlesonly: loops/ivp_loop loops/ode_loop_config loops/loop_shared_indices loops/loop_local_indices Loop factory ------------ * :doc:`IVPLoop ` – builds compiled CUDA loops that step through IVP integrations. Configuration helpers --------------------- * :doc:`ODELoopConfig ` – captures metadata describing loop memory layout and dimensions. * :doc:`LoopSharedIndices ` – describes offsets for shared-memory buffers. * :doc:`LoopLocalIndices ` – indexes persistent local buffers and device scratch space. Dependencies ------------ * Relies on :class:`cubie.CUDAFactory` for caching compiled device functions. * Consumes CUDA device callbacks supplied by :mod:`cubie.integrators.algorithms` and :mod:`cubie.integrators.step_control`. * Shares precision helpers with :mod:`cubie._utils` to standardise float handling across the integrator stack.