Adding functional pointwise product function