# peteroupc.github.io

Welcome to peteroupc.github.io. This page contains more information
on several of my programming projects on GitHub. View **this site's repository**
to see this site's source code.

### Articles

Open-source articles on programming subjects. Help me on my **requests and open questions** (and **open questions on the Bernoulli factory problem**, and **other open questions on probability**).

**Random and Pseudorandom Number Generators**

**Random Number Generator Recommendations for Applications****A Note on Randomness Extraction****Testing PRNGs for High-Quality Randomness****Examples of High-Quality PRNGs****Notes on Jumping PRNGs Ahead****A Note on the Bays–Durham Shuffle**

**Random Variate Generation, Randomization, and Exact Sampling**

**Randomization and Sampling Methods****More Random Sampling Methods****Partially-Sampled Random Numbers for Accurate Sampling of Continuous Distributions****Bernoulli Factory Algorithms****Supplemental Notes for Bernoulli Factory Algorithms****Miscellaneous Observations on Randomization****Randomized Estimation Algorithms****The Sampling Problem**- More:

In the articles above, I put an emphasis on random variate generation that:

- Samples exactly from a discrete distribution (such as Bernoulli factory algorithms).
- Samples from a continuous distribution with arbitrary precision and a user-specified accuracy.
- Avoids floating-point arithmetic.
- Avoids calculating transcendental functions when possible.

**Other Articles**

**Graphics Challenge for Retro Style Games****A request for a Public-Domain music synthesis library and sound banks****A Wish for a New Atlas****A Note on Hash Functions****Pseudocode Conventions****Approximations in Bernstein Form****File Name Support in Applications****Color Topics for Programmers****Supplemental Color Topics for Programmers****Essentials of SVG****On a claim of computational complexity****Suggestions for Instructional Materials**

#### PDF Versions

**Pseudocode Conventions****Random Number Generator Recommendations for Applications****Randomization and Sampling Methods****More Random Sampling Methods****The Most Common Topics Involving Randomization****Partially-Sampled Random Numbers for Accurate Sampling of Continuous Distributions****Bernoulli Factory Algorithms****Testing PRNGs for High-Quality Randomness****Miscellaneous Observations on Randomization****Examples of High-Quality PRNGs****Notes on Jumping PRNGs Ahead****A Note on Hash Functions****A Note on Randomness Extraction****A Note on the Bays–Durham Shuffle****File Name Support in Applications****Color Topics for Programmers****Supplemental Color Topics for Programmers****Essentials of SVG**

### HTML/JavaScript

**html3dutil**: A public domain JavaScript library for easing the development of HTML 3D applications.**html-gears**: An HTML5 3D implementation of the public domain sample, gears.c**canvasback**: Displays an HTML canvas-based background that draws boxes in about the same color as the background color**colorpicker**: A color picker in JavaScript. Supports adapters for integrating other popular color pickers, and can use native color selection controls. In the public domain.**IdnaJS**: A JavaScript implementation of IDNA 2008 and Unicode normalization**BigNumber**: An arbitrary-precision arithmetic library for JavaScript

### C-sharp

**Fuzzer**: This is a program that generates slightly altered versions of data files, for testing algorithms that parse file formats.**colorvalidator**: This is a library for parsing and generating HTML and CSS colors.**petero-csharp**: Library containing utility methods and classes.**CBOR**: A C# implementation of Concise Binary Object Representation (RFC 7049).**Enriched**: C# program that converts text/enriched files to HTML**MailLib**: A portable library in C# and Java for parsing Internet mail messages**Encoding**: A portable library in C# and Java for character encodings**TurtleParser**: A portable library in C# and Java for parsing the Turtle RDF format**Calculator**: A calculator for .NET, intended to demonstrate two features of the**CBOR library**: its arbitrary-precision arithmetic capabilities, and its data serialization possibilities.

## About

Written by **Peter O.**.