code: def setdict(self, D=None, B=None):
          
  
          if D is not None:
              self.D = np.asarray(D, dtype=self.dtype)
          if B is not None:
              self.B = np.asarray(B, dtype=self.dtype)
  
          if B is not None or not hasattr(self, 'Gamma'):
              self.Gamma, self.Q = np.linalg.eigh(self.B.T.dot(self.B))
              self.Gamma = np.abs(self.Gamma)
  
          if D is not None or not hasattr(self, 'Df'):
              self.Df = sl.rfftn(self.D, self.cri.Nv, self.cri.axisN)
  
          # Fold square root of Gamma into the dictionary array to enable
          # use of the solvedbi_sm solver
          shpg = [1] * len(self.cri.shpD)
          shpg[self.cri.axisC] = self.Gamma.shape[0]
          Gamma2 = np.sqrt(self.Gamma).reshape(shpg)
          self.gDf = Gamma2 * self.Df
  
          if self.opt['HighMemSolve']:
              self.c = sl.solvedbd_sm_c(
                  self.gDf, np.conj(self.gDf),
                  (self.mu / self.rho) * self.GHGf + 1.0, self.cri.axisM)
          else:
              self.c = None
docs: Set dictionary array.