class_docstr: Provides the building blocks for representing univariate Gaussian Processes (GPs)
  with Matern kernels as state space models.
  
  :param float nu: The order of the Matern kernel (one of 0.5, 1.5 or 2.5)
  :param int num_gps: the number of GPs
  :param torch.Tensor length_scale_init: optional `num_gps`-dimensional vector of initializers
      for the length scale
  :param torch.Tensor kernel_scale_init: optional `num_gps`-dimensional vector of initializers
      for the kernel scale
  
  **References**
  
  [1] `Kalman Filtering and Smoothing Solutions to Temporal Gaussian Process Regression Models`,
      Jouni Hartikainen and Simo Sarkka.
  [2] `Stochastic Differential Equation Methods for Spatio-Temporal Gaussian Process Regression`,
      Arno Solin.
class_docstr_tok: ["Provides","the","building","blocks","for","representing","univariate","Gaussian","Processes","(","GPs",")","with","Matern","kernels","as","state","space","models",".",":","param","float","nu",":","The","order","of","the","Matern","kernel","(","one","of","0.5",",","1.5","or","2.5",")",":","param","int","num_gps",":","the","number","of","GPs",":","param","torch.Tensor","length_scale_init",":","optional","`","num_gps","`","-dimensional","vector","of","initializers","for","the","length","scale",":","param","torch.Tensor","kernel_scale_init",":","optional","`","num_gps","`","-dimensional","vector","of","initializers","for","the","kernel","scale","*","*","References","*","*","[","1","]","`","Kalman","Filtering","and","Smoothing","Solutions","to","Temporal","Gaussian","Process","Regression","Models","`",",","Jouni","Hartikainen","and","Simo","Sarkka",".","[","2","]","`","Stochastic","Differential","Equation","Methods","for","Spatio-Temporal","Gaussian","Process","Regression","`",",","Arno","Solin","."]
docstr: Compute the stationary state covariance. See Eqn. 3.26 in reference [2].
  
  :returns torch.Tensor: a 3-dimensional tensor of covariance matrices of shape
      (num_gps, state_dim, state_dim).
docstr_tok: ["Compute","the","stationary","state","covariance",".","See","Eqn",".","3.26","in","reference","[","2","]",".",":","returns","torch.Tensor",":","a","3-dimensional","tensor","of","covariance","matrices","of","shape","(","num_gps",",","state_dim",",","state_dim",")","."]
code: def stationary_covariance(self):
      """
      Compute the stationary state covariance. See Eqn. 3.26 in reference [2].
  
      :returns torch.Tensor: a 3-dimensional tensor of covariance matrices of shape
          (num_gps, state_dim, state_dim).
      """
      if self.nu == 0.5:
          sigmasq = self.kernel_scale.pow(2).unsqueeze(-1).unsqueeze(-1)
          return sigmasq
      elif self.nu == 1.5:
          sigmasq = self.kernel_scale.pow(2).unsqueeze(-1).unsqueeze(-1)
          rhosq = self.length_scale.pow(2).unsqueeze(-1).unsqueeze(-1)
          p_infinity = self.mask00 + (3.0 / rhosq) * self.mask11
          return sigmasq * p_infinity
      elif self.nu == 2.5:
          sigmasq = self.kernel_scale.pow(2).unsqueeze(-1).unsqueeze(-1)
          rhosq = self.length_scale.pow(2).unsqueeze(-1).unsqueeze(-1)
          p_infinity = 0.0
          p_infinity = (
              self.mask00
              + (five_thirds / rhosq)
              * (self.mask11 - self.mask02 - self.mask20)
              + (25.0 / rhosq.pow(2.0)) * self.mask22
          )
          return sigmasq * p_infinity
  
file_path: pyro/pyro/ops/ssm_gp.py
imports: import math
  import torch
  from torch.distributions import constraints
  from pyro.nn import PyroModule, PyroParam, pyro_method
label_desc: Use image node_id 3 for calling the MaternKernel obj's underlying member method code with example usage: obj.stationary_covariance() and returns: sigmasq, unknown, unknown