0_0_38435123_2967.cpp: In static member function 'static std::vector<_RealType> FFTMod<mint, MInt, FFT>::conv(const std::vector<_RealType>&, const std::vector<_RealType>&)':
0_0_38435123_2967.cpp:321:26: error: 'mod0' is not a valid template argument for type 'const int&' because object 'mod0' has not external linkage
using mint0 = MInt<mod0>;
^
0_0_38435123_2967.cpp:322:26: error: 'mod1' is not a valid template argument for type 'const int&' because object 'mod1' has not external linkage
using mint1 = MInt<mod1>;
^
0_0_38435123_2967.cpp:323:26: error: 'mod2' is not a valid template argument for type 'const int&' because object 'mod2' has not external linkage
using mint2 = MInt<mod2>;
^
0_0_38435123_2967.cpp:324:10: error: 'mint0' was not declared in this scope
vector<mint0> l0(n), r0(m);
^
0_0_38435123_2967.cpp:324:15: error: template argument 1 is invalid
vector<mint0> l0(n), r0(m);
^
0_0_38435123_2967.cpp:324:15: error: template argument 2 is invalid
0_0_38435123_2967.cpp:324:19: error: invalid type in declaration before '(' token
vector<mint0> l0(n), r0(m);
^
0_0_38435123_2967.cpp:325:10: error: 'mint1' was not declared in this scope
vector<mint1> l1(n), r1(m);
^
0_0_38435123_2967.cpp:325:15: error: template argument 1 is invalid
vector<mint1> l1(n), r1(m);
^
0_0_38435123_2967.cpp:325:15: error: template argument 2 is invalid
0_0_38435123_2967.cpp:325:19: error: invalid type in declaration before '(' token
vector<mint1> l1(n), r1(m);
^
0_0_38435123_2967.cpp:326:10: error: 'mint2' was not declared in this scope
vector<mint2> l2(n), r2(m);
^
0_0_38435123_2967.cpp:326:15: error: template argument 1 is invalid
vector<mint2> l2(n), r2(m);
^
0_0_38435123_2967.cpp:326:15: error: template argument 2 is invalid
0_0_38435123_2967.cpp:326:19: error: invalid type in declaration before '(' token
vector<mint2> l2(n), r2(m);
^
0_0_38435123_2967.cpp:327:35: error: invalid types 'int[int]' for array subscript
for (int i = 0; i < n; ++i) l0[i] = (int) as[i], l1[i] = (int) as[i], l2[i] = (int) as[i];
^
0_0_38435123_2967.cpp:327:56: error: invalid types 'int[int]' for array subscript
for (int i = 0; i < n; ++i) l0[i] = (int) as[i], l1[i] = (int) as[i], l2[i] = (int) as[i];
^
0_0_38435123_2967.cpp:327:77: error: invalid types 'int[int]' for array subscript
for (int i = 0; i < n; ++i) l0[i] = (int) as[i], l1[i] = (int) as[i], l2[i] = (int) as[i];
^
0_0_38435123_2967.cpp:328:35: error: invalid types 'int[int]' for array subscript
for (int j = 0; j < m; ++j) r0[j] = (int) bs[j], r1[j] = (int) bs[j], r2[j] = (int) bs[j];
^
0_0_38435123_2967.cpp:328:56: error: invalid types 'int[int]' for array subscript
for (int j = 0; j < m; ++j) r0[j] = (int) bs[j], r1[j] = (int) bs[j], r2[j] = (int) bs[j];
^
0_0_38435123_2967.cpp:328:77: error: invalid types 'int[int]' for array subscript
for (int j = 0; j < m; ++j) r0[j] = (int) bs[j], r1[j] = (int) bs[j], r2[j] = (int) bs[j];
^
0_0_38435123_2967.cpp:329:12: error: the value of 'mint0' is not usable in a constant expression
l0 = FFT<mint0>::conv(l0, r0);
^
0_0_38435123_2967.cpp:324:10: note: 'mint0' was not declared 'constexpr'
vector<mint0> l0(n), r0(m);
^
0_0_38435123_2967.cpp:329:17: error: type/value mismatch at argument 1 in template parameter list for 'template<class> class FFT'
l0 = FFT<mint0>::conv(l0, r0);
^
0_0_38435123_2967.cpp:329:17: error: expected a type, got 'mint0'
0_0_38435123_2967.cpp:330:12: error: the value of 'mint1' is not usable in a constant expression
l1 = FFT<mint1>::conv(l1, r1);
^
0_0_38435123_2967.cpp:325:10: note: 'mint1' was not declared 'constexpr'
vector<mint1> l1(n), r1(m);
^
0_0_38435123_2967.cpp:330:17: error: type/value mismatch at argument 1 in template parameter list for 'template<class> class FFT'
l1 = FFT<mint1>::conv(l1, r1);
^
0_0_38435123_2967.cpp:330:17: error: expected a type, got 'mint1'
0_0_38435123_2967.cpp:331:12: error: the value of 'mint2' is not usable in a constant expression
l2 = FFT<mint2>::conv(l2, r2);
^
0_0_38435123_2967.cpp:326:10: note: 'mint2' was not declared 'constexpr'
vector<mint2> l2(n), r2(m);
^
0_0_38435123_2967.cpp:331:17: error: type/value mismatch at argument 1 in template parameter list for 'template<class> class FFT'
l2 = FFT<mint2>::conv(l2, r2);
^
0_0_38435123_2967.cpp:331:17: error: expected a type, got 'mint2'
0_0_38435123_2967.cpp:333:9: error: 'mint1' does not name a type
const mint1 im0 = 1 / mint1(mod0);
^
0_0_38435123_2967.cpp:334:9: error: 'mint2' does not name a type
const mint2 im1 = 1 / mint2(mod1), im0m1 = im1 / mod0;
^
0_0_38435123_2967.cpp:337:23: error: invalid types 'int[int]' for array subscript
int y0 = (int) l0[i];
^
0_0_38435123_2967.cpp:338:20: error: 'im0' was not declared in this scope
int y1 = (int) (im0 * (l1[i] - y0));
^
0_0_38435123_2967.cpp:338:31: error: invalid types 'int[int]' for array subscript
int y1 = (int) (im0 * (l1[i] - y0));
^
0_0_38435123_2967.cpp:339:20: error: 'im0m1' was not declared in this scope
int y2 = (int) (im0m1 * (l2[i] - y0) - im1 * y1);
^
0_0_38435123_2967.cpp:339:33: error: invalid types 'int[int]' for array subscript
int y2 = (int) (im0m1 * (l2[i] - y0) - im1 * y1);
^
0_0_38435123_2967.cpp:339:43: error: 'im1' was not declared in this scope
int y2 = (int) (im0m1 * (l2[i] - y0) - im1 * y1);
^
0_0_38435123_2967.cpp: In function 'int main()':
0_0_38435123_2967.cpp:350:31: error: type/value mismatch at argument 2 in template parameter list for 'template<class mint, template<const int& <anonymous> > class MInt, template<class> class FFT> struct FFTMod'
using FFT = FFTMod<mint, MInt>;
^
0_0_38435123_2967.cpp:350:31: error: expected a template of type 'template<const int& <anonymous> > class MInt', got 'template<unsigned int mod> struct MInt'
0_0_38435123_2967.cpp:351:29: error: type/value mismatch at argument 2 in template parameter list for 'template<class T, class FFT> struct Poly'
using poly = Poly<mint, FFT>;
^
0_0_38435123_2967.cpp:351:29: error: expected a type, got 'FFT'
0_0_38435123_2967.cpp:363:85: error: no matching function for call to 'CDQDivdeAndConquer(std::vector<MInt2>&, std::vector<MInt2>&, main()::<lambda(int, mint)>)'
CDQDivdeAndConquer<mint, FFT>(fs, as, [&](int i, mint x) { return as[i] * i - x; });
^
0_0_38435123_2967.cpp:363:85: note: candidate is:
0_0_38435123_2967.cpp:142:6: note: template<class T, class FFT> void CDQDivdeAndConquer(std::vector<_RealType>&, const std::vector<_RealType>&, const std::function<T(int, const T&)>&)
void CDQDivdeAndConquer(vector<T> &as, const vector<T> &bs, const function<T(int, const T&)> &f) {
^
0_0_38435123_2967.cpp:142:6: note: template argument deduction/substitution failed:
0_0_38435123_2967.cpp: In lambda function:
0_0_38435123_2967.cpp:367:4: error: 'poly' was not declared in this scope
poly rs(n / g + 1);
^
0_0_38435123_2967.cpp:369:5: error: 'rs' was not declared in this scope
rs[i] = fs[i * g];
^
0_0_38435123_2967.cpp:371:11: error: 'rs' was not declared in this scope
return rs.exp()[n / g] * fac[n];
^
|