Compileroptimierungsbeispielquelltexte zu Kapitel 5






ijk-Variante

Aus

    REAL, DIMENSION (qmax, qmax) :: a, b, c

    c = 0
    DO i = 1, qmax, 1
      DO j = 1, qmax, 1
        DO k = 1, qmax, 1
          c(i,j) = c(i,j) + a(i,k)*b(k,j)
        END DO
      END DO
    END DO
wird
    REAL, DIMENSION (qmax, qmax) :: a, b, c
    REAL temp

    c = 0
    DO i = 1, qmax, 1
      DO j = 1, qmax, 1
	temp = c(i,j)
        DO k = 1, qmax, 1
          temp = temp + a(i,k)*b(k,j)       ! SDOT in der innere Schleife
        END DO
	c(i,j) = temp
      END DO
    END DO
.


jik-Variante

Aus

    REAL, DIMENSION (qmax, qmax) :: a, b, c

    c = 0
    DO j = 1, qmax, 1
      DO i = 1, qmax, 1
        DO k = 1, qmax, 1
          c(i,j) = c(i,j) + a(i,k)*b(k,j)
        END DO
      END DO
    END DO
wird
    REAL, DIMENSION (qmax, qmax) :: a, b, c
    REAL temp

    c = 0
    DO j = 1, qmax, 1
      DO i = 1, qmax, 1
	temp = c(i,j)
        DO k = 1, qmax, 1
          temp = temp + a(i,k)*b(k,j)       ! SDOT in der innere Schleife
        END DO
	c(i,j) = temp
      END DO
    END DO
.


kij-Variante

Aus

    REAL, DIMENSION (qmax, qmax) :: a, b, c

    c = 0
    DO k = 1, qmax, 1
      DO i = 1, qmax, 1
        DO j = 1, qmax, 1
          c(i,j) = c(i,j) + a(i,k)*b(k,j)
        END DO
      END DO
    END DO
wird
    REAL, DIMENSION (qmax, qmax) :: a, b, c
    REAL temp

    c = 0
    DO k = 1, qmax, 1
      DO i = 1, qmax, 1
	temp = a(i,k)
        DO j = 1, qmax, 1
          c(i,j) = c(i,j) + temp*b(k,j)       ! SAXPY in der innere Schleife
        END DO
      END DO
    END DO
.


ikj-Variante

Aus

    REAL, DIMENSION (qmax, qmax) :: a, b, c

    c = 0
    DO i = 1, qmax, 1
      DO k = 1, qmax, 1
        DO j = 1, qmax, 1
          c(i,j) = c(i,j) + a(i,k)*b(k,j)
        END DO
      END DO
    END DO
wird
    REAL, DIMENSION (qmax, qmax) :: a, b, c
    REAL temp

    c = 0
    DO i = 1, qmax, 1
      DO k = 1, qmax, 1
	temp = a(i,k)
        DO j = 1, qmax, 1
          c(i,j) = c(i,j) + temp*b(k,j)       ! SAXPY in der innere Schleife
        END DO
      END DO
    END DO
.


jki-Variante

Aus

    REAL, DIMENSION (qmax, qmax) :: a, b, c

    c = 0
    DO j = 1, qmax, 1
      DO k = 1, qmax, 1
        DO i = 1, qmax, 1
          c(i,j) = c(i,j) + a(i,k)*b(k,j)
        END DO
      END DO
    END DO
wird
    REAL, DIMENSION (qmax, qmax) :: a, b, c
    REAL temp

    c = 0
    DO j = 1, qmax, 1
      DO k = 1, qmax, 1
	temp = b(k,j)
        DO i = 1, qmax, 1
          c(i,j) = c(i,j) + a(i,k)*temp       ! SAXPY in der innere Schleife
        END DO
      END DO
    END DO
.


kji-Variante

Aus

    REAL, DIMENSION (qmax, qmax) :: a, b, c

    c = 0
    DO k = 1, qmax, 1
      DO j = 1, qmax, 1
        DO i = 1, qmax, 1
          c(i,j) = c(i,j) + a(i,k)*b(k,j)
        END DO
      END DO
    END DO
wird
    REAL, DIMENSION (qmax, qmax) :: a, b, c
    REAL temp

    c = 0
    DO k = 1, qmax, 1
      DO j = 1, qmax, 1
	temp = b(k,j)
        DO i = 1, qmax, 1
          c(i,j) = c(i,j) + a(i,k)*temp       ! SAXPY in der innere Schleife
        END DO
      END DO
    END DO
.


Zurück mit dem BACK-Buttons [ <|=o ] ihres Browsers.