root
root copied to clipboard
[math] PRBS generator
This Pull request:
Changes or fixes:
Adds PRBS generation code
Checklist:
- [x] tested changes locally
- [x] updated the docs (if necessary)
This PR fixes https://github.com/root-project/root/issues/8199
Can one of the admins verify this patch?
@phsft-bot build
I think new generators should go via ROOT::Math::TRandomEngine
, not another TRandomXYZ
, right @lmoneta? Also would be good to have some tests.
Starting build on ROOT-debian10-i386
/cxx14
, ROOT-performance-centos8-multicore
/default
, ROOT-ubuntu16
/nortcxxmod
, mac1014
/python3
, mac11.0
/cxx17
, windows10
/cxx14
How to customize builds
Build failed on windows10/cxx14. Running on null:C:\build\workspace\root-pullrequests-build See console output.
Errors:
- [2021-08-18T08:28:49.366Z] CMake Error at C:/build/workspace/root-pullrequests-build/rootspi/jenkins/root-build.cmake:1045 (message):
Build failed on ROOT-debian10-i386/cxx14. Running on pcepsft10.dyndns.cern.ch:/build/workspace/root-pullrequests-build See console output.
Errors:
- [2021-08-18T08:37:44.395Z] stderr: error: could not read '.git/rebase-apply/head-name': No such file or directory
Starting build on ROOT-debian10-i386
/soversion
, ROOT-performance-centos8-multicore
/cxx17
, ROOT-ubuntu18.04
/nortcxxmod
, ROOT-ubuntu2004
/python3
, mac12
/noimt
, mac11
/cxx14
, windows10
/cxx14
How to customize builds
I would like to revive this PR, @ferdymercury do you feel like rebasing so that I can start the builds ?
see also https://github.com/root-project/root/pull/8798#issuecomment-900917227
Test Results
12 files 12 suites 2d 10h 57m 28s :stopwatch: 2 628 tests 2 628 :white_check_mark: 0 :zzz: 0 :x: 29 840 runs 29 840 :white_check_mark: 0 :zzz: 0 :x:
Results for commit 2c3bcff6.
@hahnjo Thanks for the comment! I can move it there, but do I really need to derive from TRandomEngine? The parent methods are for double Rndm(), which does not seem very useful to me. This generator is a binary register generator, so rather a quite different structure, and it is not intended to be used as a normal generator, but rather as a test scenario or helper math functions for electronics testing. It also is inherently templated, etc. It returns an array rather than just a number Rndm(). See https://github.com/root-project/root/pull/8798/files#diff-2e848ceefaff2e24c9b2970fb86a8da1d3d00603fc4f48f920421e603198fab2
Wrt tests, I will 'copy' the mentioned tutorial as 'test' once it's clear where this class should go.
Thanks for the review!! :)
Hello @ferdymercury I am not sure what the use case is for having this generator in ROOT. One could, in principle, also use the bits of the generated numbers of a good generator like RANLUX++. Do we have users that are asking for this feature?
Hello @ferdymercury I am not sure what the use case is for having this generator in ROOT. One could, in principle, also use the bits of the generated numbers of a good generator like RANLUX++. Do we have users that are asking for this feature?
Thanks for the reply! We discussed this point in the associated issue: https://github.com/root-project/root/issues/8199#issuecomment-851570436
I still think is very specific, and we could have it maybe as an external addition.
Ok. What do you mean by external? Moving it to just a tutorial? Happy to change that once it's clarified.