parent
34b8856077
commit
f25e7053e5
|
@ -316,7 +316,7 @@ static inline void prof_out(void) {
|
||||||
#define TWO_WORDS_CAPITALIZED_DEMOTION_RATE 50
|
#define TWO_WORDS_CAPITALIZED_DEMOTION_RATE 50
|
||||||
#define TWO_WORDS_CORRECTION_DEMOTION_BASE 80
|
#define TWO_WORDS_CORRECTION_DEMOTION_BASE 80
|
||||||
#define TWO_WORDS_PLUS_OTHER_ERROR_CORRECTION_DEMOTION_DIVIDER 1
|
#define TWO_WORDS_PLUS_OTHER_ERROR_CORRECTION_DEMOTION_DIVIDER 1
|
||||||
#define ZERO_DISTANCE_PROMOTION_RATE 110
|
#define ZERO_DISTANCE_PROMOTION_RATE 110.0f
|
||||||
#define NEUTRAL_SCORE_SQUARED_RADIUS 8.0f
|
#define NEUTRAL_SCORE_SQUARED_RADIUS 8.0f
|
||||||
#define HALF_SCORE_SQUARED_RADIUS 32.0f
|
#define HALF_SCORE_SQUARED_RADIUS 32.0f
|
||||||
#define MAX_FREQ 255
|
#define MAX_FREQ 255
|
||||||
|
|
|
@ -18,11 +18,12 @@
|
||||||
#define LATINIME_SUGGEST_UTILS_H
|
#define LATINIME_SUGGEST_UTILS_H
|
||||||
|
|
||||||
#include "defines.h"
|
#include "defines.h"
|
||||||
|
#include "proximity_info_state.h"
|
||||||
|
|
||||||
namespace latinime {
|
namespace latinime {
|
||||||
class SuggestUtils {
|
class SuggestUtils {
|
||||||
public:
|
public:
|
||||||
static float getDistanceScalingFactor(float normalizedSquaredDistance) {
|
static float getDistanceScalingFactor(const float normalizedSquaredDistance) {
|
||||||
if (normalizedSquaredDistance < 0.0f) {
|
if (normalizedSquaredDistance < 0.0f) {
|
||||||
return -1.0f;
|
return -1.0f;
|
||||||
}
|
}
|
||||||
|
@ -33,8 +34,8 @@ class SuggestUtils {
|
||||||
static const float MIN = 0.3f;
|
static const float MIN = 0.3f;
|
||||||
static const float R1 = NEUTRAL_SCORE_SQUARED_RADIUS;
|
static const float R1 = NEUTRAL_SCORE_SQUARED_RADIUS;
|
||||||
static const float R2 = HALF_SCORE_SQUARED_RADIUS;
|
static const float R2 = HALF_SCORE_SQUARED_RADIUS;
|
||||||
const float x = static_cast<float>(normalizedSquaredDistance)
|
const float x = normalizedSquaredDistance / static_cast<float>(
|
||||||
/ ProximityInfoState::NORMALIZED_SQUARED_DISTANCE_SCALING_FACTOR;
|
ProximityInfoState::NORMALIZED_SQUARED_DISTANCE_SCALING_FACTOR);
|
||||||
const float factor = max((x < R1)
|
const float factor = max((x < R1)
|
||||||
? (A * (R1 - x) + B * x) / R1
|
? (A * (R1 - x) + B * x) / R1
|
||||||
: (B * (R2 - x) + C * (x - R1)) / (R2 - R1), MIN);
|
: (B * (R2 - x) + C * (x - R1)) / (R2 - R1), MIN);
|
||||||
|
@ -48,6 +49,9 @@ class SuggestUtils {
|
||||||
// 0 R1 R2 .
|
// 0 R1 R2 .
|
||||||
return factor;
|
return factor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
DISALLOW_IMPLICIT_CONSTRUCTORS(SuggestUtils);
|
||||||
};
|
};
|
||||||
} // namespace latinime
|
} // namespace latinime
|
||||||
#endif // LATINIME_SUGGEST_UTILS_H
|
#endif // LATINIME_SUGGEST_UTILS_H
|
||||||
|
|
Loading…
Reference in New Issue