code: def _update_log_spot(
      mean_reversion,
      theta,
      volvol,
      rho,
      current_vol,
      next_vol,
      current_log_spot,
      time_step,
      normals,
      gamma_1=0.5,
      gamma_2=0.5,
  ):
      """Updates log-spot value."""
      k_0 = -rho * mean_reversion * theta / volvol * time_step
      k_1 = (
          gamma_1 * time_step * (mean_reversion * rho / volvol - 0.5)
          - rho / volvol
      )
      k_2 = (
          gamma_2 * time_step * (mean_reversion * rho / volvol - 0.5)
          + rho / volvol
      )
      k_3 = gamma_1 * time_step * (1 - rho**2)
      k_4 = gamma_2 * time_step * (1 - rho**2)
  
      next_log_spot = (
          current_log_spot
          + k_0
          + k_1 * current_vol
          + k_2 * next_vol
          + tf.sqrt(k_3 * current_vol + k_4 * next_vol) * normals
      )
      return next_log_spot
  
file_path: tf-quant-finance/tf_quant_finance/models/heston/heston_model.py
imports: from typing import Union, Callable, Optional
  import numpy
  import tensorflow.compat.v2
  from tf_quant_finance import types
  from tf_quant_finance import utils
  from tf_quant_finance.math import piecewise
  from tf_quant_finance.math import random_ops
  from tf_quant_finance.models import generic_ito_process
  from tf_quant_finance.models import utils
label_desc: Use image node_id 3 for calling a global function with example usage: _update_log_spot(mean_reversion, theta, volvol, rho, current_vol, next_vol, current_log_spot, time_step, normals, gamma_1, gamma_2) and returns: next_log_spot