//(c) Chernysheva, TEST(Matrix, mulMatrixToVec) //------->>>>>>>>>----------------- // умножение матрицы на вектор-столбец Polynom mulMatrixToVec(const Polynom& plA, const Matrix& mtB) { Polynom vec; if (mtB.CodeWord == Matrix::ON_LINE) { if (mtB.ColCount >= plA.getNumberBits()) { for (uint j = 0; j < mtB.RowCount; j++) { uint sum = 0, elem; for (uint i = 0; i < mtB.getColCountMatrixByte(); i++) { elem = mtB.plMatrix[j]->getDigit(i) & plA.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; }