Home || Architecture || Video Search || Visual Search || Scripts || Applications || Important Messages || OGL || Src

template<class Col1T, class Col2T, class Col3T, class Col4T, class Col5T, class Col6T, class Col7T, class Col8T, class Col9T>
void Impala::Core::Table::SortOnColumn4 ( TableTem< Col1T, Col2T, Col3T, Col4T, Col5T, Col6T, Col7T, Col8T, Col9T > *  t,
bool  ascending 
)

Definition at line 139 of file Sort.h.

References Impala::Util::ApplyOrder(), Impala::Core::Table::TableTem< Col1T, Col2T, Col3T, Col4T, Col5T, Col6T, Col7T, Col8T, Col9T >::GetColumn1(), Impala::Core::Table::TableTem< Col1T, Col2T, Col3T, Col4T, Col5T, Col6T, Col7T, Col8T, Col9T >::GetColumn2(), Impala::Core::Table::TableTem< Col1T, Col2T, Col3T, Col4T, Col5T, Col6T, Col7T, Col8T, Col9T >::GetColumn3(), Impala::Core::Table::TableTem< Col1T, Col2T, Col3T, Col4T, Col5T, Col6T, Col7T, Col8T, Col9T >::GetColumn4(), Impala::Core::Table::TableTem< Col1T, Col2T, Col3T, Col4T, Col5T, Col6T, Col7T, Col8T, Col9T >::GetColumn5(), Impala::Core::Table::TableTem< Col1T, Col2T, Col3T, Col4T, Col5T, Col6T, Col7T, Col8T, Col9T >::GetColumn6(), Impala::Core::Table::TableTem< Col1T, Col2T, Col3T, Col4T, Col5T, Col6T, Col7T, Col8T, Col9T >::GetColumn7(), Impala::Core::Table::TableTem< Col1T, Col2T, Col3T, Col4T, Col5T, Col6T, Col7T, Col8T, Col9T >::GetColumn8(), Impala::Core::Table::TableTem< Col1T, Col2T, Col3T, Col4T, Col5T, Col6T, Col7T, Col8T, Col9T >::GetColumn9(), Impala::Util::QuickSortCo(), Impala::Util::QuickSortDescCo(), and Impala::Core::Table::Table::Size().

Referenced by Sort().

00140 {
00141     int i;
00142     ColumnInt32 rank(t->Size());
00143     for(i=0 ; i<t->Size() ; i++)
00144         rank.Set(i, i);
00145 
00146     if(ascending)
00147         Util::QuickSortCo(t->GetColumn4()->GetData(), rank.GetData(), 0, t->Size()-1);
00148     else
00149         Util::QuickSortDescCo(t->GetColumn4()->GetData(), rank.GetData(), 0, t->Size()-1);
00150 
00151     /* compute order from the rank, so fill an array with numbers
00152        at the positions they are found in the array 'rank'.
00153        this is the 'inverse of the ordering' so to say... */
00154     ColumnInt32 order(t->Size());
00155     for(i=0 ; i<t->Size() ; i++)
00156         order.Set(rank.Get(i), i);
00157 
00158     ApplyOrder(t->GetColumn1(), &order);
00159     ApplyOrder(t->GetColumn2(), &order);
00160     ApplyOrder(t->GetColumn3(), &order);
00161     ApplyOrder(t->GetColumn5(), &order);
00162     ApplyOrder(t->GetColumn6(), &order);
00163     ApplyOrder(t->GetColumn7(), &order);
00164     ApplyOrder(t->GetColumn8(), &order);
00165     ApplyOrder(t->GetColumn9(), &order);
00166 }

Here is the call graph for this function:


Generated on Fri Mar 19 11:19:36 2010 for ImpalaSrc by  doxygen 1.5.1