32 #ifndef VSMC_MATH_CONSTANTS_HPP
33 #define VSMC_MATH_CONSTANTS_HPP
35 #define VSMC_DEFINE_MATH_CONSTANTS(name, val) \
36 template <typename T> inline T name () {return static_cast<T>(val##l);} \
37 template <> inline float name <float> () {return val##f;} \
38 template <> inline double name <double> () {return val;} \
39 template <> inline long double name <long double> () {return val##l;}
48 3.141592653589793238462643383279502884197)
53 6.283185307179586476925286766559005768394)
58 0.3183098861837906715377675267450287240689)
63 9.869604401089358618834490999876151135314)
68 1.570796326794896619231321691639751442099)
73 1.047197551196597746154214461093167628066)
78 0.7853981633974483096156608458198757210493)
83 0.5235987755982988730771072305465838140329)
88 2.094395102393195492308428922186335256131)
93 2.356194490192344928846982537459627163148)
98 4.188790204786390984616857844372670512263)
103 1.772453850905516027298167483341145182798)
108 2.506628274631000502415765284811045253007)
113 0.5641895835477562869480794515607725858441)
118 1.253314137315500251207882642405522626503)
123 1.023326707946488488479551624889264860707)
128 0.8862269254527580136490837416705725913988)
133 0.7236012545582676593630146272907957678721)
138 1.447202509116535318726029254581591535744)
143 1.534990061919732732719327437333897291061)
148 2.046653415892976976959103249778529721415)
153 1.144729885849400174143427351353058711647)
158 1.837877066409345483560659472811235279723)
163 0.4515827052894548647261952298948821435718)
168 0.04611759718129048274818211443053300699980)
173 -0.2415644752704904446910368915632944245037)
178 -0.6470295833786548266690500070276435610757)
183 0.7392647777412357921654142358887095750753)
188 0.8570478133976192467042083453592312801438)
193 1.432411958301181101582646357346886143151)
198 2.718281828459045235360287471352662497757)
203 0.3678794411714423215955237701614608674458)
208 1.648721270700128146848650787814163571654)
213 0.6065306597126334236037995349911804534419)
218 1.414213562373095048801688724209698078570)
223 1.732050807568877293527446341505872366943)
228 2.236067977499789696409173668731276235441)
233 3.162277660168379331998893544432718533720)
238 0.7071067811865475244008443621048490392848)
243 0.5773502691896257645091487805019574556476)
248 0.4472135954999579392818347337462552470881)
253 0.3162277660168379331998893544432718533720)
258 0.6931471805599453094172321214581765680755)
263 1.098612288668109691395245236922525704647)
268 1.609437912434100374600759333226187639526)
273 2.302585092994045684017991454684364207601)
278 1.442695040888963407359924681001892137427)
283 0.9102392266268373936142401657361070006126)
288 0.6213349345596118107071993881805725841234)
293 0.4342944819032518276511289189166050822944)
298 -0.3665129205816643270124391582326694694543)
304 #endif // VSMC_MATH_CONSTANTS_HPP
#define VSMC_DEFINE_MATH_CONSTANTS(name, val)