Skip to content

Make arith versions of some functions default, dispatching to symbolic #24178

@rwst

Description

@rwst

Of many functions there are two versions with the same name---in sage/arith and in sage/functions, examples are binomial and factorial. On startup the latter versions overwrite the former because of order of import. That creates problems both with documentation, different interface, and different behavior expected. For example in #14723 the problem of binomial(Qp(5)(8),2) could not be resolved with the sage/functions version (because there the arguments have restrictions), although the sage/arith version would have worked perfectly. OTOH the arith version can not handle binomial(x,y) but the symbolic function version can.

The logical solution would be for all cases to

  • make the arith version the default by removing the import in sage/functions/all.py; the arith version will no longer be overwritten
  • dispatch calls to the arith version with symbolic arguments to the symbolic function version
  • copy some symbolic documentation to arith because that docstring will be shown now

The issues #22314, #17489 depend on this.

CC: @jdemeyer @videlec

Component: basic arithmetic

Author: Ralf Stephan

Branch/Commit: u/rws/make_arith_versions_of_some_functions_default__dispatching_to_symbolic @ 4bc93d0

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions