code: def compl_mul1d(self, input, weights):
      # (batch, in_channel, x ), (in_channel, out_channel, x) -> (batch, out_channel, x)
      return torch.einsum("bhi,hio->bho", input, weights)
  
imports: import numpy
  from typing import Optional
  import torch
  import torch.nn
  import torch.nn.functional
  from ..common._modules import DataEmbedding
  from ..common._base_windows import BaseWindows
  from ..losses.pytorch import MAE
label_desc: Use image node_id 2 for calling the FourierBlock obj's underlying member method code with example usage: obj.compl_mul1d(input, weights) and returns: torch