code: def swap_price(
      pay_leg_cashflows,
      receive_leg_cashflows,
      pay_leg_discount_factors,
      receive_leg_discount_factors,
      dtype=None,
      name=None,
  ):
      """Computes prices of a batch of generic swaps.
  
      #### Example
      ```python
      pay_leg_cashflows = [[100, 100, 100], [200, 250, 300]]
      receive_leg_cashflows = [[200, 250, 300, 300], [100, 100, 100, 100]]
      pay_leg_discount_factors = [[0.95, 0.9, 0.8],
                                  [0.9, 0.85, 0.8]]
      receive_leg_discount_factors = [[0.95, 0.9, 0.8, 0.75],
                                      [0.9, 0.85, 0.8, 0.75]]
      swap_price(pay_leg_cashflows=pay_leg_cashflows,
                 receive_leg_cashflows=receive_leg_cashflows,
                 pay_leg_discount_factors=pay_leg_discount_factors,
                 receive_leg_discount_factors=receive_leg_discount_factors,
                 dtype=tf.float64)
      # Expected: [615.0, -302.5]
      ```
  
      Args:
        pay_leg_cashflows: A real `Tensor` of shape
          `batch_shape + [num_pay_cashflows]`, where `num_pay_cashflows` is the
          number of cashflows for each batch element. Cashflows of the pay leg of
          the swaps.
        receive_leg_cashflows: A `Tensor` of the same `dtype` as `pay_leg_cashflows`
          and of shape `batch_shape + [num_receive_cashflows]` where
          `num_pay_cashflows` is the number of cashflows for each batch element.
          Cashflows of the receive leg of the swaps.
        pay_leg_discount_factors: A `Tensor` of the same `dtype` as
          `pay_leg_cashflows` and of compatible shape. Discount factors for each
          cashflow of the pay leg.
        receive_leg_discount_factors: A `Tensor` of the same `dtype` as
          `receive_leg_cashflows` and of compatible shape. Discount factors for each
          cashflow of the receive leg.
        dtype: `tf.Dtype`. If supplied the dtype for the input and output `Tensor`s.
          Default value: None which maps to the default dtype inferred from
          `pay_leg_cashflows`.
        name: Python str. The name to give to the ops created by this function.
          Default value: None which maps to 'floating_coupons'.
  
      Returns:
        A `Tensor` of the same `dtype` as `coupon_rates` and of shape `batch_shape`.
        Present values of swaps from receiver perspective.
      """
      name = name or "swap_price"
      with tf.name_scope(name):
          pay_leg_cashflows = tf.convert_to_tensor(
              pay_leg_cashflows, dtype=dtype, name="pay_leg_cashflows"
          )
          dtype = dtype or pay_leg_cashflows.dtype
          receive_leg_cashflows = tf.convert_to_tensor(
              receive_leg_cashflows,
              dtype=dtype,
              name="receive_leg_cashflows",
          )
          pay_leg_discount_factors = tf.convert_to_tensor(
              pay_leg_discount_factors,
              dtype=dtype,
              name="pay_leg_discount_factors",
          )
          receive_leg_discount_factors = tf.convert_to_tensor(
              receive_leg_discount_factors,
              dtype=dtype,
              name="receive_leg_discount_factors",
          )
          receive_leg_pv = cashflows.present_value(
              receive_leg_cashflows, receive_leg_discount_factors
          )
          pay_leg_pv = cashflows.present_value(
              pay_leg_cashflows, pay_leg_discount_factors
          )
          return receive_leg_pv - pay_leg_pv
  
file_path: tf-quant-finance/tf_quant_finance/rates/analytics/swap.py
imports: import tensorflow.compat.v2
  from tf_quant_finance.rates.analytics import cashflows
label_desc: Use image node_id 1 for calling a global function with example usage: swap_price(pay_leg_cashflows, receive_leg_cashflows, pay_leg_discount_factors, receive_leg_discount_factors, dtype, name) and returns: unknown