+
    f7i  c                   sR    ^ RI Ht ^ RIt^ RIt^ RItR.t ! R R]4      tR tR t	R# )i    )NumberNVectorc                   s"  a a ] tR t^
t oRtRtRV 3R lltV 3R ltR tR t	R t
R t]tR tR	 tR
 t]tR tR tR tR tR]/R ltV 3R ltR tR t]tR tR tR tR tR t] R 4       t!]!PD                  R 4       t!V3R lR lt#Rt$Vt%V ;t&# )r   zA math-like vector.

Represents an n-dimensional numeric vector. ``Vector`` objects support
vector addition and subtraction, scalar multiplication and division,
negation, rounding, and comparison tests.
c                s   < VR Jd   \         P                  ! R\        4       \        V4      \        8X  d   V# \
        SV `  W4      # )Fz'the 'keep' argument has been deprecated)warningswarnDeprecationWarningZtyper   super__new__)ZclsvaluesZkeep	__class__s   &&&</usr/lib64/python3.14/site-packages/fontTools/misc/vector.pyr   ZVector.__new__   s?    uMM9" <6!Mws++    c                sT   < V P                   P                   R \        SV `  4        R2# )Z(Z))r   __name__r   __repr__)selfr   s   &r	   r   ZVector.__repr__   s*    ..))*!EG,<,>+?qAAr
   c                s*  aa \        S\        4      '       dA   \        V 4      \        S4      8X  g   Q hV P                  V3R  l\	        V S4       4       4      # \        S\
        4      '       d   V P                  VV3R lV  4       4      # \        4       h)c              3   s8   <"   T F  w  rS! W4      x  K  	  R # 5iN ).0abop   &  r	   	<genexpr>#Vector._vectorOp.<locals>.<genexpr>%   s     !H7Gtq"Q((7Gs   c              3   6   <"   T F  pS! VS4      x  K  	  R # 5ir   r   r   vr   other   & r	   r   r   '        !=1"Q,,   )
isinstancer   lenr   zipr    NotImplementedErrorr   r   r      &ffr	   	_vectorOpZVector._vectorOp"   sm    eV$$t9E
***>>!Hs47G!HHHeV$$>>!=!===!##r
   c                s~   aa \        S\        4      '       d   V P                  VV3R  lV  4       4      # \        4       h)c              3   r   r   r   r   r   r	   r   Z#Vector._scalarOp.<locals>.<genexpr>,   r   r   )r   r    r   r!   r"   r#   r	   	_scalarOpZVector._scalarOp*   s.    eV$$>>!=!===!##r
   c                s:   a V P                  V3R  lV  4       4      # )c              3   s4   <"   T F  pS! V4      x  K  	  R # 5ir   r   )r   r   r   s   & r	   r   Z"Vector._unaryOp.<locals>.<genexpr>0   s     2TbeeTs   )r   )r   r   s   &fr	   _unaryOpZVector._unaryOp/   s    ~~2T222r
   c                B    V P                  V\        P                  4      # r   )r$   operatorZaddr   r      &&r	   __add__ZVector.__add__2       ~~eX\\22r
   c                r'   r   )r$   r(   subr)   r*   r	   __sub__ZVector.__sub__7   r,   r
   c                .    V P                  V\        4      # r   )r$   _operator_rsubr)   r*   r	   __rsub__ZVector.__rsub__:   s    ~~e^44r
   c                r'   r   )r%   r(   Zmulr)   r*   r	   __mul__ZVector.__mul__=   r,   r
   c                r'   r   )r%   r(   truedivr)   r*   r	   __truediv__ZVector.__truediv__B   s    ~~eX%5%566r
   c                r/   r   )r%   _operator_rtruedivr)   r*   r	   __rtruediv__ZVector.__rtruediv__E   s    ~~e%788r
   c                @    V P                  \        P                  4      # r   )r&   r(   Zposr      &r	   __pos__ZVector.__pos__H       }}X\\**r
   c                r7   r   )r&   r(   Znegr8   r9   r	   __neg__ZVector.__neg__K   r;   r
   roundc               s$    V P                  V4      # r   )r&   )r   r=   s   &$r	   	__round__ZVector.__round__N   s    }}U##r
   c                sd   < \        V\        4      '       d   \        V4      p\        SV `  V4      # r   )r   listtupler   __eq__)r   r   r   s   &&r	   rA   ZVector.__eq__Q   s(    eT""%LEw~e$$r
   c                s.    V P                  V4      '       * # r   )rA   r)   r*   r	   __ne__ZVector.__ne__W   s    ;;u%%%r
   c                    \        V 4      # r   )Zanyr8   r9   r	   __bool__ZVector.__bool__Z   s    4yr
   c                sN    \         P                  ! \        R  V  4       4      4      # )c              3   s2   "   T F  qV,          x  K  	  R # 5ir   r   )r   Zxs   & r	   r   Z!Vector.__abs__.<locals>.<genexpr>`   s     1DqUUDs   )mathZsqrtsumr8   r9   r	   __abs__ZVector.__abs___   s    yy1D1122r
   c                rC   )z;Return the length of the vector. Equivalent to abs(vector).Zabsr8   r9   r	   lengthZVector.lengthb   s    4yr
   c                s&    V \        V 4      ,          # )z+Return the normalized vector of the vector.rH   r8   r9   r	   
normalizedZVector.normalizedf   s    c$ir
   c                sn    \        V 4      \        V4      8X  g   Q h\        R \        W4       4       4      # )zSPerforms vector dot product, returning the sum of
``a[0] * b[0], a[1] * b[1], ...``c              3   s6   "   T F  w  rW,          x  K  	  R # 5ir   r   )r   r   r   s   &  r	   r   ZVector.dot.<locals>.<genexpr>n   s     6%5TQ155%5s   )r   rF   r    r)   r*   r	   dotZ
Vector.dotj   s0     4yCJ&&&6S%5666r
   c                sX    \         P                  ! R \        4       V P                  4       # )zAthe 'toInt' method has been deprecated, use round(vector) instead)r   r   r   r>   r8   r9   r	   toIntZVector.toIntr   s#    O	
 ~~r
   c                sN    \         P                  ! R \        4       \        V 4      # )zPthe 'values' attribute has been deprecated, use the vector object itself instead)r   r   r   r?   r8   r9   r	   r   Vector.valuesy   s"    /	

 Dzr
   c                s    \        R 4      h)z?can't set attribute, the 'values' attribute has been deprecated)ZAttributeError)r   r   r*   r	   r   rM      s    M
 	
r
   c                s$   < V ^8  d   QhRRRS[ /# )i   r   r   Zreturn)Zbool)Zformat__classdict__s   "r	   Z__annotate__ZVector.__annotate__   s     N NX ND Nr
   c                s   a \        V 4      \        V4      8X  g   Q h\        ;QJ d(    V3R l\        W4       4       F  '       d   K   R# 	  R# ! V3R l\        W4       4       4      # )z5Return True if the vector is close to another Vector.c              3   sV   <"   T F  w  r\         P                  ! W3/ SB x  K   	  R # 5ir   )rE   isclose)r   r   r   kwargsr   r	   r   Z!Vector.isclose.<locals>.<genexpr>   s#     M<LDA4<<//<Ls   &)FT)r   Zallr    )r   r   rP   s   &&lr	   rO   ZVector.isclose   sL    4yCJ&&&sMC<LMssMsMsMC<LMMMr
   r   )F)'r   Z
__module__Z__qualname__Z__firstlineno__Z__doc__Z	__slots__r   r   r$   r%   r&   r+   Z__radd__r.   r1   r2   Z__rmul__r4   r6   r:   r<   r=   r>   rA   rB   rD   Z__nonzero__rG   rI   rJ   rK   rL   Zpropertyr   ZsetterrO   Z__static_attributes__Z__classdictcell__Z__classcell__)r   rN   s   @@r	   r   r   
   s      I	,B$$
33 H353 H79++$ $%& K3 7    ]]
 

N N Nr
   c                 .    \         P                  ! W4      # r   )r(   r-   r   r   r*   r	   r0   r0      s    <<r
   c                 rQ   r   )r(   r3   rR   r*   r	   r5   r5      s    A!!r
   )
Znumbersr    rE   r(   r   Z__all__r@   r   r0   r5   r   r
   r	   <module>rS      s5        *ANU ANH"r
   