def METHOD_NAME(self, sequence_length, batch_size, embedding_dim, device='cpu'):
    """Generate positional encodings
    Args:
        sequence_length (int): Sequence length
        embedding_dim (int): Embedding dimension
    Returns:
        torch.Tensor SBE: Positional encodings
    """
    position = torch.arange(
        0, sequence_length, dtype=torch.float32, device=device).unsqueeze(1)
    index = torch.arange(
        0, embedding_dim, 2, dtype=torch.float32, device=device).unsqueeze(0)
    div_term = torch.exp(index * (-torch.log(torch.tensor(10000.0, device=device)) / embedding_dim))
    pos_encoding = position * div_term
    pos_encoding = torch.cat([torch.sin(pos_encoding), torch.cos(pos_encoding)], dim=1)
    pos_encoding = pos_encoding.unsqueeze(1).repeat(1, batch_size, 1)
    return pos_encoding