Нужна помощь в названии класса, который представляет значение и его линейное изменение - PullRequest
3 голосов
/ 27 июня 2009

Проводя некоторый рефакторинг, я обнаружил, что я довольно часто использую пару или числа с плавающей точкой для представления начального значения, и насколько это значение линейно изменяется во времени. Я хочу создать структуру, которая будет содержать оба поля, но я просто не могу найти правильное имя для нее.

Это должно выглядеть примерно так:

struct XXX
{
    float Value;
    float Slope; // or Delta? or Variation? 
}

Любые предложения будут высоко оценены.

Ответы [ 7 ]

1 голос
/ 27 июня 2009

Это как Арифметическая прогрессия (или арифметическая последовательность)

struct sequence_num_t {
    float value;
    float delta;
};

или

struct SequencePoint
{
   float Value;
   float Delta;
};
1 голос
/ 27 июня 2009

Поскольку у вас есть начальное значение и значение, указывающее, как «что-то» развивается, вы можете пойти с чем-то вроде «Линейной функции».

Я бы также добавил необходимые функции-члены:

struct LinearFunction {
    float constant;
    float slope;
    float increment( float delta ) const { return constant + delta*slope; }
    void add( const LinearFunction& other ) { constant += other.constant; slope += other.slope; }
    LinearFunction invert() const { 
        LinearFunction inv = { -constant/slope, 1./slope; };
        return inv;
    }
};

Или мне здесь хочется?

1 голос
/ 27 июня 2009

Мне кажется, что это «Масштаб» ...

struct ValueScale
{
    float Value;
    float Slope;
}

или, может быть,

struct ScalableValue
{
    float Value;
    float Slope;
}
1 голос
/ 27 июня 2009

Начальное значение + постоянный наклон: разве это не аффинная функция?

1 голос
/ 27 июня 2009

Полагаю, я бы предпочел этот тип именования:

struct ValueDeltaDuplet
{
    float Value;
    float Delta;    
}
0 голосов
/ 27 июня 2009
struct FloatPair
{
    float Value;
    float Slope;    
}
0 голосов
/ 27 июня 2009
struct ValueSlopePair
{
    float Value;
    float Slope;    
}
...