class_docstr: Base class that all volatility updaters must inherit from.
  
  Notes
  -----
  See the implementation available for information on modifying ``__init__``
  to capture model-specific parameters and how ``initialize_update`` is
  used to precompute values that change in each likelihood but not
  each iteration of the recursion.
  
  When writing a volatility updater, it is recommended to follow the
  examples in recursions.pyx which use Cython to produce a C-callable
  update function that can then be used to improve performance. The
  subclasses of this abstract metaclass are all pure Python and
  model estimation performance is poor since loops are written
  in Python.
class_docstr_tok: ["Base","class","that","all","volatility","updaters","must","inherit","from",".","Notes","--","--","-","See","the","implementation","available","for","information","on","modifying","``","__init__","``","to","capture","model-specific","parameters","and","how","``","initialize_update","``","is","used","to","precompute","values","that","change","in","each","likelihood","but","not","each","iteration","of","the","recursion",".","When","writing","a","volatility","updater",",","it","is","recommended","to","follow","the","examples","in","recursions.pyx","which","use","Cython","to","produce","a","C-callable","update","function","that","can","then","be","used","to","improve","performance",".","The","subclasses","of","this","abstract","metaclass","are","all","pure","Python","and","model","estimation","performance","is","poor","since","loops","are","written","in","Python","."]
docstr: Initialize the recursion prior to calling update
  
  Parameters
  ----------
  parameters : ndarray
      The model parameters.
  backcast : {float, ndarray}
      The backcast value(s).
  nobs : int
      The number of observations in the sample.
  
  Notes
  -----
  This function is called once per likelihood evaluation and can be used
  to pre-compute expensive parameter transformations that do not change
  with each call to ``update``.
docstr_tok: ["Initialize","the","recursion","prior","to","calling","update","Parameters","--","--","--","--","--","parameters",":","ndarray","The","model","parameters",".","backcast",":","{","float",",","ndarray","}","The","backcast","value","(","s",")",".","nobs",":","int","The","number","of","observations","in","the","sample",".","Notes","--","--","-","This","function","is","called","once","per","likelihood","evaluation","and","can","be","used","to","pre-compute","expensive","parameter","transformations","that","do","not","change","with","each","call","to","``","update","``","."]
code: def initialize_update(
      self,
      parameters: Float64Array,
      backcast: float | Float64Array,
      nobs: int,
  ) -> None:
      """
      Initialize the recursion prior to calling update
  
      Parameters
      ----------
      parameters : ndarray
          The model parameters.
      backcast : {float, ndarray}
          The backcast value(s).
      nobs : int
          The number of observations in the sample.
  
      Notes
      -----
      This function is called once per likelihood evaluation and can be used
      to pre-compute expensive parameter transformations that do not change
      with each call to ``update``.
      """
      pass
  
imports: from __future__ import annotations
  from arch.compat.numba import jit
  from abc import ABCMeta, abstractmethod
  from typing import cast
  import numpy
  from scipy.special import gammaln
  from arch.typing import Float64Array, Int32Array
  from arch.utility.array import AbstractDocStringInheritor
label_desc: Use image node_id 2 for calling the VolatilityUpdater obj's underlying member method code with example usage: obj.initialize_update(parameters, backcast, nobs) without return types