@@ -110,17 +110,13 @@ template <int md> struct ModInt {
110110 while (n >= int (facs.size ())) _precalculation (facs.size () * 2 );
111111 return facs[n];
112112 }
113- [[deprecated(" use static method" )]] constexpr ModInt fac () { return ModInt::fac (this ->val_ ); }
114113
115114 constexpr static ModInt facinv (int n) {
116115 assert (n >= 0 );
117116 if (n >= md) return ModInt (0 );
118117 while (n >= int (facs.size ())) _precalculation (facs.size () * 2 );
119118 return facinvs[n];
120119 }
121- [[deprecated(" use static method" )]] constexpr ModInt facinv () {
122- return ModInt::facinv (this ->val_ );
123- }
124120
125121 constexpr static ModInt doublefac (int n) {
126122 assert (n >= 0 );
@@ -129,28 +125,18 @@ template <int md> struct ModInt {
129125 return (n & 1 ) ? ModInt::fac (k * 2 ) / (ModInt (2 ).pow (k) * ModInt::fac (k))
130126 : ModInt::fac (k) * ModInt (2 ).pow (k);
131127 }
132- [[deprecated(" use static method" )]] constexpr ModInt doublefac () {
133- return ModInt::doublefac (this ->val_ );
134- }
135128
136129 constexpr static ModInt nCr (int n, int r) {
137130 assert (n >= 0 );
138131 if (r < 0 or n < r) return ModInt (0 );
139132 return ModInt::fac (n) * ModInt::facinv (r) * ModInt::facinv (n - r);
140133 }
141- [[deprecated(" use static method" )]] constexpr ModInt nCr (int r) {
142- return ModInt::nCr (this ->val_ , r);
143- }
144134
145135 constexpr static ModInt nPr (int n, int r) {
146136 assert (n >= 0 );
147137 if (r < 0 or n < r) return ModInt (0 );
148138 return ModInt::fac (n) * ModInt::facinv (n - r);
149139 }
150- [[deprecated(" use static method" )]] constexpr ModInt nPr (int r) {
151- if (r < 0 or this ->val_ < r) return ModInt (0 );
152- return ModInt::nPr (this ->val_ , r);
153- }
154140
155141 static ModInt binom (int n, int r) {
156142 static long long bruteforce_times = 0 ;
0 commit comments