Commit c195642d authored by Leonardo Solis's avatar Leonardo Solis
Browse files

correction on finding best entity

parent 79bfce96
......@@ -481,10 +481,12 @@ fixedpt fixedpt_map_angle_360(fixedpt angle)
}
#endif
#if 0
// Shift register sizes
// Such registers are used to reduce Initiation Interval (II)
#define SHIFT_REG_SIZE 10
#define SHIFT_REG_SIZE_MINUS_ONE (SHIFT_REG_SIZE-1)
#endif
// --------------------------------------------------------------------------
// Lamarckian Genetic-Algorithm (GA): GA + LS (Local Search)
......@@ -677,6 +679,7 @@ void Krnl_GA(
*/
float loc_energies[MAX_POPSIZE];
#if 0
// Shift register to reduce II (initially II=6) of best entity for-loop
float shift_reg[SHIFT_REG_SIZE];
......@@ -688,7 +691,7 @@ void Krnl_GA(
for (uchar i=0; i<SHIFT_REG_SIZE; i++) {
shift_reg[i] = 0.0f;
}
#endif
ushort best_entity = 0;
__attribute__((xcl_pipeline_loop))
......@@ -698,6 +701,12 @@ void Krnl_GA(
// copy energy to local memory
loc_energies[pop_cnt] = LocalEneCurr[pop_cnt];
#if defined (DEBUG_KRNL_GA)
if (pop_cnt==0) {printf("\n");}
printf("%3u %20.6f\n", pop_cnt, loc_energies[pop_cnt]);
#endif
#if 0
// Identifying best entity
// The enclosing "if (pop_cnt>0) {}" should not be commented
// but it is removed in order to improve performance.
......@@ -719,8 +728,17 @@ void Krnl_GA(
best_entity = pop_cnt;
}
//}
#endif
if (loc_energies[pop_cnt] < loc_energies[best_entity]) {
best_entity = pop_cnt;
}
}
#if defined (DEBUG_KRNL_GA)
printf("best_entity: %3u, energy: %20.6f\n", best_entity, loc_energies[best_entity]);
#endif
#pragma ivdep array (LocalPopNext)
#pragma ivdep array (LocalEneNext)
__attribute__((xcl_pipeline_loop))
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment