I don't think pi and Exp1 are good examples because they are already implemented in mpmath, and can be computed to an arbitrary number of digits. That's what the mpf stuff is doing. For your case, I think you just need to define _eval_evalf(self, prec), which should return a Float to prec digits.
_sage_ is just to convert the objects to Sage equivalents. If you don't intend for you code to ever be used within Sage you don't need to worry about it. Aaron Meurer On Sun, Feb 2, 2014 at 7:12 PM, G B <[email protected]> wrote: > I'd like to set up values that display as symbols but evaluate to numbers > when called with .n(). I think this is similar to how pi and E are handled. > In my case it's constants such as the speed of light, and Boltzmann's > constant. When I look at the symbolic representation, I'd like to see these > values represented as symbols (c, k_B), but when I evaluate I'd like their > true value used without the need for explicit substitution. > > Is there an easy way to set up such values? > > Looking through the source, I found Pi and Exp1 defined in > sympy.core.numbers-- and it looks like each is a custom class. Is there a > trick to setting up _as_mpf_val and approximation_interval for physical > constants such as these? Does _sage_ need to be implemented if I'm not > running within Sage? > > Thanks-- > Greg > > -- > You received this message because you are subscribed to the Google Groups > "sympy" 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/sympy. > For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups "sympy" 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/sympy. For more options, visit https://groups.google.com/groups/opt_out.
