38 inline void times2pown(lx_real &a,
const real &n)
throw()
43 inline std::string & operator << (std::string &s,
const lx_real& a)
53 ss << SaveOpt << SetPrecision(0,0) << Fixed << a.ex << RestoreOpt;
71 if (dbl1 == dbl2 && fabs(dbl1) <= Max_Int_R)
return 1;
78 if (
abs(res)>Max_Int_R)
79 cxscthrow(REAL_INT_OUT_OF_RANGE(
80 "add_real(const real&, const real&)"));
87 if (
abs(res)>Max_Int_R)
88 cxscthrow(REAL_INT_OUT_OF_RANGE(
"sub_real(const real&, const real&)"));
92 inline int StagPrec(
const lx_real &a)
throw()
93 {
return StagPrec(a.lr); }
95 inline real expo(
const lx_real &a)
throw()
98 inline int sign(
const lx_real &a)
throw()
99 {
return sign(a.lr); }
101 inline l_real lr_part(
const lx_real &a)
throw()
104 inline lx_real
abs(
const lx_real& a)
throw()
105 {
return lx_real(a.ex,
abs(a.lr)); }
107 inline lx_real adjust(
const lx_real &a)
throw()
108 {
return lx_real(a.ex,adjust(a.lr)); }
110 inline void times2pown_neg(lx_real& a,
const real& n)
throw()
124 if (exa < -Max_Int_R - n)
128 d = -Max_Int_R - exa;
138 a = lx_real(-Max_Int_R,lia);
142 a = lx_real(n+a.ex,lia);
147 inline lx_real & lx_real::operator = (
const lx_real &a)
throw()
154 inline lx_real & lx_real::operator = (
const l_real &a)
throw()
161 inline lx_real & lx_real::operator = (
const real &a)
throw()
170 inline bool eq_zero(
const lx_real &a)
throw()
171 {
return (a.lr == 0 ); }
173 inline bool gr_zero(
const lx_real &a)
throw()
174 {
return (a.lr > 0 ); }
176 inline bool ge_zero(
const lx_real &a)
throw()
177 {
return (a.lr >= 0); }
179 inline bool sm_zero(
const lx_real &a)
throw()
180 {
return (a.lr < 0 ); }
182 inline bool se_zero(
const lx_real &a)
throw()
183 {
return (a.lr <= 0); }
187 inline lx_real operator -(
const lx_real &a)
throw()
188 {
return lx_real(a.ex,-a.lr); }
190 inline lx_real operator +(
const lx_real &a)
throw()
193 inline lx_real operator + (
const lx_real& a,
const l_real& b)
throw()
194 {
return a + lx_real(b); }
195 inline lx_real operator + (
const l_real& a,
const lx_real& b)
throw()
196 {
return lx_real(a) + b; }
197 inline lx_real operator + (
const lx_real& a,
const real& b)
throw()
198 {
return a + lx_real(
l_real(b)); }
199 inline lx_real operator + (
const real& a,
const lx_real& b)
throw()
200 {
return lx_real(
l_real(a)) + b; }
202 inline lx_real &
operator +=(lx_real& a,
const lx_real& b)
throw()
209 inline lx_real operator - (
const lx_real& a,
const lx_real& b)
throw()
210 {
return a + lx_real(-b); }
211 inline lx_real operator - (
const lx_real& a,
const l_real& b)
throw()
212 {
return a + lx_real(-b); }
213 inline lx_real operator - (
const l_real& a,
const lx_real& b)
throw()
214 {
return lx_real(a) + lx_real(-b); }
215 inline lx_real operator - (
const lx_real& a,
const real& b)
throw()
216 {
return a + lx_real(-b); }
217 inline lx_real operator - (
const real& a,
const lx_real& b)
throw()
218 {
return lx_real(a) + lx_real(-b); }
220 inline lx_real & operator -=(lx_real& a,
const lx_real& b)
throw()
222 inline lx_real & operator -=(lx_real& a,
const l_real& b)
throw()
224 inline lx_real & operator -=(lx_real& a,
const real& b)
throw()
228 {
return a * lx_real(b); }
230 {
return lx_real(a) * b; }
232 {
return a * lx_real(b); }
234 {
return lx_real(a) * b; }
236 inline lx_real &
operator *=(lx_real& a,
const lx_real& b)
throw()
244 {
return a / lx_real(b); }
246 {
return lx_real(a) / b; }
248 {
return a / lx_real(b); }
250 {
return lx_real(a) / b; }
252 inline lx_real &
operator /=(lx_real& a,
const lx_real& b)
throw()
259 inline bool operator ! (
const lx_real& a)
throw()
262 inline bool operator == (
const lx_real &a,
const l_real &b)
throw()
263 {
return (a==lx_real(b)); }
265 inline bool operator == (
const l_real &a,
const lx_real &b)
throw()
266 {
return (lx_real(a)==b); }
268 inline bool operator == (
const lx_real &a,
const real &b)
throw()
269 {
return (a==lx_real(b)); }
271 inline bool operator == (
const real &a,
const lx_real &b)
throw()
272 {
return (lx_real(a)==b); }
275 inline bool operator != (
const lx_real &a,
const lx_real &b)
throw()
278 inline bool operator != (
const lx_real &a,
const l_real &b)
throw()
279 {
return !(a==lx_real(b)); }
281 inline bool operator != (
const l_real &a,
const lx_real &b)
throw()
282 {
return !(lx_real(a)==b); }
284 inline bool operator != (
const lx_real &a,
const real &b)
throw()
285 {
return !(a==lx_real(b)); }
287 inline bool operator != (
const real &a,
const lx_real &b)
throw()
288 {
return !(lx_real(a)==b); }
290 inline bool operator <= (
const lx_real &a,
const lx_real &b)
throw()
293 inline bool operator < (
const lx_real &a,
const lx_real &b)
throw()
296 inline bool operator >= (
const lx_real &a,
const lx_real &b)
throw()
301 inline bool operator > (
const real &a,
const lx_real &b)
throw()
302 {
return lx_real(a)>b; }
304 inline bool operator <= (
const real &a,
const lx_real &b)
throw()
307 inline bool operator < (
const real &a,
const lx_real &b)
throw()
308 {
return b>lx_real(a); }
310 inline bool operator >= (
const real &a,
const lx_real &b)
throw()
315 inline bool operator > (
const lx_real &a,
const real &b)
throw()
316 {
return a>lx_real(b); }
318 inline bool operator <= (
const lx_real &a,
const real &b)
throw()
321 inline bool operator < (
const lx_real &a,
const real &b)
throw()
324 inline bool operator >= (
const lx_real &a,
const real &b)
throw()
329 inline bool operator > (
const l_real &a,
const lx_real &b)
throw()
330 {
return lx_real(a)>b; }
332 inline bool operator <= (
const l_real &a,
const lx_real &b)
throw()
335 inline bool operator < (
const l_real &a,
const lx_real &b)
throw()
336 {
return b>lx_real(a); }
338 inline bool operator >= (
const l_real &a,
const lx_real &b)
throw()
343 inline bool operator > (
const lx_real &a,
const l_real &b)
throw()
344 {
return a>lx_real(b); }
346 inline bool operator <= (
const lx_real &a,
const l_real &b)
throw()
349 inline bool operator < (
const lx_real &a,
const l_real &b)
throw()
352 inline bool operator >= (
const lx_real &a,
const l_real &b)
throw()
358 inline lx_real max(
const lx_real& a,
const lx_real& b)
359 {
return (b>a)? b : a; }
361 inline lx_real min(
const lx_real& a,
const lx_real& b)
362 {
return (b>a)? a : b; }
384 if (res>Max_Int_R) res = 9007199254740992.0;
cimatrix & operator/=(cimatrix &m, const cinterval &c)
Implementation of division and allocation operation.
The Multiple-Precision Data Type l_real.
real cutint(const real &x)
Returns the truncated integer part of x.
The namespace cxsc, providing all functionality of the class library C-XSC.
civector operator*(const cimatrix_subv &rv, const cinterval &s)
Implementation of multiplication operation.
real add_real(const real &a, const real &b)
Returns a,b must be integers with .
real sub_real(const real &a, const real &b)
Returns a,b must be integers with .
cdotprecision & operator+=(cdotprecision &cd, const l_complex &lc)
Implementation of standard algebraic addition and allocation operation.
void times2pown(cinterval &x, int n)
Fast multiplication of reference parameter [z] with .
int expo_gr(const l_interval &x)
civector operator/(const cimatrix_subv &rv, const cinterval &s)
Implementation of division operation.
cimatrix & operator*=(cimatrix &m, const cinterval &c)
Implementation of multiplication and allocation operation.
bool Is_Integer(const real &x)
Returns 1 if x is an integer value and if .
ivector abs(const cimatrix_subv &mv)
Returns the absolute value of the matrix.