Menu

Compile Beta 0.95 With .NET?

2019-11-01
2019-11-02
  • Cerian Knight

    Cerian Knight - 2019-11-01

    Any chance of getting a pre-0.95 beta release ready for, or hints on merging into, .NET?

    I had no issues with the 0.94 release under .NET, but chasing the issues with merging pre-0.95b into it has me at a loss.
    I would like to give it a go before the full release goes live (and unlike TestU01, all of my PractRand scripts are written for Windows).

     

    Last edit: Cerian Knight 2019-11-01
  • - 2019-11-01

    Could you clarify what issues you are seeing? I don't know of anything that has changed with regard to MSVC besides the fact that I didn't include a project file in the pre-release.

     
  • Cerian Knight

    Cerian Knight - 2019-11-02

    Retargeted for v1.41 (2017), which compiles 0.94 fine.
    Merged files from pre-0.95 into new 0.94 and retargeted.
    Output and error list attached.
    I assume my approach is naive, so any hints might help.

    Edit: I got it to compile by removing rarns related lines (e.g. 'REGISTER_RNG_0( rarns16 )', etc.).
    Testing now... still a few extreme p-values at 64K and below:

    RNG_test using PractRand version 0.95
    RNG = RNG_stdin, seed = unknown
    test set = expanded, folding = extra
    ...
    rng=RNG_stdin, seed=unknown
    length= 16 kilobytes (2^14 bytes), time= 7.8 seconds
      Test Name                         Raw       Processed     Evaluation
      [Low1/16]FPF-14+6/64:all          R= -21.5  p~= 1-1e-6    mildly suspicious
      [Low4/64]FPF-14+6/64:all          R= -21.5  p~= 1-1e-6    mildly suspicious
      ...and 246 test result(s) without anomalies
    

    Hopefully won't FAIL, but I'm mostly -tlmin well above 64KB now for my current work.

     

    Last edit: Cerian Knight 2019-11-02
  • Cerian Knight

    Cerian Knight - 2019-11-02

    Also noticed this FAIL from 0.94 at 32GB:

      [Low4/32]Gap-16:B                 R=  +6.7  p =  1.2e-5   mildly suspicious
      [Low8/32]mod3n(0):(0,9-0)         R= +26.7  p =  1.1e-14    FAIL           
      ...and 1702 test result(s) without anomalies
    

    ... is missing from the otherwise exact same report in pre0.95:

       [Low4/32]Gap-16:B                 R=  +6.7  p =  1.2e-5   mildly suspicious
      ...and 1983 test result(s) without anomalies
    
     

    Last edit: Cerian Knight 2019-11-02
  • - 2019-11-02

    Hm... the errors look like rarns.cpp isn't getting linked against for some reason. Double-check that in your project, maybe it was overlooked as new source file.

    As for the changed output... hm.... mod3n(0) is still present in the expanded test set, I'm pretty sure. And... I don't think anything except the text of some error messages changed in mod3n code or headers. What PRNG is that output from?

     
    • Cerian Knight

      Cerian Knight - 2019-11-02

      Thanks for the hint.

      The PRNG is a known 32-bit scrambled LFSR wrapped in a simple beta equidistribution recovery extension. Looks promising, so far... might be cast into hardware.

       
    • Cerian Knight

      Cerian Knight - 2019-11-02

      Added rarns related .h and .cpp to a few areas in the project:
      ========== Rebuild All: 6 succeeded, 0 failed, 0 skipped ==========
      Thanks again!

       
  • - 2019-11-02

    I still have no clue why your mod3n(0) error disappeared though. You could try adding a -a command line option to manually check that mod3n results were being produced, though on -te 1 -tf 2 runs like that the list will be very very long indeed.

     
    • Cerian Knight

      Cerian Knight - 2019-11-02

      I think these excerpts from each version using -a should illustrate the specific issue... plus I have attached full dumps of both at 32GB.
      0.94:

        [Low8/32]BCFN(0+21,13-9,T)        R=  -2.2  p = 0.869     normal
        [Low8/32]mod3n(0):(0,9-0)         R= +26.7  p =  1.1e-14    FAIL
        [Low8/32]mod3n(0):(1,9-0)         R=  -1.5  p = 0.780     normal
        [Low8/32]mod3n(0):(2,9-0)         R=  +1.8  p = 0.192     normal
        [Low8/32]mod3n(0):(3,9-0)         R=  +1.4  p = 0.247     normal
        [Low8/32]mod3n(0):(4,9-0)         R=  +1.2  p = 0.274     normal
        [Low8/32]mod3n(0):(5,9-0)         R=  -3.1  p = 0.938     normal
        [Low8/32]mod3n(0):(6,9-0)         R=  -0.4  p = 0.577     normal
        [Low8/32]mod3n(0):(7,9-0)         R=  +0.7  p = 0.358     normal
        [Low8/32]mod3n(0):(8,9-0)         R=  +2.9  p = 0.079     normal
        [Low8/32]mod3n(0):(9,9-0)         R=  -2.3  p = 0.872     normal
        [Low8/32]mod3n(0):(10,9-1)        R=  -0.9  p = 0.679     normal
        [Low8/32]mod3n(0):(11,9-1)        R=  -3.1  p = 0.939     normal
        [Low8/32]mod3n(0):(12,9-2)        R=  -1.5  p = 0.779     normal
        [Low8/32]mod3n(0):(13,9-2)        R=  -2.1  p = 0.854     normal
        [Low8/32]mod3n(0):(14,9-3)        R=  -1.8  p = 0.812     normal
        [Low8/32]mod3n(0):(15,9-3)        R=  +1.6  p = 0.213     normal
        [Low8/32]BRank(18):128(16)        R=  +1.8  p~= 0.046     normal
      

      pre0.95

        [Low8/32]BCFN(0+21,13-9,T)        R=  -2.2  p = 0.869     normal
        [Low8/32]mod3n(0):(0,9-6)         R=  +1.0  p = 0.258     normal
        [Low8/32]mod3n(0):(1,9-6)         R=  -1.2  p = 0.728     normal
        [Low8/32]mod3n(0):(2,9-6)         R=  -1.7  p = 0.826     normal
        [Low8/32]mod3n(0):(3,9-6)         R=  +1.2  p = 0.236     normal
        [Low8/32]mod3n(0):(4,9-6)         R=  +3.1  p = 0.066     normal
        [Low8/32]mod3n(0):(5,9-6)         R=  -0.3  p = 0.512     normal
        [Low8/32]mod3n(0):(6,9-6)         R=  -0.8  p = 0.630     normal
        [Low8/32]mod3n(0):(7,9-6)         R=  +0.7  p = 0.306     normal
        [Low8/32]mod3n(0):(8,9-6)         R=  -0.1  p = 0.468     normal
        [Low8/32]mod3n(0):(9,9-6)         R=  +5.1  p = 0.015     normal
        [Low8/32]mod3n(0):(10,9-6)        R=  -1.8  p = 0.831     normal
        [Low8/32]mod3n(0):(11,9-6)        R=  +1.9  p = 0.144     normal
        [Low8/32]mod3n(0):(12,9-6)        R=  +1.5  p = 0.196     normal
        [Low8/32]mod3n(0):(13,9-6)        R=  -2.9  p = 0.974     normal
        [Low8/32]mod3n(0):(14,9-6)        R=  -0.5  p = 0.544     normal
        [Low8/32]mod3n(0):(15,9-6)        R=  +4.1  p = 0.033     normal
        [Low8/32]BRank(18):128(16)        R=  +1.8  p~= 0.046     normal
      
       

      Last edit: Cerian Knight 2019-11-02
  • - 2019-11-02

    Oooh... was that in the pre-0.95 upload?  My bad.  It's already removed from my codebase, and it wasn't in the older copy I checked against either.  The copy of mod3n you are using is semi-borked to treat all mod3n runs as if they were too short to populate the table properly.  IIRC it's one line near the start of mod3n::get_result() that forces effective_EXP to 3 regardless of circumstances.  It will be fixed in the next upload.

     

    Last edit: 2019-11-02
    • Cerian Knight

      Cerian Knight - 2019-11-02

      I commented out the explicit EXP assignment and switched the nearby 'predicted_samples' check back to '< 200' (since both were marked 'remove')... works fine now. Thanks!

       

Log in to post a comment.