def forward(self, x):
        """
        Embeds x to (sin(2^k x), cos(2^k x), ...) 
        Inputs:
            x: (B, self.in_channels)
        Outputs:
            out: (B, self.out_channels)
        """
        out = []
        for freq in self.freq_bands:
            for func in self.funcs:
                out += [func(freq*x)]

        return torch.cat(out, -1)

        Embeds x to (sin(2^k x), cos(2^k x), ...) 
        Inputs:
            x: (B, self.in_channels)
        Outputs:
            out: (B, self.out_channels)
        
projects/mmdet3d_plugin/models/utils/position_embedding.py