/* mod calculation including negative direction. */ new; cls; print mod(-3,5); proc mod(x,m); retp( (x.>=0).*(x%m)+(x.<0).*((x+m.*ceil(abs(x)/m))%m) ); endp;