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 #ifndef _CXSC_CIDOT_HPP_INCLUDED
00027 #define _CXSC_CIDOT_HPP_INCLUDED
00028
00029 #include <iostream>
00030 #include <string>
00031 #include "dot.hpp"
00032 #include "idot.hpp"
00033 #include "cdot.hpp"
00034 #include "cinterval.hpp"
00035
00036 namespace cxsc {
00037
00038
00039
00040
00041
00042
00043
00045
00057 class cidotprecision
00058 {
00059 private:
00060
00061 dotprecision reinf,resup,iminf,imsup;
00062 int k;
00063
00064 public:
00065
00067 cidotprecision() : k(0) {}
00069 inline cidotprecision(const cidotprecision &) throw();
00070
00072 explicit inline cidotprecision(const real &) throw();
00074 explicit inline cidotprecision(const dotprecision &) throw();
00076 explicit inline cidotprecision(const interval &) throw();
00078 explicit inline cidotprecision(const idotprecision &) throw();
00080 explicit inline cidotprecision(const complex &) throw();
00082 explicit inline cidotprecision(const cdotprecision &) throw();
00084 explicit inline cidotprecision(const cinterval &) throw();
00086 explicit inline cidotprecision(const idotprecision &, const idotprecision &) throw();
00087
00089 inline int get_k() const { return k; }
00091 inline void set_k(unsigned int i) { k=i; reinf.set_k(i); resup.set_k(i); iminf.set_k(i); imsup.set_k(i);}
00093 inline int get_dotprec() const { return k; }
00095 inline void set_dotprec(unsigned int i) { k=i; reinf.set_k(i); resup.set_k(i); iminf.set_k(i); imsup.set_k(i);}
00096
00098 inline cidotprecision & operator= (const real & a) throw() { reinf=resup=a; iminf=imsup=0.0; return *this; }
00100 inline cidotprecision & operator= (const complex & a) throw() { reinf=resup=Re(a); iminf=imsup=Im(a); return *this; }
00102 inline cidotprecision & operator= (const interval & a) throw() { reinf=Inf(a),resup=Sup(a),iminf=imsup=0.0; return *this; }
00104 inline cidotprecision & operator= (const cinterval & a) throw() { reinf=Inf(Re(a)),resup=Sup(Re(a)),iminf=Inf(Im(a)),imsup=Sup(Im(a)); return *this; }
00106 inline cidotprecision & operator= (const dotprecision & a) throw() { reinf=resup=a; iminf=imsup=0.0; return *this; }
00108 inline cidotprecision & operator= (const cdotprecision & a)throw() { reinf=resup=Re(a),iminf=imsup=Im(a); return *this; }
00110 inline cidotprecision & operator= (const idotprecision & a)throw() { reinf=Inf(a),resup=Sup(a),iminf=imsup=0.0; return *this; }
00112 inline cidotprecision & operator= (const cidotprecision& a)throw() { reinf=a.reinf,resup=a.resup,iminf=a.iminf,imsup=a.imsup; return *this; }
00113
00114
00115
00116
00117
00119 friend inline cidotprecision _cidotprecision(const complex &,const complex &) throw();
00121 friend inline cidotprecision _cidotprecision(const complex &,const real &) throw();
00123 friend inline cidotprecision _cidotprecision(const real &,const complex &) throw();
00125 friend inline cidotprecision _cidotprecision(const interval &,const interval &) throw();
00127 friend inline cidotprecision _cidotprecision(const interval &,const real &) throw();
00129 friend inline cidotprecision _cidotprecision(const real &,const interval &) throw();
00131 friend inline cidotprecision _cidotprecision(const real &) throw();
00133 friend inline cidotprecision _cidotprecision(const complex &) throw();
00135 friend inline cidotprecision _cidotprecision(const interval &) throw();
00137 friend inline cidotprecision _cidotprecision(const cinterval &) throw();
00138
00140 friend inline cidotprecision _cidotprecision(const idotprecision &,const idotprecision &) throw();
00142 friend inline cidotprecision _cidotprecision(const cdotprecision &,const cdotprecision &) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00144 friend inline cidotprecision _cidotprecision(const idotprecision &,const dotprecision &) throw();
00146 friend inline cidotprecision _cidotprecision(const cdotprecision &,const dotprecision &) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00148 friend inline cidotprecision _cidotprecision(const dotprecision &,const idotprecision &) throw();
00150 friend inline cidotprecision _cidotprecision(const dotprecision &,const cdotprecision&) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00152 friend inline cidotprecision _cidotprecision(const cdotprecision &) throw();
00154 friend inline cidotprecision _cidotprecision(const idotprecision &) throw();
00156 friend inline cidotprecision _cidotprecision(const dotprecision &) throw();
00157
00158
00160 friend inline cidotprecision _unchecked_cidotprecision(const complex &, const complex &) throw();
00162 friend inline cidotprecision _unchecked_cidotprecision(const complex &, const real &) throw();
00164 friend inline cidotprecision _unchecked_cidotprecision(const real &, const complex &) throw();
00165
00167 friend inline cidotprecision _unchecked_cidotprecision(const cdotprecision &, const cdotprecision &) throw();
00169 friend inline cidotprecision _unchecked_cidotprecision(const cdotprecision &, const dotprecision &) throw();
00171 friend inline cidotprecision _unchecked_cidotprecision(const dotprecision &, const cdotprecision &) throw();
00172
00173
00175 friend std::istream& operator >> (std::istream& s, cidotprecision& a) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00177 friend std::ostream& operator << (std::ostream& s, const cidotprecision& a) throw();
00179 friend std::string& operator >> (std::string& s, cidotprecision& a) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00181 friend std::string& operator << (std::string& s, const cidotprecision& a) throw();
00183 friend void operator >> (const std::string &s,cidotprecision& a) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00185 friend void operator >> (const char *s ,cidotprecision& a) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00186
00187
00189 friend inline cidotprecision operator -(cidotprecision) throw();
00191 friend inline cidotprecision operator +(const cidotprecision &) throw();
00192
00194 friend inline cidotprecision operator +(const cidotprecision &,const cidotprecision &) throw();
00196 friend inline cidotprecision operator -(const cidotprecision &,const cidotprecision &) throw();
00198 friend inline cidotprecision operator |(const cidotprecision &,const cidotprecision &) throw();
00200 friend inline cidotprecision operator &(const cidotprecision &,const cidotprecision &) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00201
00203 friend inline cidotprecision operator |(const cdotprecision &,const cdotprecision &) throw();
00204
00206 friend inline cidotprecision & operator +=(cidotprecision &, const cidotprecision &) throw();
00208 friend inline cidotprecision & operator -=(cidotprecision &, const cidotprecision &) throw();
00210 friend inline cidotprecision & operator |=(cidotprecision &, const cidotprecision &) throw();
00212 friend inline cidotprecision & operator &=(cidotprecision &, const cidotprecision &) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00213
00214
00215
00217 friend inline cidotprecision operator +(const cidotprecision &,const real &) throw();
00219 friend inline cidotprecision operator +(const real &,const cidotprecision &) throw();
00221 friend inline cidotprecision operator -(const cidotprecision &,const real &) throw();
00223 friend inline cidotprecision operator -(const real &,const cidotprecision &) throw();
00225 friend inline cidotprecision operator |(const cidotprecision &,const real &) throw();
00227 friend inline cidotprecision operator |(const real &,const cidotprecision &) throw();
00229 friend inline cidotprecision operator &(const cidotprecision &,const real &) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00231 friend inline cidotprecision operator &(const real &,const cidotprecision &) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00232
00234 friend inline cidotprecision & operator +=(cidotprecision &, const real &) throw();
00236 friend inline cidotprecision & operator -=(cidotprecision &, const real &) throw();
00238 friend inline cidotprecision & operator |=(cidotprecision &, const real &) throw();
00240 friend inline cidotprecision & operator &=(cidotprecision &, const real &) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00241
00242
00243
00245 friend inline cidotprecision operator +(const cidotprecision &,const complex &) throw();
00247 friend inline cidotprecision operator +(const complex &,const cidotprecision &) throw();
00249 friend inline cidotprecision operator -(const cidotprecision &,const complex &) throw();
00251 friend inline cidotprecision operator -(const complex &,const cidotprecision &) throw();
00253 friend inline cidotprecision operator |(const cidotprecision &,const complex &) throw();
00255 friend inline cidotprecision operator |(const complex &,const cidotprecision &) throw();
00257 friend inline cidotprecision operator &(const cidotprecision &,const complex &) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00259 friend inline cidotprecision operator &(const complex &,const cidotprecision &) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00260
00261
00263 friend inline cidotprecision & operator +=(cidotprecision &, const complex &) throw();
00265 friend inline cidotprecision & operator -=(cidotprecision &, const complex &) throw();
00267 friend inline cidotprecision & operator |=(cidotprecision &, const complex &) throw();
00269 friend inline cidotprecision & operator &=(cidotprecision &, const complex &) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00270
00271
00272
00274 friend inline cidotprecision operator +(const cidotprecision &,const interval &) throw();
00276 friend inline cidotprecision operator +(const interval &,const cidotprecision &) throw();
00278 friend inline cidotprecision operator -(const cidotprecision &,const interval &) throw();
00280 friend inline cidotprecision operator -(const interval &,const cidotprecision &) throw();
00282 friend inline cidotprecision operator |(const cidotprecision &,const interval &) throw();
00284 friend inline cidotprecision operator |(const interval &,const cidotprecision &) throw();
00286 friend inline cidotprecision operator &(const cidotprecision &,const interval &) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00288 friend inline cidotprecision operator &(const interval &,const cidotprecision &) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00289
00291 friend inline cidotprecision & operator +=(cidotprecision &, const interval &) throw();
00293 friend inline cidotprecision & operator -=(cidotprecision &, const interval &) throw();
00295 friend inline cidotprecision & operator |=(cidotprecision &, const interval &) throw();
00297 friend inline cidotprecision & operator &=(cidotprecision &, const interval &) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00298
00299
00300
00302 friend inline cidotprecision operator +(const cidotprecision &,const cinterval &) throw();
00304 friend inline cidotprecision operator +(const cinterval &,const cidotprecision &) throw();
00306 friend inline cidotprecision operator -(const cidotprecision &,const cinterval &) throw();
00308 friend inline cidotprecision operator -(const cinterval &,const cidotprecision &) throw();
00310 friend inline cidotprecision operator |(const cidotprecision &,const cinterval &) throw();
00312 friend inline cidotprecision operator |(const cinterval &,const cidotprecision &) throw();
00314 friend inline cidotprecision operator &(const cidotprecision &,const cinterval &) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00316 friend inline cidotprecision operator &(const cinterval &,const cidotprecision &) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00317
00319 friend inline cidotprecision & operator +=(cidotprecision &, const cinterval &) throw();
00321 friend inline cidotprecision & operator -=(cidotprecision &, const cinterval &) throw();
00323 friend inline cidotprecision & operator |=(cidotprecision &, const cinterval &) throw();
00325 friend inline cidotprecision & operator &=(cidotprecision &, const cinterval &) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00326
00327
00328
00330 friend inline cidotprecision operator +(const cidotprecision &,const dotprecision &) throw();
00332 friend inline cidotprecision operator +(const dotprecision &,const cidotprecision &) throw();
00334 friend inline cidotprecision operator -(const cidotprecision &,const dotprecision &) throw();
00336 friend inline cidotprecision operator -(const dotprecision &,const cidotprecision &) throw();
00338 friend inline cidotprecision operator |(const cidotprecision &,const dotprecision &) throw();
00340 friend inline cidotprecision operator |(const dotprecision &,const cidotprecision &) throw();
00342 friend inline cidotprecision operator &(const cidotprecision &,const dotprecision &) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00344 friend inline cidotprecision operator &(const dotprecision &,const cidotprecision &) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00345
00347 friend inline cidotprecision & operator +=(cidotprecision &, const dotprecision &) throw();
00349 friend inline cidotprecision & operator -=(cidotprecision &, const dotprecision &) throw();
00351 friend inline cidotprecision & operator |=(cidotprecision &, const dotprecision &) throw();
00353 friend inline cidotprecision & operator &=(cidotprecision &, const dotprecision &) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00354
00355
00356
00358 friend inline cidotprecision operator +(const cidotprecision &,const cdotprecision &) throw();
00360 friend inline cidotprecision operator +(const cdotprecision &,const cidotprecision &) throw();
00362 friend inline cidotprecision operator -(const cidotprecision &,const cdotprecision &) throw();
00364 friend inline cidotprecision operator -(const cdotprecision &,const cidotprecision &) throw();
00366 friend inline cidotprecision operator |(const cidotprecision &,const cdotprecision &) throw();
00368 friend inline cidotprecision operator |(const cdotprecision &,const cidotprecision &) throw();
00370 friend inline cidotprecision operator &(const cidotprecision &,const cdotprecision &) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00372 friend inline cidotprecision operator &(const cdotprecision &,const cidotprecision &) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00373
00374
00376 friend inline cidotprecision & operator +=(cidotprecision &, const cdotprecision &) throw();
00378 friend inline cidotprecision & operator -=(cidotprecision &, const cdotprecision &) throw();
00380 friend inline cidotprecision & operator |=(cidotprecision &, const cdotprecision &) throw();
00382 friend inline cidotprecision & operator &=(cidotprecision &, const cdotprecision &) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00383
00384
00385
00387 friend inline cidotprecision operator +(const cidotprecision &,const idotprecision &) throw();
00389 friend inline cidotprecision operator +(const idotprecision &,const cidotprecision &) throw();
00391 friend inline cidotprecision operator -(const cidotprecision &,const idotprecision &) throw();
00393 friend inline cidotprecision operator -(const idotprecision &,const cidotprecision &) throw();
00395 friend inline cidotprecision operator |(const cidotprecision &,const idotprecision &) throw();
00397 friend inline cidotprecision operator |(const idotprecision &,const cidotprecision &) throw();
00399 friend inline cidotprecision operator &(const cidotprecision &,const idotprecision &) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00401 friend inline cidotprecision operator &(const idotprecision &,const cidotprecision &) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00402
00404 friend inline cidotprecision & operator +=(cidotprecision &, const idotprecision &) throw();
00406 friend inline cidotprecision & operator -=(cidotprecision &, const idotprecision &) throw();
00408 friend inline cidotprecision & operator |=(cidotprecision &, const idotprecision &) throw();
00410 friend inline cidotprecision & operator &=(cidotprecision &, const idotprecision &) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00411
00412
00414 friend inline bool operator !(const cidotprecision &) throw();
00415
00416
00418 friend inline bool operator ==(const cidotprecision &,const cidotprecision &) throw();
00420 friend inline bool operator !=(const cidotprecision &,const cidotprecision &) throw();
00421
00422
00423
00425 friend inline bool operator== (const cidotprecision & a, const real & b) throw();
00427 friend inline bool operator== (const real & a, const cidotprecision & b) throw();
00429 friend inline bool operator!= (const cidotprecision & a, const real & b) throw();
00431 friend inline bool operator!= (const real & a, const cidotprecision & b) throw();
00432
00433
00434
00436 friend inline bool operator== (const cidotprecision & a, const complex & b) throw();
00438 friend inline bool operator== (const complex & a, const cidotprecision & b) throw();
00440 friend inline bool operator!= (const cidotprecision & a, const complex & b) throw();
00442 friend inline bool operator!= (const complex & a, const cidotprecision & b) throw();
00443
00444
00445
00447 friend inline bool operator== (const cidotprecision & a, const interval & b) throw();
00449 friend inline bool operator== (const interval & a, const cidotprecision & b) throw();
00451 friend inline bool operator!= (const cidotprecision & a, const interval & b) throw();
00453 friend inline bool operator!= (const interval & a, const cidotprecision & b) throw();
00454
00455
00456
00458 friend inline bool operator== (const cidotprecision & a, const cinterval & b) throw();
00460 friend inline bool operator== (const cinterval & a, const cidotprecision & b) throw();
00462 friend inline bool operator!= (const cidotprecision & a, const cinterval & b) throw();
00464 friend inline bool operator!= (const cinterval & a, const cidotprecision & b) throw();
00465
00466
00467
00469 friend inline bool operator== (const cidotprecision & a, const dotprecision & b) throw();
00471 friend inline bool operator== (const dotprecision & a, const cidotprecision & b) throw();
00473 friend inline bool operator!= (const cidotprecision & a, const dotprecision & b) throw();
00475 friend inline bool operator!= (const dotprecision & a, const cidotprecision & b) throw();
00476
00477
00478
00480 friend inline bool operator== (const cidotprecision & a, const cdotprecision & b) throw();
00482 friend inline bool operator== (const cdotprecision & a, const cidotprecision & b) throw();
00484 friend inline bool operator!= (const cidotprecision & a, const cdotprecision & b) throw();
00486 friend inline bool operator!= (const cdotprecision & a, const cidotprecision & b) throw();
00487
00488
00489
00491 friend inline bool operator== (const cidotprecision & a, const idotprecision & b) throw();
00493 friend inline bool operator== (const idotprecision & a, const cidotprecision & b) throw();
00495 friend inline bool operator!= (const cidotprecision & a, const idotprecision & b) throw();
00497 friend inline bool operator!= (const idotprecision & a, const cidotprecision & b) throw();
00498
00499
00501 friend inline bool operator <(const cidotprecision &,const cidotprecision &) throw();
00503 friend inline bool operator >(const cidotprecision &,const cidotprecision &) throw();
00505 friend inline bool operator <=(const cidotprecision &,const cidotprecision &) throw();
00507 friend inline bool operator >=(const cidotprecision &,const cidotprecision &) throw();
00508
00509
00510
00512 friend inline bool operator <(const real &,const cidotprecision &) throw();
00514 friend inline bool operator >(const real &,const cidotprecision &) throw();
00516 friend inline bool operator <=(const real &,const cidotprecision &) throw();
00518 friend inline bool operator >=(const real &,const cidotprecision &) throw();
00519
00521 friend inline bool operator <(const cidotprecision &,const real &) throw();
00523 friend inline bool operator >(const cidotprecision &,const real &) throw();
00525 friend inline bool operator <=(const cidotprecision &,const real &) throw();
00527 friend inline bool operator >=(const cidotprecision &,const real &) throw();
00528
00529
00530
00532 friend inline bool operator <(const complex &,const cidotprecision &) throw();
00534 friend inline bool operator >(const complex &,const cidotprecision &) throw();
00536 friend inline bool operator <=(const complex &,const cidotprecision &) throw();
00538 friend inline bool operator >=(const complex &,const cidotprecision &) throw();
00539
00541 friend inline bool operator <(const cidotprecision &,const complex &) throw();
00543 friend inline bool operator >(const cidotprecision &,const complex &) throw();
00545 friend inline bool operator <=(const cidotprecision &,const complex &) throw();
00547 friend inline bool operator >=(const cidotprecision &,const complex &) throw();
00548
00549
00550
00552 friend inline bool operator <(const interval &,const cidotprecision &) throw();
00554 friend inline bool operator >(const interval &,const cidotprecision &) throw();
00556 friend inline bool operator <=(const interval &,const cidotprecision &) throw();
00558 friend inline bool operator >=(const interval &,const cidotprecision &) throw();
00559
00561 friend inline bool operator <(const cidotprecision &,const interval &) throw();
00563 friend inline bool operator >(const cidotprecision &,const interval &) throw();
00565 friend inline bool operator <=(const cidotprecision &,const interval &) throw();
00567 friend inline bool operator >=(const cidotprecision &,const interval &) throw();
00568
00569
00570
00572 friend inline bool operator <(const cinterval &,const cidotprecision &) throw();
00574 friend inline bool operator >(const cinterval &,const cidotprecision &) throw();
00576 friend inline bool operator <=(const cinterval &,const cidotprecision &) throw();
00577 friend inline bool operator >=(const cinterval &,const cidotprecision &) throw();
00578
00580 friend inline bool operator <(const cidotprecision &,const cinterval &) throw();
00582 friend inline bool operator >(const cidotprecision &,const cinterval &) throw();
00584 friend inline bool operator <=(const cidotprecision &,const cinterval &) throw();
00586 friend inline bool operator >=(const cidotprecision &,const cinterval &) throw();
00587
00588
00589
00591 friend inline bool operator <(const dotprecision &,const cidotprecision &) throw();
00593 friend inline bool operator >(const dotprecision &,const cidotprecision &) throw();
00595 friend inline bool operator <=(const dotprecision &,const cidotprecision &) throw();
00597 friend inline bool operator >=(const dotprecision &,const cidotprecision &) throw();
00598
00600 friend inline bool operator <(const cidotprecision &,const dotprecision &) throw();
00602 friend inline bool operator >(const cidotprecision &,const dotprecision &) throw();
00604 friend inline bool operator <=(const cidotprecision &,const dotprecision &) throw();
00606 friend inline bool operator >=(const cidotprecision &,const dotprecision &) throw();
00607
00608
00609
00611 friend inline bool operator <(const cdotprecision &,const cidotprecision &) throw();
00613 friend inline bool operator >(const cdotprecision &,const cidotprecision &) throw();
00615 friend inline bool operator <=(const cdotprecision &,const cidotprecision &) throw();
00617 friend inline bool operator >=(const cdotprecision &,const cidotprecision &) throw();
00618
00620 friend inline bool operator <(const cidotprecision &,const cdotprecision &) throw();
00622 friend inline bool operator >(const cidotprecision &,const cdotprecision &) throw();
00624 friend inline bool operator <=(const cidotprecision &,const cdotprecision &) throw();
00626 friend inline bool operator >=(const cidotprecision &,const cdotprecision &) throw();
00627
00628
00629
00631 friend inline bool operator <(const idotprecision &,const cidotprecision &) throw();
00633 friend inline bool operator >(const idotprecision &,const cidotprecision &) throw();
00635 friend inline bool operator <=(const idotprecision &,const cidotprecision &) throw();
00637 friend inline bool operator >=(const idotprecision &,const cidotprecision &) throw();
00638
00640 friend inline bool operator <(const cidotprecision &,const idotprecision &) throw();
00642 friend inline bool operator >(const cidotprecision &,const idotprecision &) throw();
00644 friend inline bool operator <=(const cidotprecision &,const idotprecision &) throw();
00646 friend inline bool operator >=(const cidotprecision &,const idotprecision &) throw();
00647
00648
00649
00650
00652 friend inline cdotprecision Inf(const cidotprecision&) throw();
00654 friend inline cdotprecision Sup(const cidotprecision&) throw();
00656 friend inline cidotprecision& SetInf(cidotprecision&, const cdotprecision&) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00658 friend inline cidotprecision& SetSup(cidotprecision&, const cdotprecision&) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00660 friend inline cidotprecision& SetInf(cidotprecision&, const dotprecision&) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00662 friend inline cidotprecision& SetSup(cidotprecision&, const dotprecision&) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00664 friend inline cidotprecision& SetInf(cidotprecision&, const complex&) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00666 friend inline cidotprecision& SetSup(cidotprecision&, const complex&) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00668 friend inline cidotprecision& SetInf(cidotprecision&, const real&) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00670 friend inline cidotprecision& SetSup(cidotprecision&, const real&) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00672 friend inline cidotprecision& UncheckedSetInf(cidotprecision&, const cdotprecision&) throw();
00674 friend inline cidotprecision& UncheckedSetSup(cidotprecision&, const cdotprecision&) throw();
00676 friend inline cidotprecision& UncheckedSetInf(cidotprecision&, const dotprecision&) throw();
00678 friend inline cidotprecision& UncheckedSetSup(cidotprecision&, const dotprecision&) throw();
00680 friend inline cidotprecision& UncheckedSetInf(cidotprecision&, const complex&) throw();
00682 friend inline cidotprecision& UncheckedSetSup(cidotprecision&, const complex&) throw();
00684 friend inline cidotprecision& UncheckedSetInf(cidotprecision&, const real&) throw();
00686 friend inline cidotprecision& UncheckedSetSup(cidotprecision&, const real&) throw();
00687
00689 friend inline idotprecision Re(const cidotprecision &) throw();
00691 friend inline idotprecision Im(const cidotprecision &) throw();
00692
00694 friend inline const dotprecision & InfRe(const cidotprecision &) throw();
00696 friend inline const dotprecision & InfIm(const cidotprecision &) throw();
00698 friend inline const dotprecision & SupRe(const cidotprecision &) throw();
00700 friend inline const dotprecision & SupIm(const cidotprecision &) throw();
00701
00703 friend inline dotprecision & InfRe(cidotprecision &) throw();
00705 friend inline dotprecision & InfIm(cidotprecision &) throw();
00707 friend inline dotprecision & SupRe(cidotprecision &) throw();
00709 friend inline dotprecision & SupIm(cidotprecision &) throw();
00710
00712 friend inline cidotprecision& SetRe(cidotprecision&, const idotprecision&) throw();
00714 friend inline cidotprecision& SetIm(cidotprecision&, const idotprecision&) throw();
00716 friend inline cidotprecision& SetRe(cidotprecision&, const dotprecision&) throw();
00718 friend inline cidotprecision& SetIm(cidotprecision&, const dotprecision&) throw();
00720 friend inline cidotprecision& SetRe(cidotprecision&, const interval&) throw();
00722 friend inline cidotprecision& SetIm(cidotprecision&, const interval&) throw();
00724 friend inline cidotprecision& SetRe(cidotprecision&, const real&) throw();
00726 friend inline cidotprecision& SetIm(cidotprecision&, const real&) throw();
00727
00728
00729 friend inline void rnd(const cidotprecision &,cinterval &) throw();
00730 friend inline cinterval rnd(const cidotprecision &) throw();
00731
00733 friend void accumulate (cidotprecision&, const cinterval&, const cinterval&) throw();
00734
00736 friend inline void accumulate (cidotprecision&, const cinterval&, const interval&) throw();
00738 friend inline void accumulate (cidotprecision&, const cinterval&, const complex&) throw();
00740 friend inline void accumulate (cidotprecision&, const cinterval&, const real&) throw();
00741
00743 friend inline void accumulate (cidotprecision&, const interval &,const cinterval &) throw();
00745 friend inline void accumulate (cidotprecision&, const complex &,const cinterval &) throw();
00747 friend inline void accumulate (cidotprecision&, const real &,const cinterval&) throw();
00748
00750 friend inline void accumulate (cidotprecision&, const complex &,const interval &) throw();
00752 friend inline void accumulate (cidotprecision&, const interval &,const complex &) throw();
00753
00755 friend inline void accumulate (cidotprecision&, const interval &,const interval &) throw();
00757 friend inline void accumulate (cidotprecision&, const interval &,const real &) throw();
00759 friend inline void accumulate (cidotprecision&, const real &,const interval &) throw();
00760
00762 friend inline void accumulate (cidotprecision&, const complex &,const complex &) throw();
00764 friend inline void accumulate (cidotprecision&, const real &,const complex &) throw();
00766 friend inline void accumulate (cidotprecision&, const complex &,const real &) throw();
00767
00769 friend inline void accumulate (cidotprecision&, const real &,const real &) throw();
00770 };
00771
00772
00773
00774
00775
00776
00777
00778 std::istream& operator >> (std::istream& s, cidotprecision& a) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00779 std::ostream& operator << (std::ostream& s, const cidotprecision& a) throw();
00780 std::string& operator >> (std::string& s, cidotprecision& a) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00781 std::string& operator << (std::string& s, const cidotprecision& a) throw();
00782 void operator >> (const std::string &s,cidotprecision& a) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00783 void operator >> (const char *s ,cidotprecision& a) throw(ERROR_CIDOTPRECISION_EMPTY_INTERVAL);
00784
00785 void accumulate (cidotprecision&, const cinterval&, const cinterval&) throw();
00786
00787
00788
00789
00790
00791
00792
00793
00794
00795
00796
00797 }
00798
00799 #include "cidot.inl"
00800
00801 #endif // _CXSC_CIDOT_HPP_INCLUDED
00802