7 Commits

Author SHA1 Message Date
799eb03397 Updated version number 2026-01-26 15:04:18 -05:00
ac332f9740 Fix build warnings 2026-01-26 15:01:23 -05:00
8275608730 Remove unnecessary config 2026-01-26 09:37:09 -05:00
63d9d1d488 Update enforcer plugin execution 2026-01-26 09:13:48 -05:00
a16577be96 Update java version 2026-01-26 09:03:17 -05:00
0f4283bc7f Update dependencies 2026-01-25 23:53:02 -05:00
02e5ed607e Fix build warnings 2026-01-25 23:52:56 -05:00
11 changed files with 113 additions and 152 deletions

56
pom.xml
View File

@@ -27,7 +27,7 @@
<groupId>com.mattrixwv</groupId>
<artifactId>matrix</artifactId>
<version>1.2.4-SNAPSHOT</version>
<version>1.3.0</version>
<name>Matrix</name>
<description>A library for performing Matrix operations</description>
@@ -38,11 +38,11 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>25</java.version>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<maven.compiler.source>25</maven.compiler.source>
<maven.compiler.target>25</maven.compiler.target>
<!--Sonarqube-->
<sonar.java.source>21</sonar.java.source>
<sonar.java.source>25</sonar.java.source>
<sonar.dependencyCheck.jsonReportPath>target/dependency-check-report.json</sonar.dependencyCheck.jsonReportPath>
<sonar.dependencyCheck.htmlReportPath>target/dependency-check-report.html</sonar.dependencyCheck.htmlReportPath>
</properties>
@@ -51,7 +51,7 @@
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>6.0.1</version>
<version>6.0.2</version>
<scope>test</scope>
</dependency>
</dependencies>
@@ -60,11 +60,12 @@
<plugins>
<!--Ensure maven is the correct version-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-maven</id>
<phase>enforce</phase>
<phase>validate</phase>
<goals>
<goal>enforce</goal>
</goals>
@@ -73,26 +74,6 @@
</plugin>
<!--Sonarqube-->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>jacoco-initialize</id>
<phase>none</phase>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>jacoco-site</id>
<phase>none</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
@@ -145,10 +126,6 @@
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
</plugin>
</plugins>
<pluginManagement>
@@ -166,6 +143,7 @@
</rules>
</configuration>
</plugin>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.5.0</version>
@@ -173,45 +151,53 @@
<!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.4.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.14.1</version>
<configuration>
<release>${java.version}</release>
<compilerArgs>
<arg>-Xlint:all</arg>
<arg>-Xlint:-serial</arg>
</compilerArgs>
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.5.4</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.5.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>3.1.4</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.21.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.9.0</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.20.1</version>
<version>2.21.0</version>
<configuration>
<rulesUri>file://${session.executionRootDirectory}/version-rules.xml</rulesUri>
</configuration>
@@ -236,15 +222,15 @@
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>12.1.9</version>
<version>12.2.0</version>
<configuration>
<formats>
<format>json</format>
<format>html</format>
</formats>
<nvdApiServerId>nvd</nvdApiServerId>
<failBuildOnCVSS>7</failBuildOnCVSS>
<ossIndexServerId>ossrh</ossIndexServerId>
<failBuildOnCVSS>7</failBuildOnCVSS>
<ossIndexServerId>ossindex</ossIndexServerId>
</configuration>
</plugin>
@@ -252,7 +238,7 @@
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.9.0</version>
<version>0.10.0</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>

View File

@@ -1,7 +1,3 @@
//Matrix/src/main/java/com/mattrixwv/BigIntegerMatrix.java
//Mattrixwv
// Created: 02-10-22
//Modified: 08-11-24
package com.mattrixwv.matrix;
@@ -27,18 +23,17 @@ public class BigIntegerMatrix{
//?Helper functions
/**
* Sets the matrix grid to the specified 2D array. Validates the input to ensure
* all rows are of equal length.
* Validates the input to ensure all rows are of equal length.
*
* @param grid The 2D array to set as the matrix grid.
* @throws InvalidRowSizeException If the rows of the matrix are not all the same length.
* @return the new validated grid
*/
protected void setGrid(BigInteger[][] grid){
private BigInteger[][] validateGrid(BigInteger[][] grid){
if(grid.length == 0){
this.grid = new BigInteger[0][0];
return new BigInteger[0][0];
}
else if(grid[0].length == 0){
this.grid = new BigInteger[grid.length][0];
return new BigInteger[grid.length][0];
}
else{
//Make sure all rows are the same length
@@ -56,9 +51,19 @@ public class BigIntegerMatrix{
}
//Save the new grid
this.grid = newGrid;
return newGrid;
}
}
/**
* Sets the matrix grid to the specified 2D array. Validates the input to ensure
* all rows are of equal length.
*
* @param grid The 2D array to set as the matrix grid.
* @throws InvalidRowSizeException If the rows of the matrix are not all the same length.
*/
protected void setGrid(BigInteger[][] grid){
this.grid = validateGrid(grid);
}
/**
* Creates a deep copy of the matrix grid.
*
@@ -159,7 +164,7 @@ public class BigIntegerMatrix{
* @param grid The 2D array to initialize the matrix with.
*/
public BigIntegerMatrix(BigInteger[][] grid){
setGrid(grid);
this.grid = validateGrid(grid);
}
/**
* Constructs a copy of the specified matrix.
@@ -167,7 +172,7 @@ public class BigIntegerMatrix{
* @param matrix The matrix to copy.
*/
public BigIntegerMatrix(BigIntegerMatrix matrix){
setGrid(matrix.grid);
this.grid = validateGrid(matrix.grid);
}
/**
* Constructs a matrix with the specified number of rows and columns, filled with the specified value.

View File

@@ -1,7 +1,3 @@
//Matrix/src/main/java/com/mattrixwv/matrix/DoubleMatrix.java
//Mattrixwv
// Created: 02-07-22
//Modified: 08-11-24
package com.mattrixwv.matrix;
@@ -30,18 +26,17 @@ public class DoubleMatrix{
//?Helper functions
/**
* Sets the matrix grid to the specified 2D array. Validates the input to ensure
* all rows are of equal length.
* Validates the input to ensure all rows are of equal length.
*
* @param grid The 2D array to set as the matrix grid.
* @throws InvalidRowSizeException If the rows of the matrix are not all the same length.
* @return the new validated grid
*/
protected void setGrid(double[][] grid){
private double[][] validateGrid(double[][] grid){
if(grid.length == 0){
this.grid = new double[0][0];
return new double[0][0];
}
else if(grid[0].length == 0){
this.grid = new double[grid.length][0];
return new double[grid.length][0];
}
else{
//Make sure all rows are the same length
@@ -59,9 +54,19 @@ public class DoubleMatrix{
}
//Save the new grid
this.grid = newGrid;
return newGrid;
}
}
/**
* Sets the matrix grid to the specified 2D array. Validates the input to ensure
* all rows are of equal length.
*
* @param grid The 2D array to set as the matrix grid.
* @throws InvalidRowSizeException If the rows of the matrix are not all the same length.
*/
protected void setGrid(double[][] grid){
this.grid = validateGrid(grid);
}
/**
* Creates a deep copy of the matrix grid.
*
@@ -163,7 +168,7 @@ public class DoubleMatrix{
* @param grid The 2D array to initialize the matrix with.
*/
public DoubleMatrix(double[][] grid){
setGrid(grid);
this.grid = validateGrid(grid);
delta = 0.0;
}
/**
@@ -172,7 +177,7 @@ public class DoubleMatrix{
* @param matrix The matrix to copy.
*/
public DoubleMatrix(DoubleMatrix matrix){
setGrid(matrix.grid);
this.grid = validateGrid(matrix.grid);
delta = 0.0;
}
/**

View File

@@ -1,7 +1,3 @@
//Matrix/src/main/java/com/mattrixwv/IntegerMatrix.java
//Mattrixwv
// Created: 02-01-22
//Modified: 08-11-24
package com.mattrixwv.matrix;
@@ -26,18 +22,17 @@ public class IntegerMatrix{
//?Helper functions
/**
* Sets the matrix grid to the specified 2D array. Validates the input to ensure
* all rows are of equal length.
* Validates that all rows in the grid are of equal length.
*
* @param grid The 2D array to set as the matrix grid.
* @param grid The 2D array to validate.
* @throws InvalidRowSizeException If the rows of the matrix are not all the same length.
*/
protected void setGrid(int[][] grid){
private int[][] validateGrid(int[][] grid){
if(grid.length == 0){
this.grid = new int[0][0];
return new int[0][0];
}
else if(grid[0].length == 0){
this.grid = new int[grid.length][0];
return new int[grid.length][0];
}
else{
//Make sure all rows are the same length
@@ -55,9 +50,19 @@ public class IntegerMatrix{
}
//Save the new grid
this.grid = newGrid;
return newGrid;
}
}
/**
* Sets the matrix grid to the specified 2D array. Validates the input to ensure
* all rows are of equal length.
*
* @param grid The 2D array to set as the matrix grid.
* @throws InvalidRowSizeException If the rows of the matrix are not all the same length.
*/
protected void setGrid(int[][] grid){
this.grid = validateGrid(grid);
}
/**
* Creates a deep copy of the matrix grid.
*
@@ -158,7 +163,7 @@ public class IntegerMatrix{
* @param grid The 2D array to initialize the matrix with.
*/
public IntegerMatrix(int[][] grid){
setGrid(grid);
this.grid = validateGrid(grid);
}
/**
* Constructs a copy of the specified matrix.
@@ -166,7 +171,7 @@ public class IntegerMatrix{
* @param matrix The matrix to copy.
*/
public IntegerMatrix(IntegerMatrix matrix){
setGrid(matrix.grid);
this.grid = validateGrid(matrix.grid);
}
/**
* Constructs a matrix with the specified number of rows and columns, filled with the specified value.

View File

@@ -1,7 +1,3 @@
//Matrix/src/main/java/com/mattrixwv/matrix/LongMatrix.java
//Mattrixwv
// Created: 02-10-22
//Modified: 08-11-24
package com.mattrixwv.matrix;
@@ -26,18 +22,17 @@ public class LongMatrix{
//?Helper functions
/**
* Sets the matrix grid to the specified 2D array. Validates the input to ensure
* all rows are of equal length.
* Validates the input to ensure all rows are of equal length.
*
* @param grid The 2D array to set as the matrix grid.
* @throws InvalidRowSizeException If the rows of the matrix are not all the same length.
* @return the new validated grid
*/
protected void setGrid(long[][] grid){
private long[][] validateGrid(long[][] grid){
if(grid.length == 0){
this.grid = new long[0][0];
return new long[0][0];
}
else if(grid[0].length == 0){
this.grid = new long[grid.length][0];
return new long[grid.length][0];
}
else{
//Make sure all rows are the same length
@@ -55,9 +50,19 @@ public class LongMatrix{
}
//Save the new grid
this.grid = newGrid;
return newGrid;
}
}
/**
* Sets the matrix grid to the specified 2D array. Validates the input to ensure
* all rows are of equal length.
*
* @param grid The 2D array to set as the matrix grid.
* @throws InvalidRowSizeException If the rows of the matrix are not all the same length.
*/
protected void setGrid(long[][] grid){
this.grid = validateGrid(grid);
}
/**
* Creates a deep copy of the matrix grid.
*
@@ -158,7 +163,7 @@ public class LongMatrix{
* @param grid The 2D array to initialize the matrix with.
*/
public LongMatrix(long[][] grid){
setGrid(grid);
this.grid = validateGrid(grid);
}
/**
* Constructs a copy of the specified matrix.
@@ -166,7 +171,7 @@ public class LongMatrix{
* @param matrix The matrix to copy.
*/
public LongMatrix(LongMatrix matrix){
setGrid(matrix.grid);
this.grid = validateGrid(matrix.grid);
}
/**
* Constructs a matrix with the specified number of rows and columns, filled with the specified value.

View File

@@ -1,7 +1,3 @@
//Matrix/src/main/java/com/mattrixwv/matrix/ModMatrix.java
//Mattrixwv
// Created: 02-09-22
//Modified: 08-11-24
package com.mattrixwv.matrix;
@@ -17,13 +13,26 @@ import com.mattrixwv.matrix.exceptions.NullMatrixException;
/**
* Represents a matrix of integers that have been run through a modulus function, and provides various matrix operations.
*/
public class ModMatrix extends IntegerMatrix{
public final class ModMatrix extends IntegerMatrix{
/**
* The mod used on each element of the matrix
*/
protected int mod;
//?Helper functions
/**
* Validate the mod values
*
* @param mod The new mod value
* @throws InvalidScalarException If the mod value is less than or equal to 0
*/
private int validateMod(int mod){
if(mod <= 0){
throw new InvalidScalarException("The mod must be > 0");
}
return mod;
}
/**
* Set the mod values
*
@@ -31,11 +40,7 @@ public class ModMatrix extends IntegerMatrix{
* @throws InvalidScalarException If the mod value is less than or equal to 0
*/
protected void setMod(int mod){
if(mod <= 0){
throw new InvalidScalarException("The mod must be > 0");
}
this.mod = mod;
this.mod = validateMod(mod);
}
/**
* Get the mod value of a number
@@ -103,7 +108,7 @@ public class ModMatrix extends IntegerMatrix{
*/
public ModMatrix(int mod){
super();
setMod(mod);
this.mod = validateMod(mod);
modGrid();
}
/**
@@ -114,7 +119,7 @@ public class ModMatrix extends IntegerMatrix{
*/
public ModMatrix(int[][] grid, int mod){
super();
setMod(mod);
this.mod = validateMod(mod);
setGrid(grid);
}
/**
@@ -124,7 +129,7 @@ public class ModMatrix extends IntegerMatrix{
*/
public ModMatrix(ModMatrix matrix){
super();
setMod(matrix.mod);
this.mod = validateMod(matrix.mod);
setGrid(matrix.grid);
}
/**
@@ -135,7 +140,7 @@ public class ModMatrix extends IntegerMatrix{
*/
public ModMatrix(IntegerMatrix matrix, int mod){
super();
setMod(mod);
this.mod = validateMod(mod);
setGrid(matrix.grid);
}
/**
@@ -149,7 +154,7 @@ public class ModMatrix extends IntegerMatrix{
*/
public ModMatrix(int rows, int cols, int fill, int mod){
super(rows, cols, fill);
setMod(mod);
this.mod = validateMod(mod);
modGrid();
}

View File

@@ -1,7 +1,3 @@
//Matrix/src/main/java/com/mattrixwv/exceptions/InvalidCoordinatesException.java
//Mattrixwv
// Created: 02-01-22
//Modified: 08-08-24
package com.mattrixwv.matrix.exceptions;
@@ -11,12 +7,6 @@ package com.mattrixwv.matrix.exceptions;
* @author Mattrixwv
*/
public class InvalidCoordinatesException extends RuntimeException{
/**
* Serialization identifier for this class.
*/
public static final long serialVersionUID = 1;
/**
* Constructs a new {@code InvalidCoordinatesException} with {@code null} as its detail message.
* The cause is not initialized, and may subsequently be initialized by a call to {@link #initCause}.

View File

@@ -1,7 +1,3 @@
//Matrix/src/main/java/com/mattrixwv/exceptions/InvalidGeometryException.java
//Mattrixwv
// Created: 02-01-22
//Modified: 08-08-24
package com.mattrixwv.matrix.exceptions;
@@ -11,12 +7,6 @@ package com.mattrixwv.matrix.exceptions;
* @author Mattrixwv
*/
public class InvalidGeometryException extends RuntimeException{
/**
* Serialization identifier for this class.
*/
public static final long serialVersionUID = 1;
/**
* Constructs a new {@code InvalidGeometryException} with {@code null} as its detail message.
* The cause is not initialized and may subsequently be initialized by a call to {@link #initCause}.

View File

@@ -1,7 +1,3 @@
//Matrix/src/main/java/com/mattrixwv/exceptions/InvalidRowSizeException.java
//Mattrixwv
// Created: 02-01-22
//Modified: 08-08-24
package com.mattrixwv.matrix.exceptions;
@@ -9,12 +5,6 @@ package com.mattrixwv.matrix.exceptions;
* Exception thrown to indicate that the size of a row is invalid for a given matrix.
*/
public class InvalidRowSizeException extends RuntimeException{
/**
* Serialization identifier for this class.
*/
public static final long serialVersionUID = 1;
/**
* Constructs a new {@code InvalidRowSizeException} with {@code null} as its detail message.
* The cause is not initialized and may subsequently be initialized by a call to {@link #initCause}.

View File

@@ -1,7 +1,3 @@
//Matrix/src/main/java/com/mattrixwv/matrix/exceptions/InvalidScalarException.java
//Mattrixwv
// Created: 02-07-22
//Modified: 08-08-24
package com.mattrixwv.matrix.exceptions;
@@ -9,12 +5,6 @@ package com.mattrixwv.matrix.exceptions;
* Exception thrown to indicate that a scalar value passed to a matrix is invalid
*/
public class InvalidScalarException extends RuntimeException{
/**
* Serialization identifier for this class.
*/
public static final long serialVersionUID = 1;
/**
* Constructs a new {@code InvalidScalarException} with {@code null} as its detail message.
* The cause is not initialized and may subsequently be initialized by a call to {@link #initCause}.

View File

@@ -1,7 +1,3 @@
//Matrix/src/main/java/com/mattrixwv/exceptions/NullMatrixException.java
//Mattrixwv
// Created: 06-30-22
//Modified: 08-08-24
package com.mattrixwv.matrix.exceptions;
@@ -9,12 +5,6 @@ package com.mattrixwv.matrix.exceptions;
* Exception thrown to indicate that a null matrix has been illegally passed to a method
*/
public class NullMatrixException extends RuntimeException{
/**
* Serialization identifier for this class.
*/
public static final long serialVersionUID = 1;
/**
* Constructs a new {@code NullMatrixException} with {@code null} as its detail message.
* The cause is not initialized and may subsequently be initialized by a call to {@link #initCause}.