//(c) Chernysheva, TEST(Matrix, mulVecToMatrix) //------->>>>>>>>>----------------- // умножение вектор-строки на матрицу Polynom mulVecToMatrix(const Polynom& plA, const Matrix& mtB) { Polynom vec; if (mtB.CodeWord == Matrix::ON_COLUMN) { if (mtB.RowCount >= plA.getNumberBits()) { for (uint j = 0; j < mtB.ColCount; j++) { uint sum = 0, elem, a, b; for (uint i = 0; i < plA.getNumberDigits(); i++) { elem = plA.getDigit(i) & mtB.plMatrix[j]->getDigit(i); sum = sum ^ elem; } vec.setDigit(j, sum); } Polynom res; uint s = 0; for (uint j = 0; j < vec.getNumberDigits(); j++) { bool bit = 0; for (uint i = 0; i < vec.getDigitSizeInBits(); i++) { bit = bit ^ vec.getBit(s); s++; } res.setBit(j, bit); } return res; } } vec = plA; return vec; }