Quintiq file version 2.0
|
#parent: #root
|
StaticMethod CompareLexicographical (
|
Numbers tuple1,
|
Numbers tuple2
|
) const declarative remote as Number
|
{
|
Description: 'Compare between 2 tuples on whether tuple1 > tuple2'
|
TextBody:
|
[*
|
// Compare between 2 tuples on whether tuple1 > tuple2
|
// Set the value to the number that represents equality
|
value := Util::Compare_Equal();
|
|
// Check if both tuple1 & tuple2 has any elements in it
|
if( tuple1.Size() > 0 and tuple2.Size() > 0 )
|
{
|
tupledefaultvalue := 0;
|
undecided := true;
|
maxSize := maxvalue( tuple1.Size(), tuple2.Size() );
|
|
// Loop as long as the index is within the max number of elements in either tuples
|
// and the result remains undecided
|
for( i := 0; i < maxSize and undecided; i++ )
|
{
|
// Get the element in the tuples
|
v1 := ifexpr( tuple1.Size() > i, tuple1.Element( i ), tupledefaultvalue );
|
v2 := ifexpr( tuple2.Size() > i, tuple2.Element( i ), tupledefaultvalue );
|
|
// Check if tuple1 has element larger/less than the element in tuple2 at the same index
|
if( v2 < v1 )
|
{
|
value := Util::Compare_Bigger();
|
undecided := false;
|
}
|
else if( v2 > v1 )
|
{
|
value := Util::Compare_Smaller()
|
undecided := false;
|
}
|
}
|
}
|
|
return value;
|
*]
|
}
|