code: def _build_and_solve_system(y, d, smoothing, kernel, epsilon, powers):
      """Build and solve the RBF interpolation system of equations.
  
      Parameters
      ----------
      y : (P, N) float ndarray
          Data point coordinates.
      d : (P, S) float ndarray
          Data values at `y`.
      smoothing : (P,) float ndarray
          Smoothing parameter for each data point.
      kernel : str
          Name of the RBF.
      epsilon : float
          Shape parameter.
      powers : (R, N) int ndarray
          The exponents for each monomial in the polynomial.
  
      Returns
      -------
      coeffs : (P + R, S) float ndarray
          Coefficients for each RBF and monomial.
      shift : (N,) float ndarray
          Domain shift used to create the polynomial matrix.
      scale : (N,) float ndarray
          Domain scaling used to create the polynomial matrix.
  
      """
      lhs, rhs, shift, scale = _build_system(
          y, d, smoothing, kernel, epsilon, powers
      )
      coeffs = cp.linalg.solve(lhs, rhs)
      return shift, scale, coeffs
  
file_path: cupy/cupyx/scipy/interpolate/_rbfinterp.py
imports: import math
  import warnings
  from itertools import combinations_with_replacement
  import cupy
label_desc: Use image node_id 6 for calling a global function with example usage: _build_and_solve_system(y, d, smoothing, kernel, epsilon, powers) and returns: shift,  scale,  coeffs