==================================================== mat_test: Test of matrix operations in mat.h/mat.cpp ==================================================== A = [[1.45728 0.937431 -0.505866 1.02252] [-1.13848 0.308753 0.746416 0.432204] [1.12252 1.30289 -0.697447 0.563233]] B = [[0.917611 1.28131 -0.453088 0.284213] [-0.403519 0.00583875 -1.72459 -0.281477] [0.457302 -0.0358695 1.19487 1.51511]] C = [[1.09403 -2.85784 -1.36627] [1.63073 1.13228 -0.45695] [-0.516334 0.887216 0.35137] [-1.96168 -1.63085 0.552351]] E = [[-0.346552 0.860294 -0.837553]] Testing indexing ================ A(1,2) = 0.746416 A(2,3) = 0.563233 A(6) = -0.505866 A(0,2,1,3) = [[0.937431 -0.505866 1.02252] [0.308753 0.746416 0.432204] [1.30289 -0.697447 0.563233]] A.get_row(1) = [-1.13848 0.308753 0.746416 0.432204] A.get_rows(1,2) = [[-1.13848 0.308753 0.746416 0.432204] [1.12252 1.30289 -0.697447 0.563233]] A.get_col(2) = [-0.505866 0.746416 -0.697447] A.get_cols(2,3) = [[-0.505866 1.02252] [0.746416 0.432204] [-0.697447 0.563233]] Testing setting/copying/swapping ================================ v = [0.352447 -1.02175 1.11508 0.67581] u = [-0.804102 -0.899812 0.173576] D = [[1.45728 0.937431 -0.505866 1.02252] [-1.13848 0.308753 0.746416 0.432204] [1.12252 1.30289 -0.697447 0.563233]] D.set_row(1, v): D = [[1.45728 0.937431 -0.505866 1.02252] [0.352447 -1.02175 1.11508 0.67581] [1.12252 1.30289 -0.697447 0.563233]] D.set_col(2, u): D = [[1.45728 0.937431 -0.804102 1.02252] [0.352447 -1.02175 -0.899812 0.67581] [1.12252 1.30289 0.173576 0.563233]] D.copy_row(1, 2): D = [[1.45728 0.937431 -0.804102 1.02252] [1.12252 1.30289 0.173576 0.563233] [1.12252 1.30289 0.173576 0.563233]] D.copy_col(2, 3): D = [[1.45728 0.937431 1.02252 1.02252] [1.12252 1.30289 0.563233 0.563233] [1.12252 1.30289 0.563233 0.563233]] D.swap_rows(0, 2): D = [[1.12252 1.30289 0.563233 0.563233] [1.12252 1.30289 0.563233 0.563233] [1.45728 0.937431 1.02252 1.02252]] D.swap_cols(0, 3): D = [[0.563233 1.30289 0.563233 1.12252] [0.563233 1.30289 0.563233 1.12252] [1.02252 0.937431 1.02252 1.45728]] D.set_submatrix(1,2,2,3, A(0,1,0,1): D = [[0.563233 1.30289 0.563233 1.12252] [0.563233 1.30289 1.45728 0.937431] [1.02252 0.937431 -1.13848 0.308753]] D.set_submatrix(1,2,2,3, 5.3): D = [[0.563233 1.30289 0.563233 1.12252] [0.563233 1.30289 5.3 5.3] [1.02252 0.937431 5.3 5.3]] A = [[1.45728 0.937431 -0.505866 1.02252] [-1.13848 0.308753 0.746416 0.432204] [1.12252 1.30289 -0.697447 0.563233]] B = [[0.917611 1.28131 -0.453088 0.284213] [-0.403519 0.00583875 -1.72459 -0.281477] [0.457302 -0.0358695 1.19487 1.51511]] D = concat_horizontal(A,B): D = [[1.45728 0.937431 -0.505866 1.02252 0.917611 1.28131 -0.453088 0.284213] [-1.13848 0.308753 0.746416 0.432204 -0.403519 0.00583875 -1.72459 -0.281477] [1.12252 1.30289 -0.697447 0.563233 0.457302 -0.0358695 1.19487 1.51511]] D = concat_vertical(A,B): D = [[1.45728 0.937431 -0.505866 1.02252] [-1.13848 0.308753 0.746416 0.432204] [1.12252 1.30289 -0.697447 0.563233] [0.917611 1.28131 -0.453088 0.284213] [-0.403519 0.00583875 -1.72459 -0.281477] [0.457302 -0.0358695 1.19487 1.51511]] Testing operators (=, +, - *, /) ================================ D = A = [[1.45728 0.937431 -0.505866 1.02252] [-1.13848 0.308753 0.746416 0.432204] [1.12252 1.30289 -0.697447 0.563233]] D = 5.3 = [[5.3 5.3 5.3 5.3] [5.3 5.3 5.3 5.3] [5.3 5.3 5.3 5.3]] D = A+B = [[2.37489 2.21874 -0.958954 1.30674] [-1.54199 0.314591 -0.978176 0.150727] [1.57982 1.26702 0.497427 2.07835]] D += A = [[3.83218 3.15617 -1.46482 2.32926] [-2.68047 0.623344 -0.23176 0.582931] [2.70235 2.5699 -0.20002 2.64158]] D = A+5.3 = [[6.75728 6.23743 4.79413 6.32252] [4.16152 5.60875 6.04642 5.7322] [6.42252 6.60289 4.60255 5.86323]] D += 5.3 = [[12.0573 11.5374 10.0941 11.6225] [9.46152 10.9088 11.3464 11.0322] [11.7225 11.9029 9.90255 11.1632]] D = A-B = [[0.539672 -0.343879 -0.0527779 0.738311] [-0.734958 0.302914 2.47101 0.713682] [0.66522 1.33876 -1.89232 -0.951881]] D -= A = [[-0.917611 -1.28131 0.453088 -0.284213] [0.403519 -0.00583875 1.72459 0.281477] [-0.457302 0.0358695 -1.19487 -1.51511]] D = A-5.3 = [[-3.84272 -4.36257 -5.80587 -4.27748] [-6.43848 -4.99125 -4.55358 -4.8678] [-4.17748 -3.99711 -5.99745 -4.73677]] D -= 5.3 = [[-9.14272 -9.66257 -11.1059 -9.57748] [-11.7385 -10.2912 -9.85358 -10.1678] [-9.47748 -9.29711 -11.2974 -10.0368]] D = A*C = [[1.37834 -5.21965 -2.03236] [-1.97528 3.56055 1.91538] [2.60796 -3.2701 -2.06299]] D *= A = [[5.66972 -2.96741 -3.17582 -1.99126] [-4.78208 1.74317 2.321 0.597923] [5.20773 -1.2527 -2.32131 0.0914117]] D = A*5.3 = [[7.7236 4.96838 -2.68109 5.41938] [-6.03392 1.63639 3.956 2.29068] [5.94937 6.9053 -3.69647 2.98513]] D = 3.9*A = [[5.6834 3.65598 -1.97288 3.98784] [-4.44006 1.20414 2.91102 1.6856] [4.37784 5.08126 -2.72004 2.19661]] D *= 5.3 = [[30.122 19.3767 -10.4563 21.1356] [-23.5323 6.38192 15.4284 8.93366] [23.2025 26.9307 -14.4162 11.642]] D = elem_mult(A,B) = [[1.33722 1.20114 0.229202 0.290614] [0.459396 0.00180273 -1.28726 -0.121656] [0.513332 -0.0467339 -0.833361 0.853362]] s = A*v = [-0.317248 0.40768 -1.33266] D = u*E = [[0.278663 -0.691763 0.673478] [0.311832 -0.774103 0.753641] [-0.0601531 0.149326 -0.145379]] D = A/5.3 = [[0.274959 0.176874 -0.0954464 0.192929] [-0.214807 0.0582552 0.140833 0.081548] [0.211797 0.245828 -0.131594 0.10627]] D /= 5.3 = [[0.0518791 0.0333724 -0.0180088 0.0364017] [-0.0405296 0.0109915 0.0265723 0.0153864] [0.0399616 0.0463826 -0.024829 0.020051]] D = elem_div(A,B) = [[1.58813 0.731619 1.11648 3.59774] [2.82137 52.8799 -0.432807 -1.53549] [2.45466 -36.323 -0.583699 0.371743]] D /= A = [[1.08979 0.780451 -2.20708 3.51849] [-2.4782 171.269 -0.579847 -3.55268] [2.18674 -27.8788 0.836909 0.660016]]