L iddlmZddlZddlZddlmZddlZddlmZm Z ddl m Z m Z m Z erddlmZGdd eZd Zd Zd Ze ed"d Ze eddd#dZe ed$dZe ed%d$dZe ed"dZe ed&d"dZe ed%d$dZe ed'd"dZe ed"dZe ed"dZe ed%d(dZe ed)d"dZ e ed*d+dZ!e ed"dZ"e ed,d"dZ#e ed-d"dZ$e ed"dZ%e ed.d"dZ&e ed"d Z'e ed.d"d!Z(y)/) annotationsN) TYPE_CHECKING) _dtypes_impl_util) ArrayLikeKeepDims normalizer)Sequencec eZdZy) LinAlgErrorN)__name__ __module__ __qualname__Y/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/torch/_numpy/linalg.pyr r srr c|jjsC|jjs-|jt j j }|SN)dtypeis_floating_point is_complextordefault_dtypes float_dtypeas r_atleast_float_1rs= GG % %);); DD,,.:: ; Hrctj||}|js*|jstjj }t j||}t j||}||fSr)rresult_type_implrrrrrcast_if_needed)rbdtyps r_atleast_float_2r$sd  ( (A .D  " "doo**,88 Q%A Q%A a4KrcBtjfd}|S)Nc |i|S#tjj$r}t|jd}~wwxYwr)torch_C _LinAlgErrorr args)r*kwdsefuncs rwrappedzlinalg_errors..wrapped(sA '&& &xx$$ 'qvv& & 's ?:?) functoolswraps)r-r.s` r linalg_errorsr1's%__T'' NrcXt|}tjj||Sr)rr'linalg matrix_power)rns rr4r45s% A << $ $Q **r)outc@tjj|Sr)r'r3 multi_dot)inputsr6s rr8r8<s << ! !& ))rc`t||\}}tjj||Sr)r$r'r3solve)rr"s rr;r;Es+ Aq !DAq <<  a ##rct||\}}|js |jrdnd}tjj ||||S)Ngelsgelsd)rconddriver)r$is_cudar'r3lstsq)rr"r?r@s rrBrBLsG Aq !DAqyyAIIV7F <<  a%  ??rcZt|}tjj|}|Sr)rr'r3invrresults rrDrDVs' A \\  a F Mrc\t|}tjj|||S)N)rtol hermitian)rr'r3pinv)rr?rIs rrJrJ^s* A <<  QUi  @@rcdt||\}}tjj|||S)N)dims)r$r'r3 tensorsolve)rr"axess rrMrMes0 Aq !DAq << # #Aqt # 44rcZt|}tjj||S)N)ind)rr'r3 tensorinv)rrPs rrQrQls( A << ! !! ! --rcVt|}tjj|Sr)rr'r3detrs rrSrSvs# A <<  A rcVt|}tjj|Sr)rr'r3slogdetrs rrUrU}s# A <<   ""rcFt|}|jdk(r0tj|jdddk(r t dt jj||}t jt j|td|S)Nrz#cond is not defined on empty arrays)pinf) rnumelmathprodshaper r'r3condwhereisnanfloat)xrXrFs rr^r^s~ A wwyA~$))AGGBCL1Q6?@@ \\  qA  &F ;;u{{6*E%L& AArcJt|}|jdkrt|dk7jS|Ed}t |j ddt j|jjz}n|d}}t jj||||S)NrrW)atolrHrI) rndimintanymaxr]r'finforepsr3 matrix_rank)rtolrIrerHs rrlrls AvvzAF<<>"" {17723< 5;;qww#7#;#;;!d << # #ADty # QQrc\t|}tjj|||S)N)orddim)rr'r3norm)rbroaxiskeepdimss rrqrqs* A <<  QCT  22rcVt|}tjj|Sr)rr'r3choleskyrs rrurus# A <<  ##rct|}tjj||}|dk(r |j}|S)N)moder)rr'r3qrR)rrwrFs rryrys9 A \\__QT_ *F s{ Mrct|}|stjj|Stjj ||}|S)N) full_matrices)rr'r3svdvalssvd)rr| compute_uvrIrFs rr~r~sF A ||##A&&\\  a}  =F Mrct|}tjj|\}}|j sE|j r5|j dk(j r|j}|j}||fSNr)rr'r3eigrimagallreal)rwvts rrrse A LL  Q EAr <<>alln!&&A+1B1B1D FF WW b5LrcZt|}tjj||SN)UPLO)rr'r3eighrrs rrrs( A <<  QT  **rct|}tjj|}|j s9|j r)|j dk(j r |j}|Sr)rr'r3eigvalsrrrrrEs rrrsX A \\ ! !! $F <<>f//1v{{a7G6L6L6N MrcZt|}tjj||Sr)rr'r3eigvalshrs rrrs( A <<  ..r)rr)r9zSequence[ArrayLike])rrr"rr)gV瞯rs}# !<<( )   + +  26* * $ $  @ @    A A  5 5  . .    # #   B  B   R  R 3 3 $ $        + +    / /r