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::SortOnColumn3 ( TableTem< Col1T, Col2T, Col3T, Col4T, Col5T, Col6T, Col7T, Col8T, Col9T > *  t,
bool  ascending 
)

Definition at line 108 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().

00109 {
00110     int i;
00111     ColumnInt32 rank(t->Size());
00112     for(i=0 ; i<t->Size() ; i++)
00113         rank.Set(i, i);
00114 
00115     if(ascending)
00116         Util::QuickSortCo(t->GetColumn3()->GetData(), rank.GetData(), 0, t->Size()-1);
00117     else
00118         Util::QuickSortDescCo(t->GetColumn3()->GetData(), rank.GetData(), 0, t->Size()-1);
00119 
00120     /* compute order from the rank, so fill an array with numbers
00121        at the positions they are found in the array 'rank'.
00122        this is the 'inverse of the ordering' so to say... */
00123     ColumnInt32 order(t->Size());
00124     for(i=0 ; i<t->Size() ; i++)
00125         order.Set(rank.Get(i), i);
00126 
00127     ApplyOrder(t->GetColumn1(), &order);
00128     ApplyOrder(t->GetColumn2(), &order);
00129     ApplyOrder(t->GetColumn4(), &order);
00130     ApplyOrder(t->GetColumn5(), &order);
00131     ApplyOrder(t->GetColumn6(), &order);
00132     ApplyOrder(t->GetColumn7(), &order);
00133     ApplyOrder(t->GetColumn8(), &order);
00134     ApplyOrder(t->GetColumn9(), &order);
00135 }

Here is the call graph for this function:


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