fast_muls.c
void mul_va3232_std(mzd_t *res, mzd_t *V, mzd_t *A, int clear)
{
//	unsigned arows = A->nrows;
	unsigned acols = A->ncols;
	unsigned vcols = V->ncols;
	unsigned vrows = V->nrows;
//	assert(vcols <= 32);
//	assert(arows == vcols);

	for (int j = 0; j < vrows; j++)
	{
		uint32_t m, acc = 0;
//		uint32_t v = mzd_read_bits(V, j, 0, vcols);
		uint32_t v = *(V->rows[j]);//mzd_read_bits(V, j, 0, vcols);

		v = ~v;
		for (int i = 0; i < vcols; i++)
		{
			m = (v & 1) - 1;
//			acc ^= (m & mzd_read_bits(A, i, 0, acols));
			acc ^= (m & *(A->rows[i]));
			v >>= 1;
		}
		if (clear)
		{
			mzd_and_bits(res, j, 0, acols, 0);
		}
		mzd_xor_bits(res, j, 0, acols, acc);
	}

	return;
}
/* Actually not useful (on 64-bit archs); 6464_std can be used instead */
Actually not useful (on 64-bit archs); 6464_std can be used instead
Actually not useful ( on 64 - bit archs ) ; 6464_std can be used instead
void mul_va3232_std(mzd_t *res, mzd_t *V, mzd_t *A, int clear)
{
	unsigned acols = A->ncols;
	unsigned vcols = V->ncols;
	unsigned vrows = V->nrows;
	for (int j = 0; j < vrows; j++)
	{
		uint32_t m, acc = 0;
		uint32_t v = *(V->rows[j]);
		v = ~v;
		for (int i = 0; i < vcols; i++)
		{
			m = (v & 1) - 1;
			acc ^= (m & *(A->rows[i]));
			v >>= 1;
		}
		if (clear)
		{
			mzd_and_bits(res, j, 0, acols, 0);
		}
		mzd_xor_bits(res, j, 0, acols, acc);
	}
	return;
}
void mul_va3232_std ( mzd_t * res , mzd_t * V , mzd_t * A , int clear ) { unsigned acols = A -> ncols ; unsigned vcols = V -> ncols ; unsigned vrows = V -> nrows ; for ( int j = 0 ; j < vrows ; j ++ ) { uint32_t m , acc = 0 ; uint32_t v = * ( V -> rows [ j ] ) ; v = ~ v ; for ( int i = 0 ; i < vcols ; i ++ ) { m = ( v & 1 ) - 1 ; acc ^= ( m & * ( A -> rows [ i ] ) ) ; v >>= 1 ; } if ( clear ) { mzd_and_bits ( res , j , 0 , acols , 0 ) ; } mzd_xor_bits ( res , j , 0 , acols , acc ) ; } return ; }
Actually not useful (on 64-bit archs); 6464_std can be used instead
Actually not useful ( on 64 - bit archs ) ; 6464_std can be used instead
//	unsigned arows = A->nrows; //	assert(vcols <= 32); //	assert(arows == vcols); //		uint32_t v = mzd_read_bits(V, j, 0, vcols); //mzd_read_bits(V, j, 0, vcols); //			acc ^= (m & mzd_read_bits(A, i, 0, acols));