00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 #ifndef _CXSC_LX_REAL_HPP_INCLUDED
00040 #define _CXSC_LX_REAL_HPP_INCLUDED
00041
00042 #include <l_imath.hpp>
00043 #include <sstream>
00044 #include <cmath>
00045 #include <iostream>
00046
00047 namespace cxsc {
00048
00049 const real Max_Int_R = 9007199254740991.0;
00050 const real Max_Int_N = -9007199254738891.0;
00051
00053 inline bool Is_Integer(const real& x);
00054
00055
00056
00057
00058 class lx_real
00059 {
00060
00061 private:
00062
00063 real ex;
00064 l_real lr;
00065
00066 public:
00067
00068
00070 lx_real(void) throw() {}
00072 lx_real(const real& n, const l_real &a) throw()
00073 {
00074 if ( !(Is_Integer(n)) )
00075 cxscthrow(REAL_NOT_ALLOWED("lx_real(const real&, const l_real&)"));
00076 else
00077 {
00078 ex = n; lr = a;
00079 }
00080 }
00081
00083 lx_real(const real& n, const real &a) throw()
00084 {
00085 if ( !(Is_Integer(n)) )
00086 cxscthrow(REAL_NOT_ALLOWED("lx_real(const real&, const real&)"));
00087 else
00088 {
00089 ex = n; lr = a;
00090 }
00091 }
00092
00094 explicit lx_real(const l_real &a) throw() : ex(0), lr(a) { }
00096 explicit lx_real(const real &a) throw() : ex(0), lr(a) { }
00098 lx_real(const real&, const string&) throw();
00099
00100
00101
00102
00104 inline lx_real & operator = (const lx_real &) throw();
00106 inline lx_real & operator = (const l_real &) throw();
00108 inline lx_real & operator = (const real &) throw();
00109
00110
00111
00113 friend inline int StagPrec(const lx_real&) throw();
00115 friend inline real expo(const lx_real&) throw();
00117 friend inline int sign(const lx_real&) throw();
00119 friend inline l_real lr_part(const lx_real&) throw();
00121 friend inline lx_real abs(const lx_real&) throw();
00123 friend void scale_up (lx_real &) throw();
00125 friend void scale_down(lx_real &) throw();
00127 friend inline lx_real adjust(const lx_real &) throw();
00128
00130 friend inline bool eq_zero (const lx_real &a) throw();
00132 friend inline bool gr_zero (const lx_real &a) throw();
00134 friend inline bool ge_zero (const lx_real &a) throw();
00136 friend inline bool sm_zero (const lx_real &a) throw();
00138 friend inline bool se_zero (const lx_real &a) throw();
00139
00141 friend inline void times2pown(lx_real &, const real &) throw();
00143 friend inline void times2pown_neg(lx_real& a, const real& n) throw();
00145 friend inline bool operator ! (const lx_real &) throw();
00147 friend inline lx_real operator -(const lx_real &) throw();
00148
00149
00150
00151
00152
00153
00154
00155
00157 friend std::string & operator << (std::string &s, const lx_real& a)
00158 throw();
00159
00160
00161
00162 };
00163
00164
00165
00166
00167
00168 inline int StagPrec(const lx_real&) throw();
00169 inline real expo(const lx_real&) throw();
00170 inline int sign(const lx_real&) throw();
00171 inline l_real lr_part(const lx_real&) throw();
00172 inline lx_real abs(const lx_real&) throw();
00173 inline lx_real adjust(const lx_real &) throw();
00174 inline void times2pown_neg(lx_real&, const real&) throw();
00175
00176 void scale_up (lx_real&) throw();
00177 void scale_down(lx_real &a) throw();
00178
00179 inline bool eq_zero (const lx_real &a) throw();
00180 inline bool gr_zero (const lx_real &a) throw();
00181 inline bool ge_zero (const lx_real &a) throw();
00182 inline bool sm_zero (const lx_real &a) throw();
00183 inline bool se_zero (const lx_real &a) throw();
00184
00185 inline void times2pown(lx_real &, const real &) throw();
00186 inline bool operator ! (const lx_real &) throw();
00187
00188 inline lx_real operator -(const lx_real &) throw();
00189
00190
00191
00193 string & operator >> (string &s, lx_real &a) throw();
00195 void operator >> (const string &s, lx_real &a) throw();
00197 void operator >> (const char *s, lx_real&) throw();
00199 std::istream & operator >> (std::istream &s, lx_real &a) throw();
00200
00201
00202
00203 std::string & operator << (std::string &s, const lx_real& a)
00204 throw();
00205
00206
00208 inline std::string & operator << (std::string &s, const lx_real& a)
00209 throw();
00210
00211
00212
00213
00214
00216 inline real add_real(const real &a, const real &b) throw();
00217
00219 inline real sub_real(const real &a, const real &b) throw();
00220
00222 lx_real upper_bnd(const lx_real& x) throw();
00223
00225 lx_real lower_bnd(const lx_real& x) throw();
00227 inline lx_real operator +(const lx_real &) throw();
00228
00230 lx_real operator + (const lx_real &, const lx_real &) throw();
00232 inline lx_real operator + (const lx_real&, const l_real &) throw();
00234 inline lx_real operator + (const l_real&, const lx_real &) throw();
00236 inline lx_real operator + (const lx_real&, const real &) throw();
00238 inline lx_real operator + (const real&, const lx_real &) throw();
00239
00241 inline lx_real & operator +=(lx_real &, const lx_real &) throw();
00243 inline lx_real & operator +=(lx_real &, const l_real &) throw();
00245 inline lx_real & operator +=(lx_real &, const real &) throw();
00246
00248 inline lx_real operator - (const lx_real &, const lx_real &) throw();
00250 inline lx_real operator - (const lx_real &, const l_real &) throw();
00252 inline lx_real operator - (const l_real &, const lx_real &) throw();
00254 inline lx_real operator - (const lx_real &, const real &) throw();
00256 inline lx_real operator - (const real &, const lx_real &) throw();
00257
00259 inline lx_real & operator -=(lx_real &, const lx_real &) throw();
00261 inline lx_real & operator -=(lx_real &, const l_real &) throw();
00263 inline lx_real & operator -=(lx_real &, const real &) throw();
00264
00266 lx_real operator * (const lx_real &, const lx_real &) throw();
00268 inline lx_real operator * (const lx_real&, const l_real &) throw();
00270 inline lx_real operator * (const l_real&, const lx_real &) throw();
00272 inline lx_real operator * (const lx_real&, const real &) throw();
00274 inline lx_real operator * (const real&, const lx_real &) throw();
00275
00277 inline lx_real & operator *=(lx_real &, const lx_real &) throw();
00279 inline lx_real & operator *=(lx_real &, const l_real &) throw();
00281 inline lx_real & operator *=(lx_real &, const real &) throw();
00282
00284 lx_real operator / (const lx_real &, const lx_real &) throw(DIV_BY_ZERO);
00286 inline lx_real operator / (const lx_real&, const l_real &) throw();
00288 inline lx_real operator / (const l_real&, const lx_real &) throw();
00290 inline lx_real operator / (const lx_real&, const real &) throw();
00292 inline lx_real operator / (const real&, const lx_real &) throw();
00293
00295 inline lx_real & operator /=(lx_real &, const lx_real &) throw();
00297 inline lx_real & operator /=(lx_real &, const l_real &) throw();
00299 inline lx_real & operator /=(lx_real &, const real &) throw();
00300
00302 bool operator == (const lx_real &, const lx_real &) throw();
00304 inline bool operator == (const lx_real &, const l_real &) throw();
00306 inline bool operator == (const l_real &, const lx_real &) throw();
00308 inline bool operator == (const lx_real &, const real &) throw();
00310 inline bool operator == (const real &, const lx_real &) throw();
00311
00313 inline bool operator != (const lx_real &, const lx_real &) throw();
00315 inline bool operator != (const lx_real &, const l_real &) throw();
00317 inline bool operator != (const l_real &, const lx_real &) throw();
00319 inline bool operator != (const lx_real &, const real &) throw();
00321 inline bool operator != (const real &, const lx_real &) throw();
00322
00324 bool operator > (const lx_real &, const lx_real &) throw();
00325
00327 inline bool operator <= (const lx_real &, const lx_real &) throw();
00329 inline bool operator < (const lx_real &, const lx_real &) throw();
00331 inline bool operator >= (const lx_real &, const lx_real &) throw();
00332
00334 inline bool operator > (const real &, const lx_real &) throw();
00336 inline bool operator <= (const real &, const lx_real &) throw();
00338 inline bool operator < (const real &, const lx_real &) throw();
00340 inline bool operator >= (const real &, const lx_real &) throw();
00341
00343 inline bool operator > (const lx_real &, const real &) throw();
00345 inline bool operator <= (const lx_real &, const real &) throw();
00347 inline bool operator < (const lx_real &, const real &) throw();
00349 inline bool operator >= (const lx_real &, const real &) throw();
00350
00352 inline bool operator > (const l_real &, const lx_real &) throw();
00354 inline bool operator <= (const l_real &, const lx_real &) throw();
00356 inline bool operator < (const l_real &, const lx_real &) throw();
00358 inline bool operator >= (const l_real &, const lx_real &) throw();
00359
00361 inline bool operator > (const lx_real &, const l_real &) throw();
00363 inline bool operator <= (const lx_real &, const l_real &) throw();
00365 inline bool operator < (const lx_real &, const l_real &) throw();
00367 inline bool operator >= (const lx_real &, const l_real &) throw();
00368
00370 inline lx_real max(const lx_real&, const lx_real&);
00372 inline lx_real min(const lx_real&, const lx_real&);
00373
00375 inline real cutint(const real& x) throw();
00376
00377
00378
00380 lx_real Pi_lx_real() throw();
00382 lx_real Pip2_lx_real() throw();
00384 lx_real Pi2_lx_real() throw();
00386 lx_real Pid4_lx_real() throw();
00388 lx_real Pid2_lx_real() throw();
00390 lx_real Ln2_lx_real() throw();
00392 lx_real Ln10_lx_real() throw();
00394 lx_real Ln10r_lx_real() throw();
00396 lx_real Pir_lx_real() throw();
00398 lx_real Pi2r_lx_real() throw();
00400 lx_real SqrtPi_lx_real() throw();
00402 lx_real Sqrt2Pi_lx_real() throw();
00404 lx_real Sqrt2_lx_real() throw();
00406 lx_real Sqrt2r_lx_real() throw();
00408 lx_real Sqrt3_lx_real() throw();
00410 lx_real Sqrt3r_lx_real() throw();
00412 lx_real Sqrt3d2_lx_real() throw();
00414 lx_real Ln2r_lx_real() throw();
00416 lx_real Pid3_lx_real() throw();
00418 lx_real SqrtPir_lx_real() throw();
00420 lx_real Sqrt2Pir_lx_real() throw();
00422 lx_real LnPi_lx_real() throw();
00424 lx_real Ln2Pi_lx_real() throw();
00426 lx_real E_lx_real() throw();
00428 lx_real Ep2_lx_real() throw();
00430 lx_real Ep2r_lx_real() throw();
00432 lx_real Er_lx_real() throw();
00434 lx_real EpPi_lx_real() throw();
00436 lx_real EpPid2_lx_real() throw();
00438 lx_real EpPid4_lx_real() throw();
00440 lx_real Ep2Pi_lx_real() throw();
00442 lx_real EulerGamma_lx_real() throw();
00444 lx_real Catalan_lx_real() throw();
00446 lx_real sqrt5_lx_real() throw();
00448 lx_real sqrt7_lx_real() throw();
00450 lx_real One_m_lx_real() throw();
00452 lx_real One_p_lx_real() throw();
00453
00454
00455
00456
00457
00458
00459
00460
00461
00462
00463
00464 const real ln_N[180] =
00465 {6243314768165359.0 / 9007199254740992.0,
00466 4947709893870347.0 / 4503599627370496.0,
00467 6243314768165359.0 / 4503599627370496.0,
00468 7248263982714163.0 / 4503599627370496.0,
00469 8069367277953026.0 / 4503599627370496.0,
00470 8763600222181975.0 / 4503599627370496.0,
00471 4682486076124019.0 / 2251799813685248.0,
00472 4947709893870347.0 / 2251799813685248.0,
00473 5184960683398422.0 / 2251799813685248.0,
00474 5399580128524108.0 / 2251799813685248.0,
00475 5595512331017853.0 / 2251799813685248.0,
00476 5775752485243985.0 / 2251799813685248.0,
00477 5942628803132327.0 / 2251799813685248.0,
00478 6097986938292255.0 / 2251799813685248.0,
00479 6243314768165359.0 / 2251799813685248.0,
00480 6379829280276346.0 / 2251799813685248.0,
00481 6508538585911686.0 / 2251799813685248.0,
00482 6630287144694572.0 / 2251799813685248.0,
00483 6745789375439761.0 / 2251799813685248.0,
00484 6855655058026161.0 / 2251799813685248.0,
00485 6960408820565448.0 / 2251799813685248.0,
00486 7060505291240432.0 / 2251799813685248.0,
00487 7156341023059193.0 / 2251799813685248.0,
00488 7248263982714163.0 / 2251799813685248.0,
00489 7336581177285325.0 / 2251799813685248.0,
00490 7421564840805520.0 / 2251799813685248.0,
00491 7503457495173667.0 / 2251799813685248.0,
00492 7582476122586655.0 / 2251799813685248.0,
00493 7658815630333595.0 / 2251799813685248.0,
00494 7732651747257178.0 / 2251799813685248.0,
00495 7804143460206699.0 / 2251799813685248.0,
00496 7873435075459281.0 / 2251799813685248.0,
00497 7940657972317686.0 / 2251799813685248.0,
00498 8005932102448069.0 / 2251799813685248.0,
00499 8069367277953026.0 / 2251799813685248.0,
00500 8131064282924989.0 / 2251799813685248.0,
00501 8191115836735912.0 / 2251799813685248.0,
00502 8249607432179158.0 / 2251799813685248.0,
00503 8306618067481101.0 / 2251799813685248.0,
00504 8362220887911502.0 / 2251799813685248.0,
00505 8416483750067501.0 / 2251799813685248.0,
00506 8469469719751697.0 / 2251799813685248.0,
00507 8521237512606787.0 / 2251799813685248.0,
00508 8571841885227428.0 / 2251799813685248.0,
00509 8621333983281772.0 / 2251799813685248.0,
00510 8669761652191414.0 / 2251799813685248.0,
00511 8717169715100533.0 / 2251799813685248.0,
00512 8763600222181975.0 / 2251799813685248.0,
00513 8809092674755503.0 / 2251799813685248.0,
00514 8853684227211519.0 / 2251799813685248.0,
00515 8897409869326665.0 / 2251799813685248.0,
00516 8940302591212715.0 / 2251799813685248.0,
00517 8982393532846860.0 / 2251799813685248.0,
00518 4511856059940595.0 / 1125899906842624.0,
00519 4532143093607504.0 / 1125899906842624.0,
00520 4552071045814873.0 / 1125899906842624.0,
00521 4571652407313997.0 / 1125899906842624.0,
00522 4590899028240761.0 / 1125899906842624.0,
00523 4609822161187467.0 / 1125899906842624.0,
00524 4628432500714509.0 / 1125899906842624.0,
00525 4646740219649259.0 / 1125899906842624.0,
00526 4664755002480667.0 / 1125899906842624.0,
00527 4682486076124019.0 / 1125899906842624.0,
00528 4699942238300533.0 / 1125899906842624.0,
00529 4717131883750310.0 / 1125899906842624.0,
00530 4734063028474157.0 / 1125899906842624.0,
00531 4750743332179513.0 / 1125899906842624.0,
00532 4767180119087803.0 / 1125899906842624.0,
00533 4783380397244705.0 / 1125899906842624.0,
00534 4799350876460745.0 / 1125899906842624.0,
00535 4815097984997183.0 / 1125899906842624.0,
00536 4830627885101030.0 / 1125899906842624.0,
00537 4845946487483165.0 / 1125899906842624.0,
00538 4861059464824668.0 / 1125899906842624.0,
00539 4875972264388626.0 / 1125899906842624.0,
00540 4890690119807548.0 / 1125899906842624.0,
00541 4905218062110249.0 / 1125899906842624.0,
00542 4919560930046323.0 / 1125899906842624.0,
00543 4933723379761220.0 / 1125899906842624.0,
00544 4947709893870347.0 / 1125899906842624.0,
00545 4961524789976421.0 / 1125899906842624.0,
00546 4975172228670594.0 / 1125899906842624.0,
00547 4988656221054420.0 / 1125899906842624.0,
00548 5001980635816714.0 / 1125899906842624.0,
00549 5015149205896518.0 / 1125899906842624.0,
00550 5028165534760914.0 / 1125899906842624.0,
00551 5041033102324064.0 / 1125899906842624.0,
00552 5053755270531830.0 / 1125899906842624.0,
00553 5066335288634384.0 / 1125899906842624.0,
00554 5078776298167486.0 / 1125899906842624.0,
00555 5091081337661556.0 / 1125899906842624.0,
00556 5103253347096176.0 / 1125899906842624.0,
00557 5115295172116377.0 / 1125899906842624.0,
00558 5127209568025827.0 / 1125899906842624.0,
00559 5138999203570936.0 / 1125899906842624.0,
00560 5150666664528888.0 / 1125899906842624.0,
00561 5162214457111658.0 / 1125899906842624.0,
00562 5173645011197227.0 / 1125899906842624.0,
00563 5184960683398422.0 / 1125899906842624.0,
00564 5196163759979057.0 / 1125899906842624.0,
00565 5207256459626429.0 / 1125899906842624.0,
00566 5218240936088556.0 / 1125899906842624.0,
00567 5229119280684002.0 / 1125899906842624.0,
00568 5239893524691621.0 / 1125899906842624.0,
00569 5250565641627027.0 / 1125899906842624.0,
00570 5261137549412187.0 / 1125899906842624.0,
00571 5271611112444100.0 / 1125899906842624.0,
00572 5281988143568134.0 / 1125899906842624.0,
00573 5292270405961265.0 / 1125899906842624.0,
00574 5302459614930081.0 / 1125899906842624.0,
00575 5312557439628173.0 / 1125899906842624.0,
00576 5322565504697180.0 / 1125899906842624.0,
00577 5332485391835543.0 / 1125899906842624.0,
00578 5342318641298757.0 / 1125899906842624.0,
00579 5352066753334667.0 / 1125899906842624.0,
00580 5361731189557166.0 / 1125899906842624.0,
00581 5371313374261431.0 / 1125899906842624.0,
00582 5380814695683667.0 / 1125899906842624.0,
00583 5390236507208137.0 / 1125899906842624.0,
00584 5399580128524108.0 / 1125899906842624.0,
00585 5408846846735179.0 / 1125899906842624.0,
00586 5418037917423337.0 / 1125899906842624.0,
00587 5427154565669929.0 / 1125899906842624.0,
00588 5436197987035623.0 / 1125899906842624.0,
00589 5445169348501337.0 / 1125899906842624.0,
00590 5454069789371970.0 / 1125899906842624.0,
00591 5462900422144689.0 / 1125899906842624.0,
00592 5471662333343435.0 / 1125899906842624.0,
00593 5480356584321203.0 / 1125899906842624.0,
00594 5488984212031586.0 / 1125899906842624.0,
00595 5497546229770980.0 / 1125899906842624.0,
00596 5506043627892780.0 / 1125899906842624.0,
00597 5514477374494827.0 / 1125899906842624.0,
00598 5522848416081301.0 / 1125899906842624.0,
00599 5531157678200183.0 / 1125899906842624.0,
00600 5539406066057373.0 / 1125899906842624.0,
00601 5547594465108473.0 / 1125899906842624.0,
00602 5555723741629202.0 / 1125899906842624.0,
00603 5563794743265374.0 / 1125899906842624.0,
00604 5571808299563294.0 / 1125899906842624.0,
00605 5579765222481415.0 / 1125899906842624.0,
00606 5587666306884046.0 / 1125899906842624.0,
00607 5595512331017853.0 / 1125899906842624.0,
00608 5603304056971868.0 / 1125899906842624.0,
00609 5611042231121700.0 / 1125899906842624.0,
00610 5618727584558574.0 / 1125899906842624.0,
00611 5626360833503834.0 / 1125899906842624.0,
00612 5633942679709485.0 / 1125899906842624.0,
00613 5641473810845338.0 / 1125899906842624.0,
00614 5648954900873299.0 / 1125899906842624.0,
00615 5656386610409296.0 / 1125899906842624.0,
00616 5663769587073346.0 / 1125899906842624.0,
00617 5671104465828218.0 / 1125899906842624.0,
00618 5678391869307130.0 / 1125899906842624.0,
00619 5685632408130919.0 / 1125899906842624.0,
00620 5692826681215068.0 / 1125899906842624.0,
00621 5699975276066993.0 / 1125899906842624.0,
00622 5707078769073944.0 / 1125899906842624.0,
00623 5714137725781890.0 / 1125899906842624.0,
00624 5721152701165710.0 / 1125899906842624.0,
00625 5728124239891016.0 / 1125899906842624.0,
00626 5735052876567931.0 / 1125899906842624.0,
00627 5741939135997091.0 / 1125899906842624.0,
00628 5748783533408181.0 / 1125899906842624.0,
00629 5755586574691264.0 / 1125899906842624.0,
00630 5762348756621151.0 / 1125899906842624.0,
00631 5769070567075090.0 / 1125899906842624.0,
00632 5775752485243985.0 / 1125899906842624.0,
00633 5782394981837384.0 / 1125899906842624.0,
00634 5788998519282460.0 / 1125899906842624.0,
00635 5795563551917188.0 / 1125899906842624.0,
00636 5802090526177927.0 / 1125899906842624.0,
00637 5808579880781584.0 / 1125899906842624.0,
00638 5815032046902576.0 / 1125899906842624.0,
00639 5821447448344733.0 / 1125899906842624.0,
00640 5827826501708347.0 / 1125899906842624.0,
00641 5834169616552500.0 / 1125899906842624.0,
00642 5840477195552856.0 / 1125899906842624.0,
00643 5846749634655054.0 / 1125899906842624.0,
00644 5852987323223851.0 / 1125899906842624.0};
00645
00646
00647
00648
00649
00651 lx_real sqrt(const lx_real&) throw();
00653 lx_real sqr(const lx_real&) throw();
00655 lx_real ln(const lx_real &) throw();
00657 lx_real log2(const lx_real &) throw();
00659 lx_real log10(const lx_real &) throw();
00661 lx_real lnp1(const lx_real &) throw();
00663 lx_real exp(const lx_real &) throw();
00665 lx_real exp2(const lx_real &) throw();
00667 lx_real exp10(const lx_real &) throw();
00669 lx_real expm1(const lx_real &x) throw();
00671 lx_real power(const lx_real &, const real &) throw();
00673 lx_real pow(const lx_real &, const lx_real &) throw();
00675 lx_real xp1_pow_y(const lx_real &, const lx_real &) throw();
00677 lx_real sin(const lx_real &)throw();
00679 lx_real sin_n(const lx_real &x, const real& n) throw();
00681 lx_real cos(const lx_real &) throw();
00683 lx_real cos_n(const lx_real &x, const real& n) throw();
00685 lx_real tan(const lx_real &) throw();
00687 lx_real cot(const lx_real &) throw();
00689 lx_real sqrt1px2(const lx_real &) throw();
00691 lx_real atan(const lx_real &) throw();
00693 lx_real sqrt1mx2(const lx_real &) throw();
00695 lx_real sqrtx2m1(const lx_real &) throw();
00697 lx_real asin(const lx_real & ) throw();
00699 lx_real acos(const lx_real &) throw();
00701 lx_real acot(const lx_real &) throw();
00703 lx_real sinh(const lx_real &) throw();
00705 lx_real cosh(const lx_real &) throw();
00707 lx_real tanh(const lx_real &) throw();
00709 lx_real coth(const lx_real &) throw();
00711 lx_real sqrtp1m1(const lx_real &) throw();
00713 lx_real asinh(const lx_real &) throw();
00715 lx_real acosh(const lx_real &) throw();
00717 lx_real acoshp1(const lx_real &) throw();
00719 lx_real atanh(const lx_real &) throw();
00721 lx_real atanh1m(const lx_real &) throw();
00723 lx_real atanhm1p(const lx_real &) throw();
00725 lx_real acoth(const lx_real &) throw();
00727 lx_real acothp1(const lx_real &) throw();
00729 lx_real acothm1m(const lx_real &) throw();
00731 lx_real sqrtx2y2(const lx_real &, const lx_real &) throw();
00733 lx_real ln_sqrtx2y2(const lx_real &, const lx_real &) throw();
00735 lx_real sqrt(const lx_real &, int) throw();
00736
00737 }
00738
00739 #include "lx_real.inl"
00740
00741 #endif // _CXSC_LX_REAL_HPP_INCLUDED