<commit_before># Reduced Precision Emulator

An emulator for reduced-precision floating-point calculations in Fortran.<commit_msg>Add basic build details to README.<commit_after># Reduced Precision Emulator

An emulator for reduced-precision floating-point calculations in Fortran.


## Building the library

The library can be built in a two-stage system:

* Stage 1

    Stage 1 uses the C preprocessor to construct a single Fortran source file from a base file and extra included header files.
    The resulting file is self-contained and can be included in other projects if needed.
    The source file resulting from stage 1 is `src/rp_emulator.f90`.

* Stage 2

    Stage 2 compiles the emulator into a library archive and a fortran module, which can be included in other projects directly.
    The resulting library is `lib/librpe.a`, and the module is `modules/rp_emulator.mod`.

If you choose to only use stage 1 of the build process you must allow for the following when compiling:

* The library source contains long lines, so a ocmpiler option to remove line-length restrictions is required.
  For `gfortran` this is `-ffree-line-length-none`.
{'fraction_non_alphanumeric': 0.047619047619047616, 'fraction_numerical': 0.006926406926406926, 'mean_word_length': 4.137777777777778, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3968404', 'n_tokens_mistral': 308, 'n_tokens_neox': 293, 'n_words': 161}