code: def multivariate_multiply(m1, c1, m2, c2):
      """
      Multiplies the two multivariate Gaussians together and returns the
      results as the tuple (mean, covariance).
  
      Examples
      --------
  
      .. code-block:: Python
  
          m, c = multivariate_multiply([7.0, 2], [[1.0, 2.0], [2.0, 1.0]],
                                       [3.2, 0], [[8.0, 1.1], [1.1,8.0]])
  
      Parameters
      ----------
  
      m1 : array-like
          Mean of first Gaussian. Must be convertable to an 1D array via
          numpy.asarray(), For example 6, [6], [6, 5], np.array([3, 4, 5, 6])
          are all valid.
  
      c1 : matrix-like
          Covariance of first Gaussian. Must be convertable to an 2D array via
          numpy.asarray().
  
       m2 : array-like
          Mean of second Gaussian. Must be convertable to an 1D array via
          numpy.asarray(), For example 6, [6], [6, 5], np.array([3, 4, 5, 6])
          are all valid.
  
      c2 : matrix-like
          Covariance of second Gaussian. Must be convertable to an 2D array via
          numpy.asarray().
  
      Returns
      -------
  
      m : ndarray
          mean of the result
  
      c : ndarray
          covariance of the result
      """
  
      C1 = np.asarray(c1)
      C2 = np.asarray(c2)
      M1 = np.asarray(m1)
      M2 = np.asarray(m2)
  
      sum_inv = np.linalg.inv(C1 + C2)
      C3 = np.dot(C1, sum_inv).dot(C2)
  
      M3 = np.dot(C2, sum_inv).dot(M1) + np.dot(C1, sum_inv).dot(M2)
  
      return M3, C3
  
imports: from __future__ import absolute_import, division, unicode_literals
  import math
  from math import cos, sin
  import random
  import warnings
  import numpy
  from numpy.linalg import inv
  import scipy.linalg
  import scipy.sparse
  import scipy.sparse.linalg
  from scipy.stats import norm, multivariate_normal
label_desc: Use image node_id 11 for calling a global function with example usage: multivariate_multiply(m1, c1, m2, c2) and returns: M3,  C3