+
    /i                     h    R t ^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIH	t
 ^ RIHtHt R.tR tR	R ltR# )
zSparse matrix norms.

N)issparse)svds)convert_pydata_sparse_to_scipy)sqrtabsnormc                 ~    \         P                  P                  V 4      p\        P                  P                  V4      # )N)sp_sputils_todatanplinalgr   )xdatas   & W/var/www/html/photoedit/myenv/lib/python3.14/site-packages/scipy/sparse/linalg/_norm.py_sparse_frobenius_normr      s)    ;;q!D99>>$    c                 	   \        V RR7      p \        V 4      '       g   \        R4      hVf   VR9   d   \        V 4      # V P	                  4       p Vf    \        \        V P                  4      4      pM8\        V\
        4      '       g#   Rp \        V4      pY$8w  d   \        T4      hT3pV P                  p\        V4      ^8X  Ed   Vw  rxV) Tu;8:  d   V8  d   M MV) Tu;8:  d   V8  g"   M RV: RV P                  : 2p	\        V	4      hWv,          W,          8X  d   \        R4      hV^8X  d   \        V ^R	RR
7      w  rp
V^ ,          # VR8X  d   \        hV^8X  d*   \        V 4      P!                  VR7      P#                  4       # V\$        P&                  8X  d*   \        V 4      P!                  VR7      P#                  4       # VR8X  d*   \        V 4      P!                  VR7      P)                  4       # V\$        P&                  ) 8X  d*   \        V 4      P!                  VR7      P)                  4       # VR9   d   \        V 4      # \        R4      h\        V4      ^8X  Ed   Vw  pV) Tu;8:  d   V8  g"   M RV: RV P                  : 2p	\        V	4      hV\$        P&                  8X  d   \        V 4      P#                  VR7      pMV\$        P&                  ) 8X  d   \        V 4      P)                  VR7      pMV^ 8X  d   V ^ 8g  P!                  VR7      pMV^8X  d   \        V 4      P!                  VR7      pMVR9   d5   \+        \        V 4      P-                  ^4      P!                  VR7      4      pMP V^,            \$        P,                  ! \        T 4      P-                  T4      P!                  TR7      ^T,          4      p\/        VR4      '       d   VP1                  4       P3                  4       # \/        VR4      '       d   VP4                  P3                  4       # VP3                  4       # \        R4      h  \         d   p\        T4      ThRp?ii ; i  \         d   p\        R4      ThRp?ii ; i)a	  
Norm of a sparse matrix

This function is able to return one of seven different matrix norms,
depending on the value of the ``ord`` parameter.

Parameters
----------
x : a sparse array
    Input sparse array.
ord : {non-zero int, inf, -inf, 'fro'}, optional
    Order of the norm (see table under ``Notes``). inf means numpy's
    `inf` object.
axis : {int, 2-tuple of ints, None}, optional
    If `axis` is an integer, it specifies the axis of `x` along which to
    compute the vector norms.  If `axis` is a 2-tuple, it specifies the
    axes that hold 2-D matrices, and the matrix norms of these matrices
    are computed.  If `axis` is None then either a vector norm (when `x`
    is 1-D) or a matrix norm (when `x` is 2-D) is returned.

Returns
-------
n : float or ndarray

Notes
-----
Some of the ord are not implemented because some associated functions like,
_multi_svd_norm, are not yet available for sparse array.

This docstring is modified based on numpy.linalg.norm.
https://github.com/numpy/numpy/blob/main/numpy/linalg/linalg.py

The following norms can be calculated:

=====  ============================
ord    norm for sparse arrays
=====  ============================
None   Frobenius norm
'fro'  Frobenius norm
inf    max(sum(abs(x), axis=1))
-inf   min(sum(abs(x), axis=1))
0      abs(x).sum(axis=axis)
1      max(sum(abs(x), axis=0))
-1     min(sum(abs(x), axis=0))
2      Spectral norm (the largest singular value)
-2     Not implemented
other  Not implemented
=====  ============================

The Frobenius norm is given by [1]_:

    :math:`||A||_F = [\sum_{i,j} abs(a_{i,j})^2]^{1/2}`

References
----------
.. [1] G. H. Golub and C. F. Van Loan, *Matrix Computations*,
    Baltimore, MD, Johns Hopkins University Press, 1985, pg. 15

Examples
--------
>>> from scipy.sparse import csr_array, diags_array
>>> import numpy as np
>>> from scipy.sparse.linalg import norm
>>> a = np.arange(9) - 4
>>> a
array([-4, -3, -2, -1, 0, 1, 2, 3, 4])
>>> b = a.reshape((3, 3))
>>> b
array([[-4, -3, -2],
       [-1, 0, 1],
       [ 2, 3, 4]])

>>> b = csr_array(b)
>>> norm(b)
7.745966692414834
>>> norm(b, 'fro')
7.745966692414834
>>> norm(b, np.inf)
9
>>> norm(b, -np.inf)
2
>>> norm(b, 1)
7
>>> norm(b, -1)
6

The matrix 2-norm or the spectral norm is the largest singular
value, computed approximately and with limitations.

>>> b = diags_array([-1, 1], offsets=[0, 1], shape=(9, 10))
>>> norm(b, 2)
1.9753...
csr)target_formatz*input is not sparse. use numpy.linalg.normNz6'axis' must be None, an integer or a tuple of integerszInvalid axis z for an array with shape zDuplicate axes given.arpack)ksolverrng)axisz Invalid norm order for matrices.zInvalid norm order for vectors.toarrayAz&Improper number of dimensions to norm.)Nfrof)Nr   r   )   N)r   r   	TypeErrorr   tocsrtuplerangendim
isinstanceintlenshape
ValueErrorr   NotImplementedErrorr   summaxr   infminr   powerhasattrr   ravelr   )r   ordr   msgint_axisendrow_axiscol_axismessage_saMs   &&&           r   r   r      s   | 	'q>AA;;DEE |11%a(( 	
	A|U166]#e$$F	(4yH C. {	
B
4yA~!x$"$")=2)=%dX-FqwwkRGW%%=HM)455!81(=GA!Q4KBY%%AXq6::8:,0022BFF]q6::8:,0022BYq6::8:,0022RVVG^q6::8:,0022&&)!,,?@@	Taq2%dX-FqwwkRGW%%"&&=A


"ARVVG^A


"AAXa!$AAXA


"AISV\\!_((a(01AKa Qc*..A.6C@A1i  99;$$&&Q__3399;779ABB  	(C.a'	(j  K !BCJKs0   Q <	Q! QQQ!Q=,Q88Q=)NN)__doc__numpyr   scipy.sparser   scipy.sparse.linalgr   scipy.sparse._sputilsr   sparser	   r   r   __all__r   r    r   r   <module>rH      s1     ! $ @  ( 
nCr   