FTTALG.h 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. // FTTALG - [2020-04-13 11:57:47]
  2. #ifndef _FTTALG_H_
  3. #define _FTTALG_H_
  4. #include "common.h"
  5. #include "FTTPair.h"
  6. #include "FTTVector.h"
  7. /*
  8. 00199724 FTTALG::Quicksort<HeightSort,FTTVector<TEdgeGroup>::Iterator>(FTTVector<TEdgeGroup>::Iterator,FTTVector<TEdgeGroup>::Iterator)
  9. 001997F8 FTTALG::Quicksort<EdgeSort,FTTVector<FTTPair<uint,uint>>::Iterator>(FTTVector<FTTPair<uint,uint>>::Iterator,FTTVector<FTTPair<uint,uint>>::Iterator)
  10. 00199BE4 FTTALG::Quicksort<FTTLess,FTTVector<float>::Iterator>(FTTVector<float>::Iterator,FTTVector<float>::Iterator)
  11. 0019BC74 FTTALG::Quicksort<CrowdSortF,FTTVector<TGfxCrowdSeat *>::Iterator>(FTTVector<TGfxCrowdSeat *>::Iterator,FTTVector<TGfxCrowdSeat *>::Iterator)
  12. 0019BD64 FTTALG::Quicksort<CrowdSortD,FTTVector<TGfxCrowdSeat *>::Iterator>(FTTVector<TGfxCrowdSeat *>::Iterator,FTTVector<TGfxCrowdSeat *>::Iterator)
  13. 0019C028 FTTALG::Quicksort<FlagSort,FTTVector<CFTTVector32>::Iterator>(FTTVector<CFTTVector32>::Iterator,FTTVector<CFTTVector32>::Iterator)
  14. 0019C4F0 FTTALG::Quicksort<CrowdSortB,FTTVector<TGfxCrowdQuad>::Iterator>(FTTVector<TGfxCrowdQuad>::Iterator,FTTVector<TGfxCrowdQuad>::Iterator)
  15. 0019F56C FTTALG::Quicksort<SortShots,FTTVector<TShot>::Iterator>(FTTVector<TShot>::Iterator,FTTVector<TShot>::Iterator)
  16. 001C62DC FTTALG::Quicksort<SortShadowsSize,FTTArray<TShadowAABB *,256u>::Iterator>(FTTArray<TShadowAABB *,256u>::Iterator,FTTArray<TShadowAABB *,256u>::Iterator)
  17. 001C6354 FTTALG::Quicksort<SortShadowsAtlas,FTTArray<TShadowAABB *,256u>::Iterator>(FTTArray<TShadowAABB *,256u>::Iterator,FTTArray<TShadowAABB *,256u>::Iterator)
  18. 001A5CC8 FTTALG::Partition<HeightSort,FTTVector<TEdgeGroup>::Iterator>(FTTVector<TEdgeGroup>::Iterator,FTTVector<TEdgeGroup>::Iterator,FTTVector<TEdgeGroup>::Iterator)
  19. 001A5FE4 FTTALG::Partition<EdgeSort,FTTVector<FTTPair<uint,uint>>::Iterator>(FTTVector<FTTPair<uint,uint>>::Iterator,FTTVector<FTTPair<uint,uint>>::Iterator,FTTVector<FTTPair<uint,uint>>::Iterator)
  20. 001A6564 FTTALG::Partition<FTTLess,FTTVector<float>::Iterator>(FTTVector<float>::Iterator,FTTVector<float>::Iterator,FTTVector<float>::Iterator)
  21. 001A6B08 FTTALG::Partition<CrowdSortF,FTTVector<TGfxCrowdSeat *>::Iterator>(FTTVector<TGfxCrowdSeat *>::Iterator,FTTVector<TGfxCrowdSeat *>::Iterator,FTTVector<TGfxCrowdSeat *>::Iterator)
  22. 001A6BA4 FTTALG::Partition<CrowdSortD,FTTVector<TGfxCrowdSeat *>::Iterator>(FTTVector<TGfxCrowdSeat *>::Iterator,FTTVector<TGfxCrowdSeat *>::Iterator,FTTVector<TGfxCrowdSeat *>::Iterator)
  23. 001A6EF0 FTTALG::Partition<FlagSort,FTTVector<CFTTVector32>::Iterator>(FTTVector<CFTTVector32>::Iterator,FTTVector<CFTTVector32>::Iterator,FTTVector<CFTTVector32>::Iterator)
  24. 001A7448 FTTALG::Partition<CrowdSortB,FTTVector<TGfxCrowdQuad>::Iterator>(FTTVector<TGfxCrowdQuad>::Iterator,FTTVector<TGfxCrowdQuad>::Iterator,FTTVector<TGfxCrowdQuad>::Iterator)
  25. 001A7DF8 FTTALG::Partition<FTTLess,FTTITR::FTTArrayIterator<float>>(FTTITR::FTTArrayIterator<float>,FTTITR::FTTArrayIterator<float>,FTTITR::FTTArrayIterator<float>)
  26. 001A80DC FTTALG::Partition<SortShots,FTTVector<TShot>::Iterator>(FTTVector<TShot>::Iterator,FTTVector<TShot>::Iterator,FTTVector<TShot>::Iterator)
  27. 001C6A30 FTTALG::Partition<SortShadowsSize,FTTArray<TShadowAABB *,256u>::Iterator>(FTTArray<TShadowAABB *,256u>::Iterator,FTTArray<TShadowAABB *,256u>::Iterator,FTTArray<TShadowAABB *,256u>::Iterator)
  28. 001C6B6C FTTALG::Partition<SortShadowsAtlas,FTTArray<TShadowAABB *,256u>::Iterator>(FTTArray<TShadowAABB *,256u>::Iterator,FTTArray<TShadowAABB *,256u>::Iterator,FTTArray<TShadowAABB *,256u>::Iterator)
  29. 0019ED6C FTTALG::Shuffle<TCrowdMember>(TCrowdMember *,TCrowdMember *)
  30. 001A7ED6 FTTALG::Shuffle<FTTITR::FTTArrayIterator<TCrowdMember>>(FTTITR::FTTArrayIterator<TCrowdMember>,FTTITR::FTTArrayIterator<TCrowdMember>)
  31. 001ACB30 FTTALG::Shuffle<int>(int *,int *)
  32. 001ACB50 FTTALG::Shuffle<FTTITR::FTTArrayIterator<int>>(FTTITR::FTTArrayIterator<int>,FTTITR::FTTArrayIterator<int>)
  33. 0019ED6C FTTALG::Shuffle<TCrowdMember>(TCrowdMember *,TCrowdMember *)
  34. 001A7ED6 FTTALG::Shuffle<FTTITR::FTTArrayIterator<TCrowdMember>>(FTTITR::FTTArrayIterator<TCrowdMember>,FTTITR::FTTArrayIterator<TCrowdMember>)
  35. 001ACB30 FTTALG::Shuffle<int>(int *,int *)
  36. 001ACB50 FTTALG::Shuffle<FTTITR::FTTArrayIterator<int>>(FTTITR::FTTArrayIterator<int>,FTTITR::FTTArrayIterator<int>)
  37. 001C688E FTTALG::InsertionSort<SortAtlasSize,FTTITR::FTTArrayIterator<FTTPair<uchar,uint>>>(FTTITR::FTTArrayIterator<FTTPair<uchar,uint>>,FTTITR::FTTArrayIterator<FTTPair<uchar,uint>>)
  38. 001C62AC FTTALG::InsertionSort<SortAtlasSize,FTTPair<uchar,uint>>(FTTPair<uchar,uint> *,FTTPair<uchar,uint> *)
  39. 001A7CEC FTTALG::Quickselect<FTTLess,float>(float *,float *,uint)
  40. 001A7D14 FTTALG::Quickselect<FTTLess,FTTITR::FTTArrayIterator<float>>(FTTITR::FTTArrayIterator<float>,FTTITR::FTTArrayIterator<float>,uint)
  41. 00189DDC FTTALG::Reverse<FTTArray<FTTPair<float,float>,16u>::Iterator>(FTTArray<FTTPair<float,float>,16u>::Iterator,FTTArray<FTTPair<float,float>,16u>::Iterator)
  42. 001996BE FTTALG::Move<FTTVector<TEdgeGroup>::Iterator,FTTList<TEdgeGroup>::Iterator>(FTTVector<TEdgeGroup>::Iterator,FTTVector<TEdgeGroup>::Iterator,FTTList<TEdgeGroup>::Iterator,FTTList<TEdgeGroup>::Iterator)
  43. 0019BEA4 FTTALG::BinaryFind<CrowdSortG,FTTVector<TGfxCrowdSeat *>::Iterator>(FTTVector<TGfxCrowdSeat *>::Iterator,FTTVector<TGfxCrowdSeat *>::Iterator,FTTVector<TGfxCrowdSeat *>::Iterator::ValueType const&)
  44. `vtable for'FTTITR::FTTArrayIterator<int>
  45. _ZTVN6FTTITR16FTTArrayIteratorIiEE:
  46. .long 0
  47. .long 0
  48. off_323788:
  49. FTTITR::FTTArrayIterator<int>::operator++(void)
  50. FTTITR::FTTArrayIterator<int>::operator!=(FTTITR::FTTArrayIterator<int> const&)
  51. FTTITR::FTTArrayIterator<int>::operator*(void)
  52. FTTITR::FTTArrayIterator<int>::operator->(void)
  53. FTTITR::FTTArrayIterator<int>::operator+=(long const&)
  54. FTTITR::FTTArrayIterator<int>::operator-=(long const&)
  55. FTTITR::FTTArrayIterator<int>::operator[](long const&)
  56. FTTITR::FTTArrayIterator<int>::operator+(long const&)
  57. FTTITR::FTTArrayIterator<int>::operator-(long const&)
  58. FTTITR::FTTArrayIterator<int>::operator-(FTTITR::FTTArrayIterator<int> const&)
  59. 002107F4
  60. FTTVector<FTTPair<CFTTBMMMatrixCache::Key,CFTTBMMMatrixCache::StartCount> >::Iterator
  61. FTTALG::Find< FTTHashTable<CFTTBMMMatrixCache::Key,
  62. CFTTBMMMatrixCache::StartCount,
  63. CFTTBMMMatrixCache::KeyHash,
  64. FTTEqual,
  65. FTTVector<FTTPair<CFTTBMMMatrixCache::Key,
  66. CFTTBMMMatrixCache::StartCount> > >::Compare,
  67. CFTTBMMMatrixCache::Key,
  68. FTTVector<FTTPair<CFTTBMMMatrixCache::Key, CFTTBMMMatrixCache::StartCount> >::Iterator>
  69. (FTTVector<FTTPair<CFTTBMMMatrixCache::Key,
  70. CFTTBMMMatrixCache::StartCount> >::Iterator,
  71. FTTVector<FTTPair<CFTTBMMMatrixCache::Key,
  72. CFTTBMMMatrixCache::StartCount> >::Iterator,
  73. CFTTBMMMatrixCache::Key const&)
  74. at1.FTTVector::Iterator.list_4
  75. */
  76. namespace FTTALG {
  77. template <typename T>
  78. void Shuffle(T*a1,T*a2){
  79. LOGE("Shuffle=%p%p",a1,a2);
  80. }
  81. template <typename Iterator>
  82. void Reverse(Iterator a1,Iterator a2){
  83. LOGE("Reverse=%p%p",&a1,&a2);
  84. }
  85. template <typename T,typename TVecIterator>
  86. void Quicksort(TVecIterator a1,TVecIterator a2){
  87. LOGE("Quicksort=%x%x",&a1,&a2);
  88. }
  89. template <typename TCompare,
  90. typename TKey,
  91. typename TVecIterator>
  92. __attribute__((noinline)) static TVecIterator Find(TVecIterator at1,
  93. TVecIterator at2,
  94. TKey at3) {
  95. TVecIterator tret;
  96. TVecIterator r7_it = at1;
  97. while (1) { // loc_210816
  98. tret = r7_it;
  99. if (tret != at2) {
  100. // loc_21080A
  101. if (TCompare::HashCompare(r7_it, at3)) {
  102. break;
  103. }
  104. r7_it += 1;
  105. } else {
  106. break;
  107. }
  108. }
  109. // locret_21081E
  110. return tret;
  111. };
  112. }; // namespace FTTALG
  113. #endif //_FTTALG_H_