ИСХОДНЫЙ КОД ДЛЯ ОЦЕНКИ СПЛАЙНА — "ГОСТ Р ИСО/МЭК 29159-1-2017. Национальный стандарт Российской Федерации. Информ...

"ГОСТ Р ИСО/МЭК 29159-1-2017. Национальный стандарт Российской Федерации. Информационные технологии. Биометрия. Калибровка, аугментация и объединение данных в биометрии. Часть 1. Формат объединения данных" (утв. и введен в действие Приказом Росстандарта от 22.06.2017 N 577-ст)

ИСХОДНЫЙ КОД ДЛЯ ОЦЕНКИ СПЛАЙНА

Для оценки представления сплайна ФР [5], содержащей запись типа 3, может быть использован следующий фрагмент кода:

// Оценить B-сплайн функцию k-ой степени для значения t.

// Значение t находится между вершинами j и j + 1.

// Функция является рекурсивной.

double B(const unsigned int j, const unsigned int k, const double t)

{

(k == 0)

return (knots[j] <= t && t < knots[j+1]) ? 1.0: 0.0;

const double c1 = (knots [j+k] == knots [j]) ? 0: (t - knots [j]) / (knots [j+k] - knots[j]);

const double c2 = (knots [j+k+1] == knots[j+1]) ? 0: (knots [j+k+1] - t) / (knots [j+k+1]

- knots[j+1]);

return c1*B(j, k-1, t) + c2*B(j+1, k-1, t);

}

// линейный поиск по возрастающим вершинам для интервала, содержащего значение t

unsigned int i = 0;

for ( ; knots[i+1] <= t; i++ );

//дан интервал, вычислить значение сплайна при данном значении t

double value = 0.0;

for ( unsigned int j = i - k ; j <= i ; j++)

value += x[j+1] * B(j, k, t);

Приложение ДА

(справочное)

Оформите PRO подписку

Для доступа к этим данным вам необходимо оформить PRO подписку
  • Доступ к PRO функциям сервиса

  • Отключение рекламы

  • Полная, ежедневно обновляемая информация о компаниях России