Fix Barrett reduction.
This commit is contained in:
@@ -214,10 +214,8 @@ impl UCN {
|
|||||||
let mut r1 = self.clone();
|
let mut r1 = self.clone();
|
||||||
r1.contents.resize(u.k + 1, 0);
|
r1.contents.resize(u.k + 1, 0);
|
||||||
println!("r1: {:X}", r1);
|
println!("r1: {:X}", r1);
|
||||||
let mut mlimited = u.m.clone();
|
let mut r2 = q3 * &u.m;
|
||||||
mlimited.contents.resize(u.k + 1, 0);
|
r2.contents.resize(u.k + 1, 0);
|
||||||
let r2 = q3 * &mlimited;
|
|
||||||
println!("r2: {:X}", r2);
|
|
||||||
let mut r = if r1 >= r2 {
|
let mut r = if r1 >= r2 {
|
||||||
r1 - r2
|
r1 - r2
|
||||||
} else {
|
} else {
|
||||||
@@ -226,12 +224,10 @@ impl UCN {
|
|||||||
bk1cont.push(1);
|
bk1cont.push(1);
|
||||||
(r1 + UCN{ contents: bk1cont }) - r2
|
(r1 + UCN{ contents: bk1cont }) - r2
|
||||||
};
|
};
|
||||||
println!("r: {:?}", r);
|
|
||||||
// 4. Whiler≥mdo:r←r−m.
|
// 4. Whiler≥mdo:r←r−m.
|
||||||
while &r >= &u.m {
|
while &r >= &u.m {
|
||||||
r -= &u.m;
|
r -= &u.m;
|
||||||
}
|
}
|
||||||
println!("r: {:?}", r);
|
|
||||||
// 5. Return(r).
|
// 5. Return(r).
|
||||||
r
|
r
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user