docstr: Gives the cosine of a square matrix `A`, defined in analogy
  with the matrix exponential.
  
  Examples::
  
      >>> from mpmath import *
      >>> mp.dps = 15; mp.pretty = True
      >>> X = eye(3)
      >>> cosm(X)
      [0.54030230586814               0.0               0.0]
      [             0.0  0.54030230586814               0.0]
      [             0.0               0.0  0.54030230586814]
      >>> X = hilbert(3)
      >>> cosm(X)
      [ 0.424403834569555  -0.316643413047167  -0.221474945949293]
      [-0.316643413047167   0.820646708837824  -0.127183694770039]
      [-0.221474945949293  -0.127183694770039   0.909236687217541]
      >>> X = matrix([[1+j,-2],[0,-j]])
      >>> cosm(X)
      [(0.833730025131149 - 0.988897705762865j)  (1.07485840848393 - 0.17192140544213j)]
      [                                     0.0               (1.54308063481524 + 0.0j)]
docstr_tok: ["Gives","the","cosine","of","a","square","matrix","`","A","`",",","defined","in","analogy","with","the","matrix","exponential",".","Examples",":",":",">",">",">","from","mpmath","import","*",">",">",">","mp.dps","=","15",";","mp.pretty","=","True",">",">",">","X","=","eye","(","3",")",">",">",">","cosm","(","X",")","[","0.54030230586814","0.0","0.0","]","[","0.0","0.54030230586814","0.0","]","[","0.0","0.0","0.54030230586814","]",">",">",">","X","=","hilbert","(","3",")",">",">",">","cosm","(","X",")","[","0.424403834569555","-0.316643413047167","-0.221474945949293","]","[","-0.316643413047167","0.820646708837824","-0.127183694770039","]","[","-0.221474945949293","-0.127183694770039","0.909236687217541","]",">",">",">","X","=","matrix","(","[","[","1+j",",","-2","]",",","[","0",",","-j","]","]",")",">",">",">","cosm","(","X",")","[","(","0.833730025131149","-","0.988897705762865j",")","(","1.07485840848393","-","0.17192140544213j",")","]","[","0.0","(","1.54308063481524","+","0.0j",")","]"]
code: def cosm(ctx, A):
      r"""
      Gives the cosine of a square matrix `A`, defined in analogy
      with the matrix exponential.
  
      Examples::
  
          >>> from mpmath import *
          >>> mp.dps = 15; mp.pretty = True
          >>> X = eye(3)
          >>> cosm(X)
          [0.54030230586814               0.0               0.0]
          [             0.0  0.54030230586814               0.0]
          [             0.0               0.0  0.54030230586814]
          >>> X = hilbert(3)
          >>> cosm(X)
          [ 0.424403834569555  -0.316643413047167  -0.221474945949293]
          [-0.316643413047167   0.820646708837824  -0.127183694770039]
          [-0.221474945949293  -0.127183694770039   0.909236687217541]
          >>> X = matrix([[1+j,-2],[0,-j]])
          >>> cosm(X)
          [(0.833730025131149 - 0.988897705762865j)  (1.07485840848393 - 0.17192140544213j)]
          [                                     0.0               (1.54308063481524 + 0.0j)]
      """
      B = 0.5 * (ctx.expm(A * ctx.j) + ctx.expm(A * (-ctx.j)))
      if not sum(A.apply(ctx.im).apply(abs)):
          B = B.apply(ctx.re)
      return B
  
file_path: catboost/contrib/python/mpmath/py3/mpmath/matrices/calculus.py
imports: from ..libmp.backend import xrange
label_desc: Use image node_id 3 for calling the MatrixCalculusMethods obj's underlying member method code with example usage: obj.cosm(ctx, A) and returns: B