comparison src/ov-bool-mat.cc @ 3220:3deb1105fbc1

[project @ 1998-11-19 00:06:30 by jwe]
author jwe
date Thu, 19 Nov 1998 00:06:34 +0000
parents 30770ba4457a
children d14c483b3c12
comparison
equal deleted inserted replaced
3219:30770ba4457a 3220:3deb1105fbc1
76 retval = new octave_bool (matrix (0, 0)); 76 retval = new octave_bool (matrix (0, 0));
77 77
78 return retval; 78 return retval;
79 } 79 }
80 80
81 octave_value
82 octave_bool_matrix::do_index_op (const octave_value_list& idx)
83 {
84 octave_value retval;
85
86 int len = idx.length ();
87
88 switch (len)
89 {
90 case 2:
91 {
92 idx_vector i = idx (0).index_vector ();
93 idx_vector j = idx (1).index_vector ();
94
95 retval = boolMatrix (matrix.index (i, j));
96 }
97 break;
98
99 case 1:
100 {
101 idx_vector i = idx (0).index_vector ();
102
103 retval = boolMatrix (matrix.index (i));
104 }
105 break;
106
107 default:
108 error ("invalid number of indices (%d) for matrix value", len);
109 break;
110 }
111
112 return retval;
113 }
114
115 #if !defined (CXX_NEW_FRIEND_TEMPLATE_DECL) 81 #if !defined (CXX_NEW_FRIEND_TEMPLATE_DECL)
116 extern void assign (Array2<bool>&, const Array2<bool>&); 82 extern void assign (Array2<bool>&, const Array2<bool>&);
117 #endif 83 #endif
118 84
119 void 85 void
158 { 124 {
159 // XXX FIXME XXX 125 // XXX FIXME XXX
160 return false; 126 return false;
161 } 127 }
162 128
163 bool
164 octave_bool_matrix::is_true (void) const
165 {
166 bool retval = false;
167
168 if (rows () == 0 || columns () == 0)
169 {
170 int flag = Vpropagate_empty_matrices;
171
172 if (flag < 0)
173 warning ("empty matrix used in conditional expression");
174 else if (flag == 0)
175 error ("empty matrix used in conditional expression");
176 }
177 else
178 {
179 boolMatrix m = (matrix.all ()) . all ();
180
181 retval = (m.rows () == 1 && m.columns () == 1 && m (0, 0));
182 }
183
184 return retval;
185 }
186
187 double 129 double
188 octave_bool_matrix::double_value (bool) const 130 octave_bool_matrix::double_value (bool) const
189 { 131 {
190 double retval = octave_NaN; 132 double retval = octave_NaN;
191 133