+
    0ip(                     *   R .t ^ RIt^ RIHt ^ RIHt ^RIHt R]P                  R]P                  R]P                  R]P                  /tR]P                  R]P                  R]P                   R]P"                  /tR	^R
^ /t ! R R4      tRR ltR# )_svdpN)aslinearoperator)LinAlgError)_propackfdFDLMSMc                   P   a  ] tR t^!t o RtR tR t]R 4       t]R 4       t	Rt
V tR# )_AProdz|
Wrapper class for linear operator

The call signature of the __call__ method matches the callback of
the PROPACK routines.
c                     \        V4      V n        R #   \         d)    \        \        P                  ! T4      4      T n         R # i ; iN)r   A	TypeErrornpasarray)selfr   s   &&W/var/www/html/photoedit/myenv/lib/python3.14/site-packages/scipy/sparse/linalg/_svdp.py__init___AProd.__init__(   s6    	5%a(DF 	5%bjjm4DF	5s    /AAc                    V^ 8X  d!   V P                   P                  V4      VR&   R# V P                   P                  V4      VR&   R# )    NNNN)r   matvecrmatvec)r   transamnxys   &&&&&&r   __call___AProd.__call__.   s5    Q;66==#AaD66>>!$AaD    c                .    V P                   P                  # r   )r   shaper   s   &r   r&   _AProd.shape4   s    vv||r$   c                     V P                   P                  #   \         dX    T P                   P                  \        P
                  ! T P                   P                  ^,          4      4      P                  u # i ; i)   )r   dtypeAttributeErrorr   r   zerosr&   r'   s   &r   r+   _AProd.dtype8   sU    	B66<< 	B66==$&&,,q/!:;AAA	Bs    AA:9A:)r   N)__name__
__module____qualname____firstlineno____doc__r   r"   propertyr&   r+   __static_attributes____classdictcell__)__classdict__s   @r   r   r   !   s>     5%   B Br$   r   c                ~   Vf   \        R4      hVP                  4       pVR9  d   \        R4      hV'       g   VR8X  d   \        R4      h\        V 4      pVP                  P                  p \
        V,          p\        V,          pVP                  w  ppV^8  g   V\        VV4      8  d   \        R	4      hVf
   ^
V,          pVf   R
p\        V^,           V^,           V4      pWA8  d   \        RV RV R24      hV'       d   ^M^ pV'       d   ^M^ p\        P                  ! VV^,           3RVR7      p\        P                  ! VV3RVR7      p\        P                  ! VRVP                  4       R7      p\        P                  ! VRVP                  4       R7      pVfu   VP                  VR7      VR&   \        P                  ! \        P                  ! ^ VR7      4      '       d-   VR;;,          RVP                  VR7      ,          ,          uu&   M VVR&   V
f5   \        P                   ! \        P"                  ! V4      P$                  4      p
Vf(   \        P"                  ! V4      P$                  R,          pV'       dl   \        P&                  ! WW3VP                  4       R7      pVf	   WA,
          pV\        VV,
          VV4      8  d   \        R4      hV^ 8  d   \        R4      hM(\        P&                  ! WV3VP                  4       R7      p\        P&                  ! \)        \+        V4      4      \)        \+        V4      4      3RR7      p ^ p!V'       g	   V'       d   VV,           ^V^,          ,          ,           ^	V,          ,           ^,           p"V"\-        ^V^,          ,          ^V,          ,           ^,           V!\-        VV4      ,          4      ,          p"^V,          p#MiVV,           ^	V,          ,           ^V^,          ,          ,           ^,           \-        VV,           ^V,          ^,           4      ,           p"^V,          ^,           p#\        P                  ! V"VP                  4       R7      p$\        P                  ! V#\        P.                  R7      p%\        P                  ! ^VP                  4       R7      p&\        P                  ! ^\        P.                  R7      p'VP1                  4       '       d-   \        P                  ! VV,           V,           VR7      p(V$V(V%3p)MV$V%3p)VP3                  ^ \        P4                  ! \        P6                  4      P,                  ^\        P8                  R7      p*V'       d.   V! \:        V,          VVVVVVVV	VVVVV.V)OVNV NV&NV'NV*N5!  p+MV! VVVVWV	VVVVV.V)OVNV NV&NV'NV*N5!  p+V+^ 8  d   \=        RV+ R24      hV+^ 8  d   \=        RV RV R24      hVRRV13,          VVRRV13,          P?                  4       P@                  V3#   \         dV    \        P                  ! \        P                  ! ^ TR7      4      '       d   RpMRp\
        T,          p\        T,          p ELi ; i  \          d    \        RT 24      hi ; i) a4  
Compute the singular value decomposition of a linear operator using PROPACK

Parameters
----------
A : array_like, sparse matrix, or LinearOperator
    Operator for which SVD will be computed.  If `A` is a LinearOperator
    object, it must define both ``matvec`` and ``rmatvec`` methods.
k : int
    Number of singular values/vectors to compute
which : {"LM", "SM"}
    Which singular triplets to compute:
    - 'LM': compute triplets corresponding to the `k` largest singular
            values
    - 'SM': compute triplets corresponding to the `k` smallest singular
            values
    `which='SM'` requires `irl_mode=True`.  Computes largest singular
    values by default.
irl_mode : bool, optional
    If `True`, then compute SVD using IRL (implicitly restarted Lanczos)
    mode.  Default is `True`.
kmax : int, optional
    Maximal number of iterations / maximal dimension of the Krylov
    subspace. Default is ``10 * k``.
compute_u : bool, optional
    If `True` (default) then compute left singular vectors, `u`.
compute_v : bool, optional
    If `True` (default) then compute right singular vectors, `v`.
tol : float, optional
    The desired relative accuracy for computed singular values.
    If not specified, it will be set based on machine precision.
v0 : array_like, optional
    Starting vector for iterations: must be of length ``A.shape[0]``.
    If not specified, PROPACK will generate a starting vector.
full_output : bool, optional
    If `True`, then return sigma_bound.  Default is `False`.
delta : float, optional
    Level of orthogonality to maintain between Lanczos vectors.
    Default is set based on machine precision.
eta : float, optional
    Orthogonality cutoff.  During reorthogonalization, vectors with
    component larger than `eta` along the Lanczos vector will be purged.
    Default is set based on machine precision.
anorm : float, optional
    Estimate of ``||A||``.  Default is ``0``.
cgs : bool, optional
    If `True`, reorthogonalization is done using classical Gram-Schmidt.
    If `False` (default), it is done using modified Gram-Schmidt.
elr : bool, optional
    If `True` (default), then extended local orthogonality is enforced
    when obtaining singular vectors.
min_relgap : float, optional
    The smallest relative gap allowed between any shift in IRL mode.
    Default is ``0.001``.  Accessed only if ``irl_mode=True``.
shifts : int, optional
    Number of shifts per restart in IRL mode.  Default is determined
    to satisfy ``k <= min(kmax-shifts, m, n)``.  Must be
    >= 0, but choosing 0 might lead to performance degradation.
    Accessed only if ``irl_mode=True``.
maxiter : int, optional
    Maximum number of restarts in IRL mode.  Default is ``1000``.
    Accessed only if ``irl_mode=True``.
rng : `numpy.random.Generator`, optional
    Pseudorandom number generator state. When `rng` is None, a new
    `numpy.random.Generator` is created using entropy from the
    operating system. Types other than `numpy.random.Generator` are
    passed to `numpy.random.default_rng` to instantiate a ``Generator``.

Returns
-------
u : ndarray
    The `k` largest (``which="LM"``) or smallest (``which="SM"``) left
    singular vectors, ``shape == (A.shape[0], 3)``, returned only if
    ``compute_u=True``.
sigma : ndarray
    The top `k` singular values, ``shape == (k,)``
vt : ndarray
    The `k` largest (``which="LM"``) or smallest (``which="SM"``) right
    singular vectors, ``shape == (3, A.shape[1])``, returned only if
    ``compute_v=True``.
sigma_bound : ndarray
    the error bounds on the singular values sigma, returned only if
    ``full_output=True``.

Nz:`rng` must be a normalized numpy.random.Generator instancer   z#`which` must be either 'LM' or 'SM'z#`which`='SM' requires irl_mode=True)r+   r	   r   z.k must be positive and not greater than m or ni  z3kmax must be greater than or equal to k, but kmax (z) < k ()r   )orderr+   )sizer   y              ?zv0 must be of length g      ?z0shifts must satisfy k <= min(kmax-shifts, m, n)!zshifts must be >= 0!i)lowhighr;   r+   z#An invariant subspace of dimension z was found.zk=z0 singular triplets did not converge within kmax=z iterations>   r
   r   )r   r   )!
ValueErrorupperr   r+   char_lansvd_irl_dict_lansvd_dictKeyErrorr   iscomplexobjemptyr&   minr-   loweruniformsqrtfinfoepsarrayintboolmaxint32isupperintegersiinfoint64uint64_which_converterr   conjT),r   kwhichirl_modekmax	compute_u	compute_vv0full_outputtoldeltaetaanormcgselr
min_relgapshiftsmaxiterrngaprodtyp
lansvd_irllansvdr   r   jobujobvuvsigmabnddoptionioptionNBlworkliworkworkiworkdparmiparmzworkworks	rng_stateinfos,   &&&&&&&&&&&&&&&&&&&                         r   r   r   @   s   r {UVVKKMEL >??>??1IE
++

C
#%c*
c" ;;DAq	A1s1ay=IJJ|!t q1ua!eT"DxgaS+, 	,
 1qD1qD 	!TAXc5A
!T#S1AHHQc5E
((1Csyy{
3C
 
z++1+%$??288AS122dGrCKKQK///G	:AdG
 }))*
{hhsm4'((E:#))+N >XFs4&=!Q'' < = =aZ344  ((E.ciikBhhDIDI7sCG 
B IA$'	!AdF*Q.QtQwY4'!+RAq	\::4A$47*Q.QUAdFQJ1GG4!88E-DHHV288,E HHQciik*EHHQbhh'E
{{}}QS1eU"e "(();)?)?"#299  6I *5141fa#E3<49<;B< "< $)< +0< 2;<
 dD!QeQsA II%I'.I05I7<I>GI ax1${CE 	E	 6&' 	' QU8UAa!eHMMO--s22w  #??288AS122CC%c*
c"#Z  	:4QC899	:s$   .X? Z" ?<Z<ZZ"Z<)r
   TNTTNFr   NNr   FTgMb`?NNN)__all__numpyr   scipy.sparse.linalgr   scipy.linalgr    r   slansvddlansvdclansvdzlansvdrC   slansvd_irldlansvd_irlclansvd_irlzlansvd_irlrB   rW   r   r    r$   r   <module>r      s   )  0 $  									 									  	!! B B>c3r$   