class_docstr: Stores a representation of and computes the SSKernel function.
  
  K_L(A^dt, B^dt, C) corresponding to a discretized state space,
  where A is Normal + Low Rank (NPLR)
class_docstr_tok: ["Stores","a","representation","of","and","computes","the","SSKernel","function",".","K_L","(","A^dt",",","B^dt",",","C",")","corresponding","to","a","discretized","state","space",",","where","A","is","Normal","+","Low","Rank","(","NPLR",")"]
docstr: Calculate (and cache) FFT nodes and their "unprocessed" version with the bilinear transform. # noqa
  
  This should be called everytime the internal length self.L changes
docstr_tok: ["Calculate","(","and","cache",")","FFT","nodes","and","their","``","unprocessed","''","version","with","the","bilinear","transform",".","#","noqa","This","should","be","called","everytime","the","internal","length","self.L","changes"]
code: def _omega(self, L, dtype, device, cache=True):
      """Calculate (and cache) FFT nodes and their "unprocessed" version with the bilinear transform. # noqa
  
      This should be called everytime the internal length self.L changes
      """
  
      # Use cached if available
      if (
          cache
          and hasattr(self, "omega")
          and self.omega.size(-1) == L // 2 + 1
      ):
          return self.omega, self.z
  
      omega = torch.tensor(
          np.exp(-2j * np.pi / (L)), dtype=dtype, device=device
      )  # \omega_{2L}
      omega = omega ** torch.arange(0, L // 2 + 1, device=device)
      z = 2 * (1 - omega) / (1 + omega)
  
      # Cache if necessary
      if cache:
          self.omega = omega
          self.z = z
      return omega, z
  
imports: import logging
  import math
  import os
  from functools import wraps
  from typing import Any, Callable, Optional
  import numpy
  import opt_einsum
  import torch
  import torch.nn
  import torch.nn.functional
  from einops import rearrange, repeat
  from espnet2.asr.state_spaces.components import Activation, DropoutNd, LinearActivation
label_desc: Use image node_id 2 for calling the SSKernelNPLR obj's underlying member method code with example usage: obj._omega(L, dtype, device, cache) and returns: omega,  z, self,  self