o
    + i	                     @   s   d dl mZmZmZ ddlmZ g ZG dd deZG dd deZG dd	 d	eZ	G d
d deZ
G dd deZG dd deZG dd deZG dd deZG dd deZG dd deZdS )   )linalgmanipulationmath   )Layerc                       s   e Zd Z fddZ  ZS )FloatFunctionalLayerc                       t    d S Nsuper__init__self	__class__ m/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/paddle/nn/quant/functional_layers.pyr         zFloatFunctionalLayer.__init__)__name__
__module____qualname__r   __classcell__r   r   r   r   r      s    r   c                       &   e Zd Z fddZdddZ  ZS )addc                    r   r	   r
   r   r   r   r   r      r   zadd.__init__Nc                 C      t j|||dS N)name)r   r   r   xyr   r   r   r   forward      zadd.forwardr	   r   r   r   r   r    r   r   r   r   r   r          r   c                       r   )subtractc                    r   r	   r
   r   r   r   r   r   #   r   zsubtract.__init__Nc                 C   r   r   )r   r$   r   r   r   r   r    &   r!   zsubtract.forwardr	   r"   r   r   r   r   r$   "   r#   r$   c                       r   )multiplyc                    r   r	   r
   r   r   r   r   r   +   r   zmultiply.__init__Nc                 C   r   r   )r   r%   r   r   r   r   r    .   r!   zmultiply.forwardr	   r"   r   r   r   r   r%   *   r#   r%   c                       r   )dividec                    r   r	   r
   r   r   r   r   r   3   r   zdivide.__init__Nc                 C   r   r   )r   r&   r   r   r   r   r    6   r!   zdivide.forwardr	   r"   r   r   r   r   r&   2   r#   r&   c                       r   )reshapec                    r   r	   r
   r   r   r   r   r   ;   r   zreshape.__init__Nc                 C   r   r   )r   r'   )r   r   shaper   r   r   r   r    >   r!   zreshape.forwardr	   r"   r   r   r   r   r'   :   r#   r'   c                       r   )	transposec                    r   r	   r
   r   r   r   r   r   C   r   ztranspose.__init__Nc                 C   r   r   )r   r)   )r   r   permr   r   r   r   r    F   r!   ztranspose.forwardr	   r"   r   r   r   r   r)   B   r#   r)   c                       &   e Zd Z fddZdddZ  ZS )concatc                    r   r	   r
   r   r   r   r   r   K   r   zconcat.__init__    Nc                 C   r   r   )r   r,   )r   r   Zaxisr   r   r   r   r    N   r!   zconcat.forward)r-   Nr"   r   r   r   r   r,   J   r#   r,   c                       s&   e Zd Z fddZdddZ  ZS )	flattenc                    r   r	   r
   r   r   r   r   r   S   r   zflatten.__init__r-   Nc                 C   s   t j||||dS r   )r   r.   )r   r   Z
start_axisZ	stop_axisr   r   r   r   r    V   s   zflatten.forward)r-   r/   Nr"   r   r   r   r   r.   R   r#   r.   c                       r+   )matmulc                    r   r	   r
   r   r   r   r   r   [   r   zmatmul.__init__FNc                 C   s   t j|||||dS r   )r   r0   )r   r   r   Ztranspose_xZtranspose_yr   r   r   r   r    ^   s   zmatmul.forward)FFNr"   r   r   r   r   r0   Z   r#   r0   N)Ztensorr   r   r   Zlayer.layersr   __all__r   r   r$   r%   r&   r'   r)   r,   r.   r0   r   r   r   r   <module>   s   