本文整理汇总了C++中PolyRing::mulin方法的典型用法代码示例。如果您正苦于以下问题:C++ PolyRing::mulin方法的具体用法?C++ PolyRing::mulin怎么用?C++ PolyRing::mulin使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PolyRing
的用法示例。
在下文中一共展示了PolyRing::mulin方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: generateM
void generateM(
Mat &M,
MatDom &MD,
PolyRing &R,
PolyElement &f,
PolyElement &g,
size_t n,
size_t e
) {
integer max;
R.convert(max, f);
max *= 10;
Mat L(R, n, n);
for (size_t i = 0; i < n; i++) {
for (size_t j = 0; j < i; j++) {
PolyElement e;
R.init(e, rand() % max);
R.modin(e, f);
L.setEntry(i, j, e);
}
}
for (size_t i = 0; i < n; i++) {
L.setEntry(i, i, R.one);
}
Mat T(R, n, n);
for (size_t i = 0; i < n; i++) {
for (size_t j = i+1; j < n; j++) {
PolyElement e;
R.init(e, rand() % max);
R.modin(e, f);
T.setEntry(i, j, e);
}
}
for (size_t i = 0; i < n; i++) {
T.setEntry(i, i, R.one);
}
Mat D(R, n, n);
for (size_t i = 0; i < n; i++) {
size_t ei = rand() % e;
PolyElement di;
R.assign(di, R.one);
for (size_t j = 0; j < ei; j++) {
R.mulin(di, g);
}
D.setEntry(i, i, di);
if (VERBOSE > 1) {
R.write(cout << i << ", " << i << ": ", di) << endl;
}
}
MD.mul(M, L, D);
MD.mulin(M, T);
if (VERBOSE > 1) {
cout << endl;
for (size_t i = 0; i < n; i++) {
for (size_t j = 0; j < n; j++) {
PolyElement e;
M.getEntry(e, i, j);
R.write(cout << i << ", " << j << ": ", e) << endl;
}
}
}
}