# Tetration Forum

Full Version: PARI/gp
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
(11/21/2017, 03:05 PM)Gottfried Wrote: [ -> ]
(11/21/2017, 01:31 PM)Xorter Wrote: [ -> ]I got the following error message:

***   at top-level: subst(exp(1/x),x,1/1000)

***                       ^------------------
*** exp: domain error in exp: valuation < 0

My question is that how can we solve this problem?

Perhaps it is meaningful for you to replace 1/x by exp(-u) where u=log(x) ? At least this gives a power series (more precisiely a puisieux-series)

I tried your advice but without success:

(15:42) gp > subst(f(x),x,1/1000)
***   at top-level: subst(f(x),x,1/1000)
***                       ^--------------
***   in function f: exp(exp(-u(x)))
***                           ^------
***   in function u: log(x)
***                  ^------
*** log: domain error in log: series valuation != 0

It looked like a simple problem, but I have not be able to solve it.
Any idea?
(11/21/2017, 03:50 PM)Xorter Wrote: [ -> ]
(11/21/2017, 03:05 PM)Gottfried Wrote: [ -> ]
(11/21/2017, 01:31 PM)Xorter Wrote: [ -> ]I got the following error message:

***   at top-level: subst(exp(1/x),x,1/1000)

***                       ^------------------
*** exp: domain error in exp: valuation < 0

My question is that how can we solve this problem?

Perhaps it is meaningful for you to replace 1/x by exp(-u) where u=log(x) ? At least this gives a power series (more precisiely a puisieux-series)

I tried your advice but without success:

(15:42) gp > subst(f(x),x,1/1000)
***   at top-level: subst(f(x),x,1/1000)
***                       ^--------------
***   in function f: exp(exp(-u(x)))
***                           ^------
***   in function u: log(x)
***                  ^------
*** log: domain error in log: series valuation != 0

It looked like a simple problem, but I have not be able to solve it.
Any idea?

This should go like

subst ( Pol(exp(exp(u)),u) ,   u,    log(1/1000) )

or

subst ( Pol(exp(exp(-u)),u) ,   u,   log(1000) )

Because \$exp(x)\$ gives series and not a polynomial, to make the "subst" working, you need to convert the series into a polynomial ("Pol(exp(x))" or "Pol(exp(u),u)" first.
However, "substituting" in a polynomial is not a very good idea, especially if the value to be substituted makes the functional value large.
Converting the exp()-function into a polynomial and then substituting such a large value does not give a near estimate for the true exp(1000) which is what I think your initial subst should  give.  (I hope I got your initial formula correct)
Aha, yes! It works... Thank you very much!
Hi, again!

I would like to algoritmize the fractional derivatives and integrals, but here are some problems.
This is my code:

Code:
```int1(f,a,b,h)={return(sum(k=floor(min(a*h,b*h)),ceil(max(a*h,b*h)),sign(b-a)*subst(f,x,k/h)/h));} Stein(f,n,a,h)={return(der1(int1(f,0,a,h),a,h)/gamma(1-n));}```

So e. g. D^2.5 x^2.5 = gamma(2.5-1) = Stein(x^2.5,2.5,0,1000.0), but it returns with this error message:
domain error in gpow [irrational exponent]: valuation != 0

Furthermore my Stein function return with ~0 in other cases. Why?

EDIT:
Here is the original formula:
https://wikimedia.org/api/rest_v1/media/...cc722c1f49
Oops, it looks I forgot some things from the my algorithm. It will be checked soon.

EDIT2:
Here is the new algorithm which is not working, too:
Code:
`Stein(f,n,a,h)={return(der1(int1(subst(f,x,u)/(x-u)^n,0,a,h),a,h)/gamma(1-n));}`
Hi, there!

Does anyone have any idea how to extend the binary bittest(x,n) to other number systems?

Thanks a lot!
Xorter
Pages: 1 2