Commit d04abc20 authored by Leonardo Solis's avatar Leonardo Solis

correction on finding best entity

parent 263cf851
......@@ -302,10 +302,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)
......@@ -465,6 +467,7 @@ void Krnl_GA(__global float* restrict GlobPopulationCurrent,
numwriteports(1)
)) 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];
......@@ -472,6 +475,7 @@ void Krnl_GA(__global float* restrict GlobPopulationCurrent,
for (uchar i=0; i<SHIFT_REG_SIZE; i++) {
shift_reg[i] = 0.0f;
}
#endif
ushort best_entity = 0;
......@@ -480,6 +484,12 @@ void Krnl_GA(__global float* restrict GlobPopulationCurrent,
// 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.
......@@ -497,8 +507,17 @@ void Krnl_GA(__global float* restrict GlobPopulationCurrent,
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)
for (ushort new_pop_cnt = 1; new_pop_cnt < DockConst_pop_size; new_pop_cnt++) {
......
Markdown is supported
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