Vectors Library
mikroBasic PRO for dsPIC30/33 and PIC24 includes a library for working and using vectors. All routines work with fractional Q15 format.
Library Routines
- Vector_Set
- Vector_Power
- Vector_Subtract
- Vector_Scale
- Vector_Negate
- Vector_Multiply
- Vector_Min
- Vector_Max
- Vector_Dot
- Vector_Correlate
- Vector_Convolve
- Vector_Add
Vector_Set
Prototype |
sub procedure Vector_Set(dim byref input as word[1024], dim size, value as word) |
---|---|
Description |
Sets |
Parameters |
|
Returns |
Nothing. |
Requires |
Nothing. |
Example |
dim vec2 as word[3] Vector_Set(vec2, 3, 0x4000) |
Notes |
|
Vector_Power
Prototype |
sub function Vector_Power(dim N as word, dim byref srcV as word[1024]) as word |
---|---|
Description |
Function returns result of power value (powVal) in radix point 1.15 |
Parameters |
|
Returns |
|
Requires |
Nothing. |
Example |
dim vec1 as word[3] Vector_Power(3, vec1) |
Notes |
|
Vector_Subtract
Prototype |
sub procedure Vector_Subtract(dim byref dest, v1, v2 as word[1024], dim numElems as word) |
---|---|
Description |
This function does subtraction of two vectors. dstV[n] = v1[n] - v2[n], n Î [0, numElems-1] |
Parameters |
|
Returns |
Nothing. |
Requires |
Nothing. |
Example |
dim vec1 as word[3] vec2 as word[3] vecDest as word[3] Vector_Subtract(vecDest, vec1, vec2, 3) |
Notes |
|
Vector_Scale
Prototype |
sub procedure Vector_Scale(dim N as word, dim ScaleValue as integer, dim byref SrcVector, DestVector as word[1024]) |
---|---|
Description |
This function does vector scaling with scale value. dstV[n] = sclVal * srcV[n], n Î [0, numElems-1] |
Parameters |
|
Returns |
Nothing. |
Requires |
Nothing. |
Example |
dim vec1 as word[3] vecDest as word[3] Vector_Scale(3, 2, vec1, vecDest) |
Notes |
|
Vector_Negate
Prototype |
sub procedure Vector_Negate(dim byref srcVector, DestVector as word[1024], dim numElems as word) |
---|---|
Description |
This function does negation of vector. dstV[n] = (-1)*srcV1[n] + 0, n Î [0, numElems) |
Parameters |
|
Returns |
Nothing. |
Requires |
Nothing. |
Example |
dim vec1 as word[3] vecDest as word[3] Vector_Negate(vec1, vecDest, 3) |
Notes |
|
Vector_Multiply
Prototype |
sub procedure Vector_Multiply(dim byref v1, v2, dest as word[1024], dim numElems as word) |
---|---|
Description |
This function does multiplication of two vectors. dstV[n] = srcV1[n] * srcV2[n], n Î [0, numElems-1] |
Parameters |
|
Returns |
Nothing. |
Requires |
Nothing. |
Example |
dim vec1 as word[3] vec2 as word[3] vConDest as word[10] Vector_Multiply(vec1, vConDest, vec2, 3) |
Notes |
|
Vector_Min
Prototype |
sub function Vector_Min(dim byref Vector as word[1024], dim numElems as word, dim byref MinIndex as word) as word |
---|---|
Description |
This function finds minimal value in vector. minVal = min (srcV[n]), n Î [0, numElems-1] |
Parameters |
|
Returns |
Minimum value ( |
Requires |
Nothing. |
Example |
dim vec1 as word[3] index, rslt as word rslt = Vector_Min(vec1, 3, index) |
Notes | [W0..W5] used, not restored |
Vector_Max
Prototype |
sub function Vector_Max(dim byref Vector as word[1024], dim numElems as word, dim byref MaxIndex as word) as word |
---|---|
Description |
This function find maximal value in vector. maxVal = max (srcV[n]), n Î [0, numElems-1] |
Parameters |
|
Returns |
Maximum value ( |
Requires |
Nothing. |
Example |
dim vec1 as word[3] index, rslt as word rslt = Vector_Max(vec1, 3, index) |
Notes | [W0..W5] used, not restored |
Vector_Dot
Prototype |
sub function Vector_Dot(dim byref v1, v2 as word[1024], dim numElems as word) as word |
---|---|
Description |
Function calculates vector dot product. |
Parameters |
|
Returns |
Dot product value :
|
Requires |
Nothing. |
Example |
dim vec1 as word[3] rslt = Vector_Dot(vec1,vec1,3) |
Notes |
|
Vector_Correlate
Prototype |
sub procedure Vector_Correlate(dim byref v1, v2, dest as word[1024], dim numElemsV1, dim numElemsV2 as word) |
---|---|
Description |
Function calculates Vector correlation (using convolution).
|
Parameters |
|
Returns |
Nothing. |
Requires |
Nothing. |
Example |
dim vec1 as word[3] vConDest as word[10] Vector_Correlate(vec1,vec1,vConDest,3,3) |
Notes | [W0..W7] used, not restored |
Vector_Convolve
Prototype |
sub procedure Vector_Convolve(dim byref v1, v2, dest as word[1024], dim numElemsV1, numElemsV2 as word) |
---|---|
Description |
Function calculates Vector using convolution.
|
Parameters |
|
Returns |
Nothing. |
Requires |
Nothing. |
Example |
dim vec1 as word[3] vConDest2 as word[10] Vector_Convolve(vec1,vec1,vConDest2,3,3) |
Notes |
|
Vector_Add
Prototype |
sub procedure Vector_Add(dim byref dest, v1, v2 as word[256], dim numElems as word) |
---|---|
Description |
Function calculates vector addition. dstV[n] = srcV1[n] + srcV2[n], n Î [0, numElems-1] |
Parameters |
|
Returns |
Nothing. |
Requires |
Nothing. |
Example |
dim vec1 as word[3] vec2 as word[3] vecDest as word[3] Vector_Add(vecDest, vec1, vec2, 3) |
Notes |
|
What do you think about this topic ? Send us feedback!