Michael Somos on Sun, 31 Oct 1999 17:11:15 -0500 (EST) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
ceil,floor,frac,truncate undocumented behavior |
In GP/PARI CALCULATOR Version 2.0.17 (beta) gp> y=sum(n=-5,5,x^n) %1 = (x^10 + x^9 + x^8 + x^7 + x^6 + x^5 + x^4 + x^3 + x^2 + x + 1)/x^5 gp> ceil(y) %2 = x^5 + x^4 + x^3 + x^2 + x + 1 gp> floor(y) %3 = x^5 + x^4 + x^3 + x^2 + x + 1 gp> frac(y) %4 = (x^4 + x^3 + x^2 + x + 1)/x^5 gp> round(y) %5 = (x^10 + x^9 + x^8 + x^7 + x^6 + x^5 + x^4 + x^3 + x^2 + x + 1)/x^5 gp> truncate(y) %6 = x^5 + x^4 + x^3 + x^2 + x + 1 gp> ??truncate truncate(x,{&e}): truncate x and set e to the number of error bits. When x is in R, this means that the part after the decimal point is chopped away, integer and set e to the number of error bits that is the binary exponent of the difference between the original and the truncated value (the "fractional part"). If the exponent of x is too large compared to its precision (i.e. e > 0), the result is undefined and an error occurs if e was not given. Note a very special use of truncate: when applied to a power series, it transforms it into a polynomial or a rational function with denominator a power of X, by chopping away the O(X^k). Similarly, when applied to a p-adic number, it transforms it into an integer or a rational number by chopping away the O(p^k). Although there is some discussion in the documentation for truncate(), it does not mention what applies to a rational function. The behavior of ceil, floor, frac, and round in this case does not seem to be documented. Shalom, Michael -- Michael Somos <somos@grail.cba.csuohio.edu> Cleveland State University http://grail.cba.csuohio.edu/~somos/ Cleveland, Ohio, USA 44115