class_docstr: Interface for specifying Ito processes.
  
    Interface for defining stochastic process defined by the Ito SDE:
  
    ```None
      dX_i = a_i(t, X) dt + Sum(S_{ij}(t, X) dW_j for 1 <= j <= n), 1 <= i <= n
    ```
  
  The vector coefficient `a_i` is referred to as the drift of the process and
  the matrix `S_{ij}` as the volatility of the process. For the process to be
  well defined, these coefficients need to satisfy certain technical conditions
  which may be found in Ref. [1]. The vector `dW_j` represents independent
  Brownian increments.
  
  For a simple and instructive example of the implementation of this interface,
  see `models.GenericItoProcess`.
  
  #### References
  [1]: Brent Oksendal. Stochastic Differential Equations: An Introduction with
    Applications. Springer. 2010.
class_docstr_tok: ["Interface","for","specifying","Ito","processes",".","Interface","for","defining","stochastic","process","defined","by","the","Ito","SDE",":","``","`","None","dX_i","=","a_i","(","t",",","X",")","dt","+","Sum","(","S_","{","ij","}","(","t",",","X",")","dW_j","for","1","<","=","j","<","=","n",")",",","1","<","=","i","<","=","n","``","`","The","vector","coefficient","`","a_i","`","is","referred","to","as","the","drift","of","the","process","and","the","matrix","`","S_","{","ij","}","`","as","the","volatility","of","the","process",".","For","the","process","to","be","well","defined",",","these","coefficients","need","to","satisfy","certain","technical","conditions","which","may","be","found","in","Ref",".","[","1","]",".","The","vector","`","dW_j","`","represents","independent","Brownian","increments",".","For","a","simple","and","instructive","example","of","the","implementation","of","this","interface",",","see","`","models.GenericItoProcess","`",".","#","#","#","#","References","[","1","]",":","Brent","Oksendal",".","Stochastic","Differential","Equations",":","An","Introduction","with","Applications",".","Springer",".","2010","."]
docstr: Returns a sample of paths from the process.
  
  Args:
    times: A `Tensor` of positive real values of a shape `[T, k]`, where
      `T` is either empty or a shape which is broadcastable to `batch_shape`
      (as defined when this ItoProcess was initialised) and `k` is the
      number of time points. The definition of `batch_shape` and how it is set
      is dictated by the individual child classes. Typically `batch_shape`
      is set based on the shapes of the input parameters that define the
      ItoProcess, see `GeometricBrownianMotion` for an example. The times at
      which the path points are to be evaluated.
    num_samples: Positive scalar `int`. The number of paths to draw.
    initial_state: `Tensor` of shape `[dim]`. The initial state of the
      process.
      Default value: None which maps to a zero initial state.
    random_type: Enum value of `RandomType`. The type of (quasi)-random number
      generator to use to generate the paths.
      Default value: None which maps to the standard pseudo-random numbers.
    seed: Seed for the random number generator. The seed is
      only relevant if `random_type` is one of
      `[STATELESS, PSEUDO, HALTON_RANDOMIZED, PSEUDO_ANTITHETIC,
        STATELESS_ANTITHETIC]`. For `PSEUDO`, `PSEUDO_ANTITHETIC` and
      `HALTON_RANDOMIZED` the seed should be an Python integer. For
      `STATELESS` and  `STATELESS_ANTITHETIC `must be supplied as an integer
      `Tensor` of shape `[2]`.
      Default value: `None` which means no seed is set.
    **kwargs: Any other keyword args needed by an implementation.
  
  Returns:
   A real `Tensor` of shape [`batch_shape`, num_samples, k, n] where `k` is
   the size of `times`, `n` is the dimension of the process and `batch_shape`
   is the batch dimensions of the ItoProcess.
docstr_tok: ["Returns","a","sample","of","paths","from","the","process",".","Args",":","times",":","A","`","Tensor","`","of","positive","real","values","of","a","shape","`","[","T",",","k","]","`",",","where","`","T","`","is","either","empty","or","a","shape","which","is","broadcastable","to","`","batch_shape","`","(","as","defined","when","this","ItoProcess","was","initialised",")","and","`","k","`","is","the","number","of","time","points",".","The","definition","of","`","batch_shape","`","and","how","it","is","set","is","dictated","by","the","individual","child","classes",".","Typically","`","batch_shape","`","is","set","based","on","the","shapes","of","the","input","parameters","that","define","the","ItoProcess",",","see","`","GeometricBrownianMotion","`","for","an","example",".","The","times","at","which","the","path","points","are","to","be","evaluated",".","num_samples",":","Positive","scalar","`","int","`",".","The","number","of","paths","to","draw",".","initial_state",":","`","Tensor","`","of","shape","`","[","dim","]","`",".","The","initial","state","of","the","process",".","Default","value",":","None","which","maps","to","a","zero","initial","state",".","random_type",":","Enum","value","of","`","RandomType","`",".","The","type","of","(","quasi",")","-random","number","generator","to","use","to","generate","the","paths",".","Default","value",":","None","which","maps","to","the","standard","pseudo-random","numbers",".","seed",":","Seed","for","the","random","number","generator",".","The","seed","is","only","relevant","if","`","random_type","`","is","one","of","`","[","STATELESS",",","PSEUDO",",","HALTON_RANDOMIZED",",","PSEUDO_ANTITHETIC",",","STATELESS_ANTITHETIC","]","`",".","For","`","PSEUDO","`",",","`","PSEUDO_ANTITHETIC","`","and","`","HALTON_RANDOMIZED","`","the","seed","should","be","an","Python","integer",".","For","`","STATELESS","`","and","`","STATELESS_ANTITHETIC","`","must","be","supplied","as","an","integer","`","Tensor","`","of","shape","`","[","2","]","`",".","Default","value",":","`","None","`","which","means","no","seed","is","set",".","*","*","kwargs",":","Any","other","keyword","args","needed","by","an","implementation",".","Returns",":","A","real","`","Tensor","`","of","shape","[","`","batch_shape","`",",","num_samples",",","k",",","n","]","where","`","k","`","is","the","size","of","`","times","`",",","`","n","`","is","the","dimension","of","the","process","and","`","batch_shape","`","is","the","batch","dimensions","of","the","ItoProcess","."]
code: def sample_paths(
      self,
      times,
      num_samples=1,
      initial_state=None,
      random_type=None,
      seed=None,
      **kwargs,
  ):
      """Returns a sample of paths from the process.
  
      Args:
        times: A `Tensor` of positive real values of a shape `[T, k]`, where
          `T` is either empty or a shape which is broadcastable to `batch_shape`
          (as defined when this ItoProcess was initialised) and `k` is the
          number of time points. The definition of `batch_shape` and how it is set
          is dictated by the individual child classes. Typically `batch_shape`
          is set based on the shapes of the input parameters that define the
          ItoProcess, see `GeometricBrownianMotion` for an example. The times at
          which the path points are to be evaluated.
        num_samples: Positive scalar `int`. The number of paths to draw.
        initial_state: `Tensor` of shape `[dim]`. The initial state of the
          process.
          Default value: None which maps to a zero initial state.
        random_type: Enum value of `RandomType`. The type of (quasi)-random number
          generator to use to generate the paths.
          Default value: None which maps to the standard pseudo-random numbers.
        seed: Seed for the random number generator. The seed is
          only relevant if `random_type` is one of
          `[STATELESS, PSEUDO, HALTON_RANDOMIZED, PSEUDO_ANTITHETIC,
            STATELESS_ANTITHETIC]`. For `PSEUDO`, `PSEUDO_ANTITHETIC` and
          `HALTON_RANDOMIZED` the seed should be an Python integer. For
          `STATELESS` and  `STATELESS_ANTITHETIC `must be supplied as an integer
          `Tensor` of shape `[2]`.
          Default value: `None` which means no seed is set.
        **kwargs: Any other keyword args needed by an implementation.
  
      Returns:
       A real `Tensor` of shape [`batch_shape`, num_samples, k, n] where `k` is
       the size of `times`, `n` is the dimension of the process and `batch_shape`
       is the batch dimensions of the ItoProcess.
      """
      pass
  
file_path: tf-quant-finance/tf_quant_finance/models/ito_process.py
imports: import abc
  import six
label_desc: Use image node_id 6 for calling the ItoProcess obj's underlying member method code with example usage: obj.sample_paths(times, num_samples, initial_state, random_type, seed) without return types