The following is a list of changes. The list might not be exhaustive; they're just a list of things I saw while comparing my Array.au3 with the standard UDF's while writing this. The performance differences are what I saw with the scripts I used to test (so YMMV), but some of the new functions might scale up more nicely than the old ones in terms of performance when there are more items in the array.

-=-=-=-=-=-=-=-=-=-
- OBVIOUS CHANGES -
-=-=-=-=-=-=-=-=-=-

_ArrayAdd():
====================
- Performance Difference: ~3% slower
- Now returns the index of the newly-added item


_ArrayBinarySearch():
====================
- Performance Difference: Negligible
- Added $iEnd parameter


_ArrayDelete():
==============
- Performance Difference: up to ~60% faster (less if $iElement near 0, more if $iElement near UBound($avArray))
- Can delete an item from a 1-element array (sets array to "" afterwards); this was done for consistency with _ArrayPop()
- Supports deletion of entire rows from 2D arrays


_ArrayDisplay():
===============
- Performance Difference: up to ~5% faster (tested by placing TimerInit() at beginning of function and TimerDiff() right after GUISetState() is called)
- ~35% smaller in code size
- ~99% more readable :P


_ArrayMax():
===========
- Performance Difference: See _ArrayMaxIndex()
- Added $iEnd parameter


_ArrayMaxIndex():
================
- Performance Difference: up to ~35% faster
- Added $iEnd parameter


_ArrayMin():
===========
- Performance Difference: See _ArrayMinIndex()
- Added $iEnd parameter


_ArrayMinIndex():
================
- Performance Difference: up to ~35% faster
- Added $iEnd parameter


_ArrayPush():
============
- Performance Difference: up to ~90% faster (depends on $vValue type; improvements more visible on arrays)
- Fixed broken support for $vValue as an array while $iDirection is set to true


_ArraySearch():
==============
- Performance Difference: up to ~55% faster
- 2D arrays now supported
- Ability to search array in reverse order (end to beginning)


_ArraySort():
============
- Perfomance Difference: less than ~1% slower
- Removed $i_Dim parameter, since it was pretty useless; now detected in function (hence the performance "hit")


_ArrayToClip():
==============
- Perfomance difference: up to ~60% faster
- Added $iEnd as a parameter to complement the $iStart


_ArrayToString():
================
- Perfomance difference: up to ~6% faster
- Rewrote bounds checking to make it more more consistent with other functions


_ArrayTrim():
============
- Perfomance difference: up to ~30% faster



-=-=-=-=-=-=-=-=-=-=-
- SMALL ADJUSTMENTS -
-=-=-=-=-=-=-=-=-=-=-
Minor touchups to code... still achieved some performance improvement somewhere along the lines of 1-10%

_ArrayInsert():
==============
- Performance Difference: up to ~4% faster


_ArrayPop():
===========
- Performance Difference: up to ~3% faster


_ArrayReverse():
===============
- Performance Difference: up to ~10% faster


_ArraySwap():
============
- Performance Difference: up to ~10% faster
- The code for _ArraySwap() isn't even array specific. It works for any variables that are passed into it. Ideally, I think it should be called _Swap(), and moved outside of Array.au3. Anyhow, I removed one measly line of code (SetError(0)) to get the performance boost.



-=-=-=-=-=-=-
- UNCHANGED -
-=-=-=-=-=-=-

_ArrayCreate():
==============
- Absolutely nothing to change besides the function header



-=-=-=-=-=-=-=-=-
- NEW FUNCTIONS -
-=-=-=-=-=-=-=-=-

_ArrayConcatenate():
===================
- Concatenate two arrays


_ArrayDisplayTree():
===================
- Displays given array in a treeview, with multi-dimensional and nested arrays supported


_ArrayFindAll():
===============
- Find the indices of all ocurrences of a search query between two points in a 1D or 2D array using _ArraySearch()
