0_0_39723001_27971.cpp: In member function 'static_modint<m>::mint static_modint<m>::pow(ll) const':
0_0_39723001_27971.cpp:81:9: error: there are no arguments to 'assert' that depend on a template parameter, so a declaration of 'assert' must be available [-fpermissive]
81 | assert(n >= 0);
| ^~~~~~
0_0_39723001_27971.cpp:81:9: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
0_0_39723001_27971.cpp: At global scope:
0_0_39723001_27971.cpp:155:13: error: 'vector' does not name a type
155 | typedef vector<mint> poly;
| ^~~~~~
0_0_39723001_27971.cpp: In function 'int NTT::primitive_root(ll)':
0_0_39723001_27971.cpp:169:9: error: 'assert' was not declared in this scope
169 | assert(0);
| ^~~~~~
0_0_39723001_27971.cpp:1:1: note: 'assert' is defined in header '<cassert>'; did you forget to '#include <cassert>'?
+++ |+#include <cassert>
1 | typedef long long ll;
0_0_39723001_27971.cpp: At global scope:
0_0_39723001_27971.cpp:178:14: error: 'int NTT::norm' redeclared as different kind of entity
178 | int norm(poly& a)
| ^~~~
0_0_39723001_27971.cpp:172:9: note: previous declaration 'int NTT::norm(int)'
172 | int norm(int n)
| ^~~~
0_0_39723001_27971.cpp:178:14: error: 'poly' was not declared in this scope
178 | int norm(poly& a)
| ^~~~
0_0_39723001_27971.cpp:178:20: error: 'a' was not declared in this scope
178 | int norm(poly& a)
| ^
0_0_39723001_27971.cpp:187:5: error: 'vector' does not name a type
187 | vector<mint> Omega(const int n = 1 << (static_cast<int>(std::log2(maxn << 2))))
| ^~~~~~
0_0_39723001_27971.cpp:201:14: error: 'Omega' was not declared in this scope
201 | auto W = Omega();
| ^~~~~
0_0_39723001_27971.cpp:203:10: error: variable or field 'DIF' declared void
203 | void DIF(poly& a)
| ^~~
0_0_39723001_27971.cpp:203:14: error: 'poly' was not declared in this scope
203 | void DIF(poly& a)
| ^~~~
0_0_39723001_27971.cpp:203:20: error: 'a' was not declared in this scope
203 | void DIF(poly& a)
| ^
0_0_39723001_27971.cpp:221:10: error: variable or field 'IDIT' declared void
221 | void IDIT(poly& a)
| ^~~~
0_0_39723001_27971.cpp:221:15: error: 'poly' was not declared in this scope
221 | void IDIT(poly& a)
| ^~~~
0_0_39723001_27971.cpp:221:21: error: 'a' was not declared in this scope
221 | void IDIT(poly& a)
| ^
0_0_39723001_27971.cpp:246:10: error: variable or field 'DFT' declared void
246 | void DFT(poly& a, int n)
| ^~~
0_0_39723001_27971.cpp:246:14: error: 'poly' was not declared in this scope
246 | void DFT(poly& a, int n)
| ^~~~
0_0_39723001_27971.cpp:246:20: error: 'a' was not declared in this scope
246 | void DFT(poly& a, int n)
| ^
0_0_39723001_27971.cpp:246:23: error: expected primary-expression before 'int'
246 | void DFT(poly& a, int n)
| ^~~
0_0_39723001_27971.cpp:251:10: error: variable or field 'IDFT' declared void
251 | void IDFT(poly& a, int n)
| ^~~~
0_0_39723001_27971.cpp:251:15: error: 'poly' was not declared in this scope
251 | void IDFT(poly& a, int n)
| ^~~~
0_0_39723001_27971.cpp:251:21: error: 'a' was not declared in this scope
251 | void IDFT(poly& a, int n)
| ^
0_0_39723001_27971.cpp:251:24: error: expected primary-expression before 'int'
251 | void IDFT(poly& a, int n)
| ^~~
0_0_39723001_27971.cpp:258:5: error: 'poly' does not name a type
258 | poly& dot(poly& a, poly& b)
| ^~~~
0_0_39723001_27971.cpp:265:5: error: 'poly' does not name a type
265 | poly poly_mul(poly A, poly B)
| ^~~~
0_0_39723001_27971.cpp:279:5: error: 'poly' does not name a type
279 | poly inv2k(poly a)
| ^~~~
0_0_39723001_27971.cpp:298:5: error: 'poly' does not name a type
298 | poly poly_inv(poly a)
| ^~~~
0_0_39723001_27971.cpp:307:5: error: 'poly' does not name a type
307 | poly poly_dev(poly f)
| ^~~~
0_0_39723001_27971.cpp:315:5: error: 'poly' does not name a type
315 | poly poly_idev(poly f)
| ^~~~
0_0_39723001_27971.cpp:323:5: error: 'poly' does not name a type
323 | poly poly_ln(poly f)
| ^~~~
0_0_39723001_27971.cpp:330:5: error: 'poly' does not name a type
330 | poly poly_exp(const poly& f, int deg)
| ^~~~
0_0_39723001_27971.cpp:350:5: error: 'poly' does not name a type
350 | poly poly_sqrt(poly& f, int deg)
| ^~~~
0_0_39723001_27971.cpp:370:5: error: 'poly' does not name a type
370 | poly poly_pow(poly f, int k)
| ^~~~
0_0_39723001_27971.cpp:378:5: error: 'poly' does not name a type
378 | poly poly_f(int l, int r)
| ^~~~
0_0_39723001_27971.cpp:392:5: error: 'poly' does not name a type
392 | poly operator+=(poly& A, const poly& B)
| ^~~~
0_0_39723001_27971.cpp:400:5: error: 'poly' does not name a type
400 | poly operator-=(poly& A, const poly& B)
| ^~~~
0_0_39723001_27971.cpp:408:5: error: 'poly' does not name a type
408 | poly operator*=(poly& A, const poly& B)
| ^~~~
0_0_39723001_27971.cpp:421:5: error: 'poly' does not name a type
421 | poly operator/=(poly& A, const poly& B)
| ^~~~
0_0_39723001_27971.cpp:428:5: error: 'poly' does not name a type
428 | poly operator+(poly A, const poly& B)
| ^~~~
0_0_39723001_27971.cpp:433:5: error: 'poly' does not name a type
433 | poly operator-(poly A, const poly& B)
| ^~~~
0_0_39723001_27971.cpp:438:5: error: 'poly' does not name a type
438 | poly operator*(poly A, const poly& B)
| ^~~~
0_0_39723001_27971.cpp:443:5: error: 'poly' does not name a type
443 | poly operator/(poly A, const poly& B)
| ^~~~
|