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

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

00078 {
00079     int i;
00080     ColumnInt32 rank(t->Size());
00081     for(i=0 ; i<t->Size() ; i++)
00082         rank.Set(i, i);
00083 
00084     if(ascending)
00085         Util::QuickSortCo(t->GetColumn2()->GetData(), rank.GetData(), 0, t->Size()-1);
00086     else
00087         Util::QuickSortDescCo(t->GetColumn2()->GetData(), rank.GetData(), 0, t->Size()-1);
00088 
00089     /* compute order from the rank, so fill an array with numbers
00090        at the positions they are found in the array 'rank'.
00091        this is the 'inverse of the ordering' so to say... */
00092     ColumnInt32 order(t->Size());
00093     for(i=0 ; i<t->Size() ; i++)
00094         order.Set(rank.Get(i), i);
00095 
00096     ApplyOrder(t->GetColumn1(), &order);
00097     ApplyOrder(t->GetColumn3(), &order);
00098     ApplyOrder(t->GetColumn4(), &order);
00099     ApplyOrder(t->GetColumn5(), &order);
00100     ApplyOrder(t->GetColumn6(), &order);
00101     ApplyOrder(t->GetColumn7(), &order);
00102     ApplyOrder(t->GetColumn8(), &order);
00103     ApplyOrder(t->GetColumn9(), &order);
00104 }

Here is the call graph for this function:


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