[go: up one dir, main page]

Menu

[r89]: / LIBVEC.MPL  Maximize  Restore  History

Download this file

22 lines (15 with data), 553 Bytes

;LIBDEF

)VECCLR(D,L)     [L-->0@D!L=0;D]
)VECSET(D,L,V)   [L-->0@D!L=V;D]
)VECCPY(D,S,L)   [L-->0@D!L=S!L;D]
)VECMOD(D,S,L,F) [L-->0@D!L=F(S!L);D]
)VECMOV(D,S,L;I) [D<S?[I=0;I<L@[D!I=S!I;++I]],D<>S?L-->0@D!L=S!L;D]

)VEC.HEAP=0

)VECHEAP(V,L)[VEC.HEAP=V;!V=--L*.INT;V!L=0]
)VECUSED(;V,L)[L=0;V=VEC.HEAP;!V@!V<0?[L-=!V;V-=!V],V+=!V;L]

)VECNEW(N;V,R) [N=(N+1)*.INT;V=VEC.HEAP;!V@[
  !V<0@V-=!V;R=V;!V>0@V+=!V;!R=V-R;N<=!R?[!(R+N)=!R-N;!R=-N;=R+.INT]
]]

)VECEND(V)V?V!-1<0?V!-1=-V!-1
)MALLOC(L)VECNEW((L+1)/.INT)
)FREE(V)VECEND(V)