code: def _mnorm_logp_internal(
      colsize, rowsize, logdet_row, logdet_col, solve_row, solve_col
  ):
      """Construct logp from the solves and determinants.
  
      Parameters
      ----------------
      colsize: int
          Column dimnesion of observation tensor
      rowsize: int
          Row dimension of observation tensor
      logdet_row: tf.Tensor (scalar)
          log-determinant of row covariance
      logdet_col: tf.Tensor (scalar)
          log-determinant of column covariance
      solve_row: tf.Tensor
          Inverse row covariance multiplying the observation tensor
      solve_col
          Inverse column covariance multiplying the transpose of
          the observation tensor
      """
      log2pi = 1.8378770664093453
  
      logging.log(
          logging.DEBUG,
          f"column precision trace ={tlinalg.trace(solve_col)}",
      )
      logging.log(
          logging.DEBUG,
          f"row precision trace ={tlinalg.trace(solve_row)}",
      )
      logging.log(logging.DEBUG, f"row cov logdet ={logdet_row}")
      logging.log(logging.DEBUG, f"col cov logdet ={logdet_col}")
  
      denominator = (
          -rowsize * colsize * log2pi
          - colsize * logdet_row
          - rowsize * logdet_col
      )
      numerator = -tlinalg.trace(tf.matmul(solve_col, solve_row))
      return 0.5 * (numerator + denominator)
  
file_path: brainiak/brainiak/matnormal/matnormal_likelihoods.py
imports: import tensorflow
  from tensorflow import linalg
  from .utils import scaled_I
  import logging
label_desc: Use image node_id 4 for calling a global function with example usage: _mnorm_logp_internal(colsize, rowsize, logdet_row, logdet_col, solve_row, solve_col) and returns: unknown