Opened 6 years ago

Last modified 5 years ago

## #18832 closed defect

# non-numeric non-symbolic BuiltinFunction arguments — at Version 1

Reported by: | rws | Owned by: | |
---|---|---|---|

Priority: | major | Milestone: | sage-duplicate/invalid/wontfix |

Component: | symbolics | Keywords: | |

Cc: | jdemeyer | Merged in: | |

Authors: | Reviewers: | ||

Report Upstream: | N/A | Work issues: | |

Branch: | Commit: | ||

Dependencies: | Stopgaps: |

### Description (last modified by )

Symbolic expressions can be seen as programs for applying functions to numerics and symbolics. Non-numeric non-symbolics (NNNS, most of the rest of Sage) are usually not handled by symbolic functions, although they often allow the same operations and many of the functions. The manual workaround is to evaluate the expression "on `x`

" and then to substitute `x`

with the respective NNNS. We propose that `BuiltinFunction`

automates this process.

Part of this is already duplicated in `rings.arith`

but the need arises with symbolic functions returning polynomials, e.g. #16813. At the moment `BuiltinFunction`

simply converts the NNNS argument, losing the type information.

Practically, `BuiltinFunction`

should eval with `x`

, try substitution, and throw an error if the substitution leads to unknown methods of the NNNS. I.e.

sage: elliptic_f (x, 1) log(tan(1/4*pi + 1/2*x)) sage: elliptic_f (polygen(CC), 1) ... AttributeError: 'Polynomial_generic_dense_field' object has no attribute 'log'

**Note:**See TracTickets for help on using tickets.