nodes: 0, module; 1, function_definition; 2, function_name:sorted_product_set; 3, parameters; 4, block; 5, identifier:array_a; 6, identifier:array_b; 7, expression_statement; 8, return_statement; 9, comment:"""Compute the product set of array_a and array_b and sort it."""; 10, subscript; 11, call; 12, slice; 13, attribute; 14, argument_list; 15, unary_operator; 16, identifier:np; 17, identifier:sort; 18, call; 19, integer:1; 20, attribute; 21, argument_list; 22, identifier:np; 23, identifier:concatenate; 24, list_comprehension; 25, keyword_argument; 26, binary_operator:array_a[i] * array_b; 27, for_in_clause; 28, identifier:axis; 29, integer:0; 30, subscript; 31, identifier:array_b; 32, identifier:i; 33, call; 34, identifier:array_a; 35, identifier:i; 36, identifier:xrange; 37, argument_list; 38, call; 39, identifier:len; 40, argument_list; 41, identifier:array_a
code: def sorted_product_set(array_a, array_b):
    """Compute the product set of array_a and array_b and sort it."""
    return np.sort(
        np.concatenate(
            [array_a[i] * array_b for i in xrange(len(array_a))], axis=0)
    )[::-1]