C++ :: Matrix Multiplication Using Pointers
Feb 15, 2014Code:
#include<stdio.h>
#include<conio.h>
void main()
[Code] .....
This program on running returns an error of "ILLEGAL USE OF POINTER".
Code:
#include<stdio.h>
#include<conio.h>
void main()
[Code] .....
This program on running returns an error of "ILLEGAL USE OF POINTER".
Code:
#include<stdio.h> Code: #include<conio.h>
void main() {
int *a[2][2],*b[2][2],*c[2][2],i,j,k;
Printf("
ENTER a MATRIX ELEMENTS
[Code] .....
I just want to know the code of the program: Write code to accept matrix as aurgument and display its multiplication matrix which return its multiplication matrix.
View 1 Replies View RelatedI have been using SSE/ SIMD Matrix multiplication approaches and I persistently get this error:
void mmul_sse_nsize(const float * a, const float * b, float * r, int size) {
__m128 a_line, b_line, r_line;
int bound = size*size;
int rows = size;
[Code] ....
The code almost never throws the error when matrices are size NxN, N =4.
Also, I have a 4 core laptop with 2 GB RAM and I am using VS2013.
I am trying to read two matrices from individual .txt file, and later trying to multiply them. But I am unable to succeed.
Here is the code.
#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
// Here starts the main
int main()
{ // The two input values
FILE *inputFile1;
FILE *inputFile2;
[Code] .....
I am able to get only the first values as the output. The first matrix is 5x3, and the second one is a 3x3 matrix.
Matrix 1
1 2 3
4 5 6
7 8 9
10 11 12
Matrix 2
1 2 3
4 5 6
7 8 9
The output which I am getting is
Enter File name of matrix #1 - with extention - : matrix1.txt
Enter File name of matrix #2 - with extention - : matrix2.txt
Rows1 = 1 Cols1 = 2
Rows2 = 1
Cols2 = 2Cant multiply those two matrices
I have Problem with matrix vector multiplication in program..
void matrixVector ( const int n, const double* A, const double* x, double* y ){
//for(int i = 0; i < n; i++){
// y[i*n] = 0.0;
// }
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
y[i*n] += A[i*n+j]*x[j*n];
[Code] ....
I am writing a brute force implementation of matrix multiplication:
Header file:
vector<vector<int> > matrix_multiplication(vector <vector<int> >& a, vector <vector<int> >& B)/>/>/>;
Source file:
vector<vector<int> > matrix_multiplication(vector <vector<int> >& a, vector <vector<int> >& B)/>/>/>{
int n = a.size();
vector< vector <int> > c (n , vector<int> (n));
for (int i =0 ; i<n ; i++){
for (int j =0 ; j < n ; j++){
for (int k ; k < n ; k++){
c[i][j] = a[i][k] + b[k][j];
[Code] ....
I keep on getting occasional seg faults />/>. I can't see why.
How to write matrix multiplication (without using arrays) in C ....
View 1 Replies View RelatedSo basically I have to tell the user to input data and i use a for loop:
for (i=0; i< 3; i++)
cin >> p[i][0],p[i][1], p[i][2];
Now for the confusing part is, what do i put in the nested for loops to multiply them and output them so it looks something like
matrix p,r1: # # #
" ",r2: " "
" " " "
I would like to know how could I make multiplication of matrix called betrix in this code:
Code:
printf("transposed matrix:
");
int trantrix[size][size]; //transposed matrix
for(i=0;i<size;i++) {
for(j=0;j<size;j++) {
trantrix[i][j] = matrix[j][i];
printf("%d ",trantrix[i][j]);
[Code] ......
I just started Linear Algebra for my programming degree and to full understand everything I want to put it into code and make my own "matrix calculator." I have all the theory but I am having issues keeping the matrix variable and moving it around the class' functions to create it and output it. Once I know I have it saved I think I can get the addition/multiplication to work. Here is the code I have so far:
#include <string>
#include <iostream>
using namespace std;
class matrix {
[Code] ....
I have a program matrix multiplication but it work not for big arrays. n should be bis 200.
#include <iostream>
#include <time.h>
#include <cstdlib>
[Code]....
I am actually working on IEEE Arithmetic especially the IEEE 754 specification where the IEEE double only have 53 bits of precision. I am working on Z/nZ matrix multiplication that works on 53 bits specs. How to write a matrix multiplication algorithm that works well on 53 bits IEEE precision standard.
View 5 Replies View RelatedI have a problem with dynamic massive. My task was to find the multiplication of positive matrix elements with using indexes and seperated compiling.
Compiler doesn't warn me about any mistake, but result is not right, it is even not a number.
Header.h
#include <iostream>
#include <math.h>
using namespace std;
float multi(int k, int t, float **p);
[Code] ....
I've been trying to get my matrix multiplication program to run a few different ways. My assignments wants me to run it statically using chunks, but we're not supposed to use OpenMPs scheduler. So I'm not sure how that's possible. And secondly, we have to run it dynamically using locks/unlocks.
Static (not sure how to implement chunk)
#pragma omp section
{
printf("Thread %d doing matrix mult", threadID);
if (matrixAcols != matrixBrows) {
cout << "Error, operation not possible" << endl;
[Code]....
The code will run for a long time too. It uses as many threads as we tell it to but it never speeds up the results.
Quote
Thread 2 doing matrix mult
Thread 4 doing matrix mult
Thread 2 doing matrix mult
Thread 4 doing matrix mult
Thread 2 doing matrix mult
Thread 4 doing matrix mult
Thread 2 doing matrix mult
Thread 4 doing matrix mult
Thread 4 doing matrix mult
Thread 4 doing matrix mult
Thread 4 doing matrix mult
Thread 4 doing matrix mult
Thread 4 doing matrix mult
Thread 4 doing matrix mult
I wrote program for Sequential matrix multiplication .But after execution for any input value( ex. 100,150,400) it shows the execution time is 0.000 msec.
#include <stdio.h>
#include <math.h>
#include <sys/time.h>
void print_results(char *prompt, int N, float *a);
int main(int argc, char *argv[])
[Code] ......
I wrote a sequential matrix multiplication program in c.
After execution i get error like
./mul.c: line 11: syntax error near unexpected token `('
./mul.c: line 11: `int main(){'
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define wA (30 * 16)
#define wB (50 * 16)
#define hA (80 * 16)
#define hB wA
#define wC wB
[Code] ....
why are the arithmetic operations like division(p/q) and multiplication(p*q) invalid on pointers?.here p and q both are pointers .
View 6 Replies View RelatedI am using boost matrix for generating matrices used for filters. I wan to assign a pointer to these matrices so i can call them out of the function. but i am not able to understand where i am failing. the example code is here.
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
identity_matrix<double> M(3);
std::cout<<M<<std::endl;
[Code] ....
I am trying to iterate a matrix in order to exchange rows and columns element by element. Although the function that exchanges the rows has come out well, i don't seem to figure out how to do the same on columns.The columns switch for a matrix like
1 2 3
1 2 3
1 2 3
if i try to switch column 3 and 2,is:
1 3 2
1 3 2
1 2 3
Here are both of the functions:
void interchange_rows(int *p,int n,int r1,int r2){
int temp;
for(int i=0;i<n;i++){
temp=*(p+r1*n+i);
*(p+r1*n+i)=*(p+r2*n+i);
*(p+r2*n+i)=temp;
[Code] ......
i want to know how i can solve this question? do i need to create a class or write the program codes.
View 12 Replies View RelatedI want to assign a matrix to submatrix of a bigger matrix.
ublas::matrix<int> A(8,5);
ublas::matrix<int> B(2,5);
for(size_t i=0;i<A.size1();++i)
for(size_t j=0;j<A.size2();++j)
A(i,j)=i*A.size2()+j+1;
for(size_t i=0;i<B.size1();++i)
for(size_t j=0;j<B.size2();++j)
B(i,j)=i*B.size2()+j+5;
ublas::matrix_range<ublas::matrix<int> > a(A,ublas::range(0,2),ublas::range(0,5));
a=B;
and it works.
but if the matrix is compressed_matrix type, there's something with it. the error log as below:
Check failed in file boost_1_48_0/boost/numeric/ublas/detail/matrix_assign.hpp at line 1078:
detail::expression_type_check (m, cm)
terminate called after throwing an instance of 'boost::numeric::ublas::external_logic'
what(): external logic
Aborted
I'm not sure this is a bug or not.
I have to prepare a project. But I don t know how can I do this. Program will find a matrix P for a square matrix A such that P^-1 A P ....
View 15 Replies View RelatedI'm trying to create an array of pointers to pointers which will point to array of pointers (to strings) I tried
Code:
int i;
char *string[]={
"my name is dave",
"we like to dance together",
"sunny day",
"hello",
[code]...
the app keeps crashing , I don't know how to make the array-elements to point to another array-elements..
I am a little confused while comparing char pointers to integer pointers. Here is the problem:
Consider the following statement;
char *ptr = "Hello";
char cArr[] = "Hello";
When I do cout << ptr; it prints Hello, same is the case with the statement
cout << cArr;
As ptr and cArr are pointers, they should print addresses rather than contents, but if I have an interger array i.e.
int iArr[] = {1, 2, 3};
If I cout << iArr; it displays the expected result(i.e. prints address) but pointers to character array while outputting doesn't show the address but shows the contents, Why??
3 3
2 1 3 2 3
1 0 2
1 2 6
First line shows row and column number
First index of the second line tells the number of non-zero entries of the first row and second index tell the column number where the non zero entry is placed
for 1st row of matrix:
non-zero entries=2
column number=1
non-zero entry=3
column number=2
non-zero entry=2
covert this in the given form
0 3 3
2 0 0
0 0 6