Mercurial > octave
comparison libinterp/operators/op-scm-cm.cc @ 31867:a9c8b1f8fb32
use macro to simplify octave_base_value casts in operator functions
* ops.h (OCTAVE_DYNAMIC_CAST): Rename from DYNORSTAT_CAST.
(OCTAVE_CAST_BASE_VALUE): New macro.
* op-b-b.cc, op-b-bm.cc, op-b-sbm.cc, op-bm-b.cc, op-bm-bm.cc,
op-bm-sbm.cc, op-cdm-cdm.cc, op-cell.cc, op-chm.cc, op-class.cc,
op-cm-cm.cc, op-cm-cs.cc, op-cm-m.cc, op-cm-s.cc, op-cm-scm.cc,
op-cm-sm.cc, op-cs-cm.cc, op-cs-cs.cc, op-cs-m.cc, op-cs-s.cc,
op-cs-scm.cc, op-cs-sm.cc, op-dm-dm.cc, op-dm-scm.cc, op-dm-sm.cc,
op-dm-template.cc, op-dms-template.cc, op-fcdm-fcdm.cc, op-fcm-fcm.cc,
op-fcm-fcs.cc, op-fcm-fm.cc, op-fcm-fs.cc, op-fcn.cc, op-fcs-fcm.cc,
op-fcs-fcs.cc, op-fcs-fm.cc, op-fcs-fs.cc, op-fdm-fdm.cc,
op-fm-fcm.cc, op-fm-fcs.cc, op-fm-fm.cc, op-fm-fs.cc, op-fs-fcm.cc,
op-fs-fcs.cc, op-fs-fm.cc, op-fs-fs.cc, op-int.h, op-m-cm.cc,
op-m-cs.cc, op-m-m.cc, op-m-s.cc, op-m-scm.cc, op-m-sm.cc, op-mi.cc,
op-pm-pm.cc, op-pm-scm.cc, op-pm-sm.cc, op-pm-template.cc,
op-range.cc, op-s-cm.cc, op-s-cs.cc, op-s-m.cc, op-s-s.cc,
op-s-scm.cc, op-s-sm.cc, op-sbm-b.cc, op-sbm-bm.cc, op-sbm-sbm.cc,
op-scm-cm.cc, op-scm-cs.cc, op-scm-m.cc, op-scm-s.cc, op-scm-scm.cc,
op-scm-sm.cc, op-sm-cm.cc, op-sm-cs.cc, op-sm-m.cc, op-sm-s.cc,
op-sm-scm.cc, op-sm-sm.cc, op-str-m.cc, op-str-s.cc, op-str-str.cc,
op-struct.cc, ops.h:
Replace lines like "T& v = DYNORSTAT_CAST<T&> (a)" with
"OCTAVE_CAST_BASE_VALUE (T&, v, a)".
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 28 Feb 2023 15:45:03 -0500 |
parents | 3722c5b1a8c8 |
children | 2e484f9f1f18 |
comparison
equal
deleted
inserted
replaced
31866:3722c5b1a8c8 | 31867:a9c8b1f8fb32 |
---|---|
50 | 50 |
51 DEFBINOP_OP (mul, sparse_complex_matrix, complex_matrix, *) | 51 DEFBINOP_OP (mul, sparse_complex_matrix, complex_matrix, *) |
52 | 52 |
53 DEFBINOP (div, sparse_complex_matrix, complex_matrix) | 53 DEFBINOP (div, sparse_complex_matrix, complex_matrix) |
54 { | 54 { |
55 const octave_sparse_complex_matrix& v1 | 55 OCTAVE_CAST_BASE_VALUE (const octave_sparse_complex_matrix&, v1, a1); |
56 = DYNORSTAT_CAST<const octave_sparse_complex_matrix&> (a1); | 56 OCTAVE_CAST_BASE_VALUE (const octave_complex_matrix&, v2, a2); |
57 const octave_complex_matrix& v2 | |
58 = DYNORSTAT_CAST<const octave_complex_matrix&> (a2); | |
59 MatrixType typ = v2.matrix_type (); | 57 MatrixType typ = v2.matrix_type (); |
60 | 58 |
61 ComplexMatrix ret = xdiv (v1.complex_matrix_value (), | 59 ComplexMatrix ret = xdiv (v1.complex_matrix_value (), |
62 v2.complex_matrix_value (), typ); | 60 v2.complex_matrix_value (), typ); |
63 | 61 |
70 error ("can't do A ^ B for A and B both matrices"); | 68 error ("can't do A ^ B for A and B both matrices"); |
71 } | 69 } |
72 | 70 |
73 DEFBINOP (ldiv, sparse_complex_matrix, complex_matrix) | 71 DEFBINOP (ldiv, sparse_complex_matrix, complex_matrix) |
74 { | 72 { |
75 const octave_sparse_complex_matrix& v1 | 73 OCTAVE_CAST_BASE_VALUE (const octave_sparse_complex_matrix&, v1, a1); |
76 = DYNORSTAT_CAST<const octave_sparse_complex_matrix&> (a1); | 74 OCTAVE_CAST_BASE_VALUE (const octave_complex_matrix&, v2, a2); |
77 const octave_complex_matrix& v2 | |
78 = DYNORSTAT_CAST<const octave_complex_matrix&> (a2); | |
79 | 75 |
80 if (v1.rows () == 1 && v1.columns () == 1) | 76 if (v1.rows () == 1 && v1.columns () == 1) |
81 return octave_value (v2.complex_array_value () / v1.complex_value ()); | 77 return octave_value (v2.complex_array_value () / v1.complex_value ()); |
82 else | 78 else |
83 { | 79 { |
104 DEFBINOP_FN (el_mul, sparse_complex_matrix, complex_matrix, product) | 100 DEFBINOP_FN (el_mul, sparse_complex_matrix, complex_matrix, product) |
105 DEFBINOP_FN (el_div, sparse_complex_matrix, complex_matrix, quotient) | 101 DEFBINOP_FN (el_div, sparse_complex_matrix, complex_matrix, quotient) |
106 | 102 |
107 DEFBINOP (el_pow, sparse_complex_matrix, complex_matrix) | 103 DEFBINOP (el_pow, sparse_complex_matrix, complex_matrix) |
108 { | 104 { |
109 const octave_sparse_complex_matrix& v1 | 105 OCTAVE_CAST_BASE_VALUE (const octave_sparse_complex_matrix&, v1, a1); |
110 = DYNORSTAT_CAST<const octave_sparse_complex_matrix&> (a1); | 106 OCTAVE_CAST_BASE_VALUE (const octave_complex_matrix&, v2, a2); |
111 const octave_complex_matrix& v2 | |
112 = DYNORSTAT_CAST<const octave_complex_matrix&> (a2); | |
113 | 107 |
114 return octave_value | 108 return octave_value |
115 (elem_xpow (v1.sparse_complex_matrix_value (), SparseComplexMatrix | 109 (elem_xpow (v1.sparse_complex_matrix_value (), SparseComplexMatrix |
116 (v2.complex_matrix_value ()))); | 110 (v2.complex_matrix_value ()))); |
117 } | 111 } |
118 | 112 |
119 DEFBINOP (el_ldiv, sparse_complex_matrix, matrix) | 113 DEFBINOP (el_ldiv, sparse_complex_matrix, matrix) |
120 { | 114 { |
121 const octave_sparse_complex_matrix& v1 | 115 OCTAVE_CAST_BASE_VALUE (const octave_sparse_complex_matrix&, v1, a1); |
122 = DYNORSTAT_CAST<const octave_sparse_complex_matrix&> (a1); | 116 OCTAVE_CAST_BASE_VALUE (const octave_complex_matrix&, v2, a2); |
123 const octave_complex_matrix& v2 | |
124 = DYNORSTAT_CAST<const octave_complex_matrix&> (a2); | |
125 | 117 |
126 return octave_value (quotient (v2.complex_matrix_value (), | 118 return octave_value (quotient (v2.complex_matrix_value (), |
127 v1.sparse_complex_matrix_value ())); | 119 v1.sparse_complex_matrix_value ())); |
128 } | 120 } |
129 | 121 |
130 DEFBINOP_FN (el_and, sparse_complex_matrix, complex_matrix, mx_el_and) | 122 DEFBINOP_FN (el_and, sparse_complex_matrix, complex_matrix, mx_el_and) |
131 DEFBINOP_FN (el_or, sparse_complex_matrix, complex_matrix, mx_el_or) | 123 DEFBINOP_FN (el_or, sparse_complex_matrix, complex_matrix, mx_el_or) |
132 | 124 |
133 DEFCATOP (scm_cm, sparse_complex_matrix, complex_matrix) | 125 DEFCATOP (scm_cm, sparse_complex_matrix, complex_matrix) |
134 { | 126 { |
135 const octave_sparse_complex_matrix& v1 | 127 OCTAVE_CAST_BASE_VALUE (const octave_sparse_complex_matrix&, v1, a1); |
136 = DYNORSTAT_CAST<const octave_sparse_complex_matrix&> (a1); | 128 OCTAVE_CAST_BASE_VALUE (const octave_complex_matrix&, v2, a2); |
137 const octave_complex_matrix& v2 | |
138 = DYNORSTAT_CAST<const octave_complex_matrix&> (a2); | |
139 SparseComplexMatrix tmp (v2.complex_matrix_value ()); | 129 SparseComplexMatrix tmp (v2.complex_matrix_value ()); |
140 return octave_value | 130 return octave_value |
141 (v1.sparse_complex_matrix_value ().concat (tmp, ra_idx)); | 131 (v1.sparse_complex_matrix_value ().concat (tmp, ra_idx)); |
142 } | 132 } |
143 | 133 |