Вопросы
***entropy.h
1.
Прочитала, что size_t это почти что современная замена int, где единицей измерения берется 32 или 64 бита. Там есть строчки:
const size_t cDefaultWindowSz = 0x400;
size_t statistics[0x100];
Почему мы используем 16ричную систему, если можно просто 1024 и 256 написать. И почему именно такие числа
2.
__declspec(property(get = value))
const EntropyType Value;
Можно подробнее узнать, что это происходит? Я просмотрела __declspec, но мне не стало особо понятнее. :(
3.
Пыталась найти, но не нашла, где были бы через запятую написаны новые имена формата. Но в этом выражении мне логика ясна:
typedef EntropyType EntropyX, EntropyY;
А в этом, зачем нам два названия, я не понимаю:
typedef struct EntropyCharacteristics {
...
} EntropyChars, EntropyPoint;
4.
Просто не соображу, что это значит:
EntropyY entropy_value;//Собственно энтропия окна, серединой которого является точка X
Среднее значение энтропии скользящего окна?
5.
Это уже больше вопрос по программе. Зачем нам максимумы и минимумы и т.д. Производная нам потом нужна для передачи нейросети, это я помню. Я скажу, что якобы ее заранее считаю.
А экстремумы чет не очень понимаю. Для того же самого?
6.
Видимо, я недостаточно поняла теорию или просто формулу, раз мне не ясно предложение:
//Ф-я приведения дельты производной к типу EntropyDirection
А в построении обычного графика производная тоже участвует?
7.
Не разобралась :(
ExtremumPoint(EntropyX x = 0., EntropyY y = 0.,
EntropyDirection edir = edirNo) : X(x), Y(y),
eDir(edir)
{}
***enrtopy.cpp
Дальше по коду нашла аналогичное:
Entropy::Entropy(unsigned char *pData,
size_t DataSz) : _value(0.), _size(DataSz)
{
_calc_entropy(pData, DataSz);
}
8.
ZEROARR(statistics);//Очиска таблицы частот
Не нашла ничего по ZEROARR
И что подразумевается под очисткой таблицы частот? Что-то типа сброса предыдущих значений? :( Мы это типа делаем для каждого нового блока, получается?
COUNT(statistics) аналогично.
9.
calc_entropy(unsigned char *pData, size_t DataSz)
Я поняла, что unsigned char *pData это вроде как указатель на массив.
и вот эти переменные передаются туда соответственно: unsigned char *Area, size_t AreaSz или cWinHalfSz. Из комментов я понимаю, что это область памяти. Больше не понимаю о них ничего. Ни их значения, ни откуда берутся, как рассчитываются :(
И если глянуть entropyflowwindow.cpp, то зачем нам половина окна? Там были пояснения, но я не поняла.
10.
if(const EntropyType c_freq = ((EntropyType)statistics[i]) / ((EntropyType)DataSz))
Это мы каждый раз создаем константу, получается? Почему не просто переменную? Она же больше не участвует нигде кроме этой строки.
11.
Логика append_byte и reduce_byte мне ясна не до конца: размер плавающего окна у нас отличается от блока байт для обсчета? Или я запуталась.