!distribute items $wims_read_parm into o1,o2,o3,o4
o5=$[$o3+$o4]

!reset log,sign
s1=$[sign($o1)]
s2=$[sign($o2)]
!for t=1 to $vcnt
 n=!item $t of $vlist
 l=$[rint((log(abs($o1))+$n*log(abs($o2))+$o3*log($n)+$o4*log($n+$cst))/log(10))]
 s=$[$s1*($s2)^($n)]
 !if $s>=0
  ss=&nbsp;
 !else
  ss=-
 !endif
 sign=!append item $ss to $sign
 log=!append item $l to $log
!next t

!if $o2<=-1
 l0=NO
!else
 !ifval $o2!=1
  !if abs($o2)>1
   l0=INF
  !else
   l0=0
  !endif
 !else
  !ifval $o5!=0
   !ifval $o5>0
    l0=INF
   !else
    l0=0
   !endif
  !else
   l0=$o1
  !endif
 !endif
!endif

!if $o1>=0 or $l0!=INF
 ss=$ 
!else
 ss=-
!endif

sign=!append item $ss to $sign
log=!append item $l0 to $log
