public AdjacencyMatrix computeAdjacencyMatrixAddition(AdjacencyMatrix aMatrix2)
        {
            Matrix <double> matrix1 = this.getMatrix();
            Matrix <double> matrix2 = aMatrix2.getMatrix();
            Matrix <double> matrix  = matrix1.Add(matrix2);

            MatrixCoordinateMap newClassMap1 = this.getClassMap1();
            MatrixCoordinateMap newClassMap2 = aMatrix2.getClassMap2();

            return(new AdjacencyMatrix(newClassMap1, newClassMap2, matrix));
        }
        public AdjacencyMatrix computeAdjacencyMatrixProduct(AdjacencyMatrix aMatrix2)
        {
            Matrix <double> matrix1 = this.getMatrix();
            Matrix <double> matrix2 = aMatrix2.getMatrix();

            Matrix <double> matrix = matrix1.Multiply(matrix2);

            MatrixCoordinateMap newClassMap1 = this.getClassMap1();
            MatrixCoordinateMap newClassMap2 = aMatrix2.getClassMap2();

            return(new AdjacencyMatrix(newClassMap1, newClassMap2, matrix));
        }
        public AdjacencyMatrix computeAdjacencyMatrixProduct(AdjacencyMatrix aMatrix2, AdjacencyMatrix aMatrix3)
        {
            AdjacencyMatrix aMatrix23 = aMatrix2.computeAdjacencyMatrixProduct(aMatrix3);

            return(this.computeAdjacencyMatrixProduct(aMatrix23));
        }