@@ -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