class_docstr: Cox–Ingersoll–Ross model.
  
  Represents the Ito process:
  
  ```None
    dX_i(t) = (a - k*X_i(t)) * dt +  sigma * sqrt(X_i(t)) * dW_i(t)
  ```
  where
    a / k: Corresponds to the long term mean.
    k: Corresponds to the speed of reversion.
    sigma: Corresponds to the instantaneous volatility.
  
  See [1] for details.
  
  #### References:
    [1]: A. Alfonsi. Affine Diffusions and Related Processes: Simulation,
      Theory and Applications
class_docstr_tok: ["Cox\u2013Ingersoll\u2013Ross","model",".","Represents","the","Ito","process",":","``","`","None","dX_i","(","t",")","=","(","a","-","k","*","X_i","(","t",")",")","*","dt","+","sigma","*","sqrt","(","X_i","(","t",")",")","*","dW_i","(","t",")","``","`","where","a","\/","k",":","Corresponds","to","the","long","term","mean",".","k",":","Corresponds","to","the","speed","of","reversion",".","sigma",":","Corresponds","to","the","instantaneous","volatility",".","See","[","1","]","for","details",".","#","#","#","#","References",":","[","1","]",":","A.","Alfonsi",".","Affine","Diffusions","and","Related","Processes",":","Simulation",",","Theory","and","Applications"]
docstr: Adds dimensions to `param`, not inplace.
  
  Args:
    param: initial element.
    expand_rank: is amount of dimensions that need to be added.
    axis: is axis where to place these dimensions.
  
  Returns:
    New `Tensor`.
docstr_tok: ["Adds","dimensions","to","`","param","`",",","not","inplace",".","Args",":","param",":","initial","element",".","expand_rank",":","is","amount","of","dimensions","that","need","to","be","added",".","axis",":","is","axis","where","to","place","these","dimensions",".","Returns",":","New","`","Tensor","`","."]
code: def _expand_param_on_rank(self, param, expand_rank, axis):
      """Adds dimensions to `param`, not inplace.
  
      Args:
        param: initial element.
        expand_rank: is amount of dimensions that need to be added.
        axis: is axis where to place these dimensions.
  
      Returns:
        New `Tensor`.
      """
      param_tensor = tf.convert_to_tensor(param, dtype=self._dtype)
      param_expand = param_tensor
      for _ in range(expand_rank):
          param_expand = tf.expand_dims(param_expand, axis)
      return param_expand
  
file_path: tf-quant-finance/tf_quant_finance/models/cir/cir_model.py
imports: from typing import Optional
  import tensorflow.compat.v2
  from tf_quant_finance import types
  from tf_quant_finance import utils
  from tf_quant_finance.math import random_ops
  from tf_quant_finance.models import generic_ito_process
label_desc: Use image node_id 4 for calling the CirModel obj's underlying member method code with example usage: obj._expand_param_on_rank(param, expand_rank, axis) and returns: param_expand