Subject: Re: Proposed HPF feature

From: David Loveman <[email-masked]>
Date: Mon, 13 Apr 92 12:21:00 PDT

With respect to:

>> f(ix) = f(ix) + delta
>> 
>> where ix is a non-unique index vector (actually usually ix(j)).
>>       f and delta are vectors (or arrays) of length less
>>       than ix.

I feel that the user's wish is backwards.  The assertion one might want
to make is that the values in ix *are* unique.  In the absence of this
information, the compiler should *not* vectorize the code, but rather,
if it is clever enough, recognize the special case and call the ugly
subroutine for the user.

VAST provides a directive

CVD$ PERMUTATION(integer_array)

to assert that integer_array has no repeated values.  Thus, in this
case, the user wants to say

CVD$ NOPERMUTATION(ix)

[although VAST, in fact, does not allow "NO" to prefix "PERMUTATION"]

"PERMUTATION" is the wrong term, since it is not asserting that
integer_array is a permutation, just that it has no repeated values. 
This suggests a better term might be something like "UNIQUE_VALUES" and
NO_UNIQUE_VALUES"

-David

---

From: Guy Steele <[email-masked]>
Date: Mon, 13 Apr 92 16:24:04 EDT

Date: Mon, 13 Apr 92 12:21:00 PDT
   From: David Loveman <[email-masked]>
   Apparently-To: [email-masked], [email-masked]

   CVD$ NOPERMUTATION(ix)

Actually, "DISTINCT_VALUES" and "POSSIBLY_REPEATED_VALUES"
("INDISTINCT_VALUES"???) would be more accurate.  I know
that computer scientists, especially, tend to abuse the word
"UNIQUE" in this way, but I would rather avoid it.

--Guy