Top | ![]() |
![]() |
![]() |
![]() |
void go_quad_add (GOQuad *res
,const GOQuad *a
,const GOQuad *b
);
This function adds a
and b
, storing the result in res
.
void go_quad_addl (GOQuadl *res
,const GOQuadl *a
,const GOQuadl *b
);
This function adds a
and b
, storing the result in res
.
void go_quad_div (GOQuad *res
,const GOQuad *a
,const GOQuad *b
);
This function divides a
and b
, storing the result in res
.
void go_quad_divl (GOQuadl *res
,const GOQuadl *a
,const GOQuadl *b
);
This function divides a
and b
, storing the result in res
.
void go_quad_dot_product (GOQuad *res
,const GOQuad *a
,const GOQuad *b
,int n
);
void go_quad_dot_productl (GOQuadl *res
,const GOQuadl *a
,const GOQuadl *b
,int n
);
void go_quad_init (GOQuad *res
,double h
);
This stores the value h
in res
. As an exception, this may be called
outside go_quad_start and go_quad_end sections.
void go_quad_initl (GOQuadl *res
,long double h
);
This stores the value h
in res
. As an exception, this may be called
outside go_quad_start and go_quad_end sections.
void go_quad_mul (GOQuad *res
,const GOQuad *a
,const GOQuad *b
);
This function multiplies a
and b
, storing the result in res
.
void go_quad_mul12 (GOQuad *res
,double x
,double y
);
This function multiplies x
and y
, storing the result in res
with full
quad precision.
void go_quad_mul12l (GOQuadl *res
,long double x
,long double y
);
This function multiplies x
and y
, storing the result in res
with full
quad precision.
void go_quad_mull (GOQuadl *res
,const GOQuadl *a
,const GOQuadl *b
);
This function multiplies a
and b
, storing the result in res
.
void go_quad_sqrt (GOQuad *res
,const GOQuad *a
);
This function takes the square root of a
, storing the result in res
.
void go_quad_sqrtl (GOQuadl *res
,const GOQuadl *a
);
This function takes the square root of a
, storing the result in res
.
void *
go_quad_start (void
);
Initializes GOQuad arithmetic. Any use of GOQuad must occur between calls
to go_quad_start()
and go_quad_end()
.
void *
go_quad_startl (void
);
Initializes GOQuad arithmetic. Any use of GOQuad must occur between calls
to go_quad_startl()
and go_quad_end()
.
void go_quad_sub (GOQuad *res
,const GOQuad *a
,const GOQuad *b
);
This function subtracts a
and b
, storing the result in res
.
void go_quad_subl (GOQuadl *res
,const GOQuadl *a
,const GOQuadl *b
);
This function subtracts a
and b
, storing the result in res
.
void go_quad_acos (GOQuad *res
,const GOQuad *a
);
This function computes the arc cosine of a
, storing the result in res
.
void go_quad_acosl (GOQuadl *res
,const GOQuadl *a
);
This function computes the arc cosine of a
, storing the result in res
.
void go_quad_asin (GOQuad *res
,const GOQuad *a
);
This function computes the arc sine of a
, storing the result in res
.
void go_quad_asinl (GOQuadl *res
,const GOQuadl *a
);
This function computes the arc sine of a
, storing the result in res
.
void go_quad_atan2 (GOQuad *res
,const GOQuad *y
,const GOQuad *x
);
This function computes polar angle coordinate of the point (x
,y
), storing
the result in res
.
void go_quad_atan2l (GOQuadl *res
,const GOQuadl *y
,const GOQuadl *x
);
This function computes polar angle coordinate of the point (x
,y
), storing
the result in res
.
void go_quad_atan2pi (GOQuad *res
,const GOQuad *y
,const GOQuad *x
);
This function computes polar angle coordinate of the point (x
,y
) divided
by pi, storing the result in res
.
void go_quad_atan2pil (GOQuadl *res
,const GOQuadl *y
,const GOQuadl *x
);
This function computes polar angle coordinate of the point (x
,y
) divided
by pi, storing the result in res
.
void go_quad_constant8 (GOQuad *res
,const guint8 *data
,gsize n
,double base
,double scale
);
This function interprets a vector of digits in a given base as a quad-precision value. It is mostly meant for internal use.
void go_quad_constant8l (GOQuadl *res
,const guint8 *data
,gsize n
,long double base
,long double scale
);
This function interprets a vector of digits in a given base as a quad-precision value. It is mostly meant for internal use.
void go_quad_cos (GOQuad *res
,const GOQuad *a
);
This function computes the cosine of a
, storing the result in res
.
void go_quad_cosl (GOQuadl *res
,const GOQuadl *a
);
This function computes the cosine of a
, storing the result in res
.
void go_quad_cospi (GOQuad *res
,const GOQuad *a
);
This function computes the cosine of a
times pi, storing the result in res
.
This is more accurate than actually doing the multiplication.
void go_quad_cospil (GOQuadl *res
,const GOQuadl *a
);
This function computes the cosine of a
times pi, storing the result in res
.
This is more accurate than actually doing the multiplication.
void go_quad_exp (GOQuad *res
,double *expb
,const GOQuad *a
);
This function computes the exponential function at a
, storing the result
in res
. If the optional expb
is supplied, it is used to return a
power of radix by which the result should be scaled. This is useful to
represent results much, much bigger than double precision can handle.
void go_quad_expl (GOQuadl *res
,long double *expb
,const GOQuadl *a
);
This function computes the exponential function at a
, storing the result
in res
. If the optional expb
is supplied, it is used to return a
power of radix by which the result should be scaled. This is useful to
represent results much, much bigger than double precision can handle.
void go_quad_expm1 (GOQuad *res
,const GOQuad *a
);
This function computes the exponential function at a
with 1 subtracted,
storing the difference in res
.
void go_quad_expm1l (GOQuadl *res
,const GOQuadl *a
);
This function computes the exponential function at a
with 1 subtracted,
storing the difference in res
.
void go_quad_floor (GOQuad *res
,const GOQuad *a
);
This function takes the floor of a
, storing the result in res
.
void go_quad_floorl (GOQuadl *res
,const GOQuadl *a
);
This function takes the floor of a
, storing the result in res
.
void go_quad_hypot (GOQuad *res
,const GOQuad *a
,const GOQuad *b
);
This function computes the square root of a
^2 plus b
^2, storing the
result in res
.
void go_quad_hypotl (GOQuadl *res
,const GOQuadl *a
,const GOQuadl *b
);
This function computes the square root of a
^2 plus b
^2, storing the
result in res
.
void go_quad_log (GOQuad *res
,const GOQuad *a
);
This function computes the natural logarithm at a
, storing the result
in res
.
void go_quad_logl (GOQuadl *res
,const GOQuadl *a
);
This function computes the natural logarithm at a
, storing the result
in res
.
void go_quad_pow (GOQuad *res
,double *expb
,const GOQuad *x
,const GOQuad *y
);
This function computes x
to the power of y
, storing the result in res
.
If the optional expb
is supplied, it is used to return a power of radix
by which the result should be scaled. Such scaling can be done with the
scalbn function, typically after combining multiple such terms. This is
useful to represent results much, much bigger than double precision can
handle.
void go_quad_powl (GOQuadl *res
,long double *expb
,const GOQuadl *x
,const GOQuadl *y
);
This function computes x
to the power of y
, storing the result in res
.
If the optional expb
is supplied, it is used to return a power of radix
by which the result should be scaled. Such scaling can be done with the
scalbn function, typically after combining multiple such terms. This is
useful to represent results much, much bigger than double precision can
handle.
void go_quad_sin (GOQuad *res
,const GOQuad *a
);
This function computes the sine of a
, storing the result in res
.
void go_quad_sinl (GOQuadl *res
,const GOQuadl *a
);
This function computes the sine of a
, storing the result in res
.
void go_quad_sinpi (GOQuad *res
,const GOQuad *a
);
This function computes the sine of a
times pi, storing the result in res
.
This is more accurate than actually doing the multiplication.
void go_quad_sinpil (GOQuadl *res
,const GOQuadl *a
);
This function computes the sine of a
times pi, storing the result in res
.
This is more accurate than actually doing the multiplication.