comparison liboctave/mx-op-defs.h @ 8366:8b1a2555c4e2

implement diagonal matrix objects * * *
author Jaroslav Hajek <highegg@gmail.com>
date Wed, 03 Dec 2008 13:32:57 +0100
parents 935be827eaf8
children 445d27d79f4e
comparison
equal deleted inserted replaced
8365:65ca196fff28 8366:8b1a2555c4e2
1050 \ 1050 \
1051 if (m_nc != dm_nr) \ 1051 if (m_nc != dm_nr) \
1052 gripe_nonconformant ("operator *", m_nr, m_nc, dm_nr, dm_nc); \ 1052 gripe_nonconformant ("operator *", m_nr, m_nc, dm_nr, dm_nc); \
1053 else \ 1053 else \
1054 { \ 1054 { \
1055 r.resize (m_nr, dm_nc, R_ZERO); \ 1055 r = R (m_nr, dm_nc); \
1056 \ 1056 \
1057 if (m_nr > 0 && m_nc > 0 && dm_nc > 0) \ 1057 if (m_nr > 0 && m_nc > 0 && dm_nc > 0) \
1058 { \ 1058 { \
1059 int len = dm.length (); \ 1059 int len = dm.length (); \
1060 \ 1060 \
1061 for (int j = 0; j < len; j++) \ 1061 for (int j = 0; j < len; j++) \
1062 { \ 1062 { \
1063 const DM::element_type djj = dm.elem (j, j); \
1063 for (int i = 0; i < m_nr; i++) \ 1064 for (int i = 0; i < m_nr; i++) \
1064 r.elem(i, j) = dm.elem(j, j) * m.elem(i, j); \ 1065 r.xelem (i, j) = djj * m.elem (i, j); \
1065 } \ 1066 } \
1066 } \ 1067 } \
1067 } \ 1068 } \
1068 \ 1069 \
1069 return r; \ 1070 return r; \
1130 \ 1131 \
1131 if (dm_nc != m_nr) \ 1132 if (dm_nc != m_nr) \
1132 gripe_nonconformant ("operator *", dm_nr, dm_nc, m_nr, m_nc); \ 1133 gripe_nonconformant ("operator *", dm_nr, dm_nc, m_nr, m_nc); \
1133 else \ 1134 else \
1134 { \ 1135 { \
1135 r.resize (dm_nr, m_nc, R_ZERO); \ 1136 r = R (dm_nr, m_nc); \
1136 \ 1137 \
1137 if (dm_nr > 0 && dm_nc > 0 && m_nc > 0) \ 1138 if (dm_nr > 0 && dm_nc > 0 && m_nc > 0) \
1138 { \ 1139 { \
1139 int len = dm.length (); \ 1140 int len = dm.length (); \
1140 \ 1141 \
1141 for (int i = 0; i < len; i++) \ 1142 for (int i = 0; i < len; i++) \
1142 { \ 1143 { \
1143 for (int j = 0; j < m_nc; j++) \ 1144 for (int j = 0; j < m_nc; j++) \
1144 r.elem(i, j) = dm.elem(i, i) * m.elem(i, j); \ 1145 r.xelem (i, j) = dm.elem (i, i) * m.elem (i, j); \
1145 } \ 1146 } \
1146 } \ 1147 } \
1147 } \ 1148 } \
1148 \ 1149 \
1149 return r; \ 1150 return r; \