# Complete squares

!distribute items $wims_read_parm into slib_n, slib_type, slib_formula

!default slib_static_r2=!randitem 0,1
!if $slib_static_r2=1
 slib_p1=not
 slib_p2=non-
!else
 slib_p1=
 slib_p2=
!endif

slib_all=!makelist x for x=1 to $slib_n
slib_sqrt=$[ceil(sqrt($slib_n))+1]
slib_1=!values x^2+1 for x=0 to $slib_sqrt
!if $slib_static_r2>0
 slib_1=!listcomplement $slib_1 in $slib_all
!else
 slib_1=!listintersect $slib_1 and $slib_all
!endif
!if $slib_formula != $empty
 slib_list=!item 4 to -1 of $wims_read_parm
 slib_list=!item $slib_1 of $slib_list
 slib_sum=!sum $slib_formula for x in $slib_list
!else
 slib_sum=
!endif

slib_2=!randitem for indices var_i who are $slib_p1 complete squares

slib_out=$slib_1\
$slib_2\
$slib_sum

