[go: up one dir, main page]

Menu

[r99]: / LIBVEC.MPL  Maximize  Restore  History

Download this file

37 lines (28 with data), 756 Bytes

##LIBDEF

**FREE      //
**MALLOC    //
**VECCLR    //
**VECCPY    //
**VECEND    //
**VECHEAP   //
**VECMOD    //
**VECMOV    //
**VECNEW    //
**VECSET    //
**VECUSED   //

[
  VEC.HEAP

  VECCLR$(D,L)     [>L--@D!L=0;D]
  VECSET$(D,L,V)   [>L--@D!L=V;D]
  VECCPY$(D,S,L)   [>L--@D!L=S!L;D]
  VECMOD$(D,S,L,F) [>L--@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--@D!L=S!L;D]

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

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

  VECEND$(V)V?<V!-1?V!-1=-V!-1

  MALLOC$(L)VECNEW((L+1)/.INT)
  FREE$(V)VECEND(V)
]