code: def mv_simple_discrete():
      d = 2
      n = 5
      p = floatX_array([0.15, 0.85])
      with pm.Model() as model:
          pm.Multinomial(
              "x", n, pt.constant(p), initval=np.array([1, 4])
          )
          mu = n * p
          # covariance matrix
          C = np.zeros((d, d))
          for i, j in product(range(d), range(d)):
              if i == j:
                  C[i, i] = n * p[i] * (1 - p[i])
              else:
                  C[i, j] = -n * p[i] * p[j]
  
      return model.initial_point(), model, (mu, C)
  
imports: from itertools import product
  import numpy
  import pytensor
  import pytensor.tensor
  from pytensor.compile.ops import as_op
  import pymc
  from pymc import Categorical, Metropolis, Model, Normal
  from pymc.pytensorf import floatX_array
label_desc: Use image node_id 12 for calling a global function with example usage: mv_simple_discrete() and returns: model,  model,  mu,  C