On 10/4/07, Hamptonio <[EMAIL PROTECTED]> wrote:
>
> I am porting some Mathematica code to sage and I ran into a minor
> issue. I was using the Mod command in mathematica with argument types
> Mod[float,integer] to create a periodic function. In sage, the mod
> command gives an error on that sort of input. So I made a simple
> function:
>
> def float_mod(x,divisor):
> '''An extension of the mod command for floats.'''
> return x-floor(float(x)/divisor)*divisor
>
> which does what I want. Is there something like this already in
> sage?
Yes, %, e.g.,
sage: a = float(1.2393); b = int(5)
sage: a % b
1.2393000000000001
sage: a = float(1.2393); b = int(1)
sage: a % b
0.23930000000000007
That this doesn't work on Sage types, i.e., Sage real numbers
and Sage integers is because we didn't think to implement it:
sage: 1.2394 % 1
boom because we didn't think to implement.
Should this be added to Sage? If somebody thinks so...
implement it and post a trac ticket.
> I know the normal python % operation does something similar but
> that's taken out by the preparser.
The Sage preparser doesn't touch %:
sage: preparse('a % b')
'a % b'
William
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/
-~----------~----~----~----~------~----~------~--~---