var b, c: VectorInt;
bv:
TVecInt;
begin
b := VectorInt(TIntegerArray.Create(1,1,1,1));
//b = [1,1,1,1];
bv := b;
//b and bv point to same data object
bv.Multiply(2);
bv.Bits[76] := true;
//set 76th bit in the array to 1
TVecInt(b).
Multiply(2);
//an alternative way to scale
c := b*2 + 3;
//c := b*2 + 2 + 3i
c := b*bv;
//mix VectorInt and TVecInt
bv.Add(c);
//pass VectorInt type and implicitely convert to TVecInt pointer
b.PackBits(c);
// store bit 1 in b for all elements in c which are different from zero. Bit 0 otherwise.
end;