Skip to content

Commit

Permalink
Use long indexes.
Browse files Browse the repository at this point in the history
  • Loading branch information
jdunkerley committed Jan 24, 2025
1 parent 7c3657f commit 18d4713
Show file tree
Hide file tree
Showing 9 changed files with 33 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@ public AddOp() {

@Override
public double doDouble(
double a, double b, int ix, MapOperationProblemAggregator problemAggregator) {
double a, double b, long ix, MapOperationProblemAggregator problemAggregator) {
return a + b;
}

@Override
public Long doLong(long a, long b, int ix, MapOperationProblemAggregator problemAggregator) {
public Long doLong(long a, long b, long ix, MapOperationProblemAggregator problemAggregator) {
try {
return Math.addExact(a, b);
} catch (ArithmeticException e) {
Expand All @@ -30,7 +30,7 @@ public Long doLong(long a, long b, int ix, MapOperationProblemAggregator problem

@Override
public BigInteger doBigInteger(
BigInteger a, BigInteger b, int ix, MapOperationProblemAggregator problemAggregator) {
BigInteger a, BigInteger b, long ix, MapOperationProblemAggregator problemAggregator) {
return a.add(b);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,10 @@ public DivideOp() {

@Override
public double doDouble(
double a, double b, int ix, MapOperationProblemAggregator problemAggregator) {
double a, double b, long ix, MapOperationProblemAggregator problemAggregator) {
if (b == 0.0) {
problemAggregator.reportDivisionByZero(ix);
// ToDo: ProblemAggregator should accept a long instead of an int.
problemAggregator.reportDivisionByZero((int)ix);
}
return a / b;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,18 @@ public MaxOp() {

@Override
public double doDouble(
double a, double b, int ix, MapOperationProblemAggregator problemAggregator) {
double a, double b, long ix, MapOperationProblemAggregator problemAggregator) {
return Math.max(a, b);
}

@Override
public Long doLong(long a, long b, int ix, MapOperationProblemAggregator problemAggregator) {
public Long doLong(long a, long b, long ix, MapOperationProblemAggregator problemAggregator) {
return Math.max(a, b);
}

@Override
public BigInteger doBigInteger(
BigInteger a, BigInteger b, int ix, MapOperationProblemAggregator problemAggregator) {
BigInteger a, BigInteger b, long ix, MapOperationProblemAggregator problemAggregator) {
return a.max(b);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,18 @@ public MinOp() {

@Override
public double doDouble(
double a, double b, int ix, MapOperationProblemAggregator problemAggregator) {
double a, double b, long ix, MapOperationProblemAggregator problemAggregator) {
return Math.min(a, b);
}

@Override
public Long doLong(long a, long b, int ix, MapOperationProblemAggregator problemAggregator) {
public Long doLong(long a, long b, long ix, MapOperationProblemAggregator problemAggregator) {
return Math.min(a, b);
}

@Override
public BigInteger doBigInteger(
BigInteger a, BigInteger b, int ix, MapOperationProblemAggregator problemAggregator) {
BigInteger a, BigInteger b, long ix, MapOperationProblemAggregator problemAggregator) {
return a.min(b);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,20 @@ public ModOp() {

@Override
public double doDouble(
double a, double b, int ix, MapOperationProblemAggregator problemAggregator) {
double a, double b, long ix, MapOperationProblemAggregator problemAggregator) {
if (b == 0.0) {
problemAggregator.reportDivisionByZero(ix);
// ToDo: ProblemAggregator should accept a long instead of an int.
problemAggregator.reportDivisionByZero((int)ix);
}

return a % b;
}

@Override
public Long doLong(long a, long b, int ix, MapOperationProblemAggregator problemAggregator) {
public Long doLong(long a, long b, long ix, MapOperationProblemAggregator problemAggregator) {
if (b == 0) {
problemAggregator.reportDivisionByZero(ix);
// ToDo: ProblemAggregator should accept a long instead of an int.
problemAggregator.reportDivisionByZero((int)ix);
return null;
}

Expand All @@ -33,9 +35,10 @@ public Long doLong(long a, long b, int ix, MapOperationProblemAggregator problem

@Override
public BigInteger doBigInteger(
BigInteger a, BigInteger b, int ix, MapOperationProblemAggregator problemAggregator) {
BigInteger a, BigInteger b, long ix, MapOperationProblemAggregator problemAggregator) {
if (b.equals(BigInteger.ZERO)) {
problemAggregator.reportDivisionByZero(ix);
// ToDo: ProblemAggregator should accept a long instead of an int.
problemAggregator.reportDivisionByZero((int)ix);
return null;
}

Expand All @@ -46,7 +49,8 @@ public BigInteger doBigInteger(
public BigDecimal doBigDecimal(
BigDecimal a, BigDecimal b, long ix, MapOperationProblemAggregator problemAggregator) {
if (b.equals(BigDecimal.ZERO)) {
problemAggregator.reportDivisionByZero((int) ix);
// ToDo: ProblemAggregator should accept a long instead of an int.
problemAggregator.reportDivisionByZero((int)ix);
return null;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@ public MulOp() {

@Override
public double doDouble(
double a, double b, int ix, MapOperationProblemAggregator problemAggregator) {
double a, double b, long ix, MapOperationProblemAggregator problemAggregator) {
return a * b;
}

@Override
public Long doLong(long a, long b, int ix, MapOperationProblemAggregator problemAggregator) {
public Long doLong(long a, long b, long ix, MapOperationProblemAggregator problemAggregator) {
try {
return Math.multiplyExact(a, b);
} catch (ArithmeticException e) {
Expand All @@ -30,7 +30,7 @@ public Long doLong(long a, long b, int ix, MapOperationProblemAggregator problem

@Override
public BigInteger doBigInteger(
BigInteger a, BigInteger b, int ix, MapOperationProblemAggregator problemAggregator) {
BigInteger a, BigInteger b, long ix, MapOperationProblemAggregator problemAggregator) {
return a.multiply(b);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
import org.enso.table.data.column.operation.map.MapOperationProblemAggregator;

public interface NumericBinaryOpDefinition {
double doDouble(double a, double b, int ix, MapOperationProblemAggregator problemAggregator);
double doDouble(double a, double b, long ix, MapOperationProblemAggregator problemAggregator);

Long doLong(long a, long b, int ix, MapOperationProblemAggregator problemAggregator);
Long doLong(long a, long b, long ix, MapOperationProblemAggregator problemAggregator);

BigInteger doBigInteger(
BigInteger a, BigInteger b, int ix, MapOperationProblemAggregator problemAggregator);
BigInteger a, BigInteger b, long ix, MapOperationProblemAggregator problemAggregator);

BigDecimal doBigDecimal(
BigDecimal a, BigDecimal b, long ix, MapOperationProblemAggregator problemAggregator);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ public PowerOp() {

@Override
public double doDouble(
double a, double b, int ix, MapOperationProblemAggregator problemAggregator) {
double a, double b, long ix, MapOperationProblemAggregator problemAggregator) {
return Math.pow(a, b);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@ public SubOp() {

@Override
public double doDouble(
double a, double b, int ix, MapOperationProblemAggregator problemAggregator) {
double a, double b, long ix, MapOperationProblemAggregator problemAggregator) {
return a - b;
}

@Override
public Long doLong(long a, long b, int ix, MapOperationProblemAggregator problemAggregator) {
public Long doLong(long a, long b, long ix, MapOperationProblemAggregator problemAggregator) {
try {
return Math.subtractExact(a, b);
} catch (ArithmeticException e) {
Expand All @@ -30,7 +30,7 @@ public Long doLong(long a, long b, int ix, MapOperationProblemAggregator problem

@Override
public BigInteger doBigInteger(
BigInteger a, BigInteger b, int ix, MapOperationProblemAggregator problemAggregator) {
BigInteger a, BigInteger b, long ix, MapOperationProblemAggregator problemAggregator) {
return a.subtract(b);
}

Expand Down

0 comments on commit 18d4713

Please sign in to comment.