Subject: Handling branch cuts for hypergeometric functions
From: Stavros Macrakis
Date: Thu, 24 Feb 2005 13:20:37 -0500
When I get a non-trivial asksign question, I often answer it by
assuming "typical" values for the parameter. For example, if it asks
the sign of x^3-y^2, I'll consider that in my problem x is roughly
10^2 and y is roughly 1, so clearly it's positive.
What if we made that approach more systematic?
That is, you could declare a "typical value" of a variable somehow,
and asksign quesions would use those typical values, something like
this:
declare(x,typical_value,10^2)$
declare(y,typical_value,1)$
asksign(x^3-y^2)
Asksign called on x^3-y^2; with typical values x=100 and y=1,
evaluates to 999999; returning POS.
Even better if you could declare them during the asksign exchange:
asksign(x^3^-y^2)
Is x^3-y^2 pnz?
_x == 10^3;
Asksign called on x^3-y^2; with typical value x=1000,
evaluates to 1000-y^2, value unknown.
Is 1000-y^2 pnz?
_y == 1;
Asksign called on x^3-y^2; with typical values x=1000 and y=1,
evaluates to 999999; returning POS.
Of course, this typical value thing would be much less useful if we
had interval arithmetic, or if assume/is knew how to use interval
analysis, e.g.
assume(x>500,x<5000,y>1/10,y<10)$
asksign(x^3-y^2)$
........currently doesn't know
Thoughts on this half-baked notion?
It would surely be better and more general simply to improve
assume/is. Is the above too ugly to try in the meantime?
-s