source: to-imperative/trunk/samples/Arithm/div_rem.cc @ 1056

Last change on this file since 1056 was 1056, checked in by luba, 18 years ago
  • tests for GCD and Div-Rem functions
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.4 KB
Line 
1#include <rf_core.hh>
2#include <refal/StdIO.hh>
3#include <refal/Arithm.hh>
4
5namespace refal
6{
7
8using namespace rfrt;
9
10namespace div__rem
11{
12
13static const Expr _c_0 = ShortInt::create_expr (-22);
14
15static const Expr _c_1 = ShortInt::create_expr (11);
16
17static const Expr _c_2 = ShortInt::create_expr (-2147483647);
18
19static const Expr _c_3 = ShortInt::create_expr (2147483647);
20
21static const Expr _c_4 = Integer::create_expr ("2147483648");
22
23static const Expr _c_5 = ShortInt::create_expr (2);
24
25static const Expr _c_6 = ShortInt::create_expr (2222222);
26
27static const Expr _c_7 = ShortInt::create_expr (22345);
28
29static const Expr _c_8 = Integer::create_expr ("-2147483648");
30
31static const Expr _c_9 = Integer::create_expr ("-2147483649");
32
33static const Expr _c_10 = Integer::create_expr ("-2147483648123456789078654321");
34
35static const Expr _c_11 = ShortInt::create_expr (-23);
36
37static const Expr _c_12 = ShortInt::create_expr (-11);
38
39static const Expr _c_13 = Integer::create_expr ("-11111111111");
40
41static const Expr _c_14 = Integer::create_expr ("2147483649");
42
43static const Expr _c_15 = Integer::create_expr ("-21474836481234567890786543");
44
45static const Expr _c_16 = ShortInt::create_expr (-2);
46
47RF_FUNC (Main, (), (RF_RES _v_res1))
48  {
49    Expr _v_Div_m_Rem1;
50    Expr _v_Div_m_Rem2;
51    RF_CALL (Arithm::Div_m_Rem, (_c_0, _c_1), (_v_Div_m_Rem1, _v_Div_m_Rem2));
52    RF_CALL (StdIO::PrintLN, ((_v_Div_m_Rem1 + _v_Div_m_Rem2)), ());
53    Expr _v_Div_m_Rem3;
54    Expr _v_Div_m_Rem4;
55    RF_CALL (Arithm::Div_m_Rem, (_c_2, _c_2), (_v_Div_m_Rem3, _v_Div_m_Rem4));
56    RF_CALL (StdIO::PrintLN, ((_v_Div_m_Rem3 + _v_Div_m_Rem4)), ());
57    Expr _v_Div_m_Rem5;
58    Expr _v_Div_m_Rem6;
59    RF_CALL (Arithm::Div_m_Rem, (_c_3, _c_2), (_v_Div_m_Rem5, _v_Div_m_Rem6));
60    RF_CALL (StdIO::PrintLN, ((_v_Div_m_Rem5 + _v_Div_m_Rem6)), ());
61    Expr _v_Div_m_Rem7;
62    Expr _v_Div_m_Rem8;
63    RF_CALL (Arithm::Div_m_Rem, (_c_2, _c_3), (_v_Div_m_Rem7, _v_Div_m_Rem8));
64    RF_CALL (StdIO::PrintLN, ((_v_Div_m_Rem7 + _v_Div_m_Rem8)), ());
65    Expr _v_Div_m_Rem9;
66    Expr _v_Div_m_Rem10;
67    RF_CALL (Arithm::Div_m_Rem, (_c_3, _c_3), (_v_Div_m_Rem9, _v_Div_m_Rem10));
68    RF_CALL (StdIO::PrintLN, ((_v_Div_m_Rem9 + _v_Div_m_Rem10)), ());
69    Expr _v_Div_m_Rem11;
70    Expr _v_Div_m_Rem12;
71    RF_CALL (Arithm::Div_m_Rem, (_c_4, _c_5), (_v_Div_m_Rem11, _v_Div_m_Rem12));
72    RF_CALL (StdIO::PrintLN, ((_v_Div_m_Rem11 + _v_Div_m_Rem12)), ());
73    Expr _v_Div_m_Rem13;
74    Expr _v_Div_m_Rem14;
75    RF_CALL (Arithm::Div_m_Rem, (_c_4, _c_6), (_v_Div_m_Rem13, _v_Div_m_Rem14));
76    RF_CALL (StdIO::PrintLN, ((_v_Div_m_Rem13 + _v_Div_m_Rem14)), ());
77    Expr _v_Div_m_Rem15;
78    Expr _v_Div_m_Rem16;
79    RF_CALL (Arithm::Div_m_Rem, (_c_7, _c_8), (_v_Div_m_Rem15, _v_Div_m_Rem16));
80    RF_CALL (StdIO::PrintLN, ((_v_Div_m_Rem15 + _v_Div_m_Rem16)), ());
81    Expr _v_Div_m_Rem17;
82    Expr _v_Div_m_Rem18;
83    RF_CALL (Arithm::Div_m_Rem, (_c_9, _c_4), (_v_Div_m_Rem17, _v_Div_m_Rem18));
84    RF_CALL (StdIO::PrintLN, ((_v_Div_m_Rem17 + _v_Div_m_Rem18)), ());
85    Expr _v_Div_m_Rem19;
86    Expr _v_Div_m_Rem20;
87    RF_CALL (Arithm::Div_m_Rem, (_c_10, _c_8), (_v_Div_m_Rem19, _v_Div_m_Rem20));
88    RF_CALL (StdIO::PrintLN, ((_v_Div_m_Rem19 + _v_Div_m_Rem20)), ());
89    Expr _v_Div_m_Rem21;
90    Expr _v_Div_m_Rem22;
91    RF_CALL (Arithm::Div_m_Rem, (_c_11, _c_12), (_v_Div_m_Rem21, _v_Div_m_Rem22));
92    RF_CALL (StdIO::PrintLN, ((_v_Div_m_Rem21 + _v_Div_m_Rem22)), ());
93    Expr _v_Div_m_Rem23;
94    Expr _v_Div_m_Rem24;
95    RF_CALL (Arithm::Div_m_Rem, (_c_11, _c_13), (_v_Div_m_Rem23, _v_Div_m_Rem24));
96    RF_CALL (StdIO::PrintLN, ((_v_Div_m_Rem23 + _v_Div_m_Rem24)), ());
97    Expr _v_Div_m_Rem25;
98    Expr _v_Div_m_Rem26;
99    RF_CALL (Arithm::Div_m_Rem, (_c_9, _c_2), (_v_Div_m_Rem25, _v_Div_m_Rem26));
100    RF_CALL (StdIO::PrintLN, ((_v_Div_m_Rem25 + _v_Div_m_Rem26)), ());
101    Expr _v_Div_m_Rem27;
102    Expr _v_Div_m_Rem28;
103    RF_CALL (Arithm::Div_m_Rem, (_c_14, _c_2), (_v_Div_m_Rem27, _v_Div_m_Rem28));
104    RF_CALL (StdIO::PrintLN, ((_v_Div_m_Rem27 + _v_Div_m_Rem28)), ());
105    Expr _v_Div_m_Rem29;
106    Expr _v_Div_m_Rem30;
107    RF_CALL (Arithm::Div_m_Rem, (_c_9, _c_3), (_v_Div_m_Rem29, _v_Div_m_Rem30));
108    RF_CALL (StdIO::PrintLN, ((_v_Div_m_Rem29 + _v_Div_m_Rem30)), ());
109    Expr _v_Div_m_Rem31;
110    Expr _v_Div_m_Rem32;
111    RF_CALL (Arithm::Div_m_Rem, (_c_14, _c_3), (_v_Div_m_Rem31, _v_Div_m_Rem32));
112    RF_CALL (StdIO::PrintLN, ((_v_Div_m_Rem31 + _v_Div_m_Rem32)), ());
113    Expr _v_Div_m_Rem33;
114    Expr _v_Div_m_Rem34;
115    RF_CALL (Arithm::Div_m_Rem, (_c_4, _c_5), (_v_Div_m_Rem33, _v_Div_m_Rem34));
116    RF_CALL (StdIO::PrintLN, ((_v_Div_m_Rem33 + _v_Div_m_Rem34)), ());
117    Expr _v_Div_m_Rem35;
118    Expr _v_Div_m_Rem36;
119    RF_CALL (Arithm::Div_m_Rem, (_c_4, _c_6), (_v_Div_m_Rem35, _v_Div_m_Rem36));
120    RF_CALL (StdIO::PrintLN, ((_v_Div_m_Rem35 + _v_Div_m_Rem36)), ());
121    Expr _v_Div_m_Rem37;
122    Expr _v_Div_m_Rem38;
123    RF_CALL (Arithm::Div_m_Rem, (_c_7, _c_8), (_v_Div_m_Rem37, _v_Div_m_Rem38));
124    RF_CALL (StdIO::PrintLN, ((_v_Div_m_Rem37 + _v_Div_m_Rem38)), ());
125    Expr _v_Div_m_Rem39;
126    Expr _v_Div_m_Rem40;
127    RF_CALL (Arithm::Div_m_Rem, (_c_9, _c_4), (_v_Div_m_Rem39, _v_Div_m_Rem40));
128    RF_CALL (StdIO::PrintLN, ((_v_Div_m_Rem39 + _v_Div_m_Rem40)), ());
129    Expr _v_Div_m_Rem41;
130    Expr _v_Div_m_Rem42;
131    RF_CALL (Arithm::Div_m_Rem, (_c_15, _c_16), (_v_Div_m_Rem41, _v_Div_m_Rem42));
132    RF_CALL (StdIO::PrintLN, ((_v_Div_m_Rem41 + _v_Div_m_Rem42)), ());
133    _v_res1 = empty;
134  }
135RF_END
136
137}
138
139rfrt::Entry rf_entry (div__rem::Main);
140
141}
Note: See TracBrowser for help on using the repository browser.