
    g*                     \    d dl mZ d dlmZ d dlmZ dgZdZd ZddZ	 ed      d	        Z
y
)    )supportScalar)MAX_F2DOT14)	lru_cache
rebaseTentg      ?c                 $    | d    | d    | d    fS )N      r    )vs    y/home/viktor/gitlab-persoonlijk/factuur-applicatie/venv/lib/python3.12/site-packages/fontTools/varLib/instancer/solver.py_reverse_negater   
   s!    qTEAaD51Q4%      c                    |\  }}}}}| \  }}	}
||	kD  rGt        t        |       |j                         |       D cg c]  \  }}||t        |      nd f c}}S ||k  r||	k  rg S ||	k  r9t        d|id| i      }|||f} t        | |      D cg c]  \  }}||z  |f c}}S t        d|id| i      }|d fg}t        d|id| i      }||k\  r|	d|z
  |
|	z
  z  z   }t	        ||      |	|f}d}|j                  ||z
  |f       |
|k\  r|||f}|}|j                  ||z
  |f       n|
|k(  r	|
t        z  }
||
|f}d}|
||f}d}|j                  ||z
  |f       |j                  ||z
  |f       nf||	k(  r|	}
|	d|z
  |
|	z
  z  z   }||k  sJ 	 t	        ||      |	|f}d}|	||f}|}|j                  ||z
  |f       |	|k  r|j                  ||z
  |f       ||k  r-|||f}t        d|id| i      }|j                  ||z
  |f       |S ||k(  r	|t        z  }|||f}d}|||f}d}|j                  ||z
  |f       |j                  ||z
  |f       |S c c}}w c c}}w )Ntagr	   r   )_solver   reverse_negater   maxappendEPSILONr   )tent	axisLimitnegativeaxisMinaxisDefaxisMax_distanceNegative_distancePositivelowerpeakupperscalartmultgainoutoutGaincrossinglocloc1scalar1loc2scalar2newUppers                           r   r   r      sN   FOCGWg02CE4 ~ $%((*
 1=_Q'dC
 	
* %GdN	: ~eW-t}=w(4:44KLyvq$"LL %)E4=9D$<.C
 UG,udm<G$ w 1t8555'"D(3 	

FTM3'( GWg.CFJJs+,(   eW-DG 7G,DGJJ$-.JJ$-. d?E$ 1t855(""" : 'w7DG'7+DGJJ$-.g~

GdND12$ )w/%?

FTM3'(B J GWE ( %(

GdND)*

GdND)*JA
l Ms   II   c                 D   \  }}}}}d|cxk  r|cxk  r|cxk  rdk  sJ  J | \  }}}	d|cxk  r|cxk  r|	cxk  rdk  sJ  J |dk7  sJ t        |       }
fd}|
D cg c]-  \  }}|r&||  ||d          ||d          ||d         fndf/ }
}}|
S c c}}w )a7  Given a tuple (lower,peak,upper) "tent" and new axis limits
    (axisMin,axisDefault,axisMax), solves how to represent the tent
    under the new axis configuration.  All values are in normalized
    -1,0,+1 coordinate system. Tent values can be outside this range.

    Return value is a list of tuples. Each tuple is of the form
    (scalar,tent), where scalar is a multipler to multiply any
    delta-sets by, and tent is a new tent for that output delta-set.
    If tent value is None, that is a special deltaset that should
    be always-enabled (called "gain").r	   r   r   c                 &    j                  |       S )N)renormalizeValue)r   r   s    r   <lambda>zrebaseTent.<locals>.<lambda>.  s    ),,Q/ r   N)r   )r   r   r   r   r   r   r   r   r   r    solsnr!   r   s    `            r   r   r     s     GPCGWg02C4G4w4"44444E4-$-%-2-----199$	"D/A FA 
!AaD'1QqT7AadG,4HD  Ks   %2BN)F)fontTools.varLib.modelsr   fontTools.misc.fixedToolsr   	functoolsr   __all__r   r   r   r   r
   r   r   <module>r;      s>    1 1 .
!FR 3 r   