]> www.ginac.de Git - cln.git/blob - src/float/elem/cl_RA_F_div.cc
Add index entry for 'cast'.
[cln.git] / src / float / elem / cl_RA_F_div.cc
1 // binary operator /
2
3 // General includes.
4 #include "cl_sysdep.h"
5
6 // Specification.
7 #include "cln/float.h"
8
9
10 // Implementation.
11
12 #include "cl_RA.h"
13 #include "cln/sfloat.h"
14 #include "cln/ffloat.h"
15 #include "cln/dfloat.h"
16 #include "cln/lfloat.h"
17 #include "cl_F.h"
18 #include "cl_SF.h"
19 #include "cl_FF.h"
20 #include "cl_DF.h"
21 #include "cl_LF.h"
22
23 namespace cln {
24
25 const cl_R operator/ (const cl_RA& x, const cl_F& y)
26 {
27         if (eq(x,0)) { return 0; }
28         floatcase(y
29         , /* SF */      if (integerp(x)) {
30                                 DeclareType(cl_I,x);
31                                 return cl_I_to_SF(x) / y;
32                         } else
33                                 return cl_RA_to_SF(x) / y;
34         , /* FF */      if (integerp(x)) {
35                                 DeclareType(cl_I,x);
36                                 return cl_I_to_FF(x) / y;
37                         } else
38                                 return cl_RA_to_FF(x) / y;
39         , /* DF */      if (integerp(x)) {
40                                 DeclareType(cl_I,x);
41                                 return cl_I_to_DF(x) / y;
42                         } else
43                                 return cl_RA_to_DF(x) / y;
44         , /* LF */      if (integerp(x)) {
45                                 DeclareType(cl_I,x);
46                                 return cl_I_LF_div(x,y);
47                         } else
48                                 return cl_RA_LF_div(x,y);
49         );
50 }
51
52 }  // namespace cln