summaryrefslogtreecommitdiff
path: root/sem2/src/mpn.rs
diff options
context:
space:
mode:
Diffstat (limited to 'sem2/src/mpn.rs')
-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 };