
Boost : 
From: Rainer Deyke (root_at_[hidden])
Date: 20011029 14:52:19
 Original Message 
From: "Stewart, Robert" <stewart_at_[hidden]>
To: <boost_at_[hidden]>
Sent: Monday, October 29, 2001 10:53 AM
Subject: RE: [boost] Math constants  naming convention?
> PI_1_2
> PI_1_4
> PI_1_3
> PI_2_3
> PI_2
<Responding to the whole thread, not this particular post> In general, I
consider it a mistake to include small integers in an identifier name,
whether as digits or spelled out. It places a greater burden on the library
user (because they have to remember that 'PI_1_2' exists but
'PI_156785_786971290' doesn't) and on the library implementor (because they
have to make sure all of the various versions of 'PI * A / B' exist. My
first preference for spelling 'PI * A / B' would be 'PI * A / B'. However,
if this leads to unacceptable performance, how about 'pi_fraction<A,
B>::value' (or some variant thereof)? The template class 'pi_fraction'
could be specialized for common values of 'A' and 'B', but would still for
less common values of 'A' and 'B'.
> > log_pi // cos () not allowed in name
>
> PI_LOG
The same principle applies. If constants in the form 'log(A)' are common,
how about this:
namespace boost { namespace math { namespace constants {
template<class Constant> log {
public:
static double const value = std::log(Constant::value);
};
template<> class log<pi_fraction<1, 1> > {
public:
static double const value = /* insert digits here */;
};
}}}
 Rainer Deyke (root_at_[hidden]) Shareware computer games  http://rainerdeyke.com "In ihren Reihen zu stehen heisst unter Feinden zu kaempfen"  Abigor
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk