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