anchor.diff:      LDC = M
   
       CALL DGEMM(TRANSA, TRANSB, M, N, K, ALPHA, MatA%data, LDA, MatB%data, &
  -          & LDB, BETA, MatC%data, LDC)
  -
  -    ! MatC%data = MATMUL(MatA%data,MatB%data)
  +         & LDB, BETA, MatC%data, LDC)
  +
     END SUBROUTINE MultiplyDense
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     PURE SUBROUTINE IncrementDenseMatrix(MatA,MatB,alpha_in)
  
positive.code:        CALL ConstructEmptyDenseMatrix(MatC,MatB%columns,MatA%rows)
      END IF
  
      M = MatA%rows
      N = MatB%columns
      K = MatA%columns
  
negative.code:     INTEGER, INTENT(IN) :: rows
      INTEGER, INTENT(IN) :: columns
  
      this%rows = rows
      this%columns = columns
  
      !! Check if the memory is already useful
      IF (ALLOCATED(this%data)) THEN
         IF (SIZE(this%data,1) .NE. rows .OR. SIZE(this%data,2) .NE. columns) THEN
           CALL DestructDenseMatrix(this)
           ALLOCATE(this%data(rows,columns))
         END IF
      ELSE
         ALLOCATE(this%data(rows,columns))
      END IF
  
    END SUBROUTINE ConstructEmptyDenseMatrix
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  