@@ -26,7 +26,7 @@ pub struct MillerRabin<T: Integer> {
2626
2727impl < T : Integer + RandomMod > MillerRabin < T > {
2828 /// Initializes a Miller-Rabin test for `candidate`.
29- pub fn new ( candidate : Odd < T > ) -> Self {
29+ pub fn new ( candidate : & Odd < T > ) -> Self {
3030 let params = <T as Integer >:: Monty :: new_params_vartime ( candidate. clone ( ) ) ;
3131 let one = <T as Integer >:: Monty :: one ( params. clone ( ) ) ;
3232 let minus_one = -one. clone ( ) ;
@@ -131,7 +131,7 @@ mod tests {
131131
132132 #[ test]
133133 fn miller_rabin_derived_traits ( ) {
134- let mr = MillerRabin :: new ( Odd :: new ( U64 :: ONE ) . unwrap ( ) ) ;
134+ let mr = MillerRabin :: new ( & Odd :: new ( U64 :: ONE ) . unwrap ( ) ) ;
135135 assert ! ( format!( "{mr:?}" ) . starts_with( "MillerRabin" ) ) ;
136136 assert_eq ! ( mr. clone( ) , mr) ;
137137 }
@@ -141,7 +141,7 @@ mod tests {
141141 expected = "No suitable random base possible when `candidate == 3`; use the base 2 test."
142142 ) ]
143143 fn random_base_range_check ( ) {
144- let mr = MillerRabin :: new ( Odd :: new ( U64 :: from ( 3u32 ) ) . unwrap ( ) ) ;
144+ let mr = MillerRabin :: new ( & Odd :: new ( U64 :: from ( 3u32 ) ) . unwrap ( ) ) ;
145145 mr. test_random_base ( & mut OsRng ) ;
146146 }
147147
@@ -173,7 +173,7 @@ mod tests {
173173 // with about 1/4 probability. So we're expecting less than
174174 // 35 out of 100 false positives, seems to work.
175175
176- let mr = MillerRabin :: new ( Odd :: new ( U64 :: from ( * num) ) . unwrap ( ) ) ;
176+ let mr = MillerRabin :: new ( & Odd :: new ( U64 :: from ( * num) ) . unwrap ( ) ) ;
177177 assert_eq ! (
178178 mr. test_base_two( ) . is_probably_prime( ) ,
179179 actual_expected_result
@@ -191,7 +191,7 @@ mod tests {
191191 let mut rng = ChaCha8Rng :: from_seed ( * b"01234567890123456789012345678901" ) ;
192192 let start = random_odd_integer :: < U1024 > ( & mut rng, NonZeroU32 :: new ( 1024 ) . unwrap ( ) ) ;
193193 for num in Sieve :: new ( start. as_ref ( ) , NonZeroU32 :: new ( 1024 ) . unwrap ( ) , false ) . take ( 10 ) {
194- let mr = MillerRabin :: new ( Odd :: new ( num) . unwrap ( ) ) ;
194+ let mr = MillerRabin :: new ( & Odd :: new ( num) . unwrap ( ) ) ;
195195
196196 // Trivial tests, must always be true.
197197 assert ! ( mr. test( & 1u32 . into( ) ) . is_probably_prime( ) ) ;
@@ -206,7 +206,7 @@ mod tests {
206206 // Mersenne prime 2^127-1
207207 let num = Odd :: new ( U128 :: from_be_hex ( "7fffffffffffffffffffffffffffffff" ) ) . unwrap ( ) ;
208208
209- let mr = MillerRabin :: new ( num) ;
209+ let mr = MillerRabin :: new ( & num) ;
210210 assert ! ( mr. test_base_two( ) . is_probably_prime( ) ) ;
211211 for _ in 0 ..10 {
212212 assert ! ( mr. test_random_base( & mut rng) . is_probably_prime( ) ) ;
@@ -218,7 +218,7 @@ mod tests {
218218 let mut rng = ChaCha8Rng :: from_seed ( * b"01234567890123456789012345678901" ) ;
219219
220220 for num in pseudoprimes:: STRONG_FIBONACCI . iter ( ) {
221- let mr = MillerRabin :: new ( Odd :: new ( * num) . unwrap ( ) ) ;
221+ let mr = MillerRabin :: new ( & Odd :: new ( * num) . unwrap ( ) ) ;
222222 assert ! ( !mr. test_base_two( ) . is_probably_prime( ) ) ;
223223 for _ in 0 ..1000 {
224224 assert ! ( !mr. test_random_base( & mut rng) . is_probably_prime( ) ) ;
@@ -246,7 +246,7 @@ mod tests {
246246
247247 #[ test]
248248 fn large_carmichael_number ( ) {
249- let mr = MillerRabin :: new ( Odd :: new ( pseudoprimes:: LARGE_CARMICHAEL_NUMBER ) . unwrap ( ) ) ;
249+ let mr = MillerRabin :: new ( & Odd :: new ( pseudoprimes:: LARGE_CARMICHAEL_NUMBER ) . unwrap ( ) ) ;
250250
251251 // It is known to pass MR tests for all prime bases <307
252252 assert ! ( mr. test_base_two( ) . is_probably_prime( ) ) ;
@@ -259,7 +259,7 @@ mod tests {
259259 fn test_large_primes < const L : usize > ( nums : & [ Uint < L > ] ) {
260260 let mut rng = ChaCha8Rng :: from_seed ( * b"01234567890123456789012345678901" ) ;
261261 for num in nums {
262- let mr = MillerRabin :: new ( Odd :: new ( * num) . unwrap ( ) ) ;
262+ let mr = MillerRabin :: new ( & Odd :: new ( * num) . unwrap ( ) ) ;
263263 assert ! ( mr. test_base_two( ) . is_probably_prime( ) ) ;
264264 for _ in 0 ..10 {
265265 assert ! ( mr. test_random_base( & mut rng) . is_probably_prime( ) ) ;
@@ -286,7 +286,7 @@ mod tests {
286286
287287 let spsp = is_spsp ( num) ;
288288
289- let mr = MillerRabin :: new ( Odd :: new ( U64 :: from ( num) ) . unwrap ( ) ) ;
289+ let mr = MillerRabin :: new ( & Odd :: new ( U64 :: from ( num) ) . unwrap ( ) ) ;
290290 let res = mr. test_base_two ( ) . is_probably_prime ( ) ;
291291 let expected = spsp || res_ref;
292292 assert_eq ! (
0 commit comments