
    Ti5                     |    d Z ddlmZmZmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZ ddlmZ ddlmZ ddlZ	 	 	 ddZdS )	z
This is a module that preprocesses the inputs.

Translated from Zaikun Zhang's modern-Fortran reference implementation in PRIMA.

Dedicated to late Professor M. J. D. Powell FRS (1936--2015).

Python translation by Nickolai Belakovski.
   )	DEBUGGINGEPSIPRINT_DEFAULTFTARGET_DEFAULTMIN_MAXFILTMAXFILT_DEFAULT
MAXHISTMEMETA1_DEFAULTETA2_DEFAULTGAMMA1_DEFAULTGAMMA2_DEFAULTRHOBEG_DEFAULTRHOEND_DEFAULTCTOL_DEFAULTCWEIGHT_DEFAULT)present    )warnNc                    t           r<|dk    sJ t          |          r(|dk    sJ |dk    s|                                 dk    sJ |                                 dk    r(t          |          rt          |          r
|dk    s|sJ |                                 dk    r@t          |          rt          |          sJ t          ||z
  dt          z  k              sJ t          |          rV|                                 dk    r<t          |          r-t          |          rt          |          rt          |          sJ t          |          r|                                 dk    r|nd}t          |          r|n|dk    }t          j        |          dk    rt          }t          |  d|            |                                 dk    r|dz   |dz   z  dz  dz   }d	}n'|                                 dk    r|dz   }d
}n|dz   }d}||k     r|}t          |  d| d|            |dk     r|}t          |  d|            t          ||          }t          j
        |          rt          }t          |  d|            |                                 dk    s0|                                 dk    s|                                 dk    rut          |	          rf|	|dz   k     s#|	t          |dz
  |dz   |dz   z  dz            k    r:t          t          |dz
  d|z  dz                       }	t          |  d|	            t          |
          r|                                 dk    s|                                 dk    r`|
}|
dk     rt          }
nt          t          |
          }
|                                 dk    r%|dz   t          j        t"                    j        z  }nB|                                 dk    r(||z   dz   t          j        t"                    j        z  }nd}|
t&          |z  k    rt          t&          |z            }
t          |t          t          |
                    }
|rr|dk     rt          |  d|
            nW|t          |t                    k     rt          |  d|
            n)|
t          ||          k     rt          |  d|
 d           t          |          r|nt(          }t          |          r|nt*          }t          |          rWt          |          rHt          j        ||z
            dt          z  t          t          j        |          d          z  k     r|}t          |          rwt          j
        |          rt(          }n[|dk     s|dk    rOt          |          r%|dk    r|dk    rt          t          |dz            }nt(          }t          |  d|            t          |          rSt          j
        |          rt*          }n7t          |          r(||k     s|dk    r|dz   dz  }t          |  d|            t          |          rCt          j
        |          rt,          }n'|dk    s|dk    rt,          }t          |  d|            t          |          rQt          j
        |          rt.          }n5|dk     st          j        |          rt.          }t          |  d|            t          j        ||z
            dt          z  t          j        t          j        |          d          z  k     r|}|                                 dk    rt          j        t          t          j	        t4          t          j	        ||z
            dz                      }t          j        t          t          j	        d|z  t6                              }nt4          }t6          }|                                 dk    rM|t          j	        ||z
            dz  k    r/t          j	        ||z
            dz  }t          |  d |  d!           |dk    s(t          j
        |          st          j        |          r\t          j        |          r2|dk    r,|                                 dk    rt          d"|z  |          }n|}t          |  d#|            |dk    s.||k     s(t          j
        |          st          j        |          r:t          t          t          d|z  |                    }t          |  d$|            t          |          r#|rn|}t          j        |          ||z
  t          t          j        dt          j        |                    z  k    z  } t          j        |          ||z
  t           t          j        dt          j        |                    z  k    z  }!||          || <   ||!         ||!<   t          t          t          j	        |||           ||           z
  ||!          ||!          z
  g                    }||z
  t          t          d|          z  k    r>t          t          t          d|z  |                    }|rt          |  d%| d&           nt          j        ||          }n|}"||d'|z  z   k    } ||d'|z  z   k    |||z   k     z  }#||d'|z  z
  k    }!||d'|z  z
  k     |||z
  k    z  }$||          || <   ||#         |z   ||#<   ||!         ||!<   ||$         |z
  ||$<   t=          t          j        |"|z
            dk              rt          |  d(           t          |          r7t          j
        |          s|dk     rt>          }|rt          |  d)|            t          |          r7t          j
        |          s|dk     rt@          }|rt          |  d*|            t           rt          |          dk    sJ |dk    r||k    sJ t          |	          r||	dz   k    sJ |	dk    sJ t          |
          r&|
t          j        t          |          k    r|
|k    sJ t          |          r#t          |          r|dk    r||k    r|dk     sJ t          |          r#t          |          r|dk    r|dk     r|dk    sJ ||k    r|dk    sJ |                                 dk    rt          |||z
  dz  k              sJ t          t          j        |                    sJ t          ||k    o||k    p|||z   k              sJ t          ||k    o||k    p|||z
  k              sJ t          |          r|dk    sJ |||||||	|
|||||||fS )+z`
    This subroutine preprocesses the inputs. It does nothing to the inputs that are valid.
    r   r   cobylabobyqa      zG: Invalid IPRINT; it should be 0, 1, -1, 2, -2, 3, or -3; it is set to uobyqaz(N+1)(N+2)/2 + 1znum_vars + 2znum_vars + 3z(: Invalid MAXFUN; it should be at least z; it is set to zD: Invalid MAXHIST; it should be a nonnegative integer; it is set to z<: Invalid FTARGET; it should be a real number; it is set to newuoalincoazn: Invalid NPT; it should be an integer in the interval [N+2, (N+1)(N+2)/2] and less than MAXFUN; it is set to zB: Invalid MAXFILT; it should be a positive integer; it is set to  z%: MAXFILT is too small; it is set to z: MAXFILT is set to z due to memory limitg      Y@g      @zY: Invalid ETA1; it should be in the interval [0, 1) and not more than ETA2; it is set to g      @zY: Invalid ETA2; it should be in the interval [0, 1) and not less than ETA1; it is set to zA: Invalid GAMMA1; it should in the interval (0, 1); it is set to zK: Invalid GAMMA2; it should be a real number not less than 1; it is set to g      @g?z: Invalid RHOBEG; zE requires 0 < RHOBEG <= np.min(XU-XL)/2; it is set to np.min(XU-XL)/4
   z?: Invalid RHOBEG; it should be a positive number; it is set to zT: Invalid RHOEND; it should be a positive number and RHOEND <= RHOBEG; it is set to z: RHOBEG is revised to zl and RHOEND to at most 0.1*RHOBEG so that the distance between X0 and the inactive bounds is at least RHOBEGg      ?z: X0 is revised so that the distance between X0 and the inactive bounds is at least RHOBEG set HONOUR_X0 to .TRUE. if you prefer to keep X0 unchangedz@: Invalid CTOL; it should be a nonnegative number; it is set to zC: Invalid CWEIGHT; it should be a nonnegative number; it is set to )!r   r   lowerallr   npabsr   r   minisnanr   intr   maxr   dtypefloatitemsizer	   r
   r   r   r   isinfmaximumr   r   isfiniteminimumanyr   r   )%solvernum_varsiprintmaxfunmaxhistftargetrhobegrhoendnum_constraintsnptmaxfiltctolcweighteta1eta2gamma1gamma2is_constrained
has_rhobeg	honour_x0xlxux0
min_maxfunmin_maxfun_str
maxfilt_in	unit_memo
eta1_local
eta2_localrhobeg_defaultrhoend_default
rhobeg_oldlbxubxx0_oldlbx_plus	ubx_minuss%                                        y/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/scipy/_lib/pyprima/common/preproc.pypreprocrT      s     v1}}}}?## 	F"a''''"a''6<<>>X+E+E+E+E<<>>X%%'/*B*B%w~G^G^%"a''>'''<<>>X%%2;;.72;;...rBw!c')*****9 	v<<>>X--'*2E2E-'RT++-ZabdZeZe-jqrtjuju--- +2/*B*Biv||~~YaGaGaoohiO )0(?(?Y^^oXYFYN 
vf~~gg_egghhh ||~~!!lx!|4q81<
+	8	#	#\
'\
'
gggg_egghhh {{ee\ceefff'6""G 
x _!]]T[]]^^^ 	(""fllnn&@&@FLLNNV^D^D^dklodpdpD^(Q,#FQJ(Q,8VW<9X\]8](^(^"^"^c&1*a(lQ&67788CF  P  P  KN  P  P  Q  Q  Q w SV\\^^x776<<>>X;U;U
Q;;%GG+w//G<<>>X%%!A%)AAII\\^^x''(83a728E??;SSIII Z)+++*y011Gfc+w7788 	SA~~kkbikkllllc&+6666NNWNNOOOO3z62222QQGQQQRRR !8LJ 8LJ t}}  6$+s26$<</C/C!CCCDt}} }8D>> 
	}  DDAXXt}} $aJ!OO3s
++#F{{uy{{|||t}} }8D>> 	}  DDT]] 	}z 1 1TAXX1H#DF{{uy{{||| v g8F 	g $FFq[[FaKK#FFee]ceefffv q8F 	q $FFaZZ28F++Z#FFoogmooppp 
vfvorz"&..!/L/L!LLL  ||~~!!CrBwRU@U)V)VWWCn0Dn)U)UVV''||~~!! BF27OOa''' VBG__s*FF{{f{{{|||{{bhv&&{"(6*:*:{ ;v 	$6A::&,,..H2L2Lfn55FF#F__W]__```{{fvoo&)9)9oRXf=M=MoS#cFlN;;<<ttlrttuuu y w 	wJ+b//R"WbjBF2JJ6O6O0O%OPC+b//R"Wrz!RVBZZ7P7P0P%PQCgBsGgBsGbffb#hSD.A2sd8bRUQUhCV%WXXYYFF"S3q*+=+=%===S#cFlF";";<< qF  p  p6  p  p  p  q  q  qFF33F S6\))CR#,..2V3CDHS6\))Cb3<//Bf4DEIgBsGh<&0BxLgBsGyMF2ByMBF6B;''!+,, w  v  v  v  w  w  w 	 hHTNN 	hdQhhD hff`dffggg 	 nHW 	n1%G nllcjllmmm  6{{a!||6 1 1 1 13<< 	S1W$$$$!88887 	Tbjf===='VBSBSBSBS4== 	;WT]] 	;199$((((6?? 	<wv 	<A::&1**!FQJJJJ<<>>X%%v"r'Q./////r{2'''''rRxCR2X%BrF{1BDDDDDrRxCR2X%BrF{1BDDDDD4== 	1999967GVVS'4QXZ^`dflntvxxx    )NNNNNNNNNNNNNNN)__doc__constsr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   warningsr   numpyr    rT    rU   rS   <module>r[      s"   " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "                 NR\`15Ay Ay Ay Ay Ay AyrU   