btpe-iterations
Experiments for paper: An Analysis of an Open Source Binomial Random Variate Generation Algorithm
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 6 DOI reference(s) in README -
✓Academic publication links
Links to: arxiv.org -
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.5%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
Experiments for paper: An Analysis of an Open Source Binomial Random Variate Generation Algorithm
Basic Info
- Host: GitHub
- Owner: cicirello
- License: gpl-3.0
- Language: TeX
- Default Branch: main
- Homepage: https://www.cicirello.org/publications/cicirello2023engproc.html
- Size: 686 KB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 1
Topics
Metadata Files
README.md
btpe-iterations
Copyright © 2023-2024 Vincent A. Cicirello
This repository contains code to reproduce the experiments, and analysis of experimental data, from the following papers:
Vincent A. Cicirello. 2023. An Analysis of an Open Source Binomial Random Variate Generation Algorithm, Engineering Proceedings, 56(1), Article 86, October 2023. doi:10.3390/ASEC2023-15349.
Vincent A. Cicirello. 2024. On the Average Runtime of an Open Source Binomial Random Variate Generation Algorithm, arXiv:2403.11018, March 2024.
| Related Publications |
|
| :--- | :--- |
| License |
|
| Packages and Releases |
|
Dependencies
The experiments depend upon the following libraries, and in some cases this research has also contributed to these libraries: * ρμ * org.cicirello.core
Requirements to Build and Run the Experiments
To build and run the experiments on your own machine, you will need the following:
* JDK 17: I used OpenJDK 17, but other distributions should be fine.
* Apache Maven: In the root of the repository, there is a pom.xml
for building the Java programs for the experiments. Using this pom.xml,
Maven will take care of downloading the exact version of
ρμ (release 3.1.1) and its dependency
that were used in the experiments.
* Python 3: The repository contains Python programs that were used to
process the raw data for the paper. If you want to run the Python programs,
you will need Python 3.
* Make: The repository contains a Makefile to simplify running the build,
running the experiment's Java program, and running the Python program to
analyze the data. If you are familiar with using the Maven build tool,
and running Python programs, then you can just run these directly, although
the Makefile may be useful to see the specific commands needed.
Building the Java Programs (Option 1)
The source code of the Java programs implementing the experiments is in the src/main/java directory. You can build the experiment programs in one of the following ways.
Using Maven: Execute the following from the root of the repository.
shell
mvn clean package
Using Make: Or, you can execute the following from the root of the repository.
shell
make build
Downloading a prebuilt jar (Option 2)
As an alternative to building the jar (see above), you can choose to instead download a prebuilt jar of the experiments from the Maven Central repository. The Makefile contains a target that will do this for you, provided that you have curl installed on your system. To download the jar of the precompiled code of the experiments, run the following from the root of the repository:
shell
make download
The jar that it downloads contains the compiled code of the experiments as well as all dependencies within a single jar file.
Running the Experiments
If you just want to inspect the data from my runs, then you can find that output in the /data directory. If you instead want to run the experiments yourself, you must first either follow the build instructions or download a prebuilt jar (see above sections). Once the jar of the experiments is either built or downloaded, you can then run the experiments with the following executed at the root of the repository:
shell
make run
If you don't want to overwrite my original data files, then first change the variable
pathToDataFiles in the Makefile before running the above command.
Analyzing the Experimental Data
To run the Python program that I used to process the raw data,
and generate the tables of the paper (as well as additional tables
not used in the paper), you need Python 3 installed. The source
code of the Python programs is found in the src/main/python
directory. To run the analysis, execute the following at the root of the
repository:
shell
make analyze
And for the second paper that utilizes this data:
shell
make analyzepaper2
If you don't want to overwrite my original data files, and tables, then change the
variable pathToDataFiles in the Makefile before running the above commands.
This will analyze the data from the /data directory. It will also generate the tables, etc in that directory. This make command will also take care of installing any required Python packages if you don't already have them installed.
Other Files in the Repository
There are a few other files, potentially of interest, in the repository,
which include:
* system-stats.txt: This file contains details of the system I
used to run the experiments, such as operating system, processor
specs, Java JDK and VM. It is in the /data directory.
License
The code to replicate the experiments from the paper, as well as the ρμ library is licensed under the GNU General Public License 3.0.
Owner
- Name: Vincent A. Cicirello
- Login: cicirello
- Kind: user
- Location: Galloway, NJ
- Company: Stockton University
- Website: https://www.cicirello.org/
- Repositories: 53
- Profile: https://github.com/cicirello
Vincent A. Cicirello is a researcher in AI, evolutionary computation, and swarm intelligence.
Citation (CITATION.cff)
cff-version: "1.2.0"
message: "If you use this software, please cite the article from preferred-citation."
authors:
- family-names: "Cicirello"
given-names: "Vincent A"
orcid: "https://orcid.org/0000-0003-1072-8559"
title: "An Analysis of an Open Source Binomial Random Variate Generation Algorithm"
license: "GPL-3.0-or-later"
url: "https://github.com/cicirello/btpe-iterations"
preferred-citation:
type: article
authors:
- family-names: "Cicirello"
given-names: "Vincent A"
orcid: "https://orcid.org/0000-0003-1072-8559"
doi: "10.3390/ASEC2023-15349"
journal: "Engineering Proceedings"
title: "An Analysis of an Open Source Binomial Random Variate Generation Algorithm"
year: 2023
volume: 56
issue: 1
start: 86
GitHub Events
Total
- Push event: 1
- Pull request event: 1
Last Year
- Push event: 1
- Pull request event: 1
Committers
Last synced: 9 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Vincent A. Cicirello | c****o | 30 |
| dependabot[bot] | 4****] | 12 |
Issues and Pull Requests
Last synced: 9 months ago
All Time
- Total issues: 3
- Total pull requests: 18
- Average time to close issues: 3 months
- Average time to close pull requests: about 2 hours
- Total issue authors: 1
- Total pull request authors: 2
- Average comments per issue: 0.0
- Average comments per pull request: 0.11
- Merged pull requests: 18
- Bot issues: 0
- Bot pull requests: 12
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- cicirello (2)
Pull Request Authors
- dependabot[bot] (11)
- cicirello (7)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- org.cicirello:rho-mu 3.1.1
- org.junit.jupiter:junit-jupiter 5.10.0 test