greannmhar

initializeMatrix

Nov 5th, 2025
3
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.15 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <cmath>
  4. #include <cstdlib>
  5.  
  6. void initializeMatrix(int s, int n, double *A, const char *filename) {
  7. if (s == 0) {
  8. std::ifstream file(filename);
  9. if (!file) {
  10. std::cerr << "Error: Cannot open file " << filename << std::endl;
  11. std::exit(1);
  12. }
  13. for (int i = 0; i < n * n; i++) {
  14. if (!(file >> A[i])) {
  15. std::cerr << "Error: Invalid data in file" << std::endl;
  16. std::exit(1);
  17. }
  18. }
  19. file.close();
  20. } else {
  21. for (int i = 1; i <= n; i++) {
  22. for (int j = 1; j <= n; j++) {
  23. int idx = (i - 1) * n + (j - 1);
  24. switch (s) {
  25. case 1: A[idx] = n - std::max(i, j) + 1; break;
  26. case 2: A[idx] = std::max(i, j); break;
  27. case 3: A[idx] = std::abs(i - j); break;
  28. case 4: A[idx] = 1.0 / (i + j - 1); break;
  29. default: std::cerr << "Error: Invalid formula number" << std::endl; std::exit(1);
  30. }
  31. }
  32. }
  33. }
  34. }
Advertisement
Add Comment
Please, Sign In to add comment