Mercurial > hg > octave-lyh
comparison liboctave/Array.cc @ 4708:e5639a6586c4
[project @ 2004-01-22 17:59:28 by jwe]
author | jwe |
---|---|
date | Thu, 22 Jan 2004 17:59:28 +0000 |
parents | 8d4bb887f381 |
children | cf141edca935 |
comparison
equal
deleted
inserted
replaced
4707:8d4bb887f381 | 4708:e5639a6586c4 |
---|---|
846 | 846 |
847 rep = new typename Array<T>::ArrayRep (len); | 847 rep = new typename Array<T>::ArrayRep (len); |
848 | 848 |
849 dim_vector dv_old = dimensions; | 849 dim_vector dv_old = dimensions; |
850 | 850 |
851 if (n > dv_old.length ()) | |
852 { | |
853 dv_old.resize (n); | |
854 | |
855 for (int i = dv_old.length (); i < n; i++) | |
856 dv_old.elem (i) = 1; | |
857 } | |
858 | |
851 dimensions = dv; | 859 dimensions = dv; |
852 | 860 |
853 Array<int> ra_idx (dimensions.length (), 0); | 861 Array<int> ra_idx (dimensions.length (), 0); |
854 | 862 |
855 // XXX FIXME XXX -- it is much simpler to fill the whole array | 863 // XXX FIXME XXX -- it is much simpler to fill the whole array |
2237 | 2245 |
2238 if (rhs.length () > 2) | 2246 if (rhs.length () > 2) |
2239 { | 2247 { |
2240 dim_vector dv_tmp = rhs.squeeze().dims (); | 2248 dim_vector dv_tmp = rhs.squeeze().dims (); |
2241 | 2249 |
2242 if (dv_tmp.length () > 2) | 2250 switch (dv_tmp.length ()) |
2243 { | 2251 { |
2244 (*current_liboctave_error_handler) | 2252 case 1: |
2245 ("Dimension mismatch"); | 2253 if (rhs_nr == 1) |
2246 | 2254 rhs_nc = dv_tmp.elem (0); |
2247 return 0; | 2255 break; |
2248 } | 2256 |
2249 | 2257 case 2: |
2250 if (dv_tmp.length () == 1) | |
2251 if (rhs_nr == 1) | |
2252 rhs_nc = dv_tmp.elem (0); | |
2253 | |
2254 else if (dv_tmp.length () == 2) | |
2255 { | |
2256 rhs_nr = dv_tmp.elem (0); | 2258 rhs_nr = dv_tmp.elem (0); |
2257 rhs_nc = dv_tmp.elem (1); | 2259 rhs_nc = dv_tmp.elem (1); |
2260 break; | |
2261 | |
2262 default: | |
2263 (*current_liboctave_error_handler) | |
2264 ("Array<T>::assign2: Dimension mismatch"); | |
2265 return 0; | |
2258 } | 2266 } |
2259 } | 2267 } |
2260 | 2268 |
2261 idx_vector *tmp = lhs.get_idx (); | 2269 idx_vector *tmp = lhs.get_idx (); |
2262 | 2270 |