[vector] java doc for iota()

Paul Sandoz paul.sandoz at oracle.com
Mon Nov 18 21:00:59 UTC 2019


Hi Sandhya,

How about this:

diff -r 4e1b42f04b63 src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorShuffle.java
--- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorShuffle.java    Fri Nov 15 16:13:16 2019 +0800
+++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorShuffle.java    Mon Nov 18 12:59:22 2019 -0800
@@ -346,14 +346,19 @@
      * Creates a shuffle using source indexes set to sequential
      * values starting from {@code start} and stepping
      * by the given {@code step}.
-     * If {@code wrap} is true, also reduce each index (as if
-     * by {@link VectorShuffle#wrapIndex(int) wrapIndex})
-     * to the valid range {@code [0..VLENGTH-1]}.
      * <p>
      * This method returns the value of the expression
      * {@code VectorShuffle.fromOp(species, i -> R(start + i * step))},
      * where {@code R} is {@code wrapIndex} if {@code wrap} is true,
      * and is the identity function otherwise.
+     * <p>
+     * If {@code wrap} is false each index is validated
+     * against the species {@code VLENGTH}, and (if invalid)
+     * is partially wrapped to an exceptional index in the
+     * range {@code [-VLENGTH..-1]}.
+     * Otherwise, if {@code wrap} is true, also reduce each index, as if
+     * by {@link VectorShuffle#wrapIndex(int) wrapIndex},
+     * to the valid range {@code [0..VLENGTH-1]}.
      *
      * @apiNote The {@code wrap} parameter should be set to {@code
      * true} if invalid source indexes should be wrapped.  Otherwise,
diff -r 4e1b42f04b63 src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorSpecies.java
--- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorSpecies.java    Fri Nov 15 16:13:16 2019 +0800
+++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorSpecies.java    Mon Nov 18 12:59:22 2019 -0800
@@ -645,14 +645,19 @@
      * Creates a shuffle using source indexes set to sequential
      * values starting from {@code start} and stepping
      * by the given {@code step}.
-     * If {@code wrap} is true, also reduce each index, as if
-     * by {@link VectorShuffle#wrapIndex(int) wrapIndex},
-     * to the valid range {@code [0..VLENGTH-1]}.
      * <p>
      * This method returns the value of the expression
      * {@code shuffleFromOp(i -> R(start + i * step))},
      * where {@code R} is {@code wrapIndex} if {@code wrap} is true,
      * and is the identity function otherwise.
+     * <p>
+     * If {@code wrap} is false each index is validated
+     * against the species {@code VLENGTH}, and (if invalid)
+     * is partially wrapped to an exceptional index in the
+     * range {@code [-VLENGTH..-1]}.
+     * Otherwise, if {@code wrap} is true, also reduce each index, as if
+     * by {@link VectorShuffle#wrapIndex(int) wrapIndex},
+     * to the valid range {@code [0..VLENGTH-1]}.
      *
      * @apiNote The {@code wrap} parameter should be set to {@code
      * true} if invalid source indexes should be wrapped.  Otherwise,


Thanks,
Paul.

> On Nov 12, 2019, at 2:53 PM, Viswanathan, Sandhya <sandhya.viswanathan at intel.com> wrote:
> 
> Hi Paul,
>  
> There is another place, where the java doc may need to change.
>  
> The Java implementation of iota() performs full wrapping when “wrap” is passed as true, otherwise it does partial wrapping.
> Whereas the java doc below in VectorShuffle.java doesn’t mention partial wrapping at all:
>     /**
>      * Creates a shuffle using source indexes set to sequential
>      * values starting from {@code start} and stepping
>      * by the given {@code step}.
>      * If {@code wrap} is true, also reduce each index (as if
>      * by {@link VectorShuffle#wrapIndex(int) wrapIndex})
>      * to the valid range {@code [0..VLENGTH-1]}.
>      * <p>
>      * This method returns the value of the expression
>      * {@code VectorShuffle.fromOp(species, i -> R(start + i * step))},
>      * where {@code R} is {@code wrapIndex} if {@code wrap} is true,
>      * and is the identity function otherwise.
>      * ......
>      */
> public static <E> VectorShuffle<E> iota(VectorSpecies<E> species,
>                                             int start, int step,
>                                             boolean wrap) {
>  
> There is mention of partial wrapping in java doc of fromValues in VectorShuffle.java:
>     *
>      * <p> For each shuffle lane, where {@code N} is the shuffle lane
>      * index, the {@code N}th index value is validated
>      * against the species {@code VLENGTH}, and (if invalid)
>      * is partially wrapped to an exceptional index in the
>      * range {@code [-VLENGTH..-1]}.
>  
> Best Regards,
> Sandhya



More information about the panama-dev mailing list