Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method OptimizeScopeThinQueue 
 | 
{ 
 | 
  Description: 'Optimize the thin queue; try to empty as much as possible and make sure to first use lower IDs.' 
 | 
  TextBody: 
 | 
  [* 
 | 
    queue := NumberVector::Construct( this.ScopeThinQueue() ); 
 | 
    queue.SortAscending(); 
 | 
    next := this.NextScopeThinID(); 
 | 
     
 | 
    for( i := queue.Size() - 1; i >= 0; i-- ) 
 | 
    { 
 | 
      if( queue.Get( i ) + 1 = next ) 
 | 
      { 
 | 
        next--; 
 | 
        queue.Resize( i ); 
 | 
      } 
 | 
      else 
 | 
      { 
 | 
        // Skip 
 | 
        i := 0; 
 | 
      } 
 | 
    } 
 | 
     
 | 
    queue.SortDescending(); 
 | 
    this.ScopeThinQueue( queue.AsBinaryValue() ); 
 | 
    this.NextScopeThinID( next ); 
 | 
  *] 
 | 
} 
 |