I was solving this problem https://www.codechef.com/problems/COVERING and sort of came with a subproblem which is
Given an array A and array B with size (2^N) . Compute another array X of size (2^N) such that X[mask] = sum of (A[i] * B[j]) such that ( (i&j) == mask ) . How to solve it or is it solvable for N <= 20 .