All functions support the methods documented below, inherited from sympy.core.function.Function.

class sympy.core.function.Function(*args)[source]

Base class for applied mathematical functions.

It also serves as a constructor for undefined function classes.

See the Writing Custom Functions guide for details on how to subclass Function and what methods can be defined.


Undefined Functions

To create an undefined function, pass a string of the function name to Function.

>>> from sympy import Function, Symbol
>>> x = Symbol('x')
>>> f = Function('f')
>>> g = Function('g')(x)
>>> f
>>> f(x)
>>> g
>>> f(x).diff(x)
Derivative(f(x), x)
>>> g.diff(x)
Derivative(g(x), x)

Assumptions can be passed to Function the same as with a Symbol. Alternatively, you can use a Symbol with assumptions for the function name and the function will inherit the name and assumptions associated with the Symbol:

>>> f_real = Function('f', real=True)
>>> f_real(x).is_real
>>> f_real_inherit = Function(Symbol('f', real=True))
>>> f_real_inherit(x).is_real

Note that assumptions on a function are unrelated to the assumptions on the variables it is called on. If you want to add a relationship, subclass Function and define custom assumptions handler methods. See the Assumptions section of the Writing Custom Functions guide for more details.

Custom Function Subclasses

The Writing Custom Functions guide has several Complete Examples of how to subclass Function to create a custom function.


Returns the method as the 2-tuple (base, exponent).


Returns the first derivative of the function.

classmethod is_singular(a)[source]

Tests whether the argument is an essential singularity or a branch point, or the functions is non-holomorphic.