Mercurial > octave-nkf
comparison liboctave/DiagArray2.h @ 14630:9e4ad3f1f291
maint: periodic merge of stable to default
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Sat, 12 May 2012 12:39:09 -0400 |
parents | 13cc11418393 63ae976ac2e7 |
children | 97e3d1769be0 |
comparison
equal
deleted
inserted
replaced
14625:bb5ecda3b975 | 14630:9e4ad3f1f291 |
---|---|
117 { return Array<T>::elem (i); } | 117 { return Array<T>::elem (i); } |
118 | 118 |
119 T& dgelem (octave_idx_type i) | 119 T& dgelem (octave_idx_type i) |
120 { return Array<T>::elem (i); } | 120 { return Array<T>::elem (i); } |
121 | 121 |
122 void check_idx (octave_idx_type r, octave_idx_type c) const; | 122 T checkelem (octave_idx_type r, octave_idx_type c) const |
123 { | |
124 return check_idx (r, c) ? elem (r, c) : T (0); | |
125 } | |
123 | 126 |
124 T operator () (octave_idx_type r, octave_idx_type c) const | 127 T operator () (octave_idx_type r, octave_idx_type c) const |
125 { | 128 { |
126 #if defined (BOUNDS_CHECKING) | 129 #if defined (BOUNDS_CHECKING) |
127 check_idx (r, c); | 130 checkelem (r, c); |
131 #else | |
132 return elem (r, c); | |
128 #endif | 133 #endif |
129 return elem (r, c); | 134 } |
135 | |
136 T& checkelem (octave_idx_type r, octave_idx_type c) | |
137 { | |
138 static T zero (0); | |
139 return check_idx (r, c) ? elem (r, c) : zero; | |
130 } | 140 } |
131 | 141 |
132 T& operator () (octave_idx_type r, octave_idx_type c) | 142 T& operator () (octave_idx_type r, octave_idx_type c) |
133 { | 143 { |
134 #if defined (BOUNDS_CHECKING) | 144 #if defined (BOUNDS_CHECKING) |
135 check_idx (r, c); | 145 return checkelem (r, c); |
146 #else | |
147 return elem (r, c); | |
136 #endif | 148 #endif |
137 return elem (r, c); | |
138 } | 149 } |
139 | 150 |
140 // No checking. | 151 // No checking. |
141 | 152 |
142 T xelem (octave_idx_type r, octave_idx_type c) const | 153 T xelem (octave_idx_type r, octave_idx_type c) const |
167 | 178 |
168 T *fortran_vec (void) { return Array<T>::fortran_vec (); } | 179 T *fortran_vec (void) { return Array<T>::fortran_vec (); } |
169 | 180 |
170 void print_info (std::ostream& os, const std::string& prefix) const | 181 void print_info (std::ostream& os, const std::string& prefix) const |
171 { Array<T>::print_info (os, prefix); } | 182 { Array<T>::print_info (os, prefix); } |
183 | |
184 private: | |
185 | |
186 bool check_idx (octave_idx_type r, octave_idx_type c) const; | |
172 }; | 187 }; |
173 | 188 |
174 #endif | 189 #endif |