code: def forward(self):
      # find low rank vector computed per time series
      # feat_static_cat consists of the time series indices 0, ..., cardinality - 1
      # embedding returns (num_ts, low_rank_param) need to transpose it
      B = self.embedding_low_rank_mat_B(self.feat_static_cat).T
      C = (
          None
          if self.is_sym
          else self.embedding_low_rank_mat_C(self.feat_static_cat).T
      )
      # Explicitly form matrix matrix product A = B^T* CO(kd^2) expensive
      if self.is_full_matrix:
          return self.neural_lv.solve_discrete_lv(
              compute_low_rank_product(B, C)
          )
      # Compute matrix vector product B^T * (C p) O(kd)
      else:
          return self.neural_lv.solve_discrete_lv(
              B, C, self.is_full_matrix
          )
  
file_path: gluonts/src/gluonts/nursery/auto_ode/auto_ode.py
imports: import numpy
  import matplotlib.pyplot
  import mxnet
  import mxnet.gluon.nn
  import mxnet.gluon.rnn
  from mxnet import gluon, nd, autograd
  from tqdm import tqdm_notebook
label_desc: Use image node_id 2 for calling the LowRankVectorEmbedding obj's underlying member method code with example usage: obj.forward() and returns: self, self