def __push_facvar_sparse(self, polynomial, block_index, row_offset, i, j):
width = self.block_struct[block_index - <NUM_LIT:1>]<EOL>if is_number_type(polynomial) or polynomial.is_Mul:<EOL><INDENT>elements = [polynomial]<EOL><DEDENT>else:<EOL><INDENT>elements = polynomial.as_coeff_mul()[<NUM_LIT:1>][<NUM_LIT:0>].as_coeff_add()[<NUM_LIT:1>]<EOL><DEDENT>for element in elements:<EOL><INDENT>results = self._get_index_of_monomial(element)<EOL>for (k, coeff) in results:<EOL><INDENT>if k > -<NUM_LIT:1> and coeff != <NUM_LIT:0>:<EOL><INDENT>self.F[row_offset + i * width + j, k] += coeff<EOL><DEDENT><DEDENT><DEDENT>
Calculate the sparse vector representation of a polynomial
        and pushes it to the F structure.