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);