fix: galois — 添加 #[inline] 和 div_by_zero 测试
This commit is contained in:
@@ -56,6 +56,7 @@ pub fn sub(a: u8, b: u8) -> u8 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// GF(2⁸) 乘法:a * b
|
/// GF(2⁸) 乘法:a * b
|
||||||
|
#[inline]
|
||||||
pub fn mul(a: u8, b: u8) -> u8 {
|
pub fn mul(a: u8, b: u8) -> u8 {
|
||||||
if a == 0 || b == 0 {
|
if a == 0 || b == 0 {
|
||||||
return 0;
|
return 0;
|
||||||
@@ -66,6 +67,7 @@ pub fn mul(a: u8, b: u8) -> u8 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// GF(2⁸) 除法:a / b
|
/// GF(2⁸) 除法:a / b
|
||||||
|
#[inline]
|
||||||
pub fn div(a: u8, b: u8) -> u8 {
|
pub fn div(a: u8, b: u8) -> u8 {
|
||||||
if a == 0 {
|
if a == 0 {
|
||||||
return 0;
|
return 0;
|
||||||
@@ -80,6 +82,7 @@ pub fn div(a: u8, b: u8) -> u8 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// GF(2⁸) 幂运算:base^exp
|
/// GF(2⁸) 幂运算:base^exp
|
||||||
|
#[inline]
|
||||||
pub fn pow(base: u8, exp: usize) -> u8 {
|
pub fn pow(base: u8, exp: usize) -> u8 {
|
||||||
if exp == 0 {
|
if exp == 0 {
|
||||||
return 1;
|
return 1;
|
||||||
@@ -154,6 +157,12 @@ mod tests {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
#[should_panic(expected = "除以零")]
|
||||||
|
fn test_div_by_zero_panics() {
|
||||||
|
div(1, 0);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_pow() {
|
fn test_pow() {
|
||||||
// α^0 = 1
|
// α^0 = 1
|
||||||
|
|||||||
Reference in New Issue
Block a user