Elements of RealDoubleField (RDF) have some methods that are implemented 
using GSL.

Would we be able to eliminate this dependency? Some of the functions, like 
isnan, are available in the standard C library since C99. Do functions like 
gsl_sf_sin have advantages over using functions from the math library? 
Others, for example gsl_sf_erf, would be available through scipy.special.

$ git grep gsl src/sage/rings/real_double.pyx

src/sage/rings/real_double.pyx:from sage.libs.*gsl*.all cimport *
src/sage/rings/real_double.pyx:*gsl*_set_error_handler_off()
src/sage/rings/real_double.pyx:        return self(*gsl*_sf_fact(n))
src/sage/rings/real_double.pyx:        if *gsl*_isnan(self._value):
src/sage/rings/real_double.pyx:        if *gsl*_isinf(self._value):
src/sage/rings/real_double.pyx:        cdef int isinf = *gsl*
_isinf(self._value)
src/sage/rings/real_double.pyx:        cdef bint isnan = *gsl*
_isnan(self._value)
src/sage/rings/real_double.pyx:        if *gsl*_isnan(self._value):
src/sage/rings/real_double.pyx:        return *gsl*_isnan(self._value)
src/sage/rings/real_double.pyx:        return *gsl*_isinf(self._value) > 0
src/sage/rings/real_double.pyx:        return *gsl*_isinf(self._value) < 0
src/sage/rings/real_double.pyx:        return *gsl*_isinf(self._value)
src/sage/rings/real_double.pyx:        return self._new_c(sign * *gsl*
_sf_exp(*gsl*_sf_log(v) * exponent))
src/sage/rings/real_double.pyx:            return 
self._new_c(*gsl*_pow_int(self._value, 
<int>n))
src/sage/rings/real_double.pyx:        a = 
self._new_c(*gsl*_sf_log(self._value) 
/ log_of_base)
src/sage/rings/real_double.pyx:                return self._log_base(*gsl*
_sf_log(float(base)))
src/sage/rings/real_double.pyx:        a = 
self._new_c(*gsl*_sf_log(self._value) 
* M_1_LN2)
src/sage/rings/real_double.pyx:        a = 
self._new_c(*gsl*_sf_log(self._value) 
* M_1_LN10)
src/sage/rings/real_double.pyx:        a = 
self._new_c(*gsl*_sf_log(self._value) 
* M_1_LNPI)
src/sage/rings/real_double.pyx:        a = self._new_c(*gsl*
_sf_exp(self._value))
src/sage/rings/real_double.pyx:        a = self._new_c(*gsl*_sf_exp(self._value 
* M_LN2))
src/sage/rings/real_double.pyx:        a = self._new_c(*gsl*_sf_exp(self._value 
* M_LN10))
src/sage/rings/real_double.pyx:        return self._new_c(*gsl*
_sf_cos(self._value))
src/sage/rings/real_double.pyx:        return self._new_c(*gsl*
_sf_sin(self._value))
src/sage/rings/real_double.pyx:        return self._new_c(*gsl*
_sf_dilog(self._value))
src/sage/rings/real_double.pyx:        return self._new_c(*gsl*
_sf_angle_restrict_symm(self._value))
src/sage/rings/real_double.pyx:        cos = *gsl*_sf_cos(self._value)
src/sage/rings/real_double.pyx:        a = 
self._new_c(*gsl*_sf_sin(self._value) 
/ cos)
src/sage/rings/real_double.pyx:        a = 
self._new_c(*gsl*_sf_hypot(self._value, 
float(other)))
src/sage/rings/real_double.pyx:        return self._new_c(*gsl*_ldexp( 
*gsl*_sf_exp(self._value) 
+ *gsl*_sf_exp(-self._value), -1)) # (e^x + e^-x)/2
src/sage/rings/real_double.pyx:        return self._new_c(*gsl*_ldexp( 
*gsl*_sf_expm1(self._value) 
- *gsl*_sf_expm1(-self._value), -1)) # (e^x - e^-x)/2
src/sage/rings/real_double.pyx:        return self._new_c(*gsl*
_acosh(self._value))
src/sage/rings/real_double.pyx:        return self._new_c(*gsl*
_asinh(self._value))
src/sage/rings/real_double.pyx:        return self._new_c(*gsl*
_atanh(self._value))
src/sage/rings/real_double.pyx:        return self._new_c(*gsl*
_sf_erf(self._value))
src/sage/rings/real_double.pyx:        a = self._new_c(*gsl*
_sf_gamma(self._value))
src/sage/rings/real_double.pyx:        return self._new_c(*gsl*
_sf_zeta(self._value))
src/sage/rings/real_double.pyx:    if *gsl*_finite(x):
src/sage/rings/real_double.pyx:    cdef int v = *gsl*_isinf(x)



-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/398b1668-ac65-4208-81a7-7f96c1edd830n%40googlegroups.com.

Reply via email to