summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Guschin <guschin.drew@gmail.com>2023-04-03 21:35:47 +0400
committerAndrew Guschin <guschin.drew@gmail.com>2023-04-03 21:35:47 +0400
commit22f0b3f854c23904e84a305df84872ed7c472d14 (patch)
tree90b4605a02a9f1440247b6a919dc449182a7e9ea
parent791688565eb840954b64416fa4fde17c341522bc (diff)
Добавлена b^n+1division
-rw-r--r--sem2/src/mpn.rs8
1 files changed, 7 insertions, 1 deletions
diff --git a/sem2/src/mpn.rs b/sem2/src/mpn.rs
index 97ba55d..1709136 100644
--- a/sem2/src/mpn.rs
+++ b/sem2/src/mpn.rs
@@ -301,10 +301,16 @@ impl Number {
)
.unwrap();
+ let b_num = Number::from_digits(&vec![0, 1], self.radix).unwrap();
+ let mut b_pow = Number::from_digits(&vec![1], self.radix).unwrap();
+ for _ in 0..=n {
+ b_pow = b_pow * b_num.clone();
+ }
+
let (p, q) = if u_sub >= qv {
(u_sub - qv, q as u8)
} else {
- (u_sub + v_number.clone() - qv, (q - 1) as u8)
+ (u_sub + b_pow - qv + v_number.clone(), (q - 1) as u8)
};
for i in 0..n + 1 {
u[j + i] = if i < p.len() { p.digits[i] } else { 0 };