Skip to content

Commit

Permalink
WIP Step 10
Browse files Browse the repository at this point in the history
KWMODLLineOptimizationCompareMergeDeltaCost
- degradation des performance en comprant sur les index des lignes des merges
- tentative en comparant uniquement sur les DeltaCost avec une tolerance, et en retorunant 0 sinon
  • Loading branch information
marcboulle committed May 16, 2024
1 parent dd2219a commit 097d38e
Show file tree
Hide file tree
Showing 7 changed files with 275 additions and 190 deletions.
85 changes: 81 additions & 4 deletions src/Learning/KWDataPreparation/KWDiscretizerMODLOptimization.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1608,6 +1608,7 @@ void KWDiscretizerMODL::MergeMergeSplitFrequencyVectors(KWFrequencyVector* kwfvS
ensure(CheckFrequencyVector(kwfvSourceFrequencyVector3));
}

///*DDDD
// Epsilon de comparaison des DeltaCost utilise par toutes les methodes de comparaison des merges
// Cette tolerance permet une meilleure stabilite vis-a-vis des compilateurs, qui
// produisent des resultats legerement differents (ex: mac-os13 vs mac-os14)
Expand All @@ -1631,7 +1632,8 @@ int KWMODLLineOptimizationCompareMergeDeltaCost(const void* elem1, const void* e
return 1;
// En cas d'egalite, on se base sur l'index de la ligne
else
return line1->GetIndex() - line2->GetIndex();
return 0;
//DDDDD return line1->GetIndex() - line2->GetIndex();
}

int KWMODLLineDeepOptimizationCompareMergeSplitDeltaCost(const void* elem1, const void* elem2)
Expand All @@ -1651,7 +1653,8 @@ int KWMODLLineDeepOptimizationCompareMergeSplitDeltaCost(const void* elem1, cons
return 1;
// En cas d'egalite, on se base sur l'index de la ligne
else
return line1->GetIndex() - line2->GetIndex();
return 0;
//DDDDD return line1->GetIndex() - line2->GetIndex();
}

int KWMODLLineDeepOptimizationCompareSplitDeltaCost(const void* elem1, const void* elem2)
Expand All @@ -1671,7 +1674,8 @@ int KWMODLLineDeepOptimizationCompareSplitDeltaCost(const void* elem1, const voi
return 1;
// En cas d'egalite, on se base sur l'index de la ligne
else
return line1->GetIndex() - line2->GetIndex();
return 0;
//DDDDD return line1->GetIndex() - line2->GetIndex();
}

int KWMODLLineDeepOptimizationCompareMergeMergeSplitDeltaCost(const void* elem1, const void* elem2)
Expand All @@ -1691,5 +1695,78 @@ int KWMODLLineDeepOptimizationCompareMergeMergeSplitDeltaCost(const void* elem1,
return 1;
// En cas d'egalite, on se base sur l'index de la ligne
else
return line1->GetIndex() - line2->GetIndex();
return 0;
//DDDDD return line1->GetIndex() - line2->GetIndex();
}
//*/

//DDDDD
/*DDDDD
int KWMODLLineOptimizationCompareMergeDeltaCost(const void* elem1, const void* elem2)
{
KWMODLLineOptimization* line1;
KWMODLLineOptimization* line2;
line1 = cast(KWMODLLineOptimization*, *(Object**)elem1);
line2 = cast(KWMODLLineOptimization*, *(Object**)elem2);
// Comparaison de la variation de cout suite a une Merge
if (line1->GetMerge()->GetDeltaCost() < line2->GetMerge()->GetDeltaCost())
return -1;
else if (line1->GetMerge()->GetDeltaCost() > line2->GetMerge()->GetDeltaCost())
return 1;
else
return 0;
}
int KWMODLLineDeepOptimizationCompareMergeSplitDeltaCost(const void* elem1, const void* elem2)
{
KWMODLLineDeepOptimization* line1;
KWMODLLineDeepOptimization* line2;
line1 = cast(KWMODLLineDeepOptimization*, *(Object**)elem1);
line2 = cast(KWMODLLineDeepOptimization*, *(Object**)elem2);
// Comparaison de la variation de cout suite a une MergeSplit
if (line1->GetMergeSplit()->GetDeltaCost() < line2->GetMergeSplit()->GetDeltaCost())
return -1;
else if (line1->GetMergeSplit()->GetDeltaCost() > line2->GetMergeSplit()->GetDeltaCost())
return 1;
else
return 0;
}
int KWMODLLineDeepOptimizationCompareSplitDeltaCost(const void* elem1, const void* elem2)
{
KWMODLLineDeepOptimization* line1;
KWMODLLineDeepOptimization* line2;
line1 = cast(KWMODLLineDeepOptimization*, *(Object**)elem1);
line2 = cast(KWMODLLineDeepOptimization*, *(Object**)elem2);
// Comparaison de la variation de cout suite a une MergeSplit
if (line1->GetSplit()->GetDeltaCost() < line2->GetSplit()->GetDeltaCost())
return -1;
else if (line1->GetSplit()->GetDeltaCost() > line2->GetSplit()->GetDeltaCost())
return 1;
else
return 0;
}
int KWMODLLineDeepOptimizationCompareMergeMergeSplitDeltaCost(const void* elem1, const void* elem2)
{
KWMODLLineDeepOptimization* line1;
KWMODLLineDeepOptimization* line2;
line1 = cast(KWMODLLineDeepOptimization*, *(Object**)elem1);
line2 = cast(KWMODLLineDeepOptimization*, *(Object**)elem2);
// Comparaison de la variation de cout suite a une MergeSplit
if (line1->GetMergeMergeSplit()->GetDeltaCost() < line2->GetMergeMergeSplit()->GetDeltaCost())
return -1;
else if (line1->GetMergeMergeSplit()->GetDeltaCost() > line2->GetMergeMergeSplit()->GetDeltaCost())
return 1;
else
return 0;
}
*/
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,4 @@ Granularity Actual partiles Intervals Empty intervals Spike intervals Hierarchy
113408 30134 148 0 0 17 113408 17.639 9.4852 2128.370682 772899.6396
226816 36827 388 1 0 18 226816 18.4448 10.7894 5034.057069 772653.7981
453632 41204 685 6 0 19 453632 19.2426 11.5263 8552.835117 772145.1633
29032448 45051 3043 109 10 25 29032448 23.9091 13.3829 41516.71288 760636.9166
29032448 45051 3047 111 10 25 29032448 23.9091 13.3845 41563.39266 760642.6924
Loading

0 comments on commit 097d38e

Please sign in to comment.