std::vector<double> Algorytm::mnozenie(std::vector<double> wektor,double skalar){ std::vector<double> wynik(wektor.size()); #pragma omp parallel for schedule(static) for(int i=0; i<(int)wektor.size(); i++){ wynik[i]=wektor.at(i)*skalar; } return wynik; }
int main() { float aa, bb, xx; dane(&aa, &bb); // printf("Wczytano aa = %f, bb = %f\n", aa, bb); rownanie(aa, bb, &xx); // printf("Wyliczono xx = %f\n", xx); wynik(aa, bb, xx); return 0; }
std::vector<double> Algorytm::mnozenie(double** macierz,std::vector<double> wektor){ std::vector<double> wynik(rozmiar_macierzy_,0); if (rozmiar_macierzy_==(int)wektor.size()){ //num_threads(4) #pragma omp parallel for schedule(static) for (int i=0;i<rozmiar_macierzy_;i++){ for (int j=0;j<rozmiar_macierzy_;j++){ //std::cout<<"i="<<i<<" j="<<j<<std::endl; wynik[i]+=macierz[i][j]*wektor[j]; } } } else{ std::cout << "[ERROR]: mnozenie macierzy razy wektor, rozmiar wektora i macierzy jest rozny"<<std::endl; } return wynik; }