code: def _mvnormal_pseudo(
      sample_shape,
      mean,
      covariance_matrix=None,
      scale_matrix=None,
      random_type=RandomType.PSEUDO,
      seed=None,
      dtype=None,
  ):
      """Returns normal draws using the tfp multivariate normal distribution."""
      (mean, scale_matrix, batch_shape, _, dtype) = _process_mean_scale(
          mean, scale_matrix, covariance_matrix, dtype
      )
      output_shape = tf.concat([sample_shape, batch_shape], axis=0)
      if random_type == RandomType.PSEUDO:
          samples = tf.random.normal(
              shape=output_shape, dtype=dtype, seed=seed
          )
      else:
          if seed is None:
              raise ValueError(
                  "`seed` should be specified if the `random_type` is "
                  "`STATELESS` or `STATELESS_ANTITHETIC`"
              )
          samples = tf.random.stateless_normal(
              shape=output_shape, dtype=dtype, seed=seed, alg="philox"
          )
      if scale_matrix is None:
          return mean + samples
      else:
          return mean + tf.linalg.matvec(scale_matrix, samples)
  
file_path: tf-quant-finance/tf_quant_finance/math/random_ops/multivariate_normal.py
imports: import enum
  import numpy
  import tensorflow.compat.v2
  from tf_quant_finance.math.random_ops import halton
  from tf_quant_finance.math.random_ops import sobol
label_desc: Use image node_id 2 for calling a global function with example usage: _mvnormal_pseudo(sample_shape, mean, covariance_matrix, scale_matrix, random_type, seed, dtype) and returns: unknown, unknown