Что вот это (я не знаю, но по своему опыту): int left_margin = index_null[0];
int right_margin = index_null[i_null-1];
Может так должно
int left_margin = 0;
int right_margin = i_null-1;
Но более интересно в square = p_Data[i] - Mean; что значит Mean? Может без Mean надо?