Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-06 09:31:06

0001 /*
0002  * include/c_dd.h
0003  *
0004  * This work was supported by the Director, Office of Science, Division
0005  * of Mathematical, Information, and Computational Sciences of the
0006  * U.S. Department of Energy under contract number DE-AC03-76SF00098.
0007  *
0008  * Copyright (c) 2000-2001
0009  *
0010  * Contains C wrapper function prototypes for double-double precision
0011  * arithmetic.  This can also be used from fortran code.
0012  */
0013 #ifndef _QD_C_DD_H
0014 #define _QD_C_DD_H
0015 
0016 #include <qd/qd_config.h>
0017 #include <qd/fpu.h>
0018 
0019 #ifdef __cplusplus
0020 extern "C" {
0021 #endif
0022 
0023 /* add */
0024 void c_dd_add(const double *a, const double *b, double *c);
0025 void c_dd_add_d_dd(double a, const double *b, double *c);
0026 void c_dd_add_dd_d(const double *a, double b, double *c);
0027 
0028 /* sub */
0029 void c_dd_sub(const double *a, const double *b, double *c);
0030 void c_dd_sub_d_dd(double a, const double *b, double *c);
0031 void c_dd_sub_dd_d(const double *a, double b, double *c);
0032 
0033 /* mul */
0034 void c_dd_mul(const double *a, const double *b, double *c);
0035 void c_dd_mul_d_dd(double a, const double *b, double *c);
0036 void c_dd_mul_dd_d(const double *a, double b, double *c);
0037 
0038 /* div */
0039 void c_dd_div(const double *a, const double *b, double *c);
0040 void c_dd_div_d_dd(double a, const double *b, double *c);
0041 void c_dd_div_dd_d(const double *a, double b, double *c);
0042 
0043 /* copy */
0044 void c_dd_copy(const double *a, double *b);
0045 void c_dd_copy_d(double a, double *b);
0046 
0047 void c_dd_sqrt(const double *a, double *b);
0048 void c_dd_sqr(const double *a, double *b);
0049 
0050 void c_dd_abs(const double *a, double *b);
0051 
0052 void c_dd_npwr(const double *a, int b, double *c);
0053 void c_dd_nroot(const double *a, int b, double *c);
0054 
0055 void c_dd_nint(const double *a, double *b);
0056 void c_dd_aint(const double *a, double *b);
0057 void c_dd_floor(const double *a, double *b);
0058 void c_dd_ceil(const double *a, double *b);
0059 
0060 void c_dd_exp(const double *a, double *b);
0061 void c_dd_log(const double *a, double *b);
0062 void c_dd_log10(const double *a, double *b);
0063 
0064 void c_dd_sin(const double *a, double *b);
0065 void c_dd_cos(const double *a, double *b);
0066 void c_dd_tan(const double *a, double *b);
0067 
0068 void c_dd_asin(const double *a, double *b);
0069 void c_dd_acos(const double *a, double *b);
0070 void c_dd_atan(const double *a, double *b);
0071 void c_dd_atan2(const double *a, const double *b, double *c);
0072 
0073 void c_dd_sinh(const double *a, double *b);
0074 void c_dd_cosh(const double *a, double *b);
0075 void c_dd_tanh(const double *a, double *b);
0076 
0077 void c_dd_asinh(const double *a, double *b);
0078 void c_dd_acosh(const double *a, double *b);
0079 void c_dd_atanh(const double *a, double *b);
0080 
0081 void c_dd_sincos(const double *a, double *s, double *c);
0082 void c_dd_sincosh(const double *a, double *s, double *c);
0083 
0084 void c_dd_read(const char *s, double *a);
0085 void c_dd_swrite(const double *a, int precision, char *s, int len);
0086 void c_dd_write(const double *a);
0087 void c_dd_neg(const double *a, double *b);
0088 void c_dd_rand(double *a);
0089 void c_dd_comp(const double *a, const double *b, int *result);
0090 void c_dd_comp_dd_d(const double *a, double b, int *result);
0091 void c_dd_comp_d_dd(double a, const double *b, int *result);
0092 void c_dd_pi(double *a);
0093 void c_dd_2pi(double *a);
0094 double c_dd_epsilon(void);
0095 
0096 #ifdef __cplusplus
0097 }
0098 #endif
0099 
0100 #endif  /* _QD_C_DD_H */