C-XSC - A C++ Class Library for Extended Scientific Computing 2.5.4
lx_complex.hpp
1/*
2** CXSC is a C++ library for eXtended Scientific Computing (V 2.5.4)
3**
4** Copyright (C) 1990-2000 Institut fuer Angewandte Mathematik,
5** Universitaet Karlsruhe, Germany
6** (C) 2000-2014 Wiss. Rechnen/Softwaretechnologie
7** Universitaet Wuppertal, Germany
8**
9** This library is free software; you can redistribute it and/or
10** modify it under the terms of the GNU Library General Public
11** License as published by the Free Software Foundation; either
12** version 2 of the License, or (at your option) any later version.
13**
14** This library is distributed in the hope that it will be useful,
15** but WITHOUT ANY WARRANTY; without even the implied warranty of
16** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17** Library General Public License for more details.
18**
19** You should have received a copy of the GNU Library General Public
20** License along with this library; if not, write to the Free
21** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22*/
23
24/* CVS $Id: lx_complex.hpp,v 1.9 2014/01/30 17:23:47 cxsc Exp $ */
25
26
27/*
28** F. Blomquist, University of Wuppertal, 19.09.2007;
29*/
30
31/*
32** Implementation of the classes
33**
34** lx_complex with all tools and elementary functions for complex
35** point and interval aruments
36**
37*/
38
39#ifndef _CXSC_LX_COMPLEX_HPP_INCLUDED
40#define _CXSC_LX_COMPLEX_HPP_INCLUDED
41
42#include <iostream>
43#include <except.hpp>
44#include <l_cinterval.hpp>
45#include <l_complex.hpp>
46#include "lx_interval.hpp"
47
48namespace cxsc {
49// --------------------------------------------------------------------------
50// Class lx_complex
51// --------------------------------------------------------------------------
52
53 class lx_complex
54 {
55 private:
56 // ------------- Data Elements -------------------------------------------
57 lx_real re;
58 lx_real im;
59
60 public:
61 // ------------- Constructors --------------------------------------------
62
64 lx_complex(void) noexcept {}
66 lx_complex(const real& nr, const l_real &ar, const real& ni, const l_real &ai)
67 noexcept : re(lx_real(nr,ar)), im(lx_real(ni,ai)) { }
69 lx_complex(const real& n, const real &a)
70 noexcept : re(lx_real(n,a)), im(lx_real(0.0)) { }
72 lx_complex(const lx_real &a, const lx_real &b)
73 noexcept : re(a), im(b) { }
75 lx_complex(const lx_real &a) noexcept : re(a), im(lx_real(0.0)) { }
77 explicit lx_complex(const l_real &a, const l_real &b)
78 noexcept : re(a), im(b) { }
80 explicit lx_complex(const l_real &a)
81 noexcept : re(a), im(lx_real(0.0)) { }
83 explicit lx_complex(const real &a)
84 noexcept : re(a), im(lx_real(0.0)) { }
86 explicit lx_complex(const complex &a)
87 noexcept : re(Re(a)), im(Im(a)) { }
89 explicit lx_complex(const l_complex &a)
90 noexcept : re(lx_real(0,Re(a))), im(lx_real(0,Im(a))) { }
92 lx_complex(const real& pr, const string& sr,
93 const real& pi, const string& si)
94 noexcept : re(lx_real(pr,sr)), im(lx_real(pi,si)) { }
95
96// ------------- Assignments ---------------------------------------------
98 lx_complex & operator = (const lx_real & lr) noexcept
99 { re = lr; im = 0; return *this; }
101 lx_complex & operator = (const l_real & lr) noexcept
102 { re = lr; im = 0; return *this; }
104 lx_complex & operator = (const real & lr) noexcept
105 { re = lr; im = 0; return *this; }
107 lx_complex & operator = (const l_complex & c) noexcept
108 { re = Re(c); im = Im(c); return *this; }
110 lx_complex & operator = (const complex & c) noexcept
111 { re = Re(c); im = Im(c); return *this; }
112
113 // ------------- Functions -----------------------------------------------
114
116 friend inline lx_real Re(const lx_complex&);
118 friend inline lx_real Im(const lx_complex&);
120 friend inline int StagPrec(const lx_complex&) noexcept;
122 friend inline real expoRe(const lx_complex&) noexcept;
124 friend inline real expoIm(const lx_complex&) noexcept;
126 friend inline l_real lr_partRe(const lx_complex&) noexcept;
128 friend inline l_real lr_partIm(const lx_complex&) noexcept;
129
131 friend inline lx_complex & SetRe(lx_complex&, const lx_real&);
133 friend inline lx_complex & SetRe(lx_complex&, const l_real&);
135 friend inline lx_complex & SetRe(lx_complex&, const real&);
136
138 friend inline lx_complex & SetIm(lx_complex&, const lx_real&);
140 friend inline lx_complex & SetIm(lx_complex&, const l_real&);
142 friend inline lx_complex & SetIm(lx_complex&, const real&);
143
145 friend inline lx_complex conj(const lx_complex& a) noexcept;
147 friend lx_real abs (const lx_complex&) noexcept;
149 friend lx_real abs2 (const lx_complex&) noexcept;
150
152 friend inline bool operator ! (const lx_complex& ) noexcept;
153
155 friend inline bool operator == (const lx_complex&, const lx_complex&)
156 noexcept;
158 friend inline bool operator == (const lx_complex&, const l_complex&)
159 noexcept;
161 friend inline bool operator == (const lx_complex&, const complex&)
162 noexcept;
164 friend inline bool operator == (const l_complex&, const lx_complex&)
165 noexcept;
167 friend inline bool operator == (const complex&, const lx_complex&)
168 noexcept;
170 friend inline bool operator == (const lx_complex&, const lx_real&) noexcept;
172 friend inline bool operator == (const lx_complex&, const l_real&) noexcept;
174 friend inline bool operator == (const lx_complex&, const real&) noexcept;
176 friend inline bool operator == (const lx_real&, const lx_complex&) noexcept;
178 friend inline bool operator == (const l_real&, const lx_complex&) noexcept;
180 friend inline bool operator == (const real&, const lx_complex&) noexcept;
181
183 friend inline lx_complex operator - (const lx_complex &) noexcept;
184
185
186// ----------------------- Output --------------------------------------------
187
189 friend inline std::ostream& operator << (std::ostream& s, const lx_complex& a)
190 noexcept; // A value a of type lx_complex is written to the output channel.
192 friend inline std::string & operator << (std::string &s, const lx_complex& a)
193 noexcept;
194// The value of a variable a of type lx_complex is copied to a string s.
195// s has the form: ({2**()*...} , {2**()*...})
196
197// ----------------------- Input --------------------------------------------
198
200 friend std::string & operator >> (std::string& s, lx_complex& a) noexcept;
201
203friend std::istream & operator >> (std::istream &s, lx_complex &a) noexcept
204// An input of a complex number z of the form ({...,...},{...,...}) is
205// copied to the variable a of type lx_complex.
206{
207 char c;
208 std::cout << "Real part: {Exponent to base 10, real number} = ?"
209 << std::endl;
210 s >> a.re;
211 std::cout << "Img. part: {Exponent to base 10, real number} = ?"
212 << std::endl;
213 s >> a.im >> RestoreOpt;
214
215 if (!waseolnflag)
216 {
217 skipeolnflag = false, inpdotflag = true;
218 c = skipwhitespaces (s);
219 if (inpdotflag && c != ')')
220 s.putback(c);
221 }
222 return s;
223}
224
226 friend inline lx_complex operator + (const lx_complex&, const lx_complex&)
227 noexcept;
229 friend inline lx_complex operator + (const lx_complex&, const lx_real&) noexcept;
231 friend inline lx_complex operator + (const lx_real&, const lx_complex&) noexcept;
233 friend inline lx_complex operator + (const lx_complex&, const l_real&) noexcept;
235 friend inline lx_complex operator + (const l_real&, const lx_complex&) noexcept;
237 friend inline lx_complex operator + (const lx_complex&, const real&) noexcept;
239 friend inline lx_complex operator + (const real&, const lx_complex&) noexcept;
240
242 friend inline lx_complex operator * (const lx_complex&, const lx_complex&)
243 noexcept;
244
246 friend inline lx_complex operator / (const lx_complex&, const lx_complex&)
247 noexcept;
248
249}; // end of class lx_complex
250
251// ***********************************************************************
252// ---------Functions related to type lx_complex -------------------------
253// ***********************************************************************
254
255 inline std::ostream& operator << (std::ostream& s, const lx_complex&)
256 noexcept;
257 inline std::string & operator << (std::string& s, const lx_complex&)
258 noexcept;
259
260// ------- friend functions declared in class lx_complex: -----------
261
262 inline lx_real Re(const lx_complex&);
263 inline lx_real Im(const lx_complex&);
264 inline int StagPrec(const lx_complex&) noexcept;
265 inline real expoRe(const lx_complex&) noexcept;
266 inline real expoIm(const lx_complex&) noexcept;
267 inline l_real lr_partRe(const lx_complex&) noexcept;
268 inline l_real lr_partIm(const lx_complex&) noexcept;
269
270 inline lx_complex & SetRe(lx_complex&, const lx_real&);
271 inline lx_complex & SetRe(lx_complex&, const l_real&);
272 inline lx_complex & SetRe(lx_complex&, const real&);
273
274 inline lx_complex & SetIm(lx_complex&, const lx_real&);
275 inline lx_complex & SetIm(lx_complex&, const l_real&);
276 inline lx_complex & SetIm(lx_complex&, const real&);
277
278 inline lx_complex conj(const lx_complex&) noexcept;
279
280 lx_real abs (const lx_complex&) noexcept;
281 lx_real abs2 (const lx_complex&) noexcept;
282
283 inline bool operator == (const lx_complex&, const lx_complex&) noexcept;
284
285 inline bool operator == (const lx_complex&, const l_complex&) noexcept;
286 inline bool operator == (const lx_complex&, const complex&) noexcept;
287 inline bool operator == (const l_complex&, const lx_complex&) noexcept;
288 inline bool operator == (const complex&, const lx_complex&) noexcept;
289
290 inline bool operator == (const lx_complex&, const lx_real&) noexcept;
291 inline bool operator == (const lx_complex&, const l_real&) noexcept;
292 inline bool operator == (const lx_complex&, const real&) noexcept;
293 inline bool operator == (const lx_real&, const lx_complex&) noexcept;
294 inline bool operator == (const l_real&, const lx_complex&) noexcept;
295 inline bool operator == (const real&, const lx_complex&) noexcept;
296
297// ----------------------------------------------------------------------
298
300 inline bool operator != (const lx_complex&, const lx_complex&) noexcept;
302 inline bool operator != (const lx_complex&, const l_complex&) noexcept;
304 inline bool operator != (const lx_complex&, const complex&) noexcept;
306 inline bool operator != (const l_complex&, const lx_complex&) noexcept;
308 inline bool operator != (const complex&, const lx_complex&) noexcept;
309
311 inline bool operator != (const lx_complex&, const lx_real&) noexcept;
313 inline bool operator != (const lx_complex&, const l_real&) noexcept;
315 inline bool operator != (const lx_complex&, const real&) noexcept;
317 inline bool operator != (const lx_real&, const lx_complex&) noexcept;
319 inline bool operator != (const l_real&, const lx_complex&) noexcept;
321 inline bool operator != (const real&, const lx_complex&) noexcept;
322
323 inline lx_complex operator - (const lx_complex &) noexcept;
324
325// -------------------------- Output ------------------------------------
326
327 inline std::ostream& operator << (std::ostream& s, const lx_complex& a)
328 noexcept; // A value a of type lx_complex is written to the output channel.
329 inline std::string & operator << (std::string& s, const lx_complex& a)
330 noexcept;
331 // The value of a variable a of type lx_complex is copied to a string s.
332 // s has the form: { ? , ? }
333
334// -------------------------- Input ------------------------------------
335
337 std::string & operator >> (std::string& s, lx_complex& a) noexcept;
338// Writes string s to variable a of type lx_complex;
339// and returns an empty string s;
340// Example: s = "{-4000,2}" delivers a value a
341// with: 10^(-4000)*2 ~ a;
342
344 void operator >> (const std::string &s, lx_complex &a) noexcept;
346 void operator >> (const char *s, lx_complex& a) noexcept;
347
348// ---- function and operator declarations outside the class lx_complex ----
349
351 inline lx_complex operator + (const lx_complex&) noexcept;
352
354 inline lx_complex operator + (const lx_complex&, const l_complex&) noexcept;
356 inline lx_complex operator + (const lx_complex&, const complex&) noexcept;
358 inline lx_complex operator + (const l_complex&, const lx_complex&) noexcept;
360 inline lx_complex operator + (const complex&, const lx_complex&) noexcept;
362 inline lx_complex operator + (const lx_complex&, const lx_real&) noexcept;
364 inline lx_complex operator + (const lx_real&, const lx_complex&) noexcept;
366 inline lx_complex operator + (const lx_complex&, const l_real&) noexcept;
368 inline lx_complex operator + (const l_real&, const lx_complex&) noexcept;
370 inline lx_complex operator + (const lx_complex&, const real&) noexcept;
372 inline lx_complex operator + (const real&, const lx_complex&) noexcept;
373
375 inline lx_complex & operator +=(lx_complex &, const lx_complex &) noexcept;
377 inline lx_complex & operator +=(lx_complex &, const l_complex &) noexcept;
379 inline lx_complex & operator +=(lx_complex &, const complex &) noexcept;
381 inline lx_complex & operator +=(lx_complex &, const lx_real &) noexcept;
383 inline lx_complex & operator +=(lx_complex &, const l_real &) noexcept;
385 inline lx_complex & operator +=(lx_complex &, const real &) noexcept;
386
388 inline lx_complex operator - (const lx_complex&, const lx_complex&) noexcept;
390 inline lx_complex operator - (const lx_complex&, const l_complex&) noexcept;
392 inline lx_complex operator - (const lx_complex&, const complex&) noexcept;
394 inline lx_complex operator - (const l_complex&, const lx_complex&) noexcept;
396 inline lx_complex operator - (const complex&, const lx_complex&) noexcept;
398 inline lx_complex operator - (const lx_complex&, const lx_real&) noexcept;
400 inline lx_complex operator - (const lx_complex&, const l_real&) noexcept;
402 inline lx_complex operator - (const lx_complex&, const real&) noexcept;
404 inline lx_complex operator - (const lx_real&, const lx_complex&) noexcept;
406 inline lx_complex operator - (const l_real&, const lx_complex&) noexcept;
408 inline lx_complex operator - (const real&, const lx_complex&) noexcept;
409
411 inline lx_complex & operator -=(lx_complex &, const lx_complex &) noexcept;
413 inline lx_complex & operator -=(lx_complex &, const l_complex &) noexcept;
415 inline lx_complex & operator -=(lx_complex &, const complex &) noexcept;
417 inline lx_complex & operator -=(lx_complex &, const lx_real &) noexcept;
419 inline lx_complex & operator -=(lx_complex &, const l_real &) noexcept;
421 inline lx_complex & operator -=(lx_complex &, const real &) noexcept;
422
424 inline lx_complex operator * (const lx_complex&, const lx_complex&) noexcept;
426 inline lx_complex operator * (const lx_complex&, const l_complex&) noexcept;
428 inline lx_complex operator * (const lx_complex&, const complex&) noexcept;
430 inline lx_complex operator * (const l_complex&, const lx_complex&) noexcept;
432 inline lx_complex operator * (const complex&, const lx_complex&) noexcept;
434 inline lx_complex operator * (const lx_complex&, const lx_real&) noexcept;
436 inline lx_complex operator * (const lx_complex&, const l_real&) noexcept;
438 inline lx_complex operator * (const lx_complex&, const real&) noexcept;
440 inline lx_complex operator * (const lx_real&, const lx_complex&) noexcept;
442 inline lx_complex operator * (const l_real&, const lx_complex&) noexcept;
444 inline lx_complex operator * (const real&, const lx_complex&) noexcept;
445
447 inline lx_complex & operator *=(lx_complex &, const lx_complex &) noexcept;
449 inline lx_complex & operator *=(lx_complex &, const l_complex &) noexcept;
451 inline lx_complex & operator *=(lx_complex &, const complex &) noexcept;
453 inline lx_complex & operator *=(lx_complex &, const lx_real &) noexcept;
455 inline lx_complex & operator *=(lx_complex &, const l_real &) noexcept;
457 inline lx_complex & operator *=(lx_complex &, const real &) noexcept;
458
460 inline lx_complex operator / (const lx_complex&, const lx_complex&) noexcept;
462 inline lx_complex operator / (const lx_complex&, const l_complex&) noexcept;
464 inline lx_complex operator / (const lx_complex&, const complex&) noexcept;
466 inline lx_complex operator / (const l_complex&, const lx_complex&) noexcept;
468 inline lx_complex operator / (const complex&, const lx_complex&) noexcept;
470 inline lx_complex operator / (const lx_complex&, const lx_real&) noexcept;
472 inline lx_complex operator / (const lx_complex&, const l_real&) noexcept;
474 inline lx_complex operator / (const lx_complex&, const real&) noexcept;
476 inline lx_complex operator / (const lx_real&, const lx_complex&) noexcept;
478 inline lx_complex operator / (const l_real&, const lx_complex&) noexcept;
480 inline lx_complex operator / (const real&, const lx_complex&) noexcept;
481
483 inline lx_complex & operator /=(lx_complex &, const lx_complex &) noexcept;
485 inline lx_complex & operator /=(lx_complex &, const l_complex &) noexcept;
487 inline lx_complex & operator /=(lx_complex &, const complex &) noexcept;
489 inline lx_complex & operator /=(lx_complex &, const lx_real &) noexcept;
491 inline lx_complex & operator /=(lx_complex &, const l_real &) noexcept;
493 inline lx_complex & operator /=(lx_complex &, const real &) noexcept;
494
495
496
497// ---------------------------------------------------------------------------
498// ----- Elementary functions related to lx_complex
499// ---------------------------------------------------------------------------
500
502 lx_complex sqr(const lx_complex&) noexcept;
504 lx_complex sqrt(const lx_complex&) noexcept;
506 lx_complex sqrt(const lx_complex& ,int) noexcept;
508 lx_complex exp(const lx_complex&) noexcept;
510 lx_complex exp2(const lx_complex&) noexcept;
512 lx_complex exp10(const lx_complex&) noexcept;
514 lx_complex sin(const lx_complex&) noexcept;
516 lx_complex cos(const lx_complex&) noexcept;
518 lx_complex tan(const lx_complex&) noexcept;
520 lx_complex cot(const lx_complex&) noexcept;
522 lx_complex asin(const lx_complex&) noexcept;
524 lx_complex acos(const lx_complex&) noexcept;
526 lx_complex atan(const lx_complex&) noexcept;
528 lx_complex acot(const lx_complex&) noexcept;
530 lx_complex sinh(const lx_complex&) noexcept;
532 lx_complex cosh(const lx_complex&) noexcept;
534 lx_complex tanh(const lx_complex&) noexcept;
536 lx_complex coth(const lx_complex&) noexcept;
538 lx_complex asinh(const lx_complex&) noexcept;
540 lx_complex acosh(const lx_complex&) noexcept;
542 lx_complex atanh(const lx_complex&) noexcept;
544 lx_complex acoth(const lx_complex&) noexcept;
546 std::list<lx_complex>sqrt_all(const lx_complex&);
548 lx_real arg(const lx_complex&) noexcept;
550 lx_real Arg(const lx_complex&) noexcept;
552 std::list<lx_complex>sqrt_all(const lx_complex&, int);
554 lx_complex ln(const lx_complex&) noexcept;
556 lx_complex log2(const lx_complex&) noexcept;
558 lx_complex log10(const lx_complex&) noexcept;
560 lx_complex power_fast(const lx_complex&, const real&) noexcept;
562 lx_complex power(const lx_complex&, const real&) noexcept;
564 lx_complex pow(const lx_complex&, const lx_real&) noexcept;
566 lx_complex pow(const lx_complex&, const lx_complex&) noexcept;
567
569 lx_complex sqrt1px2(const lx_complex&) noexcept;
571 lx_complex sqrt1mx2(const lx_complex&) noexcept;
573 lx_complex sqrtx2m1(const lx_complex&) noexcept;
575 lx_complex sqrtp1m1(const lx_complex&) noexcept;
577 lx_complex expm1(const lx_complex&) noexcept;
579 lx_complex lnp1(const lx_complex&) noexcept;
580
581} // end namespace cxsc
582
583#include "lx_complex.inl"
584
585#endif // _CXSC_LX_COMPLEX_HPP_INCLUDED
The namespace cxsc, providing all functionality of the class library C-XSC.
Definition cdot.cpp:29
cinterval sqrtp1m1(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:1054
cinterval exp2(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:167
cinterval sqrt1mx2(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:1140
cinterval asinh(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:2718
cinterval coth(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:578
cdotprecision & operator+=(cdotprecision &cd, const l_complex &lc) noexcept
Implementation of standard algebraic addition and allocation operation.
Definition cdot.inl:251
cinterval log2(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:898
cinterval power(const cinterval &z, int n) noexcept
Calculates .
Definition cimath.cpp:1941
cinterval log10(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:903
cinterval ln(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:851
civector operator/(const cimatrix_subv &rv, const cinterval &s) noexcept
Implementation of division operation.
Definition cimatrix.inl:730
cinterval pow(const cinterval &z, const interval &p) noexcept
Calculates .
Definition cimath.cpp:2074
cinterval sinh(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:231
cinterval asin(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:2311
cinterval tan(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:393
cinterval exp10(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:172
interval arg(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:741
std::list< cinterval > sqrt_all(const cinterval &z)
Calculates and returns all possible solutions.
Definition cimath.cpp:1176
cinterval acos(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:2553
cinterval sqrtx2m1(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:1109
cinterval acosh(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:2732
cinterval cosh(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:223
cinterval cos(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:207
cinterval sqrt1px2(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:1071
cinterval exp(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:159
cinterval tanh(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:565
cimatrix & operator*=(cimatrix &m, const cinterval &c) noexcept
Implementation of multiplication and allocation operation.
cinterval expm1(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:177
cinterval cot(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:538
ivector abs(const cimatrix_subv &mv) noexcept
Returns the absolute value of the matrix.
Definition cimatrix.inl:737
cinterval sqrt(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:1007
cinterval power_fast(const cinterval &z, int n) noexcept
Calculates .
Definition cimath.cpp:1520
cinterval acot(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:3130
cinterval sqr(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:3342
cinterval lnp1(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:867
civector operator*(const cimatrix_subv &rv, const cinterval &s) noexcept
Implementation of multiplication operation.
Definition cimatrix.inl:731
cinterval atan(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:2938
cinterval atanh(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:3317
interval Arg(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:654
cinterval acoth(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:3330
cinterval sin(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:215
cimatrix & operator/=(cimatrix &m, const cinterval &c) noexcept
Implementation of division and allocation operation.