Is there a workaround for this in the meantime?

On Wednesday, December 16, 2020 at 6:11:52 PM UTC-5 [email protected] wrote:

> It doesn't, but I think it should. The string printer (sstr) doesn't
> have any precision settings, because it just prints floats at the
> precision that they are. But ccode() always prints floats with enough
> digits for C. It should be possible to override this, and the
> precision option seems like the best way to do this.
>
> The current behavior is also incorrect in another way, which is that
> it always uses 17 digits of precision for Float, even though they
> default to 15 (also I'm unclear why it is using 17). It should really
> be using no more digits than the Float already has. This is even worse
> if you explicitly evalf floats to lower than the default 15 digits. If
> this worked correctly, you would be able to work around your issue by
> simply calling evalf(8) on your expression before calling ccode().
>
> Aaron Meurer
>
> On Wed, Dec 16, 2020 at 2:21 PM [email protected]
> <[email protected]> wrote:
> >
> > The documentation (https://docs.sympy.org/latest/modules/printing.html) 
> says the precision parameter is for "numbers such as pi" so I wasn't sure 
> if it applied to certain constants or any floating point values.
> >
> > On Wednesday, December 16, 2020 at 4:11:43 PM UTC-5 [email protected] 
> wrote:
> >>
> >> This looks like a bug. The precision parameter is being ignored.
> >>
> >> Aaron Meurer
> >>
> >> On Wed, Dec 16, 2020 at 11:51 AM [email protected]
> >> <[email protected]> wrote:
> >> >
> >> > Hi -
> >> >
> >> > Is it possible to set the precision of printed floating point values 
> when using ccode, cxxcode, etc? Using the 'precision' parameter does not 
> seem to do anything.
> >> >
> >> > For instance, the following:
> >> > T = sym.Symbol('T')
> >> > f = 0.00437791*T**2
> >> > print(sym.cxxcode(f, precision=8))
> >> >
> >> > produces:
> >> >
> >> > 0.0043779099999999996*std::pow(T, 2)
> >> >
> >> > Thanks.
> >> >
> >> > - Jesse
> >> >
> >> >
> >> > --
> >> > 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 view this discussion on the web visit 
> https://groups.google.com/d/msgid/sympy/adfc7377-602e-4442-b5c3-aebd3d2c529dn%40googlegroups.com
> .
> >
> > --
> > 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 view this discussion on the web visit 
> https://groups.google.com/d/msgid/sympy/8a1174cb-4eb3-4d90-9494-6d2dce5bf622n%40googlegroups.com
> .
>

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/0abcc14b-bad1-4b44-936f-a4fe3853a4b9n%40googlegroups.com.

Reply via email to