Matrix-Vector multiply can be implemented as follows:
for (int i=0; i<N; i++)
{
C[i] = 0;
for (int j=0; j<N; j++)
C[i] = C[i] + A[i][j] * B[j];
}
List and explain all of the data dependencies that exist.
Here the data dependency for computing vector C is as follows:-
C[i] is dependent on precious value of itself , entire row i of matrix A i.e. C[i] is dependent on A[i][j] for 1<= j <=N and entire vector B as evident from the innermost loop statement C[i] = C[i] + A[i][j]*B[j]
Thus C[i] is dependent on :-
1. C[i] itself with Read After Write dependency , since current value of C[i] is dependent on previous value of C[i].
2. A[i][j] for 1<=j<=N with Read After Write dependency since value of A[i][j] for 1<=j<=N need to available before writing C[i]
3. B[j] for 1<=j<=N, Read After Write.
Also please note that because matrix A and vector B are used for Read only purpose and there value of C[i] can be computed in parallel for all 1<=i<=N, hence both outer for loop and inner for loop are parallelizable .
Please comment for any clarification
Matrix-Vector multiply can be implemented as follows: for (int i=0; i<N; i++) { C[i] =...
Hi, can someone please help me implement the transpose,
multiply(Matrix b), multiply(Matrix m, int
threads), and equals(Object in) methods? (This is Java) I really
need help so please don't just refund the question.
public class Matrix {1 public int[] [] matrix; 1 int[] [] trans; 1 public int x, y; 1 private boolean transposed; 1 1 public Matrix(int x, int y){1 matrix = new int[x][y1;1 this.x = x; this.y = y; 1 } 1 9 /*1 * This method takes...
(c) int sum(int n) un { int sum=0; for (int i=0; i<n; i++) for(int j=0; j<i/2; j++) for(int k=0; k<min(j,5); k++) { sum=sum+1; } return sum; }
The following code snippet is for C++ int selection_Sort(int A[ ], int n) { int I, j, small, temp; for( i = 0; i < n-1; i++) { small = i; for(j = i + 1; j < n; j++) { if ( A[ j ] < A[ small ] small = j; } temp = A [ i ]; A[ i ] = A[small]; A[small] = temp; } } Please explain in rich detail the logic behind every execution...
(a) Consider the following C++ function: 1 int g(int n) { 2 if (n == 0) return 0; 3 return (n-1 + g(n-1)); 4} (b) Consider the following C++ function: 1 bool Function (const vector <int >& a) { 2 for (int i = 0; i < a. size ()-1; i ++) { 3 for (int j = i +1; j < a. size (); j ++) { 4 if (a[i] == a[j]) return false; 5 6 } 7 return...
Using java fix the code I implemented so that it passes the JUnit Tests. MATRIX3 public class Matrix3 { private double[][] matrix; /** * Creates a 3x3 matrix from an 2D array * @param v array containing 3 components of the desired vector */ public Matrix3(double[][] array) { this.matrix = array; } /** * Clones an existing matrix * @param old an existing Matrix3 object */ public Matrix3(Matrix3 old) { matrix = new double[old.matrix.length][]; for(int i = 0; i <...
Consider the following C++ code segment: for (int i = 0; i <n; ++i) { for (int j = 0; j <m; ++j) if (i != j) cout << "0"; else cout << "1"; } } Which of the options below gives the correct output if the value of nis 2and the value of mis 3? 1. 100010 2. 011101 3. 100100 4. 010001
Hello, i need help finding the time complexity(big0) for n..(java) a) for (int a = 0; a < n; a = a + C) for (int b = 0; b < 10; b++) s[a] += b * s[a]; b) for (int a = 1; a < n; a = a * C) for (int j = 0; j < a; j++) s[a] += j * s[a]; c) for (int i = 1; i < n; i...
Could you do that in C language?
Here is the code which we got
#include <stdio.h>
#define MAX_SIZE 20
// function definitions
void displaySpiral(int matrix[][MAX_SIZE], int size);
void displayMatrix(int matrix[][MAX_SIZE], int size);
int takeInput(int inputMatrix[][MAX_SIZE]);
int main() {
int matrix[MAX_SIZE][MAX_SIZE];
int matrixSize = takeInput(matrix);
printf("Displaying the whole matrix:\n");
fflush(stdout);
displayMatrix(matrix, matrixSize);
printf("Now, displaying the matrix in a spiral way:\n");
fflush(stdout);
displaySpiral(matrix, matrixSize);
return 0;
}
// already implemented for you
int takeInput(int inputMatrix[][MAX_SIZE]) {
int size;
printf("What is the size...
Example program
#include <string>
#include <iostream>
#include <cmath>
#include <vector>
using namespace std;
vector<int> factor(int n)
{
vector <int> v1;
// Print the number of 2s that divide n
while (n%2 == 0)
{
printf("%d ", 2);
n = n/2;
v1.push_back(2);
}
// n must be odd at this point. So we can
skip
// one element (Note i = i +2)
for (int i = 3; i <=...
Debug the following matrix program in C: // Program to read integers into a 3X3 matrix and display them #include <stdio.h> void display(int Matrix[3][3],int size); int main(void) { char size; double Matrix[size][size+1]; printf("Enter 9 elements of the matrix:\n"); int i; for (i = 0: i <= size: i++) { int j = 0; for (; j <= size++; j++){ scanf("%d", matrix[i--][4]) } } Display(Matrix,9); return 0; void...