|
|
@ -13,12 +13,11 @@ import java.util.ArrayList;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* @author A. V. Markou
|
|
|
|
* @author A. V. Markou
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@Named(value = "matrixOperations")
|
|
|
|
@Named(value = "matrixOperations")
|
|
|
|
@ViewScoped
|
|
|
|
@ViewScoped
|
|
|
|
public class MatrixOperations implements Serializable
|
|
|
|
public class MatrixOperations implements Serializable {
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Inject
|
|
|
|
@Inject
|
|
|
|
MatrixBeanA matrixA;
|
|
|
|
MatrixBeanA matrixA;
|
|
|
@ -27,81 +26,91 @@ public class MatrixOperations implements Serializable
|
|
|
|
|
|
|
|
|
|
|
|
@Inject
|
|
|
|
@Inject
|
|
|
|
MatrixBeanC matrixC;
|
|
|
|
MatrixBeanC matrixC;
|
|
|
|
|
|
|
|
|
|
|
|
edu.slcc.asdv.bl.Matrices matrixManipulator = new edu.slcc.asdv.bl.Matrices();
|
|
|
|
edu.slcc.asdv.bl.Matrices matrixManipulator = new edu.slcc.asdv.bl.Matrices();
|
|
|
|
|
|
|
|
|
|
|
|
public String add() {
|
|
|
|
public String add() {
|
|
|
|
|
|
|
|
|
|
|
|
ArrayList<ArrayList<String>> a = matrixA.getMatrix();
|
|
|
|
ArrayList<ArrayList<String>> a = matrixA.getMatrix();
|
|
|
|
ArrayList<ArrayList<String>> b = matrixB.getMatrix();
|
|
|
|
ArrayList<ArrayList<String>> b = matrixB.getMatrix();
|
|
|
|
ArrayList<ArrayList<String>> c = new ArrayList<ArrayList<String>>();
|
|
|
|
ArrayList<ArrayList<String>> c = new ArrayList<ArrayList<String>>();
|
|
|
|
|
|
|
|
|
|
|
|
for ( int i=0; i < a.size(); ++i)
|
|
|
|
for (int i = 0; i < a.size(); ++i) {
|
|
|
|
{
|
|
|
|
|
|
|
|
ArrayList<String> row = new ArrayList<>();
|
|
|
|
ArrayList<String> row = new ArrayList<>();
|
|
|
|
for ( int j=0; j < a.size(); ++j)
|
|
|
|
for (int j = 0; j < a.size(); ++j) {
|
|
|
|
{
|
|
|
|
Integer result = Integer.parseInt(a.get(i).get(j))
|
|
|
|
Integer result = Integer.parseInt ( a.get(i).get(j))
|
|
|
|
+ Integer.parseInt(b.get(i).get(j));
|
|
|
|
+
|
|
|
|
|
|
|
|
Integer.parseInt ( b.get(i).get(j));
|
|
|
|
row.add(result.toString());
|
|
|
|
|
|
|
|
}
|
|
|
|
row.add( result.toString() );
|
|
|
|
c.add(row);
|
|
|
|
}
|
|
|
|
System.out.println(row);
|
|
|
|
c.add(row);
|
|
|
|
|
|
|
|
System.out.println(row);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
matrixC.setMatrix( c );
|
|
|
|
matrixC.setMatrix(c);
|
|
|
|
return "";
|
|
|
|
return "";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public String multiply() {
|
|
|
|
public String multiply() {
|
|
|
|
ArrayList<ArrayList<BigInteger>> a = convertToBigInteger(matrixA.getMatrix());
|
|
|
|
ArrayList<ArrayList<BigInteger>> a = convertToBigInteger(matrixA.getMatrix());
|
|
|
|
ArrayList<ArrayList<BigInteger>> b = convertToBigInteger(matrixA.getMatrix());
|
|
|
|
ArrayList<ArrayList<BigInteger>> b = convertToBigInteger(matrixA.getMatrix());
|
|
|
|
ArrayList<ArrayList<String>> c = new ArrayList<ArrayList<String>>();
|
|
|
|
ArrayList<ArrayList<String>> c = new ArrayList<ArrayList<String>>();
|
|
|
|
c = convertToString(matrixManipulator.multiplyParallel(a, b));
|
|
|
|
|
|
|
|
printArray(c);
|
|
|
|
for (int i = 0; i < a.size(); i++) {
|
|
|
|
matrixC.setMatrix( c );
|
|
|
|
ArrayList<String> rowResult = new ArrayList<>();
|
|
|
|
return "";}
|
|
|
|
for (int j = 0; j < b.get(i).size(); j++) {
|
|
|
|
|
|
|
|
BigInteger sum = BigInteger.ZERO;
|
|
|
|
public String subtract() {
|
|
|
|
for (int k = 0; k < a.get(0).size(); k++) {
|
|
|
|
|
|
|
|
sum = sum.add(a.get(i).get(k).multiply(b.get(k).get(j)));
|
|
|
|
ArrayList<ArrayList<String>> a = matrixA.getMatrix();
|
|
|
|
}
|
|
|
|
ArrayList<ArrayList<String>> b = matrixB.getMatrix();
|
|
|
|
rowResult.add(sum.toString());
|
|
|
|
ArrayList<ArrayList<String>> c = new ArrayList<ArrayList<String>>();
|
|
|
|
}
|
|
|
|
|
|
|
|
c.add(rowResult);
|
|
|
|
for ( int i=0; i < a.size(); ++i)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
ArrayList<String> row = new ArrayList<>();
|
|
|
|
|
|
|
|
for ( int j=0; j < a.size(); ++j)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Integer result = Integer.parseInt ( a.get(i).get(j))
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
|
|
Integer.parseInt ( b.get(i).get(j));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
row.add( result.toString() );
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
c.add(row);
|
|
|
|
|
|
|
|
System.out.println(row);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
matrixC.setMatrix( c );
|
|
|
|
|
|
|
|
return "";
|
|
|
|
printArray(c);
|
|
|
|
|
|
|
|
matrixC.setMatrix(c);
|
|
|
|
|
|
|
|
return "";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public String subtract() {
|
|
|
|
public MatrixBeanC getMatrixC(){return this.matrixC;}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public MatrixBeanA getMatrixA(){return matrixA;}
|
|
|
|
ArrayList<ArrayList<String>> a = matrixA.getMatrix();
|
|
|
|
|
|
|
|
ArrayList<ArrayList<String>> b = matrixB.getMatrix();
|
|
|
|
|
|
|
|
ArrayList<ArrayList<String>> c = new ArrayList<ArrayList<String>>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < a.size(); ++i) {
|
|
|
|
|
|
|
|
ArrayList<String> row = new ArrayList<>();
|
|
|
|
|
|
|
|
for (int j = 0; j < a.size(); ++j) {
|
|
|
|
|
|
|
|
Integer result = Integer.parseInt(a.get(i).get(j))
|
|
|
|
|
|
|
|
- Integer.parseInt(b.get(i).get(j));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
row.add(result.toString());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
c.add(row);
|
|
|
|
|
|
|
|
System.out.println(row);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
matrixC.setMatrix(c);
|
|
|
|
|
|
|
|
return "";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public MatrixBeanC getMatrixC() {
|
|
|
|
|
|
|
|
return this.matrixC;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public MatrixBeanA getMatrixA() {
|
|
|
|
|
|
|
|
return matrixA;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public MatrixBeanB getMatrixB() {
|
|
|
|
|
|
|
|
return matrixB;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public MatrixBeanB getMatrixB(){return matrixB;}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public ArrayList<ArrayList<BigInteger>> convertToBigInteger(ArrayList<ArrayList<String>> matrix) {
|
|
|
|
public ArrayList<ArrayList<BigInteger>> convertToBigInteger(ArrayList<ArrayList<String>> matrix) {
|
|
|
|
ArrayList<ArrayList<BigInteger>> bigInt2DArray = new ArrayList<>();
|
|
|
|
ArrayList<ArrayList<BigInteger>> bigInt2DArray = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < matrix.size(); i++) {
|
|
|
|
for (int i = 0; i < matrix.size(); i++) {
|
|
|
|
ArrayList<BigInteger> columnArray = new ArrayList<BigInteger>();
|
|
|
|
ArrayList<BigInteger> columnArray = new ArrayList<BigInteger>();
|
|
|
|
for (int j = 0; j < matrix.get(i).size(); j++) {
|
|
|
|
for (int j = 0; j < matrix.get(i).size(); j++) {
|
|
|
|
String cellValue = matrix.get(i).get(j);
|
|
|
|
String cellValue = matrix.get(i).get(j);
|
|
|
|
columnArray.add(new BigInteger(cellValue));
|
|
|
|
columnArray.add(new BigInteger(cellValue));
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -110,7 +119,7 @@ public class MatrixOperations implements Serializable
|
|
|
|
|
|
|
|
|
|
|
|
return bigInt2DArray;
|
|
|
|
return bigInt2DArray;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public ArrayList<ArrayList<String>> convertToString(ArrayList<ArrayList<BigInteger>> matrix) {
|
|
|
|
public ArrayList<ArrayList<String>> convertToString(ArrayList<ArrayList<BigInteger>> matrix) {
|
|
|
|
int numRows = matrix.size();
|
|
|
|
int numRows = matrix.size();
|
|
|
|
int numCols = matrix.get(0).size();
|
|
|
|
int numCols = matrix.get(0).size();
|
|
|
@ -125,7 +134,7 @@ public class MatrixOperations implements Serializable
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return string2DArray;
|
|
|
|
return string2DArray;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* @param matrix
|
|
|
|
* @param matrix
|
|
|
@ -143,7 +152,7 @@ public class MatrixOperations implements Serializable
|
|
|
|
System.out.println(output);
|
|
|
|
System.out.println(output);
|
|
|
|
return output;
|
|
|
|
return output;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public String printSingleArray(ArrayList<String> matrix) {
|
|
|
|
public String printSingleArray(ArrayList<String> matrix) {
|
|
|
|
String output = "\t{";
|
|
|
|
String output = "\t{";
|
|
|
|
for (int i = 0; i < matrix.size(); ++i) {
|
|
|
|
for (int i = 0; i < matrix.size(); ++i) {
|
|
|
@ -155,6 +164,5 @@ public class MatrixOperations implements Serializable
|
|
|
|
output += "}";
|
|
|
|
output += "}";
|
|
|
|
return output;
|
|
|
|
return output;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|