Question: Please use C++ #include #include #include using namespace std; struct vectype {int dim; double *vectr;}; //vectype *readVec(int &dim);//read in vector and pass dim by reference

Please use C++

#include #include #include

using namespace std;

struct vectype {int dim; double *vectr;}; //vectype *readVec(int &dim);//read in vector and pass dim by reference vectype dotProd(vectype vec1, vectype vec2); vectype normalizeVec(vectype vec); vectype addvecs(vectype vec1, vectype vec2); vectype subvecs(vectype vec1, vectype vec2); void freeVecMem(vectype vec); vectype getmem(vectype vec);//use new to get memory for vector elements //vec1.vectr = new double[vec1.dim];

int main(int argc, char *argv[]) { //read in a pair of vectors and dimension from command line //format: vestructvectorNewctorprog dim vec1[0] vec1[1]... vec2[0] vec2[1] vec[2]... //vectorprog 3 1 2 2 opcode 4 5 6 vector 1 is 1 2 3 vector 2 is 4 5 6 vectype vector1; vector1.dim = atoi(argv[1]); vector1 = getmem(vector1); for (int i = 2; i < vector1.dim+2; i++) vector1.vectr[i-2] = atof(argv[i]);//ascii to float actually double /* if (strcmp(argv[x], "add") { vectype vectorSum = addvecs(...) use cout to print each element of vectorSum } */ //find the dot product //normalize each vector //print results of each operation //deallocate memory return 0; }

double dotProd(vectype vec1, vectype vec2, int dim) { //check that both vectors have same dim double sum = 0; for (int i = 0; i < vec1.dim; i++) // sum = sum + vec1.vectr[i]*vec2.vectr[i] + ...etc return sum; }

vectype normalizeVec(vectype vec) { double sum = 0; for (int i = 0; i < vec.dim; i++) sum = sum+vec.vectr[i]*vec.vectr[i]; double div = sqrt(sum); for (int i = 0; i < vec.dim; i++) vec.vectr[i] = vec.vectr[i]/div; return vec; }

void freeVecMem(vectype vec) { delete vec.vectr; }

vectype addvecs(vectype vec1, vectype vec2) { for (int i = 0; i < vec1.dim; i++) vec1.vectr[i] += vec2.vectr[i]; return vec1; }

vectype getmem(vectype vec)//use new to get memory for vector elements { vec.vectr = new double[vec.dim]; return vec; }

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!