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 randomness, programming, and more.
Open Questions
Help me on my requests, open questions, and interesting challenges, listed next.
- Requests and open questions. Spanning topics in mathematics, probability, random numbers, programming, and image files.
- Open questions on the Bernoulli factory problem (the new-coins-from-old problem). For experts in mathematics and probability.
- Other open questions on probability. For experts in mathematics and probability.
- The sampling problem. For experts in mathematics and probability.
- Graphics and Music Challenges for Classic Computer Applications. For anyone designing computer graphics or music, and for game programmers.
- Converting Pixel Images to Vector Graphics. For graphics programmers.
- A Wish for a New Atlas. To condense vast geographic knowledge into a compact book.
- Suggestions for Instructional Materials. To improve education of children.
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.
Colors, Graphics, and Music
- Color Topics for Programmers
- Supplemental Color Topics for Programmers
- Essentials of SVG
- Three challenges to the open-source community for classic computer applications:
- Traditional User Interface Graphics
- Converting Pixel Images to Vector Graphics
Other Articles on Mathematics and Programming
- Approximations in Bernstein Form
- Used above all in the supplemental notes for Bernoulli factories.
- A Note on Hash Functions
- Pseudocode Conventions
- On a claim of computational complexity
- File Name Support in Applications
Other Articles
- Suggestions for Instructional Materials
- Overused and Discouraged Words and Phrases
- A Wish for a New Atlas
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 auxiliary 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.
Python
- desktopwallpaper.py: Python module to aid in generating desktop wallpapers and button-like graphics.
About
Written by Peter O..