# encoding: utf-8
# module scipy.interpolate._interpnd
# from C:\Programs\Python\Python313\Lib\site-packages\scipy\interpolate\_interpnd.cp313-win_amd64.pyd
# by generator 1.147
"""
Simple N-D interpolation

.. versionadded:: 0.9
"""

# imports
import builtins as __builtins__ # <module 'builtins' (built-in)>
import numpy as np # C:\Programs\Python\Python313\Lib\site-packages\numpy\__init__.py
import scipy.spatial._qhull as qhull # C:\Programs\Python\Python313\Lib\site-packages\scipy\spatial\_qhull.cp313-win_amd64.pyd
import warnings as warnings # C:\Programs\Python\Python313\Lib\warnings.py

# functions

def estimate_gradients_2d_global(*args, **kwargs): # real signature unknown
    pass

def _ndim_coords_from_arrays(*args, **kwargs): # real signature unknown
    """ Convert a tuple of coordinate arrays to a (..., ndim)-shaped array. """
    pass

def __pyx_unpickle_Enum(*args, **kwargs): # real signature unknown
    pass

# classes

class NDInterpolatorBase(object):
    """
    Common routines for interpolators.
    
        .. versionadded:: 0.9
    """
    def _calculate_triangulation(self, *args, **kwargs): # real signature unknown
        pass

    def _check_call_shape(self, *args, **kwargs): # real signature unknown
        pass

    def _preprocess_xi(self, *args, **kwargs): # real signature unknown
        pass

    def _scale_x(self, *args, **kwargs): # real signature unknown
        pass

    def _set_values(self, *args, **kwargs): # real signature unknown
        pass

    def __call__(self, *args, **kwargs): # real signature unknown
        """
        interpolator(xi)
        
                Evaluate interpolator at given points.
        
                Parameters
                ----------
                x1, x2, ... xn: array-like of float
                    Points where to interpolate data at.
                    x1, x2, ... xn can be array-like of float with broadcastable shape.
                    or x1 can be array-like of float with shape ``(..., ndim)``
        """
        pass

    def __init__(self, *args, **kwargs): # real signature unknown
        """
        Check shape of points and values arrays, and reshape values to
                (npoints, nvalues).  Ensure the `points` and values arrays are
                C-contiguous, and of correct type.
        """
        pass

    __weakref__ = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
    """list of weak references to the object"""


    __dict__ = None # (!) real value is "mappingproxy({'__module__': 'scipy.interpolate._interpnd', '__doc__': '\\n    Common routines for interpolators.\\n\\n    .. versionadded:: 0.9\\n\\n    ', '__init__': <cyfunction NDInterpolatorBase.__init__ at 0x000002C47A176A80>, '_calculate_triangulation': <cyfunction NDInterpolatorBase._calculate_triangulation at 0x000002C47A177E00>, '_set_values': <cyfunction NDInterpolatorBase._set_values at 0x000002C47A177ED0>, '_check_call_shape': <cyfunction NDInterpolatorBase._check_call_shape at 0x000002C47A224110>, '_scale_x': <cyfunction NDInterpolatorBase._scale_x at 0x000002C47A2241E0>, '_preprocess_xi': <cyfunction NDInterpolatorBase._preprocess_xi at 0x000002C47A2242B0>, '__call__': <cyfunction NDInterpolatorBase.__call__ at 0x000002C47A224380>, '__dict__': <attribute '__dict__' of 'NDInterpolatorBase' objects>, '__weakref__': <attribute '__weakref__' of 'NDInterpolatorBase' objects>})"


class CloughTocher2DInterpolator(NDInterpolatorBase):
    """
    CloughTocher2DInterpolator(points, values, tol=1e-6).
    
        Piecewise cubic, C1 smooth, curvature-minimizing interpolator in 2D.
    
        .. versionadded:: 0.9
    
        Methods
        -------
        __call__
    
        Parameters
        ----------
        points : ndarray of floats, shape (npoints, ndims); or Delaunay
            2-D array of data point coordinates, or a precomputed Delaunay triangulation.
        values : ndarray of float or complex, shape (npoints, ...)
            N-D array of data values at `points`. The length of `values` along the
            first axis must be equal to the length of `points`. Unlike some
            interpolators, the interpolation axis cannot be changed.
        fill_value : float, optional
            Value used to fill in for requested points outside of the
            convex hull of the input points.  If not provided, then
            the default is ``nan``.
        tol : float, optional
            Absolute/relative tolerance for gradient estimation.
        maxiter : int, optional
            Maximum number of iterations in gradient estimation.
        rescale : bool, optional
            Rescale points to unit cube before performing interpolation.
            This is useful if some of the input dimensions have
            incommensurable units and differ by many orders of magnitude.
    
        Notes
        -----
        The interpolant is constructed by triangulating the input data
        with Qhull [1]_, and constructing a piecewise cubic
        interpolating Bezier polynomial on each triangle, using a
        Clough-Tocher scheme [CT]_.  The interpolant is guaranteed to be
        continuously differentiable.
    
        The gradients of the interpolant are chosen so that the curvature
        of the interpolating surface is approximatively minimized. The
        gradients necessary for this are estimated using the global
        algorithm described in [Nielson83]_ and [Renka84]_.
    
        .. note:: For data on a regular grid use `interpn` instead.
    
        Examples
        --------
        We can interpolate values on a 2D plane:
    
        >>> from scipy.interpolate import CloughTocher2DInterpolator
        >>> import numpy as np
        >>> import matplotlib.pyplot as plt
        >>> rng = np.random.default_rng()
        >>> x = rng.random(10) - 0.5
        >>> y = rng.random(10) - 0.5
        >>> z = np.hypot(x, y)
        >>> X = np.linspace(min(x), max(x))
        >>> Y = np.linspace(min(y), max(y))
        >>> X, Y = np.meshgrid(X, Y)  # 2D grid for interpolation
        >>> interp = CloughTocher2DInterpolator(list(zip(x, y)), z)
        >>> Z = interp(X, Y)
        >>> plt.pcolormesh(X, Y, Z, shading='auto')
        >>> plt.plot(x, y, "ok", label="input point")
        >>> plt.legend()
        >>> plt.colorbar()
        >>> plt.axis("equal")
        >>> plt.show()
    
        See also
        --------
        griddata :
            Interpolate unstructured D-D data.
        LinearNDInterpolator :
            Piecewise linear interpolator in N > 1 dimensions.
        NearestNDInterpolator :
            Nearest-neighbor interpolator in N > 1 dimensions.
        interpn : Interpolation on a regular grid or rectilinear grid.
        RegularGridInterpolator : Interpolator on a regular or rectilinear grid
                                  in arbitrary dimensions (`interpn` wraps this
                                  class).
    
        References
        ----------
        .. [1] http://www.qhull.org/
    
        .. [CT] See, for example,
           P. Alfeld,
           ''A trivariate Clough-Tocher scheme for tetrahedral data''.
           Computer Aided Geometric Design, 1, 169 (1984);
           G. Farin,
           ''Triangular Bernstein-Bezier patches''.
           Computer Aided Geometric Design, 3, 83 (1986).
    
        .. [Nielson83] G. Nielson,
           ''A method for interpolating scattered data based upon a minimum norm
           network''.
           Math. Comp., 40, 253 (1983).
    
        .. [Renka84] R. J. Renka and A. K. Cline.
           ''A Triangle-based C1 interpolation method.'',
           Rocky Mountain J. Math., 14, 223 (1984).
    """
    def _calculate_triangulation(self, *args, **kwargs): # real signature unknown
        pass

    def _do_evaluate(self, *args, **kwargs): # real signature unknown
        pass

    def _evaluate_complex(self, *args, **kwargs): # real signature unknown
        pass

    def _evaluate_double(self, *args, **kwargs): # real signature unknown
        pass

    def _set_values(self, *args, **kwargs): # real signature unknown
        """
        Sets the values of the interpolation points.
        
                Parameters
                ----------
                values : ndarray of float or complex, shape (npoints, ...)
                    Data values.
        """
        pass

    def __init__(self, *args, **kwargs): # real signature unknown
        pass


class GradientEstimationWarning(Warning):
    # no doc
    def __init__(self, *args, **kwargs): # real signature unknown
        pass

    __weakref__ = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
    """list of weak references to the object"""



class LinearNDInterpolator(NDInterpolatorBase):
    """
    LinearNDInterpolator(points, values, fill_value=np.nan, rescale=False)
    
        Piecewise linear interpolator in N > 1 dimensions.
    
        .. versionadded:: 0.9
    
        Methods
        -------
        __call__
    
        Parameters
        ----------
        points : ndarray of floats, shape (npoints, ndims); or Delaunay
            2-D array of data point coordinates, or a precomputed Delaunay triangulation.
        values : ndarray of float or complex, shape (npoints, ...), optional
            N-D array of data values at `points`.  The length of `values` along the
            first axis must be equal to the length of `points`. Unlike some
            interpolators, the interpolation axis cannot be changed.
        fill_value : float, optional
            Value used to fill in for requested points outside of the
            convex hull of the input points.  If not provided, then
            the default is ``nan``.
        rescale : bool, optional
            Rescale points to unit cube before performing interpolation.
            This is useful if some of the input dimensions have
            incommensurable units and differ by many orders of magnitude.
    
        Notes
        -----
        The interpolant is constructed by triangulating the input data
        with Qhull [1]_, and on each triangle performing linear
        barycentric interpolation.
    
        .. note:: For data on a regular grid use `interpn` instead.
    
        Examples
        --------
        We can interpolate values on a 2D plane:
    
        >>> from scipy.interpolate import LinearNDInterpolator
        >>> import numpy as np
        >>> import matplotlib.pyplot as plt
        >>> rng = np.random.default_rng()
        >>> x = rng.random(10) - 0.5
        >>> y = rng.random(10) - 0.5
        >>> z = np.hypot(x, y)
        >>> X = np.linspace(min(x), max(x))
        >>> Y = np.linspace(min(y), max(y))
        >>> X, Y = np.meshgrid(X, Y)  # 2D grid for interpolation
        >>> interp = LinearNDInterpolator(list(zip(x, y)), z)
        >>> Z = interp(X, Y)
        >>> plt.pcolormesh(X, Y, Z, shading='auto')
        >>> plt.plot(x, y, "ok", label="input point")
        >>> plt.legend()
        >>> plt.colorbar()
        >>> plt.axis("equal")
        >>> plt.show()
    
        See also
        --------
        griddata :
            Interpolate unstructured D-D data.
        NearestNDInterpolator :
            Nearest-neighbor interpolator in N dimensions.
        CloughTocher2DInterpolator :
            Piecewise cubic, C1 smooth, curvature-minimizing interpolator in 2D.
        interpn : Interpolation on a regular grid or rectilinear grid.
        RegularGridInterpolator : Interpolator on a regular or rectilinear grid
                                  in arbitrary dimensions (`interpn` wraps this
                                  class).
    
        References
        ----------
        .. [1] http://www.qhull.org/
    """
    def _calculate_triangulation(self, *args, **kwargs): # real signature unknown
        pass

    def _do_evaluate(self, *args, **kwargs): # real signature unknown
        pass

    def _evaluate_complex(self, *args, **kwargs): # real signature unknown
        pass

    def _evaluate_double(self, *args, **kwargs): # real signature unknown
        pass

    def __init__(self, *args, **kwargs): # real signature unknown
        pass


# variables with complex values

__loader__ = None # (!) real value is '<_frozen_importlib_external.ExtensionFileLoader object at 0x000002C47A1EB590>'

__spec__ = None # (!) real value is "ModuleSpec(name='scipy.interpolate._interpnd', loader=<_frozen_importlib_external.ExtensionFileLoader object at 0x000002C47A1EB590>, origin='C:\\\\Programs\\\\Python\\\\Python313\\\\Lib\\\\site-packages\\\\scipy\\\\interpolate\\\\_interpnd.cp313-win_amd64.pyd')"

__test__ = {}

