Mercurial > octave-nkf
comparison src/OPERATORS/op-streamoff.cc @ 4701:34a740dc31a6
[project @ 2004-01-21 19:55:36 by jwe]
author | jwe |
---|---|
date | Wed, 21 Jan 2004 19:55:37 +0000 |
parents | 6639c2574023 |
children | 4c8a2e4e0717 |
comparison
equal
deleted
inserted
replaced
4700:ca3a1d687bba | 4701:34a740dc31a6 |
---|---|
64 DEFNDBINOP_OP (sub_so_s, streamoff, scalar, streamoff_array, streamoff, -) | 64 DEFNDBINOP_OP (sub_so_s, streamoff, scalar, streamoff_array, streamoff, -) |
65 | 65 |
66 DEFNDBINOP_OP (add_s_so, scalar, streamoff, streamoff, streamoff_array, +) | 66 DEFNDBINOP_OP (add_s_so, scalar, streamoff, streamoff, streamoff_array, +) |
67 DEFNDBINOP_OP (sub_s_so, scalar, streamoff, streamoff, streamoff_array, +) | 67 DEFNDBINOP_OP (sub_s_so, scalar, streamoff, streamoff, streamoff_array, +) |
68 | 68 |
69 DEFBINOP (eq, streamoff, streamoff) | 69 #define STREAMOFF_COMP_OP(FN, OP, T1, T2) \ |
70 { | 70 DEFBINOP (FN, T1, T2) \ |
71 CAST_BINOP_ARGS (const octave_streamoff&, | 71 { \ |
72 const octave_streamoff&); | 72 CAST_BINOP_ARGS (const octave_ ## T1&, octave_ ## T2&); \ |
73 \ | |
74 streamoff_array cm1 = v1.streamoff_array_value (); \ | |
75 streamoff_array cm2 = v2.streamoff_array_value (); \ | |
76 \ | |
77 if (! error_state) \ | |
78 { \ | |
79 if (cm1.rows () == 1 && cm1.columns () == 1) \ | |
80 { \ | |
81 if (cm2.rows () == 1 && cm2.columns () == 1) \ | |
82 return octave_value (cm1(0,0) OP cm2(0,0)); \ | |
83 else \ | |
84 SC_MX_BOOL_OP (std::streamoff, c, cm1 (0, 0), streamoff_array, \ | |
85 m, cm2, c OP m(i,j), 0.0); \ | |
86 } \ | |
87 else \ | |
88 { \ | |
89 if (cm2.rows () == 1 && cm2.columns () == 1) \ | |
90 MX_SC_BOOL_OP (streamoff_array, m, cm1, std::streamoff, \ | |
91 c, cm2(0,0), c OP m(i,j), 0.0); \ | |
92 else \ | |
93 MX_MX_BOOL_OP (streamoff_array, m1, cm1, streamoff_array, \ | |
94 m2, cm2, m1(i,j) OP m2(i,j), #OP, 0.0, 1.0); \ | |
95 } \ | |
96 } \ | |
97 else \ | |
98 return octave_value (); \ | |
99 } | |
73 | 100 |
74 streamoff_array cm1 = v1.streamoff_array_value (); | 101 STREAMOFF_COMP_OP (eq, ==, streamoff, streamoff); |
75 streamoff_array cm2 = v2.streamoff_array_value (); | 102 STREAMOFF_COMP_OP (ne, !=, streamoff, streamoff); |
76 | 103 |
77 if (cm1.rows () == 1 && cm1.columns () == 1) | 104 STREAMOFF_COMP_OP (eq_so_m, ==, streamoff, matrix); |
78 { | 105 STREAMOFF_COMP_OP (ne_so_m, !=, streamoff, matrix); |
79 if (cm2.rows () == 1 && cm2.columns () == 1) | |
80 return octave_value (cm1 (0, 0) == cm2 (0, 0)); | |
81 else | |
82 SC_MX_BOOL_OP (std::streamoff, c, cm1 (0, 0), streamoff_array, m, cm2, | |
83 c == m (i, j), 0.0); | |
84 } | |
85 else | |
86 { | |
87 int cm2_nr = cm2.rows (); | |
88 int cm2_nc = cm2.cols (); | |
89 | 106 |
90 if (cm2_nr == 1 && cm2_nc == 1) | 107 STREAMOFF_COMP_OP (eq_m_so, ==, matrix, streamoff); |
91 MX_SC_BOOL_OP (streamoff_array, m, cm1, std::streamoff, c, cm2 (0, 0), | 108 STREAMOFF_COMP_OP (ne_m_so, !=, matrix, streamoff); |
92 c == m (i, j), 0.0); | |
93 else | |
94 MX_MX_BOOL_OP (streamoff_array, m1, cm1, streamoff_array, m2, cm2, | |
95 m1 (i, j) == m2 (i, j), "==", 0.0, 1.0); | |
96 } | |
97 } | |
98 | 109 |
99 DEFBINOP (ne, streamoff, streamoff) | 110 STREAMOFF_COMP_OP (eq_so_s, ==, streamoff, scalar); |
100 { | 111 STREAMOFF_COMP_OP (ne_so_s, !=, streamoff, scalar); |
101 CAST_BINOP_ARGS (const octave_streamoff&, | |
102 const octave_streamoff&); | |
103 | 112 |
104 streamoff_array cm1 = v1.streamoff_array_value (); | 113 STREAMOFF_COMP_OP (eq_s_so, ==, scalar, streamoff); |
105 streamoff_array cm2 = v2.streamoff_array_value (); | 114 STREAMOFF_COMP_OP (ne_s_so, !=, scalar, streamoff); |
106 | |
107 if (cm1.rows () == 1 && cm1.columns () == 1) | |
108 { | |
109 if (cm2.rows () == 1 && cm2.columns () == 1) | |
110 return octave_value (cm1 (0, 0) != cm2 (0, 0)); | |
111 else | |
112 SC_MX_BOOL_OP (std::streamoff, c, cm1 (0, 0), streamoff_array, m, cm2, | |
113 c != m (i, j), 1.0); | |
114 } | |
115 else | |
116 { | |
117 if (cm2.rows () == 1 && cm2.columns () == 1) | |
118 MX_SC_BOOL_OP (streamoff_array, m, cm1, std::streamoff, c, cm2 (0, 0), | |
119 c != m (i, j), 1.0); | |
120 else | |
121 MX_MX_BOOL_OP (streamoff_array, m1, cm1, streamoff_array, m2, cm2, | |
122 m1 (i, j) != m2 (i, j), "!=", 1.0, 0.0); | |
123 } | |
124 } | |
125 | 115 |
126 DEFASSIGNOP (assign, streamoff, streamoff) | 116 DEFASSIGNOP (assign, streamoff, streamoff) |
127 { | 117 { |
128 CAST_BINOP_ARGS (octave_streamoff&, const octave_streamoff&); | 118 CAST_BINOP_ARGS (octave_streamoff&, const octave_streamoff&); |
129 | 119 |
140 INSTALL_NCUNOP (op_incr, octave_streamoff, incr); | 130 INSTALL_NCUNOP (op_incr, octave_streamoff, incr); |
141 INSTALL_NCUNOP (op_decr, octave_streamoff, decr); | 131 INSTALL_NCUNOP (op_decr, octave_streamoff, decr); |
142 | 132 |
143 INSTALL_BINOP (op_eq, octave_streamoff, octave_streamoff, eq); | 133 INSTALL_BINOP (op_eq, octave_streamoff, octave_streamoff, eq); |
144 INSTALL_BINOP (op_ne, octave_streamoff, octave_streamoff, ne); | 134 INSTALL_BINOP (op_ne, octave_streamoff, octave_streamoff, ne); |
135 | |
136 INSTALL_BINOP (op_eq, octave_streamoff, octave_matrix, eq_so_m); | |
137 INSTALL_BINOP (op_ne, octave_streamoff, octave_matrix, ne_so_m); | |
138 | |
139 INSTALL_BINOP (op_eq, octave_matrix, octave_streamoff, eq_m_so); | |
140 INSTALL_BINOP (op_ne, octave_matrix, octave_streamoff, ne_m_so); | |
141 | |
142 INSTALL_BINOP (op_eq, octave_streamoff, octave_scalar, eq_so_s); | |
143 INSTALL_BINOP (op_ne, octave_streamoff, octave_scalar, ne_so_s); | |
144 | |
145 INSTALL_BINOP (op_eq, octave_scalar, octave_streamoff, eq_s_so); | |
146 INSTALL_BINOP (op_ne, octave_scalar, octave_streamoff, ne_s_so); | |
145 | 147 |
146 INSTALL_BINOP (op_add, octave_streamoff, octave_streamoff, add); | 148 INSTALL_BINOP (op_add, octave_streamoff, octave_streamoff, add); |
147 INSTALL_BINOP (op_sub, octave_streamoff, octave_streamoff, sub); | 149 INSTALL_BINOP (op_sub, octave_streamoff, octave_streamoff, sub); |
148 | 150 |
149 INSTALL_BINOP (op_add, octave_streamoff, octave_matrix, add_so_m); | 151 INSTALL_BINOP (op_add, octave_streamoff, octave_matrix, add_so_m); |