{"id":31201415,"url":"https://github.com/colgreen/redzen","last_synced_at":"2025-09-20T12:58:55.021Z","repository":{"id":44344588,"uuid":"45754258","full_name":"colgreen/Redzen","owner":"colgreen","description":"General purpose C# code library.","archived":false,"fork":false,"pushed_at":"2025-02-01T23:24:09.000Z","size":1383,"stargazers_count":99,"open_issues_count":5,"forks_count":17,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-08-22T19:04:22.976Z","etag":null,"topics":["gaussian","io","numerics","prng","random","timsort","wyrand","xoshiro","ziggurat"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/colgreen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["colgreen"],"patreon":"sharpneat","open_collective":"colgreen"}},"created_at":"2015-11-07T20:56:47.000Z","updated_at":"2025-07-01T10:56:34.000Z","dependencies_parsed_at":"2023-02-15T16:15:46.108Z","dependency_job_id":"42653919-a681-46a4-8557-fcedb6d7a51a","html_url":"https://github.com/colgreen/Redzen","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/colgreen/Redzen","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/colgreen%2FRedzen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/colgreen%2FRedzen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/colgreen%2FRedzen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/colgreen%2FRedzen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/colgreen","download_url":"https://codeload.github.com/colgreen/Redzen/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/colgreen%2FRedzen/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276099102,"owners_count":25584935,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-20T02:00:10.207Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gaussian","io","numerics","prng","random","timsort","wyrand","xoshiro","ziggurat"],"created_at":"2025-09-20T12:58:49.983Z","updated_at":"2025-09-20T12:58:55.015Z","avatar_url":"https://github.com/colgreen.png","language":"C#","funding_links":["https://github.com/sponsors/colgreen","https://patreon.com/sharpneat","https://opencollective.com/colgreen"],"categories":[],"sub_categories":[],"readme":"# Redzen\nA general purpose C# code library.\n\nAvailable in nuget form at [nuget.org/packages/Redzen/](https://www.nuget.org/packages/Redzen/)\n\nMuch of the code in Redzen began life in [SharpNEAT](../../../../colgreen/sharpneat) and other projects, and has found a new home in the Redzen library to allow for reuse of\ngeneral purpose code.\n\nThis project endeavours to provide code that is high quality, well tested, clean, performant, and memory efficient. \n\n\n## Redzen top level namespaces\n\n* Collections\n* IO\n* Linq\n* Numerics\n* Random\n* Sorting\n* Structures\n\n## Redzen project map\n\n* **Collections**\n  * *IntStack*\n    * A stack of int32 values. A simpler alternative to Stack\\\u003cint\\\u003e that provides additional Poke() and TryPoke() methods. Optimised for stacks of Int32.\n  * *LightweightList*\n    * A simpler alternative to List\u003cT\u003e that provides an AsSpan() method for efficient access to the internal array element.\n  * *LightweightStack*\n    * A simpler alternative to Stack\\\u003cT\\\u003e that provides additional Poke() and TryPoke() methods.\n    \n* **IO**\n  * *Base64EncodingOutputStream*\n    * Base64 stream encoder.\n  * *FileByteArray*\n    * Presents a 'byte array' backed by a file on disk.\n  * *MemoryBlockStream*\n    * A memory backed stream that stores byte data in blocks, this gives improved performance over System.IO.MemoryStream in some circumstances.\n  * *NonClosingStreamWrapper*\n    * Wraps a stream and prevents calls to Close() and Dispose() from being made on it.\n  * *StreamHelper*\n    * General purpose helper methods for working with streams.\n    \n* **Linq**\n  * *EnumerableUtils*\n    * Utility methods related to LINQ and IEnumerable.\n    \n* **Numerics**\n  * **Distributions**\n    * **Double**    \n      * *BoxMullerGaussian*\n        * Static methods for taking samples from Gaussian distributions using the Box-Muller transform.\n      * *BoxMullerGaussianSampler*\n        * A Gaussian distribution sampler based on the Box-Muller transform.\n      * *BoxMullerGaussianStatelessSampler*\n        * A stateless Gaussian distribution sampler based on the Box-Muller transform.\n      * *UniformDistribution*\n        * Static methods for taking samples from uniform distributions.\n      * *UniformDistributionSampler*\n        * A uniform distribution sampler.\n      * *UniformDistributionStatelessSampler*\n        * A stateless uniform distribution sampler.\n      * *ZigguratGaussian*\n        * Static methods for taking samples from Gaussian distributions using the Ziggurat algorithm.\n      * *ZigguratGaussianSampler*\n        * A Gaussian distribution sampler based on the Ziggurat algorithm.\n      * *ZigguratGaussianStatelessSampler*\n        * A stateless Gaussian distribution sampler based on the Ziggurat algorithm.\n    * **Float**    \n      * *BoxMullerGaussian*\n        * Static methods for taking samples from Gaussian distributions using the Box-Muller transform.\n      * *BoxMullerGaussianSampler*\n        * A Gaussian distribution sampler based on the Box-Muller transform.\n      * *BoxMullerGaussianStatelessSampler*\n        * A stateless Gaussian distribution sampler based on the Box-Muller transform.\n      * *UniformDistribution*\n        * Static methods for taking samples from uniform distributions.\n      * *UniformDistributionSampler*\n        * A uniform distribution sampler.\n      * *UniformDistributionStatelessSampler*\n        * A stateless uniform distribution sampler.\n      * *ZigguratGaussian*\n        * Static methods for taking samples from Gaussian distributions using the Ziggurat algorithm.\n      * *ZigguratGaussianSampler*\n        * A Gaussian distribution sampler based on the Ziggurat algorithm.\n      * *ZigguratGaussianStatelessSampler*\n        * A stateless Gaussian distribution sampler based on the Ziggurat algorithm.\n\n* **Random**\n  * *DefaultRandomSeedSource*\n    * A default source of seed values for use by pseudo-random number generators (PRNGs).\n  * *RandomDefaults*\n    * Provides a means of creating default implementations of IRandomSource, and also a standard way of generating seed values for PRNGs generally.\n  * *Splitmix64Rng*\n    * Splitmix64 Pseudo Random Number Generator (PRNG).\n  * *WyRandom*\n    * wyrand pseudo-random number generator. Uses the wyrand PRNG defined at https://github.com/wangyi-fudan/wyhash.\n  * *XorShiftRandom*\n    * xor-shift pseudo random number generator (PRNG) devised by George Marsaglia.\n  * *Xoshiro256PlusPlusRandom*\n    * xoshiro256+ (xor, shift, rotate) pseudo-random number generator (PRNG).\n  * *Xoshiro256PlusRandom*\n    * xoshiro256++ (xor, shift, rotate) pseudo-random number generator (PRNG).\n  * *Xoshiro256StarStarRandom*\n    * xoshiro256** (xor, shift, rotate) pseudo-random number generator (PRNG).\n  * *Xoshiro512StarStarRandom*\n    * xoshiro512** (xor, shift, rotate) pseudo-random number generator (PRNG).\n\n* **Sorting**\n  * *IntroSort\\\u003cK, V, W\\\u003e*\n    * For sorting an array of key values, and two additional arrays based on the array of keys.\n  * *SortUtils*\n    * Helper methods related to sorting.\n  * *TimSort\\\u003cT\\\u003e*\n    * A timsort implementation.\n  * *TimSort\\\u003cK,V\\\u003e*\n    * A timsort implementation. This version accepts a secondary values array, the elements of which are repositioned in-line with their associated key values.\n  * *TimSort\\\u003cK,V,W\\\u003e*\n    * A timsort implementation. This version accepts two secondary values arrays, the elements of which are repositioned in-line with their associated key values.\n\n* **Structures**\n  * **Compact**\n    * *CompactIntegerList*\n      * A compact list of sequential integer values.\n    * *FixedPointDecimal*\n      * A fixed point decimal data type that uses Int32 for its underlying state, i.e. 4 bytes versus the native decimal's 16 bytes.\n  * *BoolArray*\n    * A leaner faster alternative to System.Collections.BitArray.\n  * *CircularBuffer\\\u003cT\\\u003e*\n    * A generic circular buffer of items of type T. \n  * *CircularBufferWithStats*\n    * A circular buffer of double precision floating point values, that maintains a sum of the contained values, and therefore also the arithmetic mean.\n  * *Int32Sequence*\n    * Conveniently encapsulates a single Int32, which is incremented to produce new IDs.\n  * *KeyedCircularBuffer\\\u003cK,V\\\u003e*\n    *  A generic circular buffer of KeyValuePairs. The values are retrievable by their key.\n\n* **Miscellany / Root Namespace**\n* *FloatUtils*\n  * Static utility methods for `IBinaryFloatingPointIeee754\u003cT\u003e` types.\n* *MathSpan*\n  * Math utility methods for working with spans.\n* *MathUtils*\n  * Math utility methods.\n* *PrimeUtils*\n  * Utility methods related to prime numbers.\n* *SearchUtils*\n  * Helper methods related to binary search.\n* *SpanUtils*\n  * Span static utility methods.\n* *VariableUtils*\n    * General purpose helper methods.\n  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcolgreen%2Fredzen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcolgreen%2Fredzen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcolgreen%2Fredzen/lists"}