<commit_before>![Build Status](https://ci.appveyor.com/api/projects/status/github/jackmott/LinqFaster "Build Status")

[<img src="https://liberapay.com/assets/widgets/donate.svg">](https://liberapay.com/jackmott/donate)

# LinqFaster
A set of extension methods for `arrays[]` and `List<T>` that are faster and allocate less.

LinqFaster now includes all relevant Linq extension methods, and **SIMD** enhanced extension methods are
being worked on now as well.

# Benchmarks

 |             Method | TEST_SIZE |           Mean | Allocated |
 |------------------- |---------- |--------------- |---------- |
 |        OrderByLinq |    100000 | 24,436.0135 us |    1.2 MB |
 |        OrderByFast |    100000 |  5,612.7712 us |  802.1 kB |
 |            MinLinq |    100000 |    548.9181 us |      48 B |
 |            MinFast |    100000 |     69.2122 us |       0 B |
 |        MinFastSIMD |    100000 |     14.5291 us |       0 B |
 |            SumLinq |    100000 |    541.3823 us |      48 B |
 |            SumFast |    100000 |     53.8166 us |       0 B |
 |        SumFastSIMD |    100000 |      9.7636 us |       0 B |
 
More detailed info and benchmarks available in the **[benchmarks](Benchmarks.md)**  file which
will be continually updated.


# Please Contribute
This is a work in progress, PRs would be appreciated. Lots of easy grunt work to do here to cover all the Linq extension methods. Feel free to contact me I can give guidance if you are not sure what to do or how to use github / git.
We need more tests and I would love input on performance tweaks.

# Features

* **SIMD** enhanced array operations
* :arrow_down: Execution time
* :arrow_down: GC churn
* :arrow_up: Battery life
* :arrow_down: Sever farm costs
* :arrow_down: Co2 output<commit_msg>parallel<commit_after>![Build Status](https://ci.appveyor.com/api/projects/status/github/jackmott/LinqFaster "Build Status")

[<img src="https://liberapay.com/assets/widgets/donate.svg">](https://liberapay.com/jackmott/donate)

# LinqFaster
A set of extension methods for `arrays[]` and `List<T>` that are faster and allocate less.

LinqFaster now includes all relevant Linq extension methods, and **SIMD** and **parallel** enhanced extension methods are
being worked on now as well.

# Benchmarks

64bit Win 10, 2 Core I7 Mobile

 |             Method | TEST_SIZE |           Mean | Allocated |
 |------------------- |---------- |--------------- |---------- |
 |        OrderByLinq |    100000 | 24,436.0135 us |    1.2 MB |
 |        OrderByFast |    100000 |  5,612.7712 us |  802.1 kB |
 |            MinLinq |    100000 |    548.9181 us |      48 B |
 |            MinFast |    100000 |     69.2122 us |       0 B |
 |        MinFastSIMD |    100000 |     14.5291 us |       0 B |
 |            SumLinq |    100000 |    541.3823 us |      48 B |
 |            SumFast |    100000 |     53.8166 us |       0 B |
 |        SumFastSIMD |    100000 |      9.7636 us |       0 B |
 |SumFastSIMDParallel |    100000 |      3.7074 us |   1.11 kB |


More detailed info and benchmarks available in the **[benchmarks](Benchmarks.md)**  file which
will be continually updated.


# Please Contribute
This is a work in progress, PRs would be appreciated. Lots of easy grunt work to do here to cover all the Linq extension methods. Feel free to contact me I can give guidance if you are not sure what to do or how to use github / git.
We need more tests and I would love input on performance tweaks.

# Features

* **SIMD** enhanced array operations
* :arrow_down: Execution time
* :arrow_down: GC churn
* :arrow_up: Battery life
* :arrow_down: Sever farm costs
* :arrow_down: Co2 output
{'fraction_non_alphanumeric': 0.12112907645930392, 'fraction_numerical': 0.0696081118114552, 'mean_word_length': 2.2186948853615522, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 6, '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': '2904558', 'n_tokens_mistral': 1262, 'n_tokens_neox': 1090, 'n_words': 400}