Ent attempts to measure the entropy (randomness) of a random number stream (file). The idea is to tell you if the data fails to meet certain tests of randomness. It reports compressibility as bits per byte and a percentage; Chi-square distribution percentage, arithmetic mean; Monte Carlo Pi error percentage; and serial correlation coefficient. Thus it can help tell you if data is nonrandom or biased. However, it cannot tell you if it contains truly unpredictable random numbers or if the stream is repeatable. See the Ent documentation for details.
Why Ent?. There are much more extensive random number tests that can be run in OS/2 under 'Odin', but unfortunately 'Odin' won't run on Warp 3 fixpak 39 -- I tried. So here is the OS/2 version of Ent in case anyone else might find it useful.
I did not write Ent and am neither a mathematician nor a programmer. I have merely recompiled John Walker's Ent (1998) so it will run natively under OS/2 Warp connect 3 instead of in a DOS box. The OS/2 Ent does require the EMX runtime, which is available at no charge from Hobbes.nmsu.edu as emxrt9d4.zip, or perhaps emxrt.zip. Ent is public domain.
More information. Not being a mathematician, I am not in a position to provide any meaningful answers to questions about Ent. One place to check for more information would be the place I found Ent: www.fourmilab.ch, under the mathematics section. As to compiling programs, I am a complete novice.
Ent was supplied as a DOS executable, which works under OS/2, but forces you to start a DOS box. But the program also includes the C-language source code and a 'makefile'. If you have a 'Make' utility and a C compiler, you can theoretically run 'Make', which should read the 'makefile' for instructions on how to recompile the source code on the current operating system. It's often not that easy. For example, I learned that 'makefile' is CaSe SeNSiTiVe and has to be 'makefile' or 'Makefile' and not 'MAKEFILE' in order to work. So if you unzip on a drive that uses UPPERCASE letters you may have trouble. So I re- unzipped random.zip (ent) on a longname drive, and then downloaded the minimal EMX development library:
and the Gnu 'Make' utility:
- emxdev1.zip
- EMX Development Tools, Part 1
- emxdev2.zip
- EMX Development Tools, Part 2
- emxrt9d4.zip
- EMX Runtime 0.9d(04)
- emxview.zip
- EMX Documentation in 'View' (OS/2 inf) format
- gnudev1.zip
- Gnu C Compiler, debugger, and tools, Part 1
- gnudev2.zip
- Gnu C Compiler, debugger, and tools, Part 2
- gnudoc.zip
- Gnu Documentation (textinfo sources, etc)
- gnuinfo.zip
- Gnu Info Program, etc.
- gnuview.zip
- Gnu Documentation in View (OS/2 inf) format
all available at no charge from Hobbes. After I installed them as directed in the downloads, typing INFO allowed access to the documentation with an EMACS interface not entirely unlike the ancient Perfect Writer. But the learning curve is steep. I also used the OS/2 'view' to look at some of the INF files, but to be truthful, just wanting to have an Ent for OS/2, I pretty much skipped the instructions, which are not for the faint of heart.
- gettext-0_10_39-r2-bin.zip
- National language support
- make-3_79_2a1-bin.zip
- Make utility
I made one small change to the Ent 'makefile': The line starting 'cc' should start 'gcc', since that's the compiler's name. I also changed entest.bat to entest.cmd and added a note of what it's for: Entest runs ent on entitle.gif to produce entest.bak, which should compare to entest.mas. Entest.mas is the same as the original except for having its line endings changed to DOS-OS/2 format and its EOF removed to facilitate the compare.
With the makefile fixed, I just ran 'Make' and it gave no errors and produced a new 'Ent' file. Then, running 'Emxbind ent' produced an 'Ent.exe' file that worked as a native OS/2 executable file. This may not be the smallest or fastest compilation, but it works. Entest shows that it gives results identical to the original DOS executable, so I have looked no further, and am uploading it as-is for anyone else who might find it useful.