def __call__(self, u): N = u.shape[0] if self.B is None: self.init(N) if len(u.shape) == 3: SFTc.PDMA_Symsolve3D(self.d0, self.d1, self.d2, u[:-4]) elif len(u.shape) == 1: SFTc.PDMA_Symsolve(self.d0, self.d1, self.d2, u[:-4]) else: raise NotImplementedError return u