# Specifying a limit for a symbolic function?

Hi there,

I am working with symbolic functions, and I do have a lot of integration by parts to be done, in which I have to evaluate some exact derivative terms at infinity.

I am defining this symbolic function, specifying its derivative.

```
def deriv_F_0(self, *args, **kwds):
return -exp(2*i*args[kwds['diff_param']])/args[kwds['diff_param']]
F_0 = function('F_0', nargs=1, derivative_func=deriv_F_0)
```

It works fine, but, I would also like to add to it an option like "limit_func" doing this:

```
F_0 = function('F_0', nargs=1, derivative_func=deriv_F_0, limit_func=mylimit_F_0)
```

where "mylimit_F_0" would be a function of mine. Notice that my problem is just that "limit_func" does not exist :)

For instance, I could set:

```
def mylimit_F_0(self, x):
if bool(x==infinity):
return pi
```

the goal being to specify various asymptotic limits, and makes this

```
F_0(x).limit(x=infinity)
```

returning the value I specify, here `pi`

.

I have started SageMath a few days ago, so any help welcome! Let me know if there are any alternative methods for setting limit on symbolic functions!

Cheers, chris.

A similar argument could be made in favor of specifying an antiderivative...

As far as I know, the only way is to define a new function by deriving a new class from the appropriate parent class : how to do this exactly depends, IIRC, of what exactly you want to implement.

The "right" source of inspiration is probably Sage's symbolic functions source files. I have played a bit with them and implemented a couple of toys, but I couldn't for dear life recall exactly how tonight...