I'm probably still missing some skills here. However I got some definite improvements by making sure my numbers were float. Is there another way to get this other than;
Array(List,datatype=float) (or similar)?
Strangelly the evalhf was choking on the pretty print square root sign.
In a seperate document I was able to use the pretty print (document mode?) square root. Sometimes I think hidden characters get into document mode and screw things up. Especially when cutting and pasting.
I tried map2[evalhf](deltaE,Array1,[Array2]) This works ok but the evalhf doen't seem to make any difference. Its still faster to do Array(deltaE(List1,List2),datatype=float).
min[index] is just returning min not the index. I used with(SignalProcessing) Minimum(Array,'index") and that does the job.
arctan(a,b) is almost the ATAN2 function. Like Atan2 arctan(0.0,0.0) is undefined. Curiously arctan(0,0)=0 which is what I wanted for my black point. Anyway it is a little cleaner, but not much faster what I had before.
Should I be thinking about a code edit region and do loops? My experience with the square root sign makes my a little suspicious of the document mode when speed is a consideration.