class TVecInt : public TAbstractMtxVecInt;
Class for one dimensional integer arrays.
Class for accessing and manipulating 8bit unsigned and 16 or 32 bit signed one dimensional arrays of integers and bits. Purpose of usage:
- leverage the SSEX/AVX instruction sets for integers
- take advantage of reduce storage size and fast bit (and, or, xor, not) operations
- provide basic (saturation) math support. Saturation math means that adding two integers whose result would be greater than the integer range will result in clipping of the result to the maximum value representable by the integer type.
- support for super-conductive object cache allows efficient multi-core threading of algorithms using this type.
- Pack and unpack bit arrays for much faster boolean processing.
The same object type can be used to work with three different integer types and integer precision is never changed implicitely. Mixing of different integer types or mixing with real types is not supported to avoid hidden cost of repeated conversions.
Constructors
| Name | Description |
|---|---|
| TVecInt (2) |
Properties
| Name | Type | Description |
|---|---|---|
| ActualSize | long long | For internal use only. Read to get the amount of memory allocated in number of doubles (8byte packs). |
| BitCount | long long | Allows sizing the internal storage to accomodate desired number of bits. |
| BlockEnd | bool | Returns true, if the currrent subrange of the vector was also the last subrange in the vector. |
| CacheIndex | int | For internal use only. Read to get the index of this object in object cache. |
| Capacity | long long | Sizing the object will not allocate less than Capacity. |
| CapacityInBytes | long long | Sizing the object will not allocate less than CapacityInBytes. |
| CapacityInElements | long long | Sizing the object will not allocate less than CapacityInElements. |
| CapacityStep | double | Specifies increment step for the Capacity property. |
| Caption | DewString | Caption. |
| ConditionCheck | bool | Enables/disable inline condition checking. |
| First | int | First element in object Values array. |
| IntegerValues | DewString | Returns content as a string suitable for display as a tooltip. |
| IntPrecision | TIntPrecision | Defines internal storage precision which can be either 32, 16 or 8 bit. |
| IntPrecisionLock | bool | Prevents change to IntPrecision if Lock = True. |
| IsDouble | bool | Defines the precision (single or double) of the floating point operations. |
| IsSubRange | bool | Set to true after the SetSubIndex or SetSubRange call. |
| Last | int | Last element in object Values array. |
| Length | int | Defines the length in number of samples. |
| MtxVecType | TMtxVecType | |
| OnSetSize | TMtxNotifyEvent | Called when object size changes. |
| PoolIndex | int | Internal. |
| ScaleFactor | int | Specifies the power of two for the scale factor used by some methods. |
| Tag | int | Stores an integer value as part of a TMtxVec object. |
Methods
| Name | Description |
|---|---|
| Abs (4) | Absolute values. |
| Add (12) | Add coresponding elements in Src2 to Src1. |
| AddAndMul (26) | Compute (X + Y)*Z |
| AddRef | |
| AddScaled (10) | Compute X + Y*yScale |
| AddScaledC (4) | Compute X + Y*yScale + zScalar |
| AddScaledSqr (4) | Compute sqr(X + Y*yScale) |
| Adopt | |
| Assign | |
| BinaryAnd (8) | Apply binary "and" between coresponding elements in Src1 and Src2. |
| BinaryNot (4) | Applies binary "not" operation to elements stored in the object. |
| BinaryOr (8) | Apply binary "or" between coresponding elements in Src1 and Src2. |
| BinarySearch (4) | Finds a match for X in object values using binary search. |
| BinaryXor (8) | Apply binary "xor" between elements in the calling object and Value. |
| BitPack (2) | Converts Src to packed bit storage. |
| Bits | |
| BitShift (4) | Apply binary shift by number of Bits to the left (positive) or right (negative) for all elements in the calling object. |
| BitShiftLeft (4) | Apply binary shift by number of Bits to the left for all elements in the calling object. |
| BitShiftRight (4) | Apply binary shift by number of Bits to the right for all elements in the calling object. |
| BitUnpack (2) | Converts Src to unpacked bit storage. |
| BlockFinish | Deinitializes block processing before the final block is processed. |
| BlockInit (4) | Initializes block processing. |
| BlockNext | Obtains the next subrange of the data. |
| BlockSubRangeLevel | Returns the current subrange stack level used by block processing functions. |
| BValues | |
| BValues1D | |
| Clear | Sets size to 0 and releases associated memory. |
| Concat (2) | Concatenates an array of TVecInt objects. |
| CondDisable | Saves the current value of ConditionCheck property and sets it to false. |
| CondEnable | Sets the ConditionCheck property to whatever it was before the CondDisable was used. |
| Convert (2) | Copy each of Vec elements to the calling object. |
| Copy (2) | Copy object values. |
| CopyFromArray (14) | Copies values from a real Src array. |
| CopyToArray (16) | Copies values from the calling object to the Dst array and converts values to to 2 byte signed integer numbers. |
| CountInRange (2) | Returns number of values within the interval. |
| CreateCached | |
| CumSum (4) | Cumulative sum. |
| DataIndex (2) | |
| DefaultArray | |
| Diag | Copies the k-th diagonal from the TMtxInt object. |
| Difference (3) | Difference. |
| DisableSelect | Prevents calls to TVecInt::Select. |
| DisableSubrange | Prevents calls to TVecInt::SetSubRange. |
| Disown (2) | |
| Distinct | Stores distinct values from Src in to Dst. |
| DivAndAdd (12) | Compute X/Y + Z |
| DivAndSub (12) | Compute X/Y - Z |
| Divide (12) | Divides coresponding elements in Src1 with Src2. |
| DivideBy (4) | Divide Value with calling vector elements. |
| DivideC (2) | Compute X / (Y*zScale) |
| EnableSelect | Enables calls to TVecInt::Select. |
| EnableSubrange | Enables calls to TVecInt::SetSubRange. |
| Find (2) | Finds a match for X in object values. |
| FindAndGather (2) | The b parameter is of integer type. |
| FindIndexes (2) | Finds matching indexes. The b parameter is of integer type. |
| FindIndexesAndLength (2) | Finds matching indexes and returns their count. The b parameter is of integer type. |
| FindMask (4) | Finds a vector mask. |
| FreeCached | |
| FreeToCache | Releases this object back to cache. |
| Gather | Gather vector elements. |
| GatherByIncr | Gathers elements from X starting at Offset and with Increment to the calling object. |
| GatherByIndex | Gathers elements from X specified by indices stored in Indexes the calling object. |
| GatherByMask | Gathers elements from X specified by non-zero values stored in the Mask to the calling object. |
| get_Bits | |
| get_BValues | |
| get_BValues1D | |
| get_DefaultArray | |
| get_IValues | |
| get_IValues1D | |
| get_SValues | |
| get_SValues1D | |
| GetCapacity | |
| GetCapacityInElements | |
| GetCol (3) | Copies a column from matrix. |
| GetObjectToByteArray | Copies object to an array of bytes. |
| GetRow (3) | Copies a row from matrix. |
| GroupCount | Counts groups of equal numbers within Bins. |
| GroupCountIteration | Counts groups of equal numbers within Bins. |
| IsEqual (4) | Compares Value with all calling object elements. |
| IValues | |
| IValues1D | |
| LoadFromFile | Reads the header information and the values array content from the file. |
| LoadFromStream | Load the list from a stream. |
| LogicalNot (4) | Applies logical "not" operation to elements stored in the object. |
| Max (4) | Maximum value. |
| MaxEvery (4) | Vectorised maximum. |
| MaxMin (2) | Calculate minimum and maximum in one procedure call. |
| MaxMinIdx (2) | Calculate minimum, maximum and their indices in one procedure call. |
| Median (6) | Applies median filter with size Mask to the calling vector elements [Index.. Index+Len-1]. |
| Min (4) | Minimum value. |
| MinEvery (4) | Vectorised minimum. |
| Mul (4) | Compute X*Y*Z |
| MulAndAdd (14) | Compute X*Y + Z |
| MulAndDiv (6) | Compute X * Y / Z |
| MulAndSub (14) | Compute X*Y - Z |
| Multiply (8) | Multiplies coresponding elements in Src2 with Src1. |
| Parse | Parses string content as vector. |
| PBValues | Obtains a pointer to the 8bit unsigned integer value of the vector at Index. |
| PIValues | Obtains a pointer to the 32bit signed integer value of the vector at Index. |
| PSValues | Obtains a pointer to the 16bit signed integer value of the vector at Index. |
| PValues | Obtains a pointer to the integer value of the vector at Index. |
| Ramp (3) | Fills the calling vector elements [Index]..[Index+Len-1]. |
| RandomRamp | Fills the calling vector elements with linear rule and randomly shuffles the indexes. |
| RandomShuffle | Randomly shuffles the content of the vector. |
| ReadHeader | |
| ReadValues | Read values content from stream to object. |
| Release | |
| RemDiv (6) | Divide all Src elements with Value elements and store result of division in the calling object and reminder in RemDst. |
| Reset | |
| Resize (2) | Resizes vector size while preserving values. |
| Reverse (4) | Reverse vector elements. |
| Rotate (4) | A cyclic shift on vector elements in range. |
| SaveToFile | Write object header and values to a file. |
| SaveToStream | Save the list to a stream. |
| Scatter | Scatter object elements. |
| ScatterByIncr | Scatters Src elements starting at Offset and with Increment to the calling object. |
| ScatterByIndexes | Scatters Src elements defined with indices stored in Indexes to the calling object. |
| ScatterByMask | Scatters Src elements defined with the Mask to the calling object. |
| Select (2) | Selects a set of elements from the vector. |
| SelectAll | Resets any defined selection. |
| set_Bits | |
| set_BValues | |
| set_BValues1D | |
| set_DefaultArray | |
| set_IValues | |
| set_IValues1D | |
| set_SValues | |
| set_SValues1D | |
| SetCapacity | |
| SetCapacityInElements | |
| SetFullRange | Resets subrange defined with SetSubRange. |
| SetFullRangeLevel | Pops the current subrange stack one level up. |
| SetInteger | |
| SetIntPrecision | |
| SetIt (2) | Sets object values. |
| SetLength | |
| SetObjectFromByteArray | Reads the properties of the object from the array of bytes. |
| SetSubIndex (2) | Defines a subarray. |
| SetSubRange (4) | Defines a sub vector/matrix. |
| SetSubRangeLevel (2) | Defines a sub vector/matrix and pushes any previous subranges on to a stack. |
| SetVal (2) | Set all calling object elements [Index]..[Index+Len-1] to Value. |
| SetZero (2) | Set all calling vector elements to zero. |
| Shift (4) | Perform a shift on vector elements in range. |
| Size (3) | Sets the size and storage precision of the calling object. |
| SizeFromArray (6) | Sets the size of the vector to match an array. |
| SizeToArray (8) | Sizes the array. |
| SortAscend (4) | Sort calling vector elements [Index..Index+Len-1] in ascending order in-place. |
| SortDescend (4) | Sort calling vector elements [Index..Index+Len-1] in descending order in-place. |
| SqrAddScaled (4) | Compute sqr(X) + sqr(Y)*yScale |
| StringsToValues (4) | Convert strings in srcList to integers. |
| Sub (4) | Compute X - Y - Z |
| SubAndMul (26) | Compute (X - Y)*Z |
| SubRangeLevel | Returns the current subrange stack level. |
| SubScaled (6) | Compute X - Y*yScale - Z*zScale |
| SubScaledC (4) | Compute X - Y*yScale - zScalar |
| Subtract (8) | Subtract coresponding elements in Src2 from Src1. |
| SubtractFrom (4) | Subtract all calling vector elements from integer Value. |
| Sum (2) | Sums vector values. |
| SValues | |
| SValues1D | |
| ThreshAbsGT (4) | Threshold top and bottom centered around zero. |
| ThreshAbsLT (4) | Threshold top and bottom centered around zero. |
| ThreshBottom (4) | Threshold bottom operation. |
| ThresholdGT_LT (4) | Threshold greater than and less than operation. |
| ThreshTop (4) | Threshold top operation. |
| ToolTip | |
| ToString | Returns content as a string. |
| ValidateCplxArrayIndexes | |
| ValidateParams (4) | |
| ValidateParams2 | |
| ValidateRealArrayIndexes | |
| ValuesToStrings (4) | Converts the content of the Values array of the calling vector to a list of strings. |
| ValuesToText (2) | Convert all vector elements to text. |
| WriteHeader | |
| WriteValues |
Operators
| Name | Description |
|---|---|
| operator!= (6) | Returns true, if Left and Right do not have equal Length and Values. |
| operator& (2) | Computes bitwise "and" between Left and right. |
| operator* (2) | Multiply all elements in Left with corresponding elements in Right. |
| operator+ (2) | Add coresponding elements in Left and Right. |
| operator- (2) | Subtract coresponding elements in Right from Left. |
| operator/ (2) | Divide all elements in Left with coresponding elements in Right. |
| operator== (6) | Returns true, if Left and Right are of equal Length and Values. |
| operator[] | |
| operator^ (2) | Performs logical "xor" between Left and Right. |
| operator| (2) | Computes bitwise "or" between Left and right. |
Fields
| Name | Type | Description |
|---|---|---|
| BData | DewArray<unsigned char> | |
| FBDataOffset | int | |
| FIDataOffset | int | |
| fRefCount | int | |
| FSDataOffset | int | |
| IData | DewArray<int> | |
| SData | DewArray<short> | |
| ThreadID | long long |