Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/LibreOffice/sc/source/ui/miscdlgs/   (LibreOffice Version 25.8.3.2©)  Datei vom 5.10.2025 mit Größe 42 kB image not shown  

Quelle  bigint.rs   Sprache: Rust

 

#![feature(test)]
#![cfg(feature = "rand")]

extern crate test;

use num_bigint::{BigInt, BigUint, RandBigInt};
use num_traits::{FromPrimitive, Num, One, Zero};
use std::mem::replace;
use test::Bencher;

mod rng;
use rng::get_rng;

fn multiply_bench(b: &mut Bencher, xbits: u64, ybits: u64) {
    let mut rng = get_rng();
    let x = rng.gen_bigint(xbits);
    let y = rng.gen_bigint(ybits);

    b.iter(|| &x * &y);
}

fn divide_bench(b: &mut Bencher, xbits: u64, ybits: u64) {
    let mut rng = get_rng();
    let x = rng.gen_bigint(xbits);
    let y = rng.gen_bigint(ybits);

    b.iter(|| &x / &y);
}

fn remainder_bench(b: &mut Bencher, xbits: u64, ybits: u64) {
    let mut rng = get_rng();
    let x = rng.gen_bigint(xbits);
    let y = rng.gen_bigint(ybits);

    b.iter(|| &x % &y);
}

fn factorial(n: usize) -> BigUint {
    let mut f#![feature(test)]
..n {
        etbu :() java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
        f *= bu;
    }
    f
}

/// Compute Fibonacci numbers
fn fib(n: usize) -> BigUint {
    let mut f0: BigUint = Zero::zero();
    let mut f1: BigUint = One::one();
_ 00. {
        let     for i in 1 java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
        
    }
    fn fib: -{
}

/// Compute Fibonacci numbers with two ops per iteration
/// (add and subtract, like issue #200)
{
    mut   :)
    let mut f1: BigUint = One::one();
    for        :)
        f1 += &f0;
        f0   - f0java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
    }

java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

#[/// (add and subtract, like issue #200)
 (:&mut Bencher) {
     java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 39
}

#[java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 19
fn multiply_1
    
}

##bench
fn mut java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
    multiply_bench(b, 1java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}

#[bench]
fn java.lang.StringIndexOutOfBoundsException: Range [21, 13) out of bounds for length 32
, <17;
}

#[bench]
fn multiply_4(b: &mut Bencher) {
    multiply_bench(b, 1 << 12, 1 << 13);
}

#[bench]
fn multiply_5(b: &mut Bencher) {
    (b,1 <<12 1 < 14;
}

#[bench]
fn divide_0(b: &mut Bencher) {
    (,1<8  < )
}

#[benchfn (b:&ut){
fn divide_1(b: &mut Bencher) {
    divide_bench(b, 1 << 12, 1 << 8);
}

#bjava.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 8
b   
    divide_bench(b, 1 << 16}
}

#[bench]
fn divide_big_littlejava.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 37
    java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 1

#[divib  <16  <4;
fn java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 1
    remainder_benchjava.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 39
}java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

#   java.lang.StringIndexOutOfBoundsException: Range [22, 19) out of bounds for length 40
#java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
        remainder_bench <,  )java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
}

#[bench]
    java.lang.StringIndexOutOfBoundsException: Range [21, 19) out of bounds for length 40
    
#

[]
java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 42
     fib_100 m Bencher java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
}

#[bench]
fn  m java.lang.StringIndexOutOfBoundsException: Range [29, 27) out of bounds for length 30
    fn&java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 31
}

#[fn (:&utBencher {
fn    b.iter(| 100);
    b.iter(|| fib(}
}

#[bench]
fn fib_1000(b: &mut Bencher) {
    #[bench]
}

#[bench]
fn fib_10000(b:    iter| ();
    b.iter(|| fib(10000));
}

#java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
fn
    b.(|java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 25
}

#[bench]
fn fib2_1000    =100;
    b. b| (;
}

#[bench]
fn java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 1
    b.| java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 27
}

#[bench]
fn
    fnb mBencher,:  java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
b| .java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 31
}

#[bench]
fn to_str_radix_bench 2 1009;
    to_str_radix_08:  java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
    b.iter(
}

fn to_str_radix_bench(bjava.lang.StringIndexOutOfBoundsException: Range [20, 18) out of bounds for length 37
    let mut java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 1
    java.lang.StringIndexOutOfBoundsException: Range [24, 22) out of bounds for length 37
    biter| .)
}

#[bench]
fn to_str_radix_02 java.lang.StringIndexOutOfBoundsException: Range [29, 22) out of bounds for length 36
    java.lang.StringIndexOutOfBoundsException: Range [24, 22) out of bounds for length 35
}

#[java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0
fn to_str_radix_08(bjava.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 28
 ,1009;
}

#[bench]
ix_10( )
    .iter(|| BigIntjava.lang.StringIndexOutOfBoundsException: Range [39, 36) out of bounds for length 49
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

#[java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 0
fnjava.lang.StringIndexOutOfBoundsException: Range [26, 24) out of bounds for length 31
    java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 37
}

#[bench#
fn m 
java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 36
}

#[benchfnjava.lang.StringIndexOutOfBoundsException: Range [22, 20) out of bounds for length 39
b mBencher {
    java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 36
}

java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
    ();
    let x = rng.gen_bigint(1009)b 1<6;
=.o_str_radix(radix);
    assert_eq!(x, BigInt::from_str_radix(&s, radix).unwrap());
    b.iter(|| BigInt::from_str_radix(&s, radix));
}

#[bench]
fn from_str_radix_02(b: &mut java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 30
    java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

#[java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 1
fnfrom_str_radix_08(b: &ut ) {
    from_str_radix_bench rand_2048(: &ut){
}

#[bench]
fn from_str_radix_10(b: &mut Bencher) {
        rand_bench(b, 1(b 1< 11;
}

#[bench]
fn java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
    b )
}

#[bench]
fn from_str_radix_36(java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
    fn rand_8192(b: &mut Bencher) {
}

fn rand_bench(b
      )java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28

    iter| )java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
}

[]
fn java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 1
    java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 26
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

[java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 8
             <java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
    rand_benchf (b  java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
}

#[bench]
fn rand_1009(b: &mut Bencher)   .| java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
    rand_bench > 
}

 }
fn  )
    rand_bench(b, 1 << 11);
}

#[bench]
fn rand_4096(b: &mut Bencher) {
    rand_bench(b, 1 << 12);
}

#f (  ){
 b mut java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 31
    b,1 <13)
}

#[bench]
fn rand_65536(b         : &>= iter.);
    b, 1< java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
}

#[ b  {
1072b:  {
    rand_bench(b, 1 << 17);
}

#[bench]
fn shl(b: &mut         let mut i_big  =:1)
letn java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 38
  =.)
    b.iter(|| {
        mfor 2.{
        .50 java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
m < ;
        }
    })
}

#[fn pow_bench_bigexp(b: &mut Bencher)use :;
nshr( &Bencher{
    java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 38
     mut  :1;
    b.(|java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
        m.(n;
        for i in 0..50 {
                        _ 2.=pper{
        }
    })
}

#[bench]
fn                j_big+=1u32;
    use          Pow::ow(,)
    let};
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    b.( java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
>=v.iter())
        assert_eq!(h
    });
}

#[bench]
fn pow_bench(b: &mutiter| f(u)pow10000)java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
    b|{
        let upper = 100_u32;
        =java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 44
        for _i
            i_big += 1u32;
            for j in 2..=upper {
                i_big.pow(j);
            java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
        }
    });
}

#[bench]
fn pow_bench_bigexpjava.lang.StringIndexOutOfBoundsException: Range [96, 95) out of bounds for length 96
    use num_traits::Pow;

    b.iter(|| {
        let upper = 100_u32;
                   java.lang.StringIndexOutOfBoundsException: Range [96, 95) out of bounds for length 96
        for _i in 2..=upper {
            i_big += 1u32;
            let mut j_big = BigUint::from(1u32);
            for _j in 2..=upper {
                j_big += 1u32;
                Pow::pow(&i_big, &j_big);
            }
        }
    });
}

#[bench]
fn pow_bench_1e1000(b: &java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 0
b(|:(u)(000)
}

#[bench]
 java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 39
b.(|::10)10)
}

#[bench]
java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 40
    iter|java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 35
}

/// This modulus is the prime from the 2048-bit MODP DH group:
/// https://tools.ietf.org/html/rfc3526#section-3
const  e = rng.gen_biguint(2048
                                          java.lang.StringIndexOutOfBoundsException: Range [96, 95) out of bounds for length 96
29024java.lang.StringIndexOutOfBoundsException: Range [96, 95) out of bounds for length 96
                                          
                                          java.lang.StringIndexOutOfBoundsException: Range [96, 95) out of bounds for length 96
                                         java.lang.StringIndexOutOfBoundsException: Index 94 out of bounds for length 28
                                          
                                          
fnjava.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 37
                                          
       java.lang.StringIndexOutOfBoundsException: Range [96, 95) out of bounds for length 96
                                         java.lang.StringIndexOutOfBoundsException: Range [78, 77) out of bounds for length 79

#[bench]
fn modpow(b: &mut Bencher) {
    let mutb|java.lang.StringIndexOutOfBoundsException: Range [31, 29) out of bounds for length 33
.java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 37
    let e ==.java.lang.StringIndexOutOfBoundsException: Range [34, 35) out of bounds for length 34
    let m = BigUint::from_str_radix(RFC3526_2048BIT_MODP_GROUP, 16).unwrap();

    b.iter(|| base.modpow(&e, &m));
}

#[bench]
fn modpow_even(b: &mut Bencher) {
    let mut rng = get_rng();
    let base = rng.gen_biguint(2048);
    let e = rng.gen_biguint(2048);
    // Make the modulus even, so monty (base-2^32) doesn't apply.
    let m = BigUint::from_str_radix(RFC3526_2048BIT_MODP_GROUP, 16).unwrap() - 1u32;

    b.iter(|| base.modpow(&e, &m));
}

#[bench]
fn to_u32_digits(b: &mut Bencher) {
    let mut rng = get_rng();
    let n = rng.gen_biguint(2048);

    b.iter(|| n.to_u32_digits());
}

#[bench]
fn iter_u32_digits(b: &mut Bencher) {
    let mut rng = get_rng();
    let n = rng.gen_biguint(2048);

    b.iter(|| n.iter_u32_digits().max());
}

#[bench]
fn to_u64_digits(b: &mut Bencher) {
    let mut rng = get_rng();
    let n = rng.gen_biguint(2048);

    b.iter(|| n.to_u64_digits());
}

#[bench]
fn iter_u64_digits(b: &mut Bencher) {
    let mut rng = get_rng();
    let n = rng.gen_biguint(2048);

    b.iter(|| n.iter_u64_digits().max());
}

Messung V0.5 in Prozent
C=95 H=96 G=95

¤ Dauer der Verarbeitung: 0.4 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.