jaxoplanet.starry.surface_is_physical
=====================================

.. py:module:: jaxoplanet.starry.surface_is_physical


Functions
---------

.. autoapisummary::

   jaxoplanet.starry.surface_is_physical.fibonacci_grid
   jaxoplanet.starry.surface_is_physical.surface_min_intensity


Module Contents
---------------

.. py:function:: fibonacci_grid(oversample: int, lmax: int)

.. py:function:: surface_min_intensity(surface: jaxoplanet.starry.surface.Surface, oversample: int, lmax: int, newton_iters: int = 12, damping: float = 0.001, step: float = 1.0)

   Fully JAX, end-to-end differentiable approximate global min:
     1) seed from tiny equal-area grid
     2) run fixed M Newton steps from each seed in parallel
     3) take global min across seeds

   :param surface: jaxoplanet Surface object with .intensity(lat, lon)
   :param oversample: define N = oversample * lmax^2 seeds
   :param lmax: define N = oversample * lmax^2 seeds
   :param newton_iters: fixed Newton iterations per seed (no line search)
   :param damping: Levenberg-Marquardt diagonal added to Hessian
   :param step: Newton step scaling (e.g., 1.0 or 0.5)

   :returns: (lat_min, lon_min), min_val


