code: def apply_interpolation(query_points, train_points, w, v, order):
      """Apply polyharmonic interpolation model to data.
  
      Notes:
          Given coefficients w and v for the interpolation model, we evaluate
          interpolated function values at query_points.
  
      Args:
          query_points: `[b, m, d]` x values to evaluate the interpolation at
          train_points: `[b, n, d]` x values that act as the interpolation centers
              ( the c variables in the wikipedia article)
              w: `[b, n, k]` weights on each interpolation center
              v: `[b, d, k]` weights on each input dimension
          order: order of the interpolation
  
      Returns:
          Polyharmonic interpolation evaluated at points defined in query_points.
      """
      query_points = query_points.unsqueeze(0)
      # First, compute the contribution from the rbf term.
      pairwise_dists = cross_squared_distance_matrix(
          query_points.float(), train_points.float()
      )
      phi_pairwise_dists = phi(pairwise_dists, order)
  
      rbf_term = torch.matmul(phi_pairwise_dists, w)
  
      # Then, compute the contribution from the linear term.
      # Pad query_points with ones, for the bias term in the linear model.
      ones = torch.ones_like(query_points[..., :1])
      query_points_pad = torch.cat((query_points, ones), 2).float()
      linear_term = torch.matmul(query_points_pad, v)
  
      return rbf_term + linear_term
  
file_path: espnet/espnet/utils/spec_augment.py
imports: import random
  import torch
label_desc: Use image node_id 14 for calling a global function with example usage: apply_interpolation(query_points, train_points, w, v, order) and returns: unknown