Macaulay2 Engine
Loading...
Searching...
No Matches

◆ TestField()

template<class Field>
void TestField ( const Field & F)

Definition at line 40 of file GivaroTest.cpp.

41{
42 std::cerr << "Within ";
43 F.write(std::cerr);
44 std::cerr << " : " << std::flush;
45 typename Field::Element a, b, c, d;
46 F.init(a, 7U);
47 F.init(b, -29.3);
48 F.init(c); // empty constructor
49 F.init(d); // empty constructor
50 F.add(c, a, b); // c = a+b
51 // Separate output writing
52 F.write(std::cout, a) << " + " << std::flush;
53 F.write(std::cout, b) << " = " << std::flush;
54 F.write(std::cerr, c) << std::endl;
55 F.mul(c, a, b); // c = a*b
56 F.axpy(d, a, b, c); // d = a*b + c;
57 // Writing all outputs in a single command line
58 F.write(std::cerr << "Within ") << " : " << std::flush;
59 F.write(F.write(F.write(F.write(std::cout, c) << " + ", a) << " * ", b)
60 << " = ",
61 d)
62 << std::endl;
63 {
64 typename Field::Element e;
65 F.init(e);
66 F.assign(e, d);
67 F.maxpy(e, a, b, d); // e = d-a*b
68 // Writing all outputs in a single command line
69 F.write(std::cerr << "Within ") << " : " << std::flush;
70 F.write(F.write(F.write(F.write(std::cout, d) << " - ", a) << " * ", b)
71 << " = ",
72 e)
73 << std::endl;
74 }
75 {
76 typename Field::Element e;
77 F.init(e);
78 F.assign(e, d);
79 F.maxpyin(e, a, b); // e = d - a*b;
80 // Writing all outputs in a single command line
81 F.write(std::cerr << "Within ") << " : " << std::flush;
82 F.write(F.write(F.write(F.write(std::cout, d) << " - ", a) << " * ", b)
83 << " = ",
84 e)
85 << std::endl;
86 }
87 {
88 typename Field::Element e;
89 F.init(e);
90 F.assign(e, d);
91 F.axmy(e, a, b, d); // e = a*b -d;
92 // Writing all outputs in a single command line
93 F.write(std::cerr << "Within ") << " : " << std::flush;
94 F.write(F.write(F.write(F.write(std::cout, a) << " * ", b) << " - ", d)
95 << " = ",
96 e)
97 << std::endl;
98 }
99 {
100 typename Field::Element e;
101 F.init(e);
102 F.assign(e, d);
103 F.maxpyin(e, a, b); // e = d - a*b;
104 // Writing all outputs in a single command line
105 F.write(std::cerr << "Within ") << " : " << std::flush;
106 F.write(F.write(F.write(F.write(std::cout, d) << " - ", a) << " * ", b)
107 << " = ",
108 e)
109 << std::endl;
110 }
111 // Four operations
112 F.write(F.write(std::cout, a) << " += ", b) << " is ";
113 F.write(std::cout, F.addin(a, b)) << " ; ";
114 F.write(F.write(std::cout, a) << " -= ", b) << " is ";
115 F.write(std::cout, F.subin(a, b)) << " ; ";
116 F.write(F.write(std::cout, a) << " *= ", b) << " is ";
117 F.write(std::cout, F.mulin(a, b)) << " ; ";
118 F.write(F.write(std::cout, a) << " /= ", b) << " is ";
119 F.write(std::cout, F.divin(a, b)) << std::endl;
120 F.init(a, 22996);
121 F.inv(b, a);
122 F.write(F.write(std::cout << "1/", a) << " is ", b) << std::endl;
123 F.mul(c, b, a);
124 F.write(std::cout << "1 is ", c) << std::endl;
125 F.init(a, 22996);
126 F.init(b, 22996);
127 F.write(std::cout << "1/", a) << " is ";
128 F.invin(a);
129 F.write(std::cout, a) << std::endl;
130 F.mulin(a, b);
131 F.write(std::cout << "1 is ", a) << std::endl;
132 F.init(a, 37403);
133 F.inv(b, a);
134 F.write(F.write(std::cout << "1/", a) << " is ", b) << std::endl;
135 F.mul(c, b, a);
136 F.write(std::cout << "1 is ", c) << std::endl;
137 F.init(a, 37403);
138 F.init(b, 37403);
139 F.write(std::cout << "1/", a) << " is ";
140 F.invin(a);
141 F.write(std::cout, a) << std::endl;
142 F.mulin(a, b);
143 F.write(std::cout << "1 is ", a) << std::endl;
144}

Referenced by main().