Click or drag to resize

IMcOMGlobalMcOpRightShift Method

Arithmetic binary operator to Right Shift the bits of a variant.

Namespace:  MediaCy.IQL.ObjectManager
Assembly:  MediaCy.IQL.ObjectManager (in MediaCy.IQL.ObjectManager.dll) Version: 10.0.6912.0
Syntax
VB
Function McOpRightShift ( 
	LeftOperand As Object,
	RightOperand As Object
) As McObject

Parameters

LeftOperand
Type: SystemObject
Left operand. May be a scalar or array of any integral type. It may also be an McObject instance of an integral type.
RightOperand
Type: SystemObject
Right operand. May be a scalar or array of any numeric type. It may also be an McObject instance of a numeric type.

Return Value

Type: McObject
A McObject instance holding varLeftOperand >> varRightOperand. The returned result will be of the arithmetic type of varLeftOperand. It will also be the same shape as varLeftOperand, except that it will always be an array, even if the varLeftOperand is a scalar (generally there is no reason to use these vector operators unless you are dealing with arrays).
Remarks
The VARIANT varRightOperand is taken as the number of bits to right shift the bits of the VARIANT varLeftOperand and the result is returned. The left operand must be an integral type; the right operator is cast to an integral number by truncation if necessary. If the shape of varRightOperand differs from varLeftOperand, then elements from the varRightOperand are associated with elements from from varLeftOperand in order, irrespective of number of dimensions or sizes of dimensions. If the vector length of varRightOperand is less than that of varLeftOperand, the right operand is re-used as often as necessary. As illustrated in the example, the result can be accessed as an McObject instance by assigning with the "Set" keyword, or it can be accessed as a numeric Variant (the default McObject.Value property) by assigning to a Variant variable without the "Set" keyword. McToText and all of the vector operations will take either type of Variant as arguments. When performing sequential vector operations on large arrays, an extra copy is avoided by passing results from one operation to the next an McObject instance instead of as a Variant numeric array.
Examples
VB
varLeft = Array( Array(1,2,3), Array(10,20,30))
varRight = Array( 1,-2, 2)
Set varResult = McOpRightShift( varLeft, varRight) ' Set keeps it an McObject
' Show Operation McObject Result = 0,0,0 5,0,7
MsgBox( "Operation IMcObject Result = " + McToText(varResult))
' Show Result nDims: 2 Dim sizes: -2 -3
MsgBox( "Result nDims: " + Str( varResult.Shape(mcobjSIC_NofDims)) + _
" Dim sizes: " + McToText( varResult.Shape(mcobjSIC_SizeAllDims)))
' Assign without "Set" to convert it to a numeric Variant
varResult = McOpRightShift( varLeft, varRight) ' access Value Variant
MsgBox( "Operation Variant Result = " + McToText(varResult)) ' Same as above
See Also

Reference

IMcOMGlobalMcOpRightShift(Object, Object)