def METHOD_NAME(self,x, out=None):
    '''Returns D^{*}(y)'''        
    # Loop over channels, extract single-channel data, apply single-channel
    # operator's adjoint method and fill into multi-channel output data set.
    if out is None:
        output = self.domain_geometry().allocate()
        cury = self.op.domain_geometry().allocate()
        for k in range(self.channels):
            self.op.METHOD_NAME(x.get_slice(channel=k),cury)
            output.fill(cury.as_array(),channel=k)
        return output
    else:
        cury = self.op.domain_geometry().allocate()
        for k in range(self.channels):
            self.op.METHOD_NAME(x.get_slice(channel=k),cury)
            out.fill(cury.as_array(),channel=k)