-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ROOT::Math C++ PRBS generator #8199
Comments
A possible implementation, that could go in some ROOT::Math classes:
|
Have you heard of the Bifurcation equation? It's quite old and I believe it was the first method of generating pseudo random numbers. Maybe this can be added as a feature by itself (i.e. multiple pseudo random number generator methods ) |
Interesting. No, I hadn't heard about it. But I think PRBS is more about generating [0,1] bits for testing electronics, using easy/fast to implement LFSR, rather than generating floating point numbers. |
Hi, I am not expert of PRBS generators, but can you not use one of the current ROOT pseudo-random number generators and extract the bits from the generated numbers ? Cheers Lorenzo |
The goal is the following. In electronics, the chips almost always generate PRBS sequences. When you acquire data in your system, you want to compare those bits, to see if any data was lost corrupted during the data acquisition chain. The goal is not to generate random sequences, for that, ROOT has already better generator tools. It is just to be able to compare the chip-generated ones with the expectation. And the ones in the chips are almost always of PRBS type. Do you think the code snippet I wrote above would be ready for a PR ? |
Hi, |
Describe the solution you'd like
It would be nice if ROOT provided a C++ function to generate a sequence of pseudo-random numbers that are frequently used in electronics testing, see:
https://en.wikipedia.org/wiki/Pseudorandom_binary_sequence
Describe alternatives you've considered
Additional context
Pulse generators usually generate this random bits. To know whether things are working in your data acquisition, you have to compare with the expected values.
https://cryptography.fandom.com/wiki/Linear_feedback_shift_register
There are also some snippets in ROOT using it, like here: https://root.cern/doc/master/civetweb_8c_source.html
The text was updated successfully, but these errors were encountered: