On Thursday, April 10, 2014 8:23:06 PM UTC-7, Privasie Invazhian wrote:
>
> I'm running Sage 5.3 on a MacBook Pro with OS X version 10.7.5, and I 
> don't understand why the modulo operator % works so differently on reals 
> and on integers or how I can work around it.
>
> For instance,   4 % 10 = 4  and 6 % 10 = 10, just as I would expect.
>
> But while 4.9 % 10 = 4.9 as expected, 5.1 % 10 = -4.9 instead of 5.1.  
>
> And as far as I can tell, for any positive integer or real modulus n and 
> any positive integer m and positive noninteger x < n, 
>
> (mn + x) % n = x  if x < n/2,
>
> but 
>
> (mn + x) % n = x-n if x > n/2.
>
> I don't understand this AT ALL.
>
> (Apologies if it's a simple question that I'm failing to understand 
> because I'm a relative novice: I would go to the ask-sage-math forum as 
> recommended but the posting feature there seems to be currently disabled 
> for low-karma posters.)
>
> Thanks for any enlightenment,
> Kim
>

 sage: 5.1 % 10
-4.90000000000000
sage: a=5.1
sage: a.__mod__?    #unfortunately, you have to know that "%" eventually 
calls "__mod__", but that's just python
Type:       method-wrapper
String Form:<method-wrapper '__mod__' of sage.rings.real_mpfr.RealLiteral 
object at 0x70986e0>
Definition: a.__mod__(left, right)
Docstring:
   Return the value of "left - n*right", rounded according to the
   rounding mode of the parent, where "n" is the integer quotient of
   "x" divided by "y". The integer "n" is rounded toward the nearest
   integer (ties rounded to even).

   EXAMPLES:

      sage: 10.0 % 2r
      0.000000000000000
      sage: 20r % .5
      0.000000000000000

      sage 1.1 % 0.25
      0.100000000000000

This is just how "%" is implement in MPFR (the main floating point library 
in sage)

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.

Reply via email to