code: def zkron(ttA, ttB):
      
      Al = _matrix.matrix.to_list(ttA)
      Bl = _matrix.matrix.to_list(ttB)
      Hl = [_np.kron(B, A) for (A, B) in zip(Al, Bl)]
      return _matrix.matrix.from_list(Hl)
docs: Do kronecker product between cores of two matrices ttA and ttB.
      Look about kronecker at: https://en.wikipedia.org/wiki/Kronecker_product
      For details about operation refer: https://arxiv.org/abs/1802.02839
      :param ttA: first TT-matrix;
      :param ttB: second TT-matrix;
      :return: TT-matrix in z-order