sagemath / sage

Main repository of SageMath
https://www.sagemath.org
Other
1.36k stars 462 forks source link

sage.symbolic: Remove direct use of gsl #32699

Open mkoeppe opened 2 years ago

mkoeppe commented 2 years ago

This should be imported from elsewhere to remove a compile-time dependency on GSL in sage.symbolic

src/sage/symbolic/pynac_impl.pxi:from sage.libs.gsl.types cimport *
src/sage/symbolic/pynac_impl.pxi:from sage.libs.gsl.complex cimport *
src/sage/symbolic/pynac_impl.pxi:from sage.libs.gsl.gamma cimport gsl_sf_lngamma_complex_e
src/sage/symbolic/pynac_impl.pxi:    cdef gsl_complex res
src/sage/symbolic/pynac_impl.pxi:            res = gsl_complex_log(gsl_complex_rect(real, 0))
src/sage/symbolic/pynac_impl.pxi:        res = gsl_complex_log(gsl_complex_rect(real, imag))

Likewise for the interpreter for RDF:

src/sage_setup/autogen/interpreters/specs/base.py:            '#include <gsl/gsl_math.h>'
src/sage_setup/autogen/interpreters/specs/base.py:            'cimport sage.libs.gsl.math  # Add dependency on GSL'
src/sage_setup/autogen/interpreters/specs/rdf.py:        self.c_header = '#include <gsl/gsl_math.h>'
src/sage_setup/autogen/interpreters/specs/rdf.py:        self.pyx_header = 'cimport sage.libs.gsl.math  # Add dependency on GSL'
src/sage_setup/autogen/interpreters/specs/rdf.py:        instrs.append(instr_funcall_2args('ipow', pg('SD', 'S'), 'gsl_pow_int'))

CC: @dimpase @jhpalmieri

Component: refactoring

Issue created by migration from https://trac.sagemath.org/ticket/32699

mkoeppe commented 2 years ago

Description changed:

--- 
+++ 
@@ -9,4 +9,13 @@
 src/sage/symbolic/pynac_impl.pxi:        res = gsl_complex_log(gsl_complex_rect(real, imag))

+Likewise for the interpreter for RDF:

+ +src/sage_setup/autogen/interpreters/specs/base.py: '#include <gsl/gsl_math.h>' +src/sage_setup/autogen/interpreters/specs/base.py: 'cimport sage.libs.gsl.math # Add dependency on GSL' +src/sage_setup/autogen/interpreters/specs/rdf.py: self.c_header = '#include <gsl/gsl_math.h>' +src/sage_setup/autogen/interpreters/specs/rdf.py: self.pyx_header = 'cimport sage.libs.gsl.math # Add dependency on GSL' +src/sage_setup/autogen/interpreters/specs/rdf.py: instrs.append(instr_funcall_2args('ipow', pg('SD', 'S'), 'gsl_pow_int')) + +