#ifndef MATRIX_MULTIPLY_H
#define MATRIX_MULTIPLY_H
/*----------------------------------------------------------------------------*/
/* Sequential and Multithreaded Matrix Multiply Function Declarations         */
/*                                                                            */
/* Written by: John Thornley, Computer Science Dept., Caltech.                */
/* Date: October, 1997.                                                       */
/*                                                                            */
/* Copyright (c) 1997 by John Thornley.                                       */
/*----------------------------------------------------------------------------*/

#define N 2000

void seq_matrix_multiply(
        int n, 
        const float left[N][N], const float right[N][N], 
        float product[N][N]);
/* Precondition:                                                              */
/*     1 <= n and n <= N.                                                     */
/* Postcondition:                                                             */
/*     for (i = 0; i < n; i++)                                                */
/*         for (j = 0; j < n; j++)                                            */
/*             product[i][j] = sum(k = 0; k < n; k++) left[i][k]*right[k][j]. */

void multi_matrix_multiply(
        int n, 
        const float left[N][N], const float right[N][N], 
        float product[N][N],
        int t);
/* Precondition:                                                              */
/*     1 <= n and n <= N and t >= 1.                                          */
/* Postcondition:                                                             */
/*     for (i = 0; i < n; i++)                                                */
/*         for (j = 0; j < n; j++)                                            */
/*             product[i][j] = sum(k = 0; k < n; k++) left[i][k]*right[k][j]. */

/*----------------------------------------------------------------------------*/
#endif /* !MATRIX_MULTIPLY_H */