
    bi_                     >    d dl Zd dlmZmZmZ d dlmZ d dlm	Z	 d Z
y)    N)SOCVariablehstack)ExpCone)scs_psdvec_to_psdmatc                    |d   j                  d      }| j                  }|j                         \  }}}t        |j                  f      }|| _        |j                  d   }|j                  }	||	kD  r&t        |t        j                  ||	z
  f      g      }
n|}
|j                  |z  |
z   dk(  g}|d   }|j                  dkD  r||   }|j                  |dk\         |d   }|D ]/  }||d      }||dd     }t        ||      }|j                  |       1 |d   }|D ]"  }t        ||      }|j                  |dz	         $ |d	   }|j                  dkD  rpt        j                  |d
      }||d d df      }||d d df      }||d d df      }t        | | t        j                   d      |z        }|j                  |       ||z  }||fS )Nr   F)order)shape   nonnegsocpsdexp)      )flatten_parentconic_repr_of_setr   size_etar   r   npzerosTappendr   r   reshaper   r   )exprargsyparentAbK_selsetann0y_lift
local_cons	nonnegsel	temp_exprsocselssocseltempscatempvecsocconpsdselspsdselcurmatexpsel	matexpselcurr_ucurr_vcurr_wecepigraphs                                r/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/cvxpy/reductions/dcp2cone/canonicalizers/suppfunc_canon.pysuppfunc_canonr<   
   s    Qc"A\\F++-LAq&
!&&
#CDI 	

A	
B2v
 BHHAF9567##)f$)*J x I~~	N	)q.)UmG "fQi.fQRj/Wg&&!	"
 UmG '%c62&A+&' E]F{{QJJvw/	Yq!t_%Yq!t_%Yq!t_% fWvgrvvay6'9:"3wHZ    )numpyr   cvxpyr   r   r   cvxpy.constraints.exponentialr   0cvxpy.reductions.solvers.conic_solvers.scs_conifr   r<    r=   r;   <module>rC      s     ' ' 1
1 r=   