bla
This commit is contained in:
		
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							@ -14,56 +14,58 @@ namespace rand
 | 
			
		||||
    //Simple Deterministic Psuedorandom Number Generator (32 bit version) //
 | 
			
		||||
    ////////////////////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
    static const int32_t dpr32_mod = ( ((int32_t)1) << ((int32_t)30) ) - (int32_t)1;
 | 
			
		||||
    static const int32_t dpr32_mult1 = ( (int32_t) 1201633 );
 | 
			
		||||
    static int32_t dpr32_rseed = 0; // global random number seed for numeric array class
 | 
			
		||||
    typedef int32_t narray_rands_t;
 | 
			
		||||
 | 
			
		||||
    static const narray_rands_t dpr32_mod = ( ((narray_rands_t)1) << ((narray_rands_t)30) ) - (narray_rands_t)1;
 | 
			
		||||
    static const narray_rands_t dpr32_mult1 = ( (narray_rands_t) 1201633 );
 | 
			
		||||
    extern narray_rands_t dpr32_rseed; // global random number seed for numeric array class
 | 
			
		||||
    
 | 
			
		||||
    int32_t dpr32_nextseed(int32_t seed);
 | 
			
		||||
    double dpr32_randd(int32_t *seed);
 | 
			
		||||
    float dpr32_randf(int32_t *seed);
 | 
			
		||||
    double dpr32_gaussian(int32_t *seed);
 | 
			
		||||
    float dpr32_gaussianf(int32_t *seed);
 | 
			
		||||
    int dpr32_randint(int32_t *seed, int low, int high);
 | 
			
		||||
    narray_rands_t dpr32_nextseed(narray_rands_t seed);
 | 
			
		||||
    double dpr32_randd(narray_rands_t *seed);
 | 
			
		||||
    float dpr32_randf(narray_rands_t *seed);
 | 
			
		||||
    double dpr32_gaussian(narray_rands_t *seed);
 | 
			
		||||
    float dpr32_gaussianf(narray_rands_t *seed);
 | 
			
		||||
    int dpr32_randint(narray_rands_t *seed, int low, int high);
 | 
			
		||||
    
 | 
			
		||||
    ams::vect2 dpr32_randuvect2(int32_t *seed);
 | 
			
		||||
    ams::vect3 dpr32_randuvect3(int32_t *seed);
 | 
			
		||||
    ams::vect4 dpr32_randuvect4(int32_t *seed);
 | 
			
		||||
    ams::vect2 dpr32_randuvect2(narray_rands_t *seed);
 | 
			
		||||
    ams::vect3 dpr32_randuvect3(narray_rands_t *seed);
 | 
			
		||||
    ams::vect4 dpr32_randuvect4(narray_rands_t *seed);
 | 
			
		||||
    
 | 
			
		||||
    ams::vect2f dpr32_randuvect2f(int32_t *seed);
 | 
			
		||||
    ams::vect3f dpr32_randuvect3f(int32_t *seed);
 | 
			
		||||
    ams::vect4f dpr32_randuvect4f(int32_t *seed);
 | 
			
		||||
    ams::vect2f dpr32_randuvect2f(narray_rands_t *seed);
 | 
			
		||||
    ams::vect3f dpr32_randuvect3f(narray_rands_t *seed);
 | 
			
		||||
    ams::vect4f dpr32_randuvect4f(narray_rands_t *seed);
 | 
			
		||||
 | 
			
		||||
    ////////////////////////////////////////////
 | 
			
		||||
    //Numeric array threaded random generators//
 | 
			
		||||
    ////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
    int32_t get_rseed();
 | 
			
		||||
    void set_rseed(int32_t seed);
 | 
			
		||||
    narray_rands_t get_rseed();
 | 
			
		||||
    void set_rseed(narray_rands_t seed);
 | 
			
		||||
    void set_rseed_withtimer();
 | 
			
		||||
 | 
			
		||||
    narray<double> narray_rand(narray_size_t N, 
 | 
			
		||||
        int32_t *rseed = &(ams::narray::rand::dpr32_rseed));
 | 
			
		||||
        narray_rands_t *rseed = &(ams::narray::rand::dpr32_rseed));
 | 
			
		||||
    narray<float> narray_randf(narray_size_t N,
 | 
			
		||||
        int32_t *rseed = &(ams::narray::rand::dpr32_rseed));
 | 
			
		||||
        narray_rands_t *rseed = &(ams::narray::rand::dpr32_rseed));
 | 
			
		||||
    narray<double> narray_randgauss(narray_size_t N,
 | 
			
		||||
        int32_t *rseed = &(ams::narray::rand::dpr32_rseed));
 | 
			
		||||
        narray_rands_t *rseed = &(ams::narray::rand::dpr32_rseed));
 | 
			
		||||
    narray<float> narray_randgaussf(narray_size_t N,
 | 
			
		||||
        int32_t *rseed = &(ams::narray::rand::dpr32_rseed));
 | 
			
		||||
        narray_rands_t *rseed = &(ams::narray::rand::dpr32_rseed));
 | 
			
		||||
    
 | 
			
		||||
    narray<int> narray_randint(narray_size_t N, int low, int highexcl,
 | 
			
		||||
        int32_t *rseed = &(ams::narray::rand::dpr32_rseed));
 | 
			
		||||
        narray_rands_t *rseed = &(ams::narray::rand::dpr32_rseed));
 | 
			
		||||
    narray<vect2> narray_randuvect2(narray_size_t N,
 | 
			
		||||
        int32_t *rseed = &(ams::narray::rand::dpr32_rseed));
 | 
			
		||||
        narray_rands_t *rseed = &(ams::narray::rand::dpr32_rseed));
 | 
			
		||||
    narray<vect3> narray_randuvect3(narray_size_t N,
 | 
			
		||||
        int32_t *rseed = &(ams::narray::rand::dpr32_rseed));
 | 
			
		||||
        narray_rands_t *rseed = &(ams::narray::rand::dpr32_rseed));
 | 
			
		||||
    narray<vect4> narray_randuvect4(narray_size_t N,
 | 
			
		||||
        int32_t *rseed = &(ams::narray::rand::dpr32_rseed));
 | 
			
		||||
        narray_rands_t *rseed = &(ams::narray::rand::dpr32_rseed));
 | 
			
		||||
    narray<vect2f> narray_randuvect2f(narray_size_t N,
 | 
			
		||||
        int32_t *rseed = &(ams::narray::rand::dpr32_rseed));
 | 
			
		||||
        narray_rands_t *rseed = &(ams::narray::rand::dpr32_rseed));
 | 
			
		||||
    narray<vect3f> narray_randuvect3f(narray_size_t N,
 | 
			
		||||
        int32_t *rseed = &(ams::narray::rand::dpr32_rseed));
 | 
			
		||||
        narray_rands_t *rseed = &(ams::narray::rand::dpr32_rseed));
 | 
			
		||||
    narray<vect4f> narray_randuvect4f(narray_size_t N,
 | 
			
		||||
        int32_t *rseed = &(ams::narray::rand::dpr32_rseed));
 | 
			
		||||
        narray_rands_t *rseed = &(ams::narray::rand::dpr32_rseed));
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    void test_random1();
 | 
			
		||||
 | 
			
		||||
@ -57,9 +57,19 @@ namespace narray
 | 
			
		||||
 | 
			
		||||
    void narray_testmath2()
 | 
			
		||||
    {
 | 
			
		||||
        rand::narray_rands_t rs = 1943981;
 | 
			
		||||
        rand::set_rseed_withtimer();
 | 
			
		||||
        printf("rseed: %d\n",(int)rand::get_rseed());
 | 
			
		||||
        printf("rseed: %d\n",(int)rand::dpr32_rseed); //< -- this is different than the line above
 | 
			
		||||
 | 
			
		||||
        narray<double> unif = ams::narray::rand::narray_rand(10000);
 | 
			
		||||
        //rand::set_rseed(25);
 | 
			
		||||
        printf("rseed: %d\n",(int)rand::get_rseed());
 | 
			
		||||
        
 | 
			
		||||
        narray<double> unif = ams::narray::rand::narray_rand(5,&rs);
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        printf("rseed: %d\n",(int)rand::get_rseed());
 | 
			
		||||
        
 | 
			
		||||
        double mn1 = narray_mean(unif);
 | 
			
		||||
        double std1 = narray_stdev(unif);
 | 
			
		||||
        double mn2,std2;
 | 
			
		||||
@ -69,11 +79,14 @@ namespace narray
 | 
			
		||||
        //_intl_printarr(unif); printf("\n");
 | 
			
		||||
 | 
			
		||||
        unif = unif*2.0-1.0;
 | 
			
		||||
        //unif.setall(3.5);
 | 
			
		||||
        //_intl_printarr(unif); printf("\n");
 | 
			
		||||
        mn2 = narray_mean(unif);
 | 
			
		||||
        std2 = narray_stdev(unif);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        printf("mn1=%1.3f std1=%1.3f\n",mn1,std1);
 | 
			
		||||
        printf("mn2=%1.3f std2=%1.3f\n",mn2,std2);
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
@ -7,22 +7,27 @@ namespace narray
 | 
			
		||||
namespace rand
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    int32_t dpr32_nextseed(int32_t seed)
 | 
			
		||||
    //defining global random number seed for numeric array random routines
 | 
			
		||||
    narray_rands_t dpr32_rseed = 0;
 | 
			
		||||
 | 
			
		||||
    narray_rands_t dpr32_nextseed(narray_rands_t seed)
 | 
			
		||||
    {
 | 
			
		||||
        int32_t sret = seed;
 | 
			
		||||
        narray_rands_t sret = seed;
 | 
			
		||||
        sret = ams::mod(sret*dpr32_mult1+1,dpr32_mod);
 | 
			
		||||
        return sret;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    double dpr32_randd(int32_t *seed)
 | 
			
		||||
    double dpr32_randd(narray_rands_t *seed)
 | 
			
		||||
    {
 | 
			
		||||
        double ret;
 | 
			
		||||
        printf("debug: seed: %d\n",(int)*seed);
 | 
			
		||||
        *seed = ams::narray::rand::dpr32_nextseed(*seed);
 | 
			
		||||
        printf("debug: seed: %d\n",(int)*seed);
 | 
			
		||||
        ret = (double)*seed/(double)(dpr32_mod-1);
 | 
			
		||||
        return ret;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    float dpr32_randf(int32_t *seed)
 | 
			
		||||
    float dpr32_randf(narray_rands_t *seed)
 | 
			
		||||
    {
 | 
			
		||||
        float ret;
 | 
			
		||||
        *seed = ams::narray::rand::dpr32_nextseed(*seed);
 | 
			
		||||
@ -30,7 +35,7 @@ namespace rand
 | 
			
		||||
        return ret;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    double dpr32_gaussian(int32_t *seed)
 | 
			
		||||
    double dpr32_gaussian(narray_rands_t *seed)
 | 
			
		||||
    {
 | 
			
		||||
        double ret = 0.0;
 | 
			
		||||
        double u1,u2;
 | 
			
		||||
@ -46,7 +51,7 @@ namespace rand
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
    float dpr32_gaussianf(int32_t *seed)
 | 
			
		||||
    float dpr32_gaussianf(narray_rands_t *seed)
 | 
			
		||||
    {
 | 
			
		||||
        float ret = 0.0f;
 | 
			
		||||
        float u1,u2;
 | 
			
		||||
@ -61,7 +66,7 @@ namespace rand
 | 
			
		||||
        return ret;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    vect2 dpr32_randuvect2(int32_t *seed)
 | 
			
		||||
    vect2 dpr32_randuvect2(narray_rands_t *seed)
 | 
			
		||||
    {
 | 
			
		||||
        vect2 ret = vect2(0,0);
 | 
			
		||||
        double th = ams::narray::rand::dpr32_randd(seed)*2.0*pi;
 | 
			
		||||
@ -69,7 +74,7 @@ namespace rand
 | 
			
		||||
        return ret;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    vect3 dpr32_randuvect3(int32_t *seed)
 | 
			
		||||
    vect3 dpr32_randuvect3(narray_rands_t *seed)
 | 
			
		||||
    {
 | 
			
		||||
        vect3 ret;
 | 
			
		||||
        double az,el;
 | 
			
		||||
@ -81,7 +86,7 @@ namespace rand
 | 
			
		||||
        return ret;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    vect4 dpr32_randuvect4(int32_t *seed)
 | 
			
		||||
    vect4 dpr32_randuvect4(narray_rands_t *seed)
 | 
			
		||||
    {
 | 
			
		||||
        vect4 ret;
 | 
			
		||||
        double x,y,z,w;
 | 
			
		||||
@ -96,7 +101,7 @@ namespace rand
 | 
			
		||||
        return ret;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    vect2f dpr32_randuvect2f(int32_t *seed)
 | 
			
		||||
    vect2f dpr32_randuvect2f(narray_rands_t *seed)
 | 
			
		||||
    {
 | 
			
		||||
        vect2f ret = vect2f(0,0);
 | 
			
		||||
        float th = ams::narray::rand::dpr32_randf(seed)*2.0*pi;
 | 
			
		||||
@ -104,7 +109,7 @@ namespace rand
 | 
			
		||||
        return ret;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    vect3f dpr32_randuvect3f(int32_t *seed)
 | 
			
		||||
    vect3f dpr32_randuvect3f(narray_rands_t *seed)
 | 
			
		||||
    {
 | 
			
		||||
        vect3f ret;
 | 
			
		||||
        float az,el;
 | 
			
		||||
@ -116,7 +121,7 @@ namespace rand
 | 
			
		||||
        return ret;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    vect4f dpr32_randuvect4f(int32_t *seed)
 | 
			
		||||
    vect4f dpr32_randuvect4f(narray_rands_t *seed)
 | 
			
		||||
    {
 | 
			
		||||
        vect4f ret;
 | 
			
		||||
        float x,y,z,w;
 | 
			
		||||
@ -131,27 +136,27 @@ namespace rand
 | 
			
		||||
        return ret;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    int32_t get_rseed()
 | 
			
		||||
    narray_rands_t get_rseed()
 | 
			
		||||
    {
 | 
			
		||||
        return ams::narray::rand::dpr32_rseed;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void set_rseed(int32_t seed)
 | 
			
		||||
    void set_rseed(narray_rands_t seed)
 | 
			
		||||
    {
 | 
			
		||||
        ams::narray::rand::dpr32_rseed = seed;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void set_rseed_withtimer()
 | 
			
		||||
    {
 | 
			
		||||
        int32_t t1 = (int32_t)time(NULL);
 | 
			
		||||
        int32_t t2 = (int32_t)(::fmod((double)clock()/((double)CLOCKS_PER_SEC)*1000.0f,36000.0f));
 | 
			
		||||
        ams::narray::rand::dpr32_rseed = (int32_t)t1 + (int32_t)t2;
 | 
			
		||||
        narray_rands_t t1 = (narray_rands_t)time(NULL);
 | 
			
		||||
        narray_rands_t t2 = (narray_rands_t)(::fmod((double)clock()/((double)CLOCKS_PER_SEC)*1000.0f,36000.0f));
 | 
			
		||||
        ams::narray::rand::dpr32_rseed = (narray_rands_t)t1 + (narray_rands_t)t2;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    template<typename T> void narray_rand_threadf1(
 | 
			
		||||
        narray<T> *out,
 | 
			
		||||
        narray<int32_t> *rseeds,
 | 
			
		||||
        T (*randfunc)(int32_t *),
 | 
			
		||||
        narray<narray_rands_t> *rseeds,
 | 
			
		||||
        T (*randfunc)(narray_rands_t *),
 | 
			
		||||
        int threadnum,
 | 
			
		||||
        int nthreads
 | 
			
		||||
    )
 | 
			
		||||
@ -170,15 +175,15 @@ namespace rand
 | 
			
		||||
    template<typename T> void narray_random_threadexec1(
 | 
			
		||||
        narray<T> *out,
 | 
			
		||||
        narray_size_t N,
 | 
			
		||||
        T (*randfunc)(int32_t *),
 | 
			
		||||
        int32_t *rseed
 | 
			
		||||
        T (*randfunc)(narray_rands_t *),
 | 
			
		||||
        narray_rands_t *rseed
 | 
			
		||||
    )
 | 
			
		||||
    {
 | 
			
		||||
        narray_size_t I;
 | 
			
		||||
        int J;
 | 
			
		||||
        int nthreads;
 | 
			
		||||
        std::vector<std::thread*> threads;
 | 
			
		||||
        narray<int32_t> rseeds;
 | 
			
		||||
        narray<narray_rands_t> rseeds;
 | 
			
		||||
        int res;
 | 
			
		||||
 | 
			
		||||
        res = out->resize(N);
 | 
			
		||||
@ -204,6 +209,7 @@ namespace rand
 | 
			
		||||
            nthreads = (nthreads>narray_max_threads) ? narray_max_threads : nthreads;
 | 
			
		||||
            threads.resize(nthreads);
 | 
			
		||||
            rseeds.resize(nthreads);
 | 
			
		||||
            
 | 
			
		||||
            for(J=0;J<nthreads;J++)
 | 
			
		||||
            {
 | 
			
		||||
                *rseed = dpr32_nextseed(*rseed);
 | 
			
		||||
@ -239,7 +245,7 @@ namespace rand
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    narray<double> narray_rand(narray_size_t N,
 | 
			
		||||
        int32_t *rseed)
 | 
			
		||||
        narray_rands_t *rseed)
 | 
			
		||||
    {
 | 
			
		||||
        narray<double> ret;
 | 
			
		||||
 | 
			
		||||
@ -260,7 +266,7 @@ namespace rand
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    narray<float> narray_randf(narray_size_t N,
 | 
			
		||||
        int32_t *rseed)
 | 
			
		||||
        narray_rands_t *rseed)
 | 
			
		||||
    {
 | 
			
		||||
        narray<float> ret;
 | 
			
		||||
 | 
			
		||||
@ -281,7 +287,7 @@ namespace rand
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    narray<double> narray_randgauss(narray_size_t N,
 | 
			
		||||
        int32_t *rseed)
 | 
			
		||||
        narray_rands_t *rseed)
 | 
			
		||||
    {
 | 
			
		||||
        narray<double> ret;
 | 
			
		||||
 | 
			
		||||
@ -302,7 +308,7 @@ namespace rand
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    narray<float> narray_randgaussf(narray_size_t N,
 | 
			
		||||
        int32_t *rseed)
 | 
			
		||||
        narray_rands_t *rseed)
 | 
			
		||||
    {
 | 
			
		||||
        narray<float> ret;
 | 
			
		||||
 | 
			
		||||
@ -323,7 +329,7 @@ namespace rand
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    narray<vect2> narray_randuvect2(narray_size_t N,
 | 
			
		||||
        int32_t *rseed)
 | 
			
		||||
        narray_rands_t *rseed)
 | 
			
		||||
    {
 | 
			
		||||
        narray<vect2> ret;
 | 
			
		||||
 | 
			
		||||
@ -344,7 +350,7 @@ namespace rand
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    narray<vect3> narray_randuvect3(narray_size_t N,
 | 
			
		||||
        int32_t *rseed)
 | 
			
		||||
        narray_rands_t *rseed)
 | 
			
		||||
    {
 | 
			
		||||
        narray<vect3> ret;
 | 
			
		||||
 | 
			
		||||
@ -365,7 +371,7 @@ namespace rand
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    narray<vect4> narray_randuvect4(narray_size_t N,
 | 
			
		||||
        int32_t *rseed)
 | 
			
		||||
        narray_rands_t *rseed)
 | 
			
		||||
    {
 | 
			
		||||
        narray<vect4> ret;
 | 
			
		||||
 | 
			
		||||
@ -386,7 +392,7 @@ namespace rand
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    narray<vect2f> narray_randuvect2f(narray_size_t N,
 | 
			
		||||
        int32_t *rseed)
 | 
			
		||||
        narray_rands_t *rseed)
 | 
			
		||||
    {
 | 
			
		||||
        narray<vect2f> ret;
 | 
			
		||||
 | 
			
		||||
@ -407,7 +413,7 @@ namespace rand
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    narray<vect3f> narray_randuvect3f(narray_size_t N,
 | 
			
		||||
        int32_t *rseed)
 | 
			
		||||
        narray_rands_t *rseed)
 | 
			
		||||
    {
 | 
			
		||||
        narray<vect3f> ret;
 | 
			
		||||
 | 
			
		||||
@ -428,7 +434,7 @@ namespace rand
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    narray<vect4f> narray_randuvect4f(narray_size_t N,
 | 
			
		||||
        int32_t *rseed)
 | 
			
		||||
        narray_rands_t *rseed)
 | 
			
		||||
    {
 | 
			
		||||
        narray<vect4f> ret;
 | 
			
		||||
 | 
			
		||||
@ -449,7 +455,7 @@ namespace rand
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    int dpr32_randint(int32_t *seed, int low, int high)
 | 
			
		||||
    int dpr32_randint(narray_rands_t *seed, int low, int high)
 | 
			
		||||
    {
 | 
			
		||||
        int ret = 0;
 | 
			
		||||
        int val;
 | 
			
		||||
@ -465,8 +471,8 @@ namespace rand
 | 
			
		||||
 | 
			
		||||
    template<typename T> void narray_rand_threadf2(
 | 
			
		||||
        narray<T> *out,
 | 
			
		||||
        narray<int32_t> *rseeds,
 | 
			
		||||
        T (*randfunc)(int32_t *, T, T),
 | 
			
		||||
        narray<narray_rands_t> *rseeds,
 | 
			
		||||
        T (*randfunc)(narray_rands_t *, T, T),
 | 
			
		||||
        T low,
 | 
			
		||||
        T highexcl,
 | 
			
		||||
        int threadnum,
 | 
			
		||||
@ -487,17 +493,17 @@ namespace rand
 | 
			
		||||
    template<typename T> void narray_random_threadexec2(
 | 
			
		||||
        narray<T> *out,
 | 
			
		||||
        narray_size_t N,
 | 
			
		||||
        T (*randfunc)(int32_t *, T, T),
 | 
			
		||||
        T (*randfunc)(narray_rands_t *, T, T),
 | 
			
		||||
        T low,
 | 
			
		||||
        T highexcl,
 | 
			
		||||
        int32_t *rseed
 | 
			
		||||
        narray_rands_t *rseed
 | 
			
		||||
    )
 | 
			
		||||
    {
 | 
			
		||||
        narray_size_t I;
 | 
			
		||||
        int J;
 | 
			
		||||
        int nthreads;
 | 
			
		||||
        std::vector<std::thread*> threads;
 | 
			
		||||
        narray<int32_t> rseeds;
 | 
			
		||||
        narray<narray_rands_t> rseeds;
 | 
			
		||||
        int res;
 | 
			
		||||
 | 
			
		||||
        res = out->resize(N);
 | 
			
		||||
@ -559,7 +565,7 @@ namespace rand
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    narray<int> narray_randint(narray_size_t N, int low, int highexcl,
 | 
			
		||||
        int32_t *rseed)
 | 
			
		||||
        narray_rands_t *rseed)
 | 
			
		||||
    {
 | 
			
		||||
        narray<int> ret;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user