The code here is from qd 2.3.24 patched with these simple fixes from github.

# https://github.com/BL-highprecision/QD/commit/0a672bd1c7c418910e46089608554336d4276c12
diff -r ORIGINAL/src/qd_real.cpp ./qd_real.cpp
536c536
<         		dd_real::error("Re-rounding unsuccessful in large number fixed point trap.") ;
---
>         		qd_real::error("Re-rounding unsuccessful in large number fixed point trap.") ;

# https://github.com/BL-highprecision/QD/commit/b1c8ddfd2d4a0f0901a88491524df728a26cbe8e
diff -r ORIGINAL/include/qd/qd_inline.h ./include/qd/qd_inline.h
548c548
<   p3 = a[2] * b._hi() + a[3] * b._lo() + q3 + q4;
---
>   p3 = a[2] * b._lo() + a[3] * b._hi() + q3 + q4;

The C wrapper c_qd.cpp have been simplified and extended.
These functions were removed:

c_qd_add_d_qd	c_qd_copy_dd	c_qd_mul_qd_d	c_qd_selfmul	c_qd_sub_dd_qd
c_qd_add_dd_qd	c_qd_div_d_qd	c_qd_mul_qd_dd	c_qd_selfmul_d	c_qd_sub_qd_d
c_qd_add_qd_d	c_qd_div_dd_qd	c_qd_selfadd	c_qd_selfmul_dd	c_qd_sub_qd_dd
c_qd_add_qd_dd	c_qd_div_qd_d	c_qd_selfadd_d	c_qd_selfsub	c_qd_write
c_qd_comp	c_qd_div_qd_dd	c_qd_selfadd_dd	c_qd_selfsub_d
c_qd_comp_d_qd	c_qd_epsilon	c_qd_selfdiv	c_qd_selfsub_dd
c_qd_comp_qd_d	c_qd_mul_d_qd	c_qd_selfdiv_d	c_qd_sqrt
c_qd_copy	c_qd_mul_dd_qd	c_qd_selfdiv_dd	c_qd_sub_d_qd

These functions were added:

c_qd_3pi4	c_qd_fmax	c_qd_isfinite	c_qd_log2	c_qd_pi4
c_qd_comp	c_qd_fmin	c_qd_isinf	c_qd_max	c_qd_pow
c_qd_divrem	c_qd_fmod	c_qd_isnan	c_qd_min	c_qd_sqrt
c_qd_drem	c_qd_inf	c_qd_ln10	c_qd_nan
c_qd_e		c_qd_inv	c_qd_ln2	c_qd_pi2

