@cindex elementary operations
@cindex multiplication

The following functions allow for the propagation of errors when
combining quantities by multiplication.  The functions are declared in
the header file @file{gsl_sf_elementary.h}.

@comment @deftypefun double gsl_sf_multiply (double @var{x}, double @var{y})
@deftypefun int gsl_sf_multiply_e (double @var{x}, double @var{y}, gsl_sf_result * @var{result})
This function multiplies @var{x} and @var{y} storing the product and its
associated error in @var{result}.
@comment Exceptional Return Values: GSL_EOVRFLW, GSL_EUNDRFLW
@end deftypefun


@deftypefun int gsl_sf_multiply_err_e (double @var{x}, double @var{dx}, double @var{y}, double @var{dy}, gsl_sf_result * @var{result})
This function multiplies @var{x} and @var{y} with associated absolute
errors @var{dx} and @var{dy}.  The product 
@c{$xy \pm xy \sqrt{(dx/x)^2 +(dy/y)^2}$} 
@math{xy +/- xy \sqrt((dx/x)^2 +(dy/y)^2)} 
is stored in @var{result}.
@comment Exceptional Return Values: GSL_EOVRFLW, GSL_EUNDRFLW
@end deftypefun
