11 April 2023 10:33:08.054 AM r83v_test(): FORTRAN90 version Test r83v(). R83V_CG_TEST R83V_CG applies CG to an R83V matrix. Desired solution X1: 1: 0.21841830 2: 0.95631758 3: 0.82950923 4: 0.56169544 5: 0.41530708 6: 0.66118735E-01 7: 0.25757779 8: 0.10995679 9: 0.43828998E-01 10: 0.63396571 Computed solution X2 1: 0.21841830 2: 0.95631758 3: 0.82950923 4: 0.56169544 5: 0.41530708 6: 0.66118735E-01 7: 0.25757779 8: 0.10995679 9: 0.43828998E-01 10: 0.63396571 Number of variables N = 10 Norm of residual ||Ax-b|| = 0.847455E-15 Norm of error ||x1-x2|| = 0.416160E-15 R83V_COPY_TEST R83V_COPY copies an R83V matrix. We check three cases, MN. A: Col: 1 2 3 4 5 Row --- 1: 11.0000 12.0000 2: 21.0000 22.0000 23.0000 3: 32.0000 33.0000 34.0000 B = copy of A: Col: 1 2 3 4 5 Row --- 1: 11.0000 12.0000 2: 21.0000 22.0000 23.0000 3: 32.0000 33.0000 34.0000 A: Col: 1 2 3 4 5 Row --- 1: 11.0000 12.0000 2: 21.0000 22.0000 23.0000 3: 32.0000 33.0000 34.0000 4: 43.0000 44.0000 45.0000 5: 54.0000 55.0000 B = copy of A: Col: 1 2 3 4 5 Row --- 1: 11.0000 12.0000 2: 21.0000 22.0000 23.0000 3: 32.0000 33.0000 34.0000 4: 43.0000 44.0000 45.0000 5: 54.0000 55.0000 A: Col: 1 2 3 Row --- 1: 11.0000 12.0000 2: 21.0000 22.0000 23.0000 3: 32.0000 33.0000 4: 43.0000 B = copy of A: Col: 1 2 3 Row --- 1: 11.0000 12.0000 2: 21.0000 22.0000 23.0000 3: 32.0000 33.0000 4: 43.0000 R83V_CR_FA_TEST R83V_CR_FA factors an R83V matrix Once the matrix has been factored, we can call R83V_CR_SL to solve a linear system. Matrix order N = 5 Demonstrate multiple system solution method. System matrix A: Col: 1 2 3 4 5 Row --- 1: 2.00000 -1.00000 2: -1.00000 2.00000 -1.00000 3: -1.00000 2.00000 -1.00000 4: -1.00000 2.00000 -1.00000 5: -1.00000 2.00000 Solve linear system number # 1 Solution: 1: 1.0000000 2: 2.0000000 3: 3.0000000 4: 4.0000000 5: 5.0000000 Solve linear system number # 2 Solution: 1: 1.0000000 2: 1.0000000 3: 1.0000000 4: 1.0000000 5: 1.0000000 R83V_CR_SL_TEST R83V_CR_SL solves a factored system after R83V_CR_FA has factored it. Matrix order N = 5 Demonstrate multiple system solution method. Input matrix A: Col: 1 2 3 4 5 Row --- 1: 4.00000 2.00000 2: 1.00000 4.00000 2.00000 3: 1.00000 4.00000 2.00000 4: 1.00000 4.00000 2.00000 5: 1.00000 4.00000 Solution: 1: 1.0000000 2: 2.0000000 3: 3.0000000 4: 4.0000000 5: 5.0000000 R83V_CR_SLS_TEST R83V_CR_SLS solves multiple systems A*x1:xn=b1:bn after R83V_CR_FA has factored it. Matrix order N = 5 Demonstrate multiple system solution method. Input matrix A: Col: 1 2 3 4 5 Row --- 1: 2.00000 -1.00000 2: -1.00000 2.00000 -1.00000 3: -1.00000 2.00000 -1.00000 4: -1.00000 2.00000 -1.00000 5: -1.00000 2.00000 Right hand sides b1:b2 Col: 1 2 Row --- 1 0.00000 1.00000 2 0.00000 0.00000 3 0.00000 0.00000 4 0.00000 0.00000 5 6.00000 1.00000 Solutions x1:x2 Col: 1 2 Row --- 1 1.00000 1.00000 2 2.00000 1.00000 3 3.00000 1.00000 4 4.00000 1.00000 5 5.00000 1.00000 R83V_DIF2_TEST R83V_DIF2 sets an R83V matrix to the second difference. We check three cases, MN. Second difference in R83V format: Col: 1 2 3 4 5 Row --- 1: 2.00000 -1.00000 2: -1.00000 2.00000 -1.00000 3: -1.00000 2.00000 -1.00000 Second difference in R83V format: Col: 1 2 3 4 5 Row --- 1: 2.00000 -1.00000 2: -1.00000 2.00000 -1.00000 3: -1.00000 2.00000 -1.00000 4: -1.00000 2.00000 -1.00000 5: -1.00000 2.00000 Second difference in R83V format: Col: 1 2 3 Row --- 1: 2.00000 -1.00000 2: -1.00000 2.00000 -1.00000 3: -1.00000 2.00000 4: -1.00000 R83V_FS_TEST R83V_FS factors and solves a linear system for an R83V matrix. Matrix order N = 10 The right hand side: 1: 0.0000000 2: 0.0000000 3: 0.0000000 4: 0.0000000 5: 0.0000000 6: 0.0000000 7: 0.0000000 8: 0.0000000 9: 0.0000000 10: 11.000000 Solution: 1: 1.0000000 2: 2.0000000 3: 3.0000000 4: 4.0000000 5: 5.0000000 6: 6.0000000 7: 7.0000000 8: 8.0000000 9: 9.0000000 10: 10.000000 R83V_GS_SL_TEST R83V_GS_SL applies Gauss-Seidel iteration with an R83V matrix to solve a linear system A*x=b. Current solution estimate: 1: 0.63460551 2: 1.3265045 3: 2.0956645 4: 2.9545086 5: 3.9074095 6: 4.9508817 7: 6.0744243 8: 7.2619014 9: 8.4932953 10: 9.7466477 Current solution estimate: 1: 0.95356655 2: 1.9145041 3: 2.8853282 4: 3.8675698 5: 4.8617324 6: 5.8673331 7: 6.8830194 8: 7.9067459 9: 8.9359910 10: 9.9679955 Current solution estimate: 1: 0.99412614 2: 1.9891847 3: 2.9854940 4: 3.9832476 5: 4.9825092 6: 5.9832177 7: 6.9852020 8: 7.9882034 9: 8.9919029 10: 9.9959514 R83V_INDICATOR_TEST R83V_INDICATOR sets an R83V indicator matrix. We check three cases, MN. R83V indicator matrix: Col: 1 2 3 4 5 Row --- 1: 11.0000 12.0000 2: 21.0000 22.0000 23.0000 3: 32.0000 33.0000 34.0000 R83V indicator matrix: Col: 1 2 3 4 5 Row --- 1: 11.0000 12.0000 2: 21.0000 22.0000 23.0000 3: 32.0000 33.0000 34.0000 4: 43.0000 44.0000 45.0000 5: 54.0000 55.0000 R83V indicator matrix: Col: 1 2 3 Row --- 1: 11.0000 12.0000 2: 21.0000 22.0000 23.0000 3: 32.0000 33.0000 4: 43.0000 R83V_JAC_SL_TEST R83V_JAC_SL applies Jacobi iteration with an R83V matrix to solve a linear system A*x=b. Current solution: 1: 0.31517148 2: 0.72779730 3: 1.1404231 4: 1.8275799 5: 2.5147367 6: 3.5904667 7: 4.6661967 8: 6.1282006 9: 7.5902045 10: 9.2951023 Current solution: 1: 0.75754530 2: 1.5150906 3: 2.3493609 4: 3.1836311 5: 4.1472871 6: 5.1109431 7: 6.2158120 8: 7.3206809 9: 8.5336643 10: 9.7466477 Current solution: 1: 0.91002076 2: 1.8343234 3: 2.7586261 4: 3.7212423 5: 4.6838586 6: 5.6966602 7: 6.7094617 8: 7.7683880 9: 8.8273142 10: 9.9136571 R83V_MTV_TEST R83V_MV computes b=A'*x, where A is an R83V matrix. We check three cases, MN. Product comparison: 1 1.26635 1.26635 2 4.05846 4.05846 3 1.76108 1.76108 4 0.329870 0.329870 5 0.00000 0.00000 Product comparison: 1 0.852144 0.852144 2 3.63516 3.63516 3 4.21422 4.21422 4 4.59692 4.59692 5 1.82437 1.82437 Product comparison: 1 0.998532 0.998532 2 3.95714 3.95714 3 3.73631 3.73631 R83V_MV_TEST R83V_MV computes b=A*x, where A is an R83V matrix. We check three cases, MN. Product comparison: 1 0.961747 0.961747 2 2.11454 2.11454 3 3.59838 3.59838 Product comparison: 1 1.68324 1.68324 2 0.535837 0.535837 3 4.48352 4.48352 4 4.93489 4.93489 5 2.46593 2.46593 Product comparison: 1 1.07685 1.07685 2 1.37890 1.37890 3 2.11099 2.11099 4 2.48853 2.48853 5 0.00000 0.00000 R83V_PRINT_TEST R83V_PRINT prints an R83V matrix. R83V matrix: Col: 1 2 3 4 5 Row --- 1: 11.0000 12.0000 2: 21.0000 22.0000 23.0000 3: 32.0000 33.0000 34.0000 4: 43.0000 44.0000 45.0000 5: 54.0000 55.0000 R83V_PRINT_SOME_TEST R83V_PRINT_SOME prints some of an R83V matrix. Rows 2-5, Cols 2-4: Col: 2 3 4 Row --- 2: 22.0000 23.0000 3: 32.0000 33.0000 34.0000 4: 43.0000 44.0000 5: 54.0000 R83V_RANDOM_TEST R83V_RANDOM randomizes an R83V matrix. We check three cases, MN. Random R83V matrix: Col: 1 2 3 4 5 Row --- 1: 0.829509 0.661187E-01 2: 0.218418 0.561695 0.257578 3: 0.956318 0.415307 0.109957 Random R83V matrix: Col: 1 2 3 4 5 Row --- 1: 0.415307 0.633966 2: 0.218418 0.661187E-01 0.617272E-01 3: 0.956318 0.257578 0.449539 4: 0.829509 0.109957 0.401306 5: 0.561695 0.438290E-01 Random R83V matrix: Col: 1 2 3 Row --- 1: 0.561695 0.257578 2: 0.218418 0.415307 0.109957 3: 0.956318 0.661187E-01 4: 0.829509 R83V_RES_TEST R83V_RES computes b-A*x, where A is an R83V matrix. We check three cases, MN. Residual A*x-b: 1: 0.0000000 2: 0.0000000 3: 0.0000000 Residual A*x-b: 1: 0.0000000 2: 0.0000000 3: 0.0000000 4: 0.0000000 5: 0.0000000 Residual A*x-b: 1: 0.0000000 2: 0.0000000 3: 0.0000000 4: 0.0000000 5: 0.0000000 R83V_TO_R8GE_TEST R83V_TO_R8GE converts an R83V matrix to R8GE format. We check three cases, MN. R83V matrix: Col: 1 2 3 4 5 Row --- 1: 0.829509 0.661187E-01 2: 0.218418 0.561695 0.257578 3: 0.956318 0.415307 0.109957 R8GE matrix: Col: 1 2 3 4 5 Row --- 1 0.829509 0.661187E-01 0.00000 0.00000 0.00000 2 0.218418 0.561695 0.257578 0.00000 0.00000 3 0.00000 0.956318 0.415307 0.109957 0.00000 R83V matrix: Col: 1 2 3 4 5 Row --- 1: 0.415307 0.633966 2: 0.218418 0.661187E-01 0.617272E-01 3: 0.956318 0.257578 0.449539 4: 0.829509 0.109957 0.401306 5: 0.561695 0.438290E-01 R8GE matrix: Col: 1 2 3 4 5 Row --- 1 0.415307 0.633966 0.00000 0.00000 0.00000 2 0.218418 0.661187E-01 0.617272E-01 0.00000 0.00000 3 0.00000 0.956318 0.257578 0.449539 0.00000 4 0.00000 0.00000 0.829509 0.109957 0.401306 5 0.00000 0.00000 0.00000 0.561695 0.438290E-01 R83V matrix: Col: 1 2 3 Row --- 1: 0.561695 0.257578 2: 0.218418 0.415307 0.109957 3: 0.956318 0.661187E-01 4: 0.829509 R8GE matrix: Col: 1 2 3 Row --- 1 0.561695 0.257578 0.00000 2 0.218418 0.415307 0.109957 3 0.00000 0.956318 0.661187E-01 4 0.00000 0.00000 0.829509 5 0.00000 0.00000 0.00000 R83V_TO_R8VEC_TEST R83V_TO_R8VEC copies an R83V matrix to an R8VEC. We check three cases, MN. R83V matrix A: Col: 1 2 3 4 5 Row --- 1: 11.0000 12.0000 2: 21.0000 22.0000 23.0000 3: 32.0000 33.0000 34.0000 Vector version of A: 1: 11.000000 2: 21.000000 3: 12.000000 4: 22.000000 5: 32.000000 6: 23.000000 7: 33.000000 8: 34.000000 R83V matrix A: Col: 1 2 3 4 5 Row --- 1: 11.0000 12.0000 2: 21.0000 22.0000 23.0000 3: 32.0000 33.0000 34.0000 4: 43.0000 44.0000 45.0000 5: 54.0000 55.0000 Vector version of A: 1: 11.000000 2: 21.000000 3: 12.000000 4: 22.000000 5: 32.000000 6: 23.000000 7: 33.000000 8: 43.000000 9: 34.000000 10: 44.000000 11: 54.000000 12: 45.000000 13: 55.000000 R83V matrix A: Col: 1 2 3 Row --- 1: 11.0000 12.0000 2: 21.0000 22.0000 23.0000 3: 32.0000 33.0000 4: 43.0000 Vector version of A: 1: 11.000000 2: 21.000000 3: 12.000000 4: 22.000000 5: 32.000000 6: 23.000000 7: 33.000000 8: 43.000000 R83V_TRANSPOSE_TEST R83V_TRANSPOSE makes a transposed copy of an R83V matrix. We check three cases, MN. A: Col: 1 2 3 4 5 Row --- 1: 11.0000 12.0000 2: 21.0000 22.0000 23.0000 3: 32.0000 33.0000 34.0000 B = tranposed copy of A: Col: 1 2 3 Row --- 1: 11.0000 21.0000 2: 12.0000 22.0000 32.0000 3: 23.0000 33.0000 4: 34.0000 A: Col: 1 2 3 4 5 Row --- 1: 11.0000 12.0000 2: 21.0000 22.0000 23.0000 3: 32.0000 33.0000 34.0000 4: 43.0000 44.0000 45.0000 5: 54.0000 55.0000 B = tranposed copy of A: Col: 1 2 3 4 5 Row --- 1: 11.0000 21.0000 2: 12.0000 22.0000 32.0000 3: 23.0000 33.0000 43.0000 4: 34.0000 44.0000 54.0000 5: 45.0000 55.0000 A: Col: 1 2 3 Row --- 1: 11.0000 12.0000 2: 21.0000 22.0000 23.0000 3: 32.0000 33.0000 4: 43.0000 B = tranposed copy of A: Col: 1 2 3 4 5 Row --- 1: 11.0000 21.0000 2: 12.0000 22.0000 32.0000 3: 23.0000 33.0000 43.0000 R83V_ZEROS_TEST R83V_ZEROS zeros an R83V matrix. We check three cases, MN. Zeroed R83V matrix: Col: 1 2 3 4 5 Row --- 1: 0.00000 0.00000 2: 0.00000 0.00000 0.00000 3: 0.00000 0.00000 0.00000 Zeroed R83V matrix: Col: 1 2 3 4 5 Row --- 1: 0.00000 0.00000 2: 0.00000 0.00000 0.00000 3: 0.00000 0.00000 0.00000 4: 0.00000 0.00000 0.00000 5: 0.00000 0.00000 Zeroed R83V matrix: Col: 1 2 3 Row --- 1: 0.00000 0.00000 2: 0.00000 0.00000 0.00000 3: 0.00000 0.00000 4: 0.00000 R8GE_TO_R83V_TEST R8GE_TO_R83V copies an R8GE matrix to an R83V matrix. We check three cases, MN. R8GE matrix A: Col: 1 2 3 4 5 Row --- 1 11.0000 12.0000 13.0000 14.0000 15.0000 2 21.0000 22.0000 23.0000 24.0000 25.0000 3 31.0000 32.0000 33.0000 34.0000 35.0000 R83V copy of (some of ) matrix A: Col: 1 2 3 4 5 Row --- 1: 11.0000 12.0000 2: 21.0000 22.0000 23.0000 3: 32.0000 33.0000 34.0000 R8GE matrix A: Col: 1 2 3 4 5 Row --- 1 11.0000 12.0000 13.0000 14.0000 15.0000 2 21.0000 22.0000 23.0000 24.0000 25.0000 3 31.0000 32.0000 33.0000 34.0000 35.0000 4 41.0000 42.0000 43.0000 44.0000 45.0000 5 51.0000 52.0000 53.0000 54.0000 55.0000 R83V copy of (some of ) matrix A: Col: 1 2 3 4 5 Row --- 1: 11.0000 12.0000 2: 21.0000 22.0000 23.0000 3: 32.0000 33.0000 34.0000 4: 43.0000 44.0000 45.0000 5: 54.0000 55.0000 R8GE matrix A: Col: 1 2 3 Row --- 1 11.0000 12.0000 13.0000 2 21.0000 22.0000 23.0000 3 31.0000 32.0000 33.0000 4 41.0000 42.0000 43.0000 5 51.0000 52.0000 53.0000 R83V copy of (some of ) matrix A: Col: 1 2 3 Row --- 1: 11.0000 12.0000 2: 21.0000 22.0000 23.0000 3: 32.0000 33.0000 4: 43.0000 R8VEC_TO_R83V_TEST R8VEC_TO_R83V copies an R8VEC to an R83V matrix. We check three cases, MN. R8VEC: 1: 1.0000000 2: 2.0000000 3: 3.0000000 4: 4.0000000 5: 5.0000000 6: 6.0000000 7: 7.0000000 8: 8.0000000 R83V matrix: Col: 1 2 3 4 5 Row --- 1: 1.00000 3.00000 2: 2.00000 4.00000 6.00000 3: 5.00000 7.00000 8.00000 R8VEC: 1: 1.0000000 2: 2.0000000 3: 3.0000000 4: 4.0000000 5: 5.0000000 6: 6.0000000 7: 7.0000000 8: 8.0000000 9: 9.0000000 10: 10.000000 11: 11.000000 12: 12.000000 13: 13.000000 R83V matrix: Col: 1 2 3 4 5 Row --- 1: 1.00000 3.00000 2: 2.00000 4.00000 6.00000 3: 5.00000 7.00000 9.00000 4: 8.00000 10.0000 12.0000 5: 11.0000 13.0000 R8VEC: 1: 1.0000000 2: 2.0000000 3: 3.0000000 4: 4.0000000 5: 5.0000000 6: 6.0000000 7: 7.0000000 8: 8.0000000 R83V matrix: Col: 1 2 3 Row --- 1: 1.00000 3.00000 2: 2.00000 4.00000 6.00000 3: 5.00000 7.00000 4: 8.00000 r83v_test(): Normal end of execution. 11 April 2023 10:33:08.055 AM