Skip to content

Commit 87e86eb

Browse files
committed
added math context for divisions
1 parent 711864d commit 87e86eb

File tree

3 files changed

+4
-43
lines changed

3 files changed

+4
-43
lines changed

Diff for: src/main/java/net/akami/mask/operation/Division.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
public class Division extends BinaryOperationHandler {
1212

1313
private static final Division INSTANCE = new Division();
14+
private static final MathContext CONTEXT = new MathContext(120);
1415

1516
@Override
1617
protected String operate(String a, String b) {
@@ -43,7 +44,7 @@ protected String operate(String a, String b) {
4344
private String numericalDivision(String a, String b) {
4445
BigDecimal bigA = new BigDecimal(a);
4546
BigDecimal bigB = new BigDecimal(b);
46-
String result = MathUtils.cutSignificantZero(bigA.divide(bigB, MathContext.DECIMAL128).toString());
47+
String result = MathUtils.cutSignificantZero(bigA.divide(bigB, CONTEXT).toString());
4748
LOGGER.info("Numeric division. Result of {} / {} : {}", a, b, result);
4849
return result;
4950
}

Diff for: src/main/java/net/akami/mask/operation/Multiplication.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
public class Multiplication extends BinaryOperationHandler {
1212

1313
private static final Multiplication INSTANCE = new Multiplication();
14-
private static final MathContext CONTEXT = new MathContext(100);
14+
private static final MathContext CONTEXT = new MathContext(120);
1515
@Override
1616
protected String operate(String a, String b) {
1717

Diff for: src/main/java/net/akami/mask/operation/Sum.java

+1-41
Original file line numberDiff line numberDiff line change
@@ -24,47 +24,7 @@ public String operate(String a, String b) {
2424
LOGGER.info("---> Sum result of {} |+| {}: {}", a, b, result);
2525
return result;
2626
}
27-
28-
/*public String monomialSum(List<String> monomials, boolean needsFormatting) {
29-
30-
Map<String, Float> parts = new HashMap<>();
31-
32-
for(String monomial : monomials) {
33-
if(monomial == null || monomial.isEmpty()) continue;
34-
35-
String numericValue = ExpressionUtils.toNumericValue(monomial);
36-
String vars = monomial.replaceAll(Pattern.quote(numericValue), "");
37-
while (ExpressionUtils.areEdgesBracketsConnected(vars))
38-
vars = vars.substring(1, vars.length()-1);
39-
numericValue = FormatterFactory.removeFractions(numericValue);
40-
41-
LOGGER.info("Vars from {} : {}", monomial, vars);
42-
if(!parts.containsKey(vars)) {
43-
parts.put(vars, Float.parseFloat(numericValue));
44-
} else {
45-
parts.put(vars, parts.get(vars) + Float.parseFloat(numericValue));
46-
}
47-
}
48-
clearBuilder();
49-
LOGGER.info("Map : {}", parts);
50-
for(String vars : parts.keySet()) {
51-
float numericValue = parts.get(vars);
52-
vars = vars.startsWith("+") ? vars.substring(1) : vars;
53-
if (numericValue == 0)
54-
continue;
55-
56-
if(numericValue == 1 && !vars.isEmpty()) {
57-
BUILDER.append('+').append(vars);
58-
} else if(numericValue == -1 && !vars.isEmpty()) {
59-
BUILDER.append("-").append(vars);
60-
} else if(numericValue < 0) {
61-
BUILDER.append(MathUtils.cutSignificantZero(""+numericValue)).append(vars);
62-
} else {
63-
BUILDER.append('+').append(MathUtils.cutSignificantZero(""+numericValue)).append(vars);
64-
}
65-
}
66-
return BUILDER.toString().substring(1);
67-
}*/
27+
6828
public String monomialSum(List<String> monomials, boolean needsFormatting) {
6929

7030
List<String> finalMonomials = new ArrayList<>();

0 commit comments

Comments
 (0)