Boost logo

Boost :

From: Thorsten Ottosen (nesotto_at_[hidden])
Date: 2004-02-29 19:06:22


"Paul A Bristow" <boost_at_[hidden]> wrote in message
news:002c01c3ff13$be46d340$0c010101_at_hetp3...
> Looks interesting - but what is in "math_constant.hpp" ?

David Abrahams:
>So, umm, are you going to show us the definition of "pi"?

Yes, of course. BTW, I've attached the file since
my messages seems to format the code like ****.

br

Thorsten

namespace std
{

#define CNAME( Var ) Var##_constant_t

#define OVERLOAD_CONTEXT( ConstType, FP, FPV ) \
inline FP operator+( FP l, ConstType ) \
{ return l + FPV; } \
inline FP operator+( ConstType, FP r ) \
{ return r + FPV; } \
inline FP operator-( FP l, ConstType ) \
{ return l - FPV; } \
inline FP operator-( ConstType, FP r ) \
{ return FPV - r; } \
inline FP operator*( FP l, ConstType ) \
{ return l * FPV; } \
inline FP operator*( ConstType, FP r ) \
{ return r * FPV; } \
inline FP operator/( FP l, ConstType ) \
{ return l / FPV; } \
inline FP operator/( ConstType, FP r ) \
{ return FPV / r; } \

#define DEFINE_FP_CONSTANT( Name, FV, DV, LDV ) \
struct CNAME( Name ) \
{ \
  CNAME( Name ) () {} \
  operator float() const { return FV; } \
  operator double() const { return DV; } \
  operator long double() const { return LDV; } \
}; \
OVERLOAD_CONTEXT( CNAME( Name ), float, FV ) \
OVERLOAD_CONTEXT( CNAME( Name ), double, DV ) \
OVERLOAD_CONTEXT( CNAME( Name ), long double, LDV ) \
const CNAME( Name ) Name;

DEFINE_FP_CONSTANT( pi, 3.14F, 3.14232, 3.1423211223L )

} // namespace std

begin 666 math_constant.hpp
M+RHJ#0H@*B H0RD_at_5&AO<G-T96X_at_3W1T;W-E;BP@,C P- T*("H_at_0V]N=&%C
M=#H@;F5S;W1T;T!C<RYA=6,N9&L-"B J( T*("H_at_17AA;7!L92!O9B!H;W<@
M=&\@:6UP;&5M96YT(&9L97AI86)L92!M871H(&-O;G-T86YT<R!S+G0N#0H@
M*B -"B J(#$I('1H92!E>'!R97-S:6]N('=H97)E('1H92!C;VYS=&%N="!A
M<'!E87)S(&1E8VED97,@=&AE#0H@*B @("!T>7!E(&]F('1H92!C;VYS=&%N
M= T*("H@,BD@=&AE(&-O;G-T86YT<R!C86X@<&%S<V5D('1O(&YO<FUA;"!M
M871H(&9U;F-T:6]N<PT*("H@,RD@;F\@;W)D97(@9&5P96YD96YC:65S(&]C
M8W5R<PT*("H_at_-"D@;6EX+6UO9&4_at_87)I=&AM971I8R!I<R!N;W0@<&]S<VEB
M;&4@=VET:&]U="!E>'!L:6-I="!A8W1I;VX_at_9G)O;2!T:&4-"B J(" @('!R
M;V=R86UM97(-"B J(#4I('1E<W1S(')E=F5A;"!T:&%T('1H97)E(&ES(&YO
M(&]V97)H96%D#0H@*B -"B J("@R*2P@*#,I(&%N9" H-2D_at_87)E(&$@;75S
M="!W:&EL92 H,2D_at_86YD("@T*2!M96%N<R!T:&%T('5N=V%N=&5D(&-O;G9E
M<G-I;VYS#0H@*B!C86X_at_8F4@97AP;&EC:71L>2!C;VYT<F]L;&5D+B!&;W)C
M:6YG('1H92!P<F]G<F%M;65R('1O(&UA:V4@=&AA="!C:&]I8V4-"B J(&ES
M('-E96X_at_87,@82!G;V]D('!R;W!E<G1Y+@T*("HO#0H@( T*#0IN86UE<W!A
M8V4@<W1D#0I[#0H-"B-D969I;F4_at_0TY!344H(%9A<B I(%9A<B,C7V-O;G-T
M86YT7W0-"@T*(V1E9FEN92!/5D523$]!1%]#3TY415A4*"!#;VYS=%1Y<&4L
M($90+"!&4%8@*2 @7 T*:6YL:6YE($90(&]P97)A=&]R*R@@1E @;"P_at_0V]N
M<W14>7!E("D@(" @(" @(" @7 T*>R!R971U<FX@;" K($905CL@?2 @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @7 T*:6YL:6YE($90(&]P97)A=&]R
M*R@@0V]N<W14>7!E+"!&4"!R("D@(" @(" @(" @7 T*>R!R971U<FX@<B K
M($905CL@?2 @(" @(" @(" @(" @(" @(" @(" @(" @(" @7 T*:6YL:6YE
M($90(&]P97)A=&]R+2@@1E @;"P_at_0V]N<W14>7!E("D@(" @(" @(" @7 T*
M>R!R971U<FX@;" M($905CL@?2 @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @7 T*:6YL:6YE($90(&]P97)A=&]R+2@@0V]N<W14>7!E+"!&4"!R("D@
M(" @(" @(" @7 T*>R!R971U<FX_at_1E!6("T@<CL@?2 @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @7 T*:6YL:6YE($90(&]P97)A=&]R*B@@1E @;"P@
M0V]N<W14>7!E("D@(" @(" @(" @7 T*>R!R971U<FX@;" J($905CL@?2 @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @7 T*:6YL:6YE($90(&]P97)A
M=&]R*B@@0V]N<W14>7!E+"!&4"!R("D@(" @(" @(" @7 T*>R!R971U<FX@
M<B J($905CL@?2 @(" @(" @(" @(" @(" @(" @(" @(" @(" @7 T*:6YL
M:6YE($90(&]P97)A=&]R+R@@1E @;"P_at_0V]N<W14>7!E("D@(" @(" @(" @
M7 T*>R!R971U<FX@;" O($905CL@?2 @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @7 T*:6YL:6YE($90(&]P97)A=&]R+R@@0V]N<W14>7!E+"!&4"!R
M("D@(" @(" @(" @7 T*>R!R971U<FX_at_1E!6("\@<CL@?2 @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @7 T*#0HC9&5F:6YE($1%1DE.15]&4%]#3TY3
M5$%.5"@@3F%M92P_at_1E8L($16+"!,1%8@*2 @(" @7 T*<W1R=6-T($-.04U%
M*"!.86UE("D@(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(%P-"GL@
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @("!<#0H@($-.04U%*"!.86UE("D@*"D@(" @(" @(" @(" @>WT@(" @
M(" @(" @(" @(" @(" @7 T*("!O<&5R871O<B!F;&]A="@I(&-O;G-T(" @
M(" @('L@<F5T=7)N($96.R!](" @(" @(%P-"B @;W!E<F%T;W(@9&]U8FQE
M*"D_at_8V]N<W0@(" @("![(')E='5R;B!$5CL@?2 @(" @("!<#0H@(&]P97)A
M=&]R(&QO;F<@9&]U8FQE*"D_at_8V]N<W0@>R!R971U<FX_at_3$16.R!](" @(" @
M7 T*?3L@(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(%P-"D]615),3T%$7T-/3E1%6%0H($-.04U%*"!.86UE("DL
M(&9L;V%T+"!&5B I(" @(" @("!<#0I/5D523$]!1%]#3TY415A4*"!#3D%-
M12@@3F%M92 I+"!D;W5B;&4L($16("D@(" @(" @7 T*3U9%4DQ/041?0T].
M5$585"@@0TY!344H($YA;64@*2P@;&]N9R!D;W5B;&4L($Q$5B I(%P-"F-O
M;G-T($-.04U%*"!.86UE("D_at_3F%M93L-"@T*1$5&24Y%7T907T-/3E-404Y4
M*"!P:2P@,RXQ-$8L(#,N,30R,S(L(#,N,30R,S(Q,3(R,TP@*0T*#0I]("\O
4(&YA;65S<&%C92!S=&0-"@T*#0H`
`
end


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk