diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/MatMult.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/MatMult.java index b493cfcbd39bfb2dbbcd38812164ad77ce869501..589e4cf028ed66e5fbe43a67a1e0d081485426e4 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/MatMult.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/MatMult.java @@ -371,7 +371,7 @@ public abstract class MatMult extends RBuiltinNode { na.check(x); } result[row << 1] = x.getRealPart(); - result[row << 1 + 1] = x.getImaginaryPart(); + result[(row << 1) + 1] = x.getImaginaryPart(); } return RDataFactory.createComplexVector(result, na.neverSeenNA(), new int[]{aRows, 1}); } else { @@ -381,7 +381,7 @@ public abstract class MatMult extends RBuiltinNode { RComplex x = mult.applyComplex(a.getDataAt(row), b.getDataAt(k)); na.check(x); result[(k * aRows + row) << 1] = x.getRealPart(); - result[(k * aRows + row) << 1 + 1] = x.getRealPart(); + result[((k * aRows + row) << 1) + 1] = x.getRealPart(); } } return RDataFactory.createComplexVector(result, na.neverSeenNA(), new int[]{aRows, b.getLength()}); @@ -406,7 +406,7 @@ public abstract class MatMult extends RBuiltinNode { na.check(x); } result[k << 1] = x.getRealPart(); - result[k << 1 + 1] = x.getImaginaryPart(); + result[(k << 1) + 1] = x.getImaginaryPart(); } return RDataFactory.createComplexVector(result, na.neverSeenNA(), new int[]{1, bCols}); } else { @@ -416,7 +416,7 @@ public abstract class MatMult extends RBuiltinNode { RComplex x = mult.applyComplex(a.getDataAt(row), b.getDataAt(k)); na.check(x); result[(k * a.getLength() + row) << 1] = x.getRealPart(); - result[(k * a.getLength() + row) << 1 + 1] = x.getImaginaryPart(); + result[((k * a.getLength() + row) << 1) + 1] = x.getImaginaryPart(); } } return RDataFactory.createComplexVector(result, na.neverSeenNA(), new int[]{a.getLength(), bCols}); diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Unique.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Unique.java index 08f16b42541c32820bbfb58aac92904ae69a25e4..74c3cda1adc2acb91fe46584ee1a18ab30fe37f3 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Unique.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Unique.java @@ -176,7 +176,7 @@ public abstract class Unique extends RBuiltinNode { public boolean contains(RComplex val) { for (int i = 0; i < index; i++) { - if (backingArray[i << 1] == val.getRealPart() && backingArray[i << 1 + 1] == val.getImaginaryPart()) { + if (backingArray[i << 1] == val.getRealPart() && backingArray[(i << 1) + 1] == val.getImaginaryPart()) { return true; } } diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_operators.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_operators.java index 5599bc8cc873e7227e5d34731421625417c49e0b..47e17724e82ff67fe1bed273551f39493b9ae00b 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_operators.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_operators.java @@ -1955,8 +1955,8 @@ public class TestBuiltin_operators extends TestBase { assertEval("{ c(1+1i,2-2i,3+3i) %*% c(4-4i,5+5i,6-6i) }"); assertEval("{ matrix(c(1+1i,0-0i,4+4i),3) %*% matrix(c(3+3i,1-1i,2+2i,0-0i,1+1i,2-2i),1) }"); - assertEval(Ignored.Unknown, "{ matrix(c(3+3i,1-1i,2+2i,0-0i,1+1i,2-2i),2) %*% c(1+1i,0-0i,4+4i) }"); - assertEval(Ignored.Unknown, "{ c(1+1i,0-0i,4+4i) %*% matrix(c(3+3i,1-1i,2+2i,0-0i,1+1i,2-2i),3) }"); + assertEval("{ matrix(c(3+3i,1-1i,2+2i,0-0i,1+1i,2-2i),2) %*% c(1+1i,0-0i,4+4i) }"); + assertEval("{ c(1+1i,0-0i,4+4i) %*% matrix(c(3+3i,1-1i,2+2i,0-0i,1+1i,2-2i),3) }"); } @Test