o
    .1f
                     @   sX  d dl Z d dlZdZg dg dg dgZg dg dg dgZd	Zd
ZdZdZdZ	dZ
dZdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 Zd4d5 Zd6d7 Zd8d9 Z d:d; Z!d<d= Z"d>d? Z#d@dA Z$dBdC Z%dDdE Z&dFdG Z'dHdI Z(dJdK Z)dLdM Z*dS )N    Nz2.1.0)g?W[	@gF_gEGr߿)gS:gc]F?gsh|??)g?ܵ?g&1ʿgx?)g7d?g,C?gv?)gz6?g,C?g]m{?)gN@aÓ?g2%䃾?g"~j?g'@j?      ?gyuk?g4R?g('UH?玬2#?fffff:@c                 C      t t| ||g S N)
lch_to_rgbhusl_to_lchhsl r   5lib/python3.10/site-packages/seaborn/external/husl.pyhusl_to_rgb      r   c                 C      t t| ||S r   )
rgb_to_hexr   r	   r   r   r   husl_to_hex#      r   c                 C   r   r   )lch_to_husl
rgb_to_lchrgbr   r   r   rgb_to_husl'   r   r   c                 C      t t|  S r   )r   
hex_to_rgbhexr   r   r   hex_to_husl+      r    c                 C   r   r   )r   huslp_to_lchr	   r   r   r   huslp_to_rgb/   r   r#   c                 C   r   r   )r   r#   r	   r   r   r   huslp_to_hex3   r   r$   c                 C   r   r   )lch_to_huslpr   r   r   r   r   rgb_to_huslp7   r   r&   c                 C   r   r   )r&   r   r   r   r   r   hex_to_huslp;   r!   r'   c                 C      t tt| ||gS r   )
xyz_to_rgb
luv_to_xyz
lch_to_luv)r   cr
   r   r   r   r   ?      r   c                 C   r(   r   )
luv_to_lch
xyz_to_luv
rgb_to_xyzr   r   r   r   r   C   r-   r   c                 C   s  t |}t |}t |}t | d dd }|dkr|n| d }td}tD ]U}|d }	|d }
|d	 }d
|	 d|
  d|  | }d| d|
  }d| d|	  }|| ||  | }dD ]}| |d|   |d| |   }|dkr}||k r}|}qaq)|S )N         @    @7Ar   r   infr         g~k	?gj?gHP?g`TR'?g?gl[ ?g7?        r   r8   )mathradianssincospowfloatm)LHhradZsinHZcosHZsub1Zsub2resultrowm1m2m3topZrbottomZlbottombottomtCr   r   r   
max_chromaG   s*   


 rL   c                 C   s   t | ddt | d  d|   d d }d}||kr|nd|  d	 }td
}d }tD ]G}dD ]B}|\}}	}
d|
 | d|	 |  d|  }d| | d|
 |  }t ||}|dkrb|t j7 }t| t |}||k rr|}|}q0q,|S )Nr2   g      H@g       @g      @g      @r3   r   g      $@g    @r4   r7   g  `wg  <Ag   +d8Ag   Ar8   )r9   r=   r>   r?   atan2ZpirL   degrees)r@   ZlhsZrhssubZchromarC   rD   limitrE   rF   rG   rH   rI   rB   testr   r   r   _hrad_extremum^   s(   ,
 
rR   c                 C   s   t t| }t| |S r   )r9   rN   rR   rL   )r@   rA   r   r   r   max_chroma_pastelu   s   
rS   c                 C   s   t ttj| |S r   )summapoperatormul)ar   r   r   r   dot_productz   r   rY   c                 C   s    | t kr
t| dS d|  d S )NgUUUUUU?gS%@g{a?)lab_er9   r=   rJ   r   r   r   f~   s   r\   c                 C   s,   t | dtkrt | dS d|  d t S )Nr2         ]@      0@)r9   r=   rZ   lab_kr[   r   r   r   f_inv   s   r`   c                 C   s$   | dkrd|  S dt | d d S )Ngsåi?ףp=
)@gzG?g?)\(?r9   r=   )r,   r   r   r   from_linear   s   rd   c                 C   s,   d}| dkrt | | d|  dS | d S )Nrb   g?ܵ?r   g333333@ra   rc   )r,   rX   r   r   r   	to_linear   s   re   c                 C   sp   g }| D ]1}t |d}|dk s|dkrtd|d|dk r!d}|dkr'd}|tt |d d	 d q|S )
N   g-C6gqh ?zIllegal RGB value r\   r   r5      gMbP?)round	Exceptionappendint)tripleretZchr   r   r   rgb_prepare   s   
rn   c                 C   sb   |  dr| dd  } t| dd dd }t| dd dd }t| dd dd }|||gS )	N#r5   r   r6   r1   g     o@      )
startswithrk   )r   r   r   r   r   r   r   r      s   

r   c                 C   s    | \}}}dt t|||g S )Nz#%02x%02x%02x)tuplern   )rl   r   r   r   r   r   r   r      s   
r   c                    s    t  fddt}tt t|S )Nc                    
   t |  S r   rY   rD   rl   r   r   <lambda>      
 zxyz_to_rgb.<locals>.<lambda>)rU   r?   listrd   )rl   Zxyzr   rw   r   r)      s   r)   c                    s$   t tt|  t t fddtS )Nc                    rt   r   ru   rv   Zrgblr   r   rx      ry   zrgb_to_xyz.<locals>.<lambda>)rz   rU   re   m_invrw   r   r{   r   r0      s   r0   c           	      C   s   | \}}}||  kr|  krdkrg dS  d| |d|  d|   }d| |d|  d|   }dt |t  d }|dkrFg dS d	| |t  }d	| |t  }|||gS )
Nr8   r8   r8   r8         @      .@r2         "@r]   r^         *@)r\   refYrefUrefV)	rl   XYZvarUvarVr@   UVr   r   r   r/      s   

r/   c           
      C   s   | \}}}|dkrg dS t |d d }|d|  t }|d|  t }|t }dd| | |d | ||    }d| d	| |  ||  d
|  }	|||	gS )Nr   r}   r^   r]   r   r8   r   r~   r   r2   )r`   r   r   r   )
rl   r@   r   r   ZvarYr   r   r   r   r   r   r   r   r*      s   
$$
r*   c                 C   sZ   | \}}}t t |dt |d d}t ||}t |}|dk r(d| }|||gS )Nr6   g      ?r8   g     v@)r9   r=   rM   rN   )rl   r@   r   r   rK   rB   rA   r   r   r   r.      s   
 

r.   c                 C   s:   | \}}}t |}t || }t || }|||gS r   )r9   r:   r<   r;   )rl   r@   rK   rA   ZHradr   r   r   r   r   r+      s
   


r+   c                 C   sN   | \}}}|dkrdd|gS |dk rdd|gS t ||}|d | }|||gS N6X@d   r8   :0yE>      Y@rL   rl   rA   Sr@   mxrK   r   r   r   r        




r   c                 C   sN   | \}}}|dkr|ddgS |dk r|ddgS t ||}|| d }|||gS Nr   r8   r   r   r   rl   r@   rK   rA   r   r   r   r   r   r     r   r   c                 C   sL   | \}}}|dkrdd|gS |dk rdd|gS t |}|d | }|||gS r   rS   r   r   r   r   r"         



r"   c                 C   sL   | \}}}|dkr|ddgS |dk r|ddgS t |}|| d }|||gS r   r   r   r   r   r   r%   .  r   r%   )+rV   r9   __version__r?   r|   ZrefXr   ZrefZr   r   rZ   r_   r   r   r   r    r#   r$   r&   r'   r   r   rL   rR   rS   rY   r\   r`   rd   re   rn   r   r   r)   r0   r/   r*   r.   r+   r   r   r"   r%   r   r   r   r   <module>   sb    		
