code: def _get_linear_ramps(padded, axis, width_pair, end_value_pair):
      edge_pair = _get_edges(padded, axis, width_pair)
      if width_pair[0] > 0:
          left_ramp = ivy.linspace(
              end_value_pair[0],
              ivy.array(edge_pair[0].squeeze(axis=axis)),
              num=width_pair[0],
              endpoint=False,
              dtype=ivy.Dtype(str(padded.dtype)),
              axis=axis,
          )
      else:
          left_ramp = ivy.empty((0,))
      if width_pair[1] > 0:
          right_ramp = ivy.flip(
              ivy.linspace(
                  end_value_pair[1],
                  ivy.array(edge_pair[1].squeeze(axis=axis)),
                  num=width_pair[1],
                  endpoint=False,
                  dtype=ivy.Dtype(str(padded.dtype)),
                  axis=axis,
              ),
              axis=axis,
          )
      else:
          right_ramp = ivy.empty((0,))
      return left_ramp, right_ramp
  
imports: from typing import Optional, Union, Tuple, Iterable, Sequence, Callable, Any, Literal, List
  from numbers import Number
  from functools import partial
  import math
  import ivy
  from ivy.func_wrapper import handle_out_argument, handle_partial_mixed_function, to_native_arrays_and_back, inputs_to_native_shapes, handle_nestable, handle_array_like_without_promotion, handle_view, inputs_to_ivy_arrays, handle_array_function, handle_device, handle_backend_invalid
  from ivy.functional.ivy.general import _numel
  from ivy.utils.backend import current_backend
  from ivy.utils.exceptions import handle_exceptions
label_desc: Use image node_id 17 for calling a global function with example usage: _get_linear_ramps(padded, axis, width_pair, end_value_pair) and returns: left_ramp,  right_ramp