
    Ph$                     b    d Z ddlmZ ddlmZ ddlmZmZmZ ddl	Z
ddlmZ dgZd	 Zddefd
Zy)z&Byrd-Omojokun Trust-Region SQP method.    )eye   )projections)modified_doglegprojected_cgbox_intersectionsN)normequality_constrained_sqpc                 F    t        j                  |       \  }t        |      S )N)npshapespeye)xns     C:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\scipy/optimize/_trustregion_constr/equality_constrained_sqp.pydefault_scalingr      s    	!BA8O    c           
      	   d}d}d}d}d}d}d}d}d}d}d}t        j                  |      \  }|%t        j                  |t         j                         }|$t        j                  |t         j                        }t        j                  |      }|}|
}|}|} |}!|}" ||      }#	 t        |"|      \  }$}%}&|%j                  |        }( |||(      })t        | |"j                  j                  |(      z   t         j                        }*t        |!      dkD  rt        |!t         j                        nd}+dddd},d}- ||	||-|*|+|||,      sTt        |"|&|!||z  ||z  ||z        }.|)j                  |.      | z   }/t        j                  |!      }0t        j                  |dz  t         j                  j                  |.      dz  z
        }1||.z
  }2||.z
  }3t!        |)|/|$|&|0|1|2|3      \  }4},|.|4z   }5d|)j                  |5      j                  |5      z  | j                  j                  |5      z   }6|"j                  |5      |!z   }7t        |!      t        |7      z
  }8t#        d|8      }8|}9|6dkD  r|6d|z
  |8z  z  }:t#        ||:      }|6 ||8z  z   };||t        |!      z  z   }<||#j                  |5      z   }= | |=      \  }>}?|>|t        |?      z  z   }@|<|@z
  }A|A|;z  }B|B|k  rt        |.      |t        |4      z  k  rs|&j                  |?       }Ct%        |5|C||      \  }D}E}F||#j                  |5|E|Cz  z         z   }G | |G      \  }H}I|H|t        |I      z  z   }J|<|Jz
  }K|K|;z  }L|FrL|k\  rG}=H}>I}?L}BB|k\  rt#        |t        |5      z  |      }nZB|k\  rt#        |t        |5      z  |      }n<B|k  r7d|z
  dBz
  z  }M|Mt        |5      z  }N|N||z  k\  r||z  }nN||z  k\  rN}n||z  }B|k\  r|=}|>|?}!} ||      \  } }" ||      }#t        |"|      \  }$}%}&|%j                  |        }( |||(      })d}-t        | |"j                  j                  |(      z   t         j                        }*t        |!      dkD  rt        |!t         j                        nd}+n|9}d}- ||	||-|*|+|||,      sT||	fS # t        $ r!}'t        |'      d
k(  rt        d      |'|'d	}'~'ww xY w)au  Solve nonlinear equality-constrained problem using trust-region SQP.

    Solve optimization problem:

        minimize fun(x)
        subject to: constr(x) = 0

    using Byrd-Omojokun Trust-Region SQP method described in [1]_. Several
    implementation details are based on [2]_ and [3]_, p. 549.

    References
    ----------
    .. [1] Lalee, Marucha, Jorge Nocedal, and Todd Plantenga. "On the
           implementation of an algorithm for large-scale equality
           constrained optimization." SIAM Journal on
           Optimization 8.3 (1998): 682-706.
    .. [2] Byrd, Richard H., Mary E. Hribar, and Jorge Nocedal.
           "An interior point algorithm for large-scale nonlinear
           programming." SIAM Journal on Optimization 9.4 (1999): 877-900.
    .. [3] Nocedal, Jorge, and Stephen J. Wright. "Numerical optimization"
           Second Edition (2006).
    g333333?g?g:0yE>g      @g       @g      ?g?g?Nzexpected square matrixzThe 'expected square matrix' error can occur if there are more equality constraints than independent variables. Consider how your constraints are set up, or use factorization_method='SVDFactorization'.r   F)niter	stop_condhits_boundary   gؗҜ<r   T)r   r   fullinfcopyr   
ValueErrorstrdotr	   Tlenr   
zeros_likesqrtlinalgr   maxr   )Ofun_and_constrgrad_and_jac	lagr_hessx0fun0grad0constr0jac0stop_criteriastateinitial_penaltyinitial_trust_radiusfactorization_methodtrust_lbtrust_ubscalingPENALTY_FACTORLARGE_REDUCTION_RATIOINTERMEDIARY_REDUCTION_RATIOSUFFICIENT_REDUCTION_RATIOTRUST_ENLARGEMENT_FACTOR_LTRUST_ENLARGEMENT_FACTOR_SMAX_TRUST_REDUCTIONMIN_TRUST_REDUCTIONSOC_THRESHOLD	TR_FACTOR
BOX_FACTORr   r   trust_radiuspenaltyfcbASZLSYevH
optimalityconstr_violationcg_infolast_iteration_faileddnc_tb_ttrust_radius_tlb_tub_tdtdquadratic_modellinearized_constrvpredprevious_penaltynew_penaltypredicted_reductionmerit_functionx_nextf_nextb_nextmerit_function_nextactual_reductionreduction_ratioy_t	intersectx_socf_socb_socmerit_function_socactual_reduction_socreduction_ratio_soctrust_reductionnew_trust_radiussO                                                                                  r   r
   r
      s   @ N#& !%!$!$MIJ	"BA 771rvvg&771bff% 	A'LGAAAA
Aq"672q 

A!QA a!##''!*nbff-J*-a&1*tArvv! %'G "E1&;&(8('7< Q1&|3'0'02 eeBi!mmmAq299>>"3Eq3H!HI"}"}"1c1a#1#'/G
 G quuQxnnQ//!##''!*<EE!HQJ Q$011 E5!"Q)a.>-EFK';/G  /.> WT!W_,QUU1X'/$wtF|';; *,??*-@@ 778}tBx//vA/1hIOAq)a!A#g&E)%0LE5!&e)<!<#14F#F "69L"L04NN"5 339DGC+-L <<9DGC+-L 99 !"< < !/ 1 3O.a8#6#EE 33!%8<%GG/ 33 88A6qA?DAq
A"1&:;HAr1
A!QA$)!a!##''!*nbff5J25a&1*tArvv!&G$(!u E1&;&(8('7<x e8Ok  q6-- <
  Gs   %R   	S
)SS
)__doc__scipy.sparser   r   r   qp_subproblemr   r   r   numpyr   numpy.linalgr	   __all__r   r
    r   r   <module>ry      s8    , % $ K K  %
& '+&*%4Vr   