class_docstr: Base class for bivariate splines.
  
  This describes a spline ``s(x, y)`` of degrees ``kx`` and ``ky`` on
  the rectangle ``[xb, xe] * [yb, ye]`` calculated from a given set
  of data points ``(x, y, z)``.
  
  This class is meant to be subclassed, not instantiated directly.
  To construct these splines, call either `SmoothBivariateSpline` or
  `LSQBivariateSpline` or `RectBivariateSpline`.
  
  See Also
  --------
  UnivariateSpline :
      a smooth univariate spline to fit a given set of data points.
  SmoothBivariateSpline :
      a smoothing bivariate spline through the given points
  LSQBivariateSpline :
      a bivariate spline using weighted least-squares fitting
  RectSphereBivariateSpline :
      a bivariate spline over a rectangular mesh on a sphere
  SmoothSphereBivariateSpline :
      a smoothing bivariate spline in spherical coordinates
  LSQSphereBivariateSpline :
      a bivariate spline in spherical coordinates using weighted
      least-squares fitting
  RectBivariateSpline :
      a bivariate spline over a rectangular mesh.
  bisplrep :
      a function to find a bivariate B-spline representation of a surface
  bisplev :
      a function to evaluate a bivariate B-spline and its derivatives
class_docstr_tok: ["Base","class","for","bivariate","splines",".","This","describes","a","spline","``","s","(","x",",","y",")","``","of","degrees","``","kx","``","and","``","ky","``","on","the","rectangle","``","[","xb",",","xe","]","*","[","yb",",","ye","]","``","calculated","from","a","given","set","of","data","points","``","(","x",",","y",",","z",")","``",".","This","class","is","meant","to","be","subclassed",",","not","instantiated","directly",".","To","construct","these","splines",",","call","either","`","SmoothBivariateSpline","`","or","`","LSQBivariateSpline","`","or","`","RectBivariateSpline","`",".","See","Also","--","--","--","--","UnivariateSpline",":","a","smooth","univariate","spline","to","fit","a","given","set","of","data","points",".","SmoothBivariateSpline",":","a","smoothing","bivariate","spline","through","the","given","points","LSQBivariateSpline",":","a","bivariate","spline","using","weighted","least-squares","fitting","RectSphereBivariateSpline",":","a","bivariate","spline","over","a","rectangular","mesh","on","a","sphere","SmoothSphereBivariateSpline",":","a","smoothing","bivariate","spline","in","spherical","coordinates","LSQSphereBivariateSpline",":","a","bivariate","spline","in","spherical","coordinates","using","weighted","least-squares","fitting","RectBivariateSpline",":","a","bivariate","spline","over","a","rectangular","mesh",".","bisplrep",":","a","function","to","find","a","bivariate","B-spline","representation","of","a","surface","bisplev",":","a","function","to","evaluate","a","bivariate","B-spline","and","its","derivatives"]
code: def _validate_input(x, y, z, w, kx, ky, eps):
      x, y, z = np.asarray(x), np.asarray(y), np.asarray(z)
      if not x.size == y.size == z.size:
          raise ValueError("x, y, and z should have a same length")
  
      if w is not None:
          w = np.asarray(w)
          if x.size != w.size:
              raise ValueError(
                  "x, y, z, and w should have a same length"
              )
          elif not np.all(w >= 0.0):
              raise ValueError("w should be positive")
      if (eps is not None) and (not 0.0 < eps < 1.0):
          raise ValueError("eps should be between (0, 1)")
      if not x.size >= (kx + 1) * (ky + 1):
          raise ValueError(
              "The length of x, y and z should be at least"
              " (kx+1) * (ky+1)"
          )
      return x, y, z, w
  
imports: import warnings
  from numpy import zeros, concatenate, ravel, diff, array, ones
  import numpy
  from .None import _fitpack_impl
  from .None import dfitpack
label_desc: Use image node_id 3 for calling the BivariateSpline obj's underlying member method code with example usage: obj._validate_input(x, y, z, w, kx, ky, eps) and returns: x,  y,  z,  w