diff --git a/libraries-2/pom.xml b/libraries-2/pom.xml
index a734685b80..b936465e82 100644
--- a/libraries-2/pom.xml
+++ b/libraries-2/pom.xml
@@ -55,6 +55,11 @@
ejml-all
${ejml.version}
+
+ colt
+ colt
+ ${colt.version}
+
org.springframework.boot
spring-boot-starter
@@ -115,5 +120,6 @@
4.4.0
2.1.4.RELEASE
0.37.1
+ 1.2.0
diff --git a/libraries-2/src/test/java/com/baeldung/colt/DoubleMatrix2DUniTest.java b/libraries-2/src/test/java/com/baeldung/colt/DoubleMatrix2DUniTest.java
new file mode 100644
index 0000000000..54d10e8cef
--- /dev/null
+++ b/libraries-2/src/test/java/com/baeldung/colt/DoubleMatrix2DUniTest.java
@@ -0,0 +1,43 @@
+package com.baeldung.colt;
+
+import cern.colt.matrix.DoubleFactory2D;
+import cern.colt.matrix.DoubleMatrix2D;
+import cern.colt.matrix.linalg.Algebra;
+import org.junit.jupiter.api.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+class DoubleMatrix2DUniTest {
+
+ @Test
+ void givenTwoMatrices_whenMultiply_thenMultiplicatedMatrix() {
+ DoubleFactory2D doubleFactory2D = DoubleFactory2D.dense;
+
+ DoubleMatrix2D firstMatrix = doubleFactory2D.make(
+ new double[][] {
+ new double[] {1d, 5d},
+ new double[] {2d, 3d},
+ new double[] {1d ,7d}
+ });
+
+ DoubleMatrix2D secondMatrix = doubleFactory2D.make(
+ new double[][] {
+ new double[] {1d, 2d, 3d, 7d},
+ new double[] {5d, 2d, 8d, 1d}
+ }
+ );
+
+ DoubleMatrix2D expected = doubleFactory2D.make(
+ new double[][] {
+ new double[] {26d, 12d, 43d, 12d},
+ new double[] {17d, 10d, 30d, 17d},
+ new double[] {36d, 16d, 59d, 14d}
+ }
+ );
+
+ Algebra algebra = new Algebra();
+ DoubleMatrix2D actual = algebra.mult(firstMatrix, secondMatrix);
+
+ assertThat(actual).isEqualTo(expected);
+ }
+}