class_docstr: Return a triangular matrix square root of positive semi-definite `x`.
  
  L = cholesky(X, lower=True) implies dot(L, L.T) == X.
  
  Parameters
  ----------
  lower : bool, default=True
      Whether to return the lower or upper cholesky factor
  on_error : ['raise', 'nan']
      If on_error is set to 'raise', this Op will raise a
      `scipy.linalg.LinAlgError` if the matrix is not positive definite.
      If on_error is set to 'nan', it will return a matrix containing
      nans instead.
class_docstr_tok: ["Return","a","triangular","matrix","square","root","of","positive","semi-definite","`","x","`",".","L","=","cholesky","(","X",",","lower=True",")","implies","dot","(","L",",","L.T",")","==","X.","Parameters","--","--","--","--","--","lower",":","bool",",","default=True","Whether","to","return","the","lower","or","upper","cholesky","factor","on_error",":","[","'raise","'",",","'nan","'","]","If","on_error","is","set","to","'raise","'",",","this","Op","will","raise","a","`","scipy.linalg.LinAlgError","`","if","the","matrix","is","not","positive","definite",".","If","on_error","is","set","to","'nan","'",",","it","will","return","a","matrix","containing","nans","instead","."]
code: def __init__(self, lower=True, on_error="raise"):
      self.lower = lower
      self.destructive = False
      if on_error not in ["raise", "nan"]:
          raise ValueError('on_error must be one of "raise" or ""nan"')
      self.on_error = on_error
  
imports: from __future__ import absolute_import, print_function, division
  import logging
  import warnings
  from six.moves import xrange
  import numpy
  from theano import tensor
  import theano.tensor
  from theano.tensor import as_tensor_variable
  from theano.gof import Op, Apply
label_desc: Use image node_id 1 to create a new Cholesky object from inherited base classes: Op with example: obj = Cholesky(lower, on_error)