jaxoplanet.experimental.limb_dark_poly_coeffs
=============================================

.. py:module:: jaxoplanet.experimental.limb_dark_poly_coeffs


Functions
---------

.. autoapisummary::

   jaxoplanet.experimental.limb_dark_poly_coeffs.calc_poly_coeffs


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

.. py:function:: calc_poly_coeffs(mu: jaxtyping.Array, intensity_profile: jaxtyping.Array, poly_degree: int = 10) -> jaxtyping.Array

   Calculate the polynomial coefficients for a limb-darkening intensity profile.

   As `jaxoplanet` uses an arbitrary polynomial limb-darkening law
   (see `Agol et al. (2020) <https://arxiv.org/pdf/1908.03222>`), this function may
   be useful for users wanting to use non-polynomial limb-darkening laws
   within the `jaxoplanet` framework.
   Given a limb-darkening profile, this function will fit the profile with
   a polynomial of a user-specified order/degree and return the least-squares
   polynomial coefficients.
   These coefficients can then be passed as the `u` parameter when using the
   `light_curve` objects.

   The intensity profile should be relatively densely evaluated as otherwise
   the polynomial approximation may be non-monotonic.

   :param mu: An array of values between 0 and 1 indicating the locations where
              the limb-darkening intensity profile was evaluated. `mu` is the cosine
              of the angle between the line of sight and the emergent intensity and
              is `1` at the center of the star and `0` at the limb.
   :type mu: Array
   :param intensity_profile: A stellar limb-darkening intensity profile.
                             We assume the profile is normalized so that it's value is `1` at the center
                             of the star.
   :type intensity_profile: Array
   :param poly_degree: The degree/order of the polynomial. Setting this to `1` would
                       fit with a straight line, `2` would fit with a quadratic, and so on.
                       We set the default to a relatively high value of 10.
   :type poly_degree: int

   :returns: An array containing the polynomial coefficients that can be passed to
             the `light_curve` objects. The size of this array will be equal to the
             `poly_degree` value, and the ordering of the coefficients corresponds to the
             lowest order to the highest order of the polynomial.


