Example #1
0
// A_2,2 * (B_2,1 - B_1,1)
void* calcM4(void* nothing) {
    double **temp1;
    temp1 = allocMatrix(perfectMatrix / 2);
    simpleSub(B21, B11, temp1, perfectMatrix / 2);
    simpleMM(A22, temp1, M4, perfectMatrix / 2);
    free(temp1);
    return 0;
}
Example #2
0
// A_1,1 * (B_1,2 - B_2,2)
void* calcM3(void* nothing) {
    double **temp1;
    temp1 = allocMatrix(perfectMatrix / 2);
    simpleSub(B12, B22, temp1, perfectMatrix / 2);
    simpleMM(A11, temp1, M3, perfectMatrix / 2);
    free(temp1);
    return 0;
}
// A_2,2 * (B_2,1 - B_1,1)
void* calcM4(void* nothing) {
  int **temp1;
  temp1 = allocMatrix(N/2);
  simpleSub(B21, B11, temp1, N/2);
  simpleMM(A22, temp1, M4, N/2);
  free(temp1);
  return 0;
}
// A_1,1 * (B_1,2 - B_2,2)
void* calcM3(void* nothing) {
  int **temp1;
  temp1 = allocMatrix(N/2);
  simpleSub(B12, B22, temp1, N/2);
  simpleMM(A11, temp1, M3, N/2);
  free(temp1);
  return 0;
}
Example #5
0
// (A_1,2 - A_2,2) * (B_2,1 + B_2,2)
void* calcM7(void *nothing) {
    double **temp1, **temp2;
    temp1 = allocMatrix(perfectMatrix / 2);
    temp2 = allocMatrix(perfectMatrix / 2);
    simpleSub(A12, A22, temp1, perfectMatrix / 2);
    simpleAdd(B21, B22, temp2, perfectMatrix / 2);
    simpleMM(temp1, temp2, M7, perfectMatrix / 2);
    free(temp1);
    free(temp2);
    return 0;
}
Example #6
0
// (A_2,1 - A_1,1) * (B_1,1 + B_1,2)
void* calcM6(void* nothing) {
    double **temp1, **temp2;
    temp1 = allocMatrix(perfectMatrix / 2);
    temp2 = allocMatrix(perfectMatrix / 2);
    simpleSub(A21, A11, temp1, perfectMatrix / 2);
    simpleAdd(B11, B12, temp2, perfectMatrix / 2);
    simpleMM(temp1, temp2, M6, perfectMatrix / 2);
    free(temp1);
    free(temp2);
    return 0;
}
// (A_1,2 - A_2,2) * (B_2,1 + B_2,2)
void* calcM7(void *nothing) {
  int **temp1;
  int **temp2;
  temp1 = allocMatrix(N/2);
  temp2 = allocMatrix(N/2);
  simpleSub(A12, A22, temp1, N/2);
  simpleAdd(B21, B22, temp2, N/2);
  simpleMM(temp1, temp2, M7, N/2);
  free(temp1);
  free(temp2);
  return 0;
}
// (A_2,1 - A_1,1) * (B_1,1 + B_1,2)
void* calcM6(void* nothing) {
  int **temp1;
  int **temp2;
  temp1 = allocMatrix(N/2);
  temp2 = allocMatrix(N/2);
  simpleSub(A21, A11, temp1, N/2);
  simpleAdd(B11, B12, temp2, N/2);
  simpleMM(temp1, temp2, M6, N/2);
  free(temp1);
  free(temp2);
  return 0;
}