Используя вышесказанное в качестве вдохновения, я считаю, что нашел более сжатый алгоритм для поиска минимального заполнения
Он работает, многократно делая число, делимое на 2, до тех пор, пока оно не станет ниже порогового значения, затем умножая его на счетчик 2 **, чтобы получить размер, к которому должна быть добавлена матрица, чтобы его можно было многократно разделить на два, пока он не станет меньше порога
unsigned int minPad(unsigned int inSize, unsigned int threshold) {
unsigned int counter = 0;
while (inSize > threshold) {
inSize++;
inSize >>= 1;
counter ++;
}
return inSize << counter;
}