diff options
| author | mzuenni <mzuenni@users.noreply.github.com> | 2024-07-28 22:54:40 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-28 22:54:40 +0200 |
| commit | 8d11c6c8213f46f0fa19826917c255edd5d43cb1 (patch) | |
| tree | 96d75baff33d5a04b5a60f1a41f514a26c716874 /math/polynomial.cpp | |
| parent | 8c33b4e0d3030cfed17fc64b4fe41133339f6d87 (diff) | |
Test (#4)
* update
* moved content in subdir
* rename file
* add test setup
* add test setup
* add github action
* automaticly test all cpp files
* timeout after 10s
* setulimit and dont zero memory
* test build pdf
* install latexmk
* update
* update
* ngerman
* fonts
* removed old code
* add first test
* added tests
* test in sorted order
* more tests
* simplified test
* more tests
* fix suffix tree
* fixes and improvements
* done ust lst directly
* fix swap
* add links to pdf
* fix constants
* add primorial
* add comment
* various improvements
* more tests
* added missing stuf
* more tests
* fix tests
* more tests
* more tests
* more tests
* fix recursion?
* test trie
* more tests
* only use python temporarily for listings
* only use python temporarily for listings
* more tests
* fix longestCommonSubstring
* more tests
* more tests
* made code more similiar
* fix?
* more tests
* more tests
* more tests
* add ahoCorasick test + limit 4GB stack size
* more tests
* fix test
* add additional test
* more tests
* more tests
* fix?
* better fix
* fix virtual tree
* more tests
* more tests
* recursive closest pair
* more tests
* decrease limit
* new tests
* more tests
* fix name
* more tests
* add test
* new test
* more tests
* more tests
* more tests
* more tests
* new test and content
* new code
* new code
* larger tests
* fix and test
* new test
* new test
* update pdf
* remove comments
* new test
* more tests
* more testcases
* more tests
* increased limit
* more tests
* more tests
* more tests
* new tests
* more tests
* shortened code
* new test
* add basic tests for bigint
* more tests
* removed old files
* new test
* ignore some files
* more auto more ccw
* fix test
* more tests
* fix
* new tests
* more tests
* more tests
* stronger test
* actually verify delaunay...
* more tests
* fix header
* more tests
* run tests parallel?
* test parralel?
* add --missing
* separate workflows
* test
* is the pdf checked?
* separate workflows
* fix workflow
* more workflows
---------
Co-authored-by: Yidi <noob999noob999@gmail.com>
Diffstat (limited to 'math/polynomial.cpp')
| -rw-r--r-- | math/polynomial.cpp | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/math/polynomial.cpp b/math/polynomial.cpp deleted file mode 100644 index 44f6207..0000000 --- a/math/polynomial.cpp +++ /dev/null @@ -1,65 +0,0 @@ -struct poly { - vector<ll> data; - - poly(int deg = 0) : data(max(1, deg)) {} - poly(initializer_list<ll> _data) : data(_data) {} - - int size() const {return sz(data);} - - void trim() { - for (ll& x : data) x = (x % mod + mod) % mod; - while (size() > 1 && data.back() == 0) data.pop_back(); - } - - ll& operator[](int x) {return data[x];} - const ll& operator[](int x) const {return data[x];} - - ll operator()(int x) const { - ll res = 0; - for (int i = size() - 1; i >= 0; i--) - res = (res * x + data[i]) % mod; - return res % mod; - } - - poly& operator+=(const poly& o) { - if (size() < o.size()) data.resize(o.size()); - for (int i = 0; i < o.size(); i++) - data[i] = (data[i] + o[i]) % mod; - return *this; - } - - poly operator*(const poly& o) const { - poly res(size() + o.size() - 1); - for (int i = 0; i < size(); i++) { - for (int j = 0; j < o.size(); j++) { - res[i + j] += (data[i] * o[j]) % mod; - }} - res.trim(); - return res; - } - - //return p(x+a) - poly operator<<(ll a) const { - poly res(size()); - for (int i = size() - 1; i >= 0; i--) { - for (int j = size() - i - 1; j >= 1; j--) - res[j] = (res[j] * a + res[j - 1]) % mod; - res[0] = (res[0] * a + res[i]) % mod; - } - return res; - } - - pair<poly, poly> divmod(const poly& d) const { - int i = size() - d.size(); - poly s(i + 1), r = *this; - ll inv = multInv(d.data.back(), mod); - for (; i >= 0; i--) { - s[i] = (r.data.back() * inv) % mod; - r.data.pop_back(); - for (int j = 0; i + j < r.size(); j++) { - r[i + j] = (r.data[i + j] - s[i] * d[j]) % mod; - }} - s.trim(); r.trim(); - return {s, r}; - } -}; |
