I found I wanted to use this function today, and I wanted to check it out to see how it was written to determine if it could be optimized a bit (I was reasonably sure it could). Most UDF functions are written for a wide use, and narrowing the parameters can lead to performance gains. The reason being that I knew I would be dealing with fairly large arrays (10K+).
Well, I really didn't like the way it was done. It created a temp array with _ArrayAdd (poor performance) and converted the input