[Lemon-devel] Math constants in C++

Alpár Jüttner alpar at cs.elte.hu
Fri Feb 8 11:15:55 CET 2008


I created a new changeset (a315a588a20d) fixing the bugs you discovered.
It is now in the main repo. Moreover and I also backported it to the svn trunk.

Alpar

On Mon, 2008-02-04 at 15:33 +0100, Kovács Péter wrote:
> Hi,
> 
> I support it. (But I did not check the constant values. :))
> 
> In line 37, "The Eulere constant" should be "The Euler e constant" or 
> "The Euler constant" or something like that.
> In line 39, "log_2(3)" should be "log_2(e)".
> 
> Regards,
> Peter
> 
> Alpár Jüttner írta:
> > Hi,
> > 
> > What about something like this?
> > 
> > http://lime.cs.elte.hu/~alpar/hgwebdir.cgi/lemon/rev/3a6cdebbb855
> > 
> > It does not emit a warning - at least on my computer.
> > 
> > Regards,
> > Alpar
> > 
> > On Mon, 2008-02-04 at 09:53 +0000, Alpár Jüttner wrote:
> >>> Why do we have lemon::dim2?
> >> The only reason is to enable us to also have 3 dimensional points in to
> >> future. In fact, lemon::dim2::Point used to be called lemon::xy and the
> >> 3dim version would have been called lemon::xyz. These names worked well,
> >> they do not conform to our conventions. Then another idea was to call
> >> them  Xy, but it looked very stupid. Thus came the namespace dim2 (and
> >> possibly dim3 in the future).
> >>
> >>>  I think if we have lemon::dim2 for Point,
> >>> BoundingBox, etc., then we should have lemon::math for constants.
> >> If we want to provide any alternative declaration for PI in the future,
> >> then of course we should. :)
> >>
> >> Regards,
> >> Alpar
> >>
> >>
> >>> Alpár Jüttner írta:
> >>>> Hi,
> >>>>
> >>>>>  >       * Is that OK to declare all these constants as 'const long
> >>>>>  >         double'?
> >>>>> Does it cause warnings, e.g. in 'double x = 2 * PI;'?
> >>>> Could you investigate the answer for this?
> >>>>
> >>>>>  >       * Do we need to provide all of the original math.h constants for
> >>>>>  >         'compatibility'?
> >>>>>
> >>>>> I don't think so, I suggest only the ones that are used in LEMON or that
> >>>>> are really important for another reason. (E.g. E is important even if it
> >>>>> is not used in LEMON yet.)
> >>>> In fact E _is_ used in lemon. (That is why I faced with this whole
> >>>> problem.)
> >>>> The constants in math.h are PI, E and SQRT2, LN2, , LN10, LOG2E, LOG10E,
> >>>> (which seem to be reasonably important) and the reciprocal of some of
> >>>> them (hopefully we don't need them because of optimization).
> >>>>
> >>>>> What about a separate namespace, e.g. lemon::math (or lemon::constants)?
> >>>>> I think lemon::math::PI, lemon::math::E would be very good.
> >>>> Yes, they look good. But are they better in any aspect then lemon:PI and
> >>>> lemon:E?
> >>>>
> >>>>> What about prefix 'C_'?
> >>>> The only reason why namespaces exist in C++ is to avoid all these kind
> >>>> of prefixes.
> >>>>
> >>>> Regars,
> >>>> Alpar
> >>>>




More information about the Lemon-devel mailing list