code: def piecewise_rational_quadratic_transform(
      inputs,
      unnormalized_widths,
      unnormalized_heights,
      unnormalized_derivatives,
      inverse=False,
      tails=None,
      tail_bound=1.0,
      min_bin_width=DEFAULT_MIN_BIN_WIDTH,
      min_bin_height=DEFAULT_MIN_BIN_HEIGHT,
      min_derivative=DEFAULT_MIN_DERIVATIVE,
  ):
      if tails is None:
          spline_fn = rational_quadratic_spline
          spline_kwargs = {}
      else:
          spline_fn = unconstrained_rational_quadratic_spline
          spline_kwargs = {"tails": tails, "tail_bound": tail_bound}
  
      outputs, logabsdet = spline_fn(
          inputs=inputs,
          unnormalized_widths=unnormalized_widths,
          unnormalized_heights=unnormalized_heights,
          unnormalized_derivatives=unnormalized_derivatives,
          inverse=inverse,
          min_bin_width=min_bin_width,
          min_bin_height=min_bin_height,
          min_derivative=min_derivative,
          **spline_kwargs,
      )
      return outputs, logabsdet
  
imports: import numpy
  import torch
  from torch.nn import functional
label_desc: Use image node_id 1 for calling a global function with example usage: piecewise_rational_quadratic_transform(inputs, unnormalized_widths, unnormalized_heights, unnormalized_derivatives, inverse, tails, tail_bound, min_bin_width, min_bin_height, min_derivative) and returns: outputs,  logabsdet