publicclassVectorAPIExample { privatestaticfinal VectorSpecies<Double> SPECIES = DoubleVector.SPECIES_PREFERRED;
publicstaticvoidmain(String[] args) { double[] a = {1.0, 2.0, 3.0, 4.0}; double[] b = {5.0, 6.0, 7.0, 8.0}; double[] result = newdouble[a.length];
// 向量计算:a + b → result for (inti=0; i < a.length; i += SPECIES.length()) { DoubleVectorva= DoubleVector.fromArray(SPECIES, a, i); DoubleVectorvb= DoubleVector.fromArray(SPECIES, b, i); DoubleVectorvr= va.add(vb); vr.intoArray(result, i); }
publicclassVectorAPIJDK17Example { privatestaticfinal VectorSpecies<Double> SPECIES = DoubleVector.SPECIES_PREFERRED;
publicstaticvoidmain(String[] args) { double[] a = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0}; double[] b = {0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5}; double[] result = newdouble[a.length];
// 向量计算:a * b + a → result for (inti=0; i < a.length; i += SPECIES.length()) { DoubleVectorva= DoubleVector.fromArray(SPECIES, a, i); DoubleVectorvb= DoubleVector.fromArray(SPECIES, b, i); // 新特性:向量掩码操作(条件性计算) DoubleVectormask= va.gt(3.0); // 创建掩码:va 中大于 3 的元素 DoubleVectorvc= va.mul(vb); // 计算 a * b DoubleVectorvd= vc.add(va); // 计算 (a * b) + a // 仅对满足掩码条件的元素应用 vd,其他元素保持不变 va.intoArray(result, i, mask); // 写入原始值(不满足条件的) vd.intoArray(result, i, mask.not()); // 写入计算值(满足条件的) }