Skip to content

Commit

Permalink
v1.1
Browse files Browse the repository at this point in the history
### Additions

- Added "SIMD_MinMax" functions to all types and contiguous Unity.Collections containers
- Added a "Comparison" enum that is used in "IndexOf", "Contains" and "Count" algorithms, giving the caller a choice to express primitive where clauses, like "index of first x where x > 9000"

### Improvements

- Substantially improved performance and reduced code size of "SIMD_Count" functions for all types (and added caller-site optimization options - see below)
- "SIMD_Count" functions now have a TypeCode parameter "returnType" (set to the most inefficient - "TypeCode.UInt64" - by default) (unless the underlying type is exactly 64 bits wide), which can be overwritten for (s)byte and (u)short containers, in order to enable optimizations
- Slightly improved performance of "SIMD_Contains" functions for all types
- Improved performance of "SIMD_Min" and "SIMD_Max" functions for very small arrays for all types

### Changes

- API BREAKING CHANGE: "SIMD_Count" extension methods now return ints (...since native collections "only" hold up to int.MaxValue elements)
- API BREAKING CHANGE: Any call-sites which explicity declared an array traversal order before ("SIMD_Contains" and/or "SIMD_IndexOf") now require either an explicit "Comparison.EqualTo" parameter or a "traversalOrder:" named parameter declaration
  • Loading branch information
MrUnbelievable92 committed Aug 9, 2021
1 parent da2dfc4 commit ae4d816
Show file tree
Hide file tree
Showing 28 changed files with 32,831 additions and 4,627 deletions.
4 changes: 2 additions & 2 deletions AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,5 @@
// Build Number
// Revision
//
[assembly: AssemblyVersion("1.0.1.0")]
[assembly: AssemblyFileVersion("1.0.1.0")]
[assembly: AssemblyVersion("1.1.0.0")]
[assembly: AssemblyFileVersion("1.1.0.0")]
3,680 changes: 3,028 additions & 652 deletions Runtime/Algorithms/Contains.cs

Large diffs are not rendered by default.

7,029 changes: 5,606 additions & 1,423 deletions Runtime/Algorithms/Count.cs

Large diffs are not rendered by default.

4,573 changes: 3,829 additions & 744 deletions Runtime/Algorithms/IndexOf.cs

Large diffs are not rendered by default.

1,109 changes: 601 additions & 508 deletions Runtime/Algorithms/Maximum.cs

Large diffs are not rendered by default.

Loading

0 comments on commit ae4d816

Please sign in to comment.