# Mixed inequality

!distribute items $wims_read_parm into slib_n, slib_type, slib_formula

!default slib_static_r1=!randitem -8,-7,-6,-5,-4,-3,-2,2,3,4,5,6,7,8
!default slib_static_r2=!randitem -8,-7,-6,-5,-4,-3,-2,2,3,4,5,6,7,8
!default slib_static_r3=!randint 1,100
!default slib_static_r3=!randitem $slib_static_r3,-$slib_static_r3
!default slib_static_dir=!randitem (<,max,1),(>,min,-1),(<=,max,0),(>=,min,0)

slib_i=!declosing $slib_static_dir
!distribute item $slib_i into slib_ineq,slib_minmax,slib_const
slib_pari=!rawmath $slib_static_r1*(sLi-1)+$slib_static_r2*sLx[sLi]-$slib_static_r3

!default slib_shformula=!randitem $slib_static_r1*var_i + $slib_static_r2*var_l[var_i] $slib_ineq $slib_static_r3,\
	$slib_static_r1*var_i $slib_ineq -$slib_static_r2*var_l[var_i] + $slib_static_r3,\
	$slib_static_r2*var_l[var_i] $slib_ineq -$slib_static_r1*var_i + $slib_static_r3
slib_shformula=!rawmath $slib_shformula

slib_list=!item 4 to -1 of $wims_read_parm
!exec pari sLx=[$slib_list]
slib_pariout=!exec pari vector($slib_n,sLi,$slib_minmax($slib_pari+($slib_const),0))
slib_1=!positionof item 0 in $slib_pariout

!if $slib_formula != $empty
 slib_l=!item $slib_1 of $slib_list
 slib_sum=!sum $slib_formula for x in $slib_l
!else
 slib_sum=
!endif

slib_tq=!randitem such that, for which, where

slib_2=for the indices var_i $slib_tq <tt>$slib_shformula</tt>

slib_out=$slib_1\
$slib_2\
$slib_sum

