Revision 591:eb27901664cd
| src/may/matrix.yeti | ||
|---|---|---|
| 444 | 444 |
equal' (==) vec.equal; |
| 445 | 445 |
|
| 446 | 446 |
fromRows rows = |
| 447 |
(if any do r: vec.length r != vec.length (head rows) done rows then |
|
| 448 |
failWith "Inconsistent row lengths in fromRows (\(map vec.length rows))"; |
|
| 449 |
fi; |
|
| 447 | 450 |
{
|
| 448 | 451 |
size = {
|
| 449 | 452 |
rows = length rows, |
| ... | ... | |
| 453 | 456 |
fi, |
| 454 | 457 |
}, |
| 455 | 458 |
data = DenseRows (array rows) |
| 456 |
}; |
|
| 459 |
});
|
|
| 457 | 460 |
|
| 458 | 461 |
fromColumns cols = |
| 462 |
(if any do c: vec.length c != vec.length (head cols) done cols then |
|
| 463 |
failWith "Inconsistent column lengths in fromColumns (\(map vec.length cols))"; |
|
| 464 |
fi; |
|
| 459 | 465 |
{
|
| 460 | 466 |
size = {
|
| 461 | 467 |
columns = length cols, |
| ... | ... | |
| 465 | 471 |
fi, |
| 466 | 472 |
}, |
| 467 | 473 |
data = DenseCols (array cols) |
| 468 |
}; |
|
| 474 |
});
|
|
| 469 | 475 |
|
| 470 | 476 |
fromLists data = |
| 471 | 477 |
case data of |
| src/may/matrix/test/test_matrix.yeti | ||
|---|---|---|
| 284 | 284 |
compareMatrices m' (fromRows [[1],[0],[3]]); |
| 285 | 285 |
), |
| 286 | 286 |
|
| 287 |
"mapRows-fail-\(name)": \( |
|
| 288 |
try |
|
| 289 |
m = fromRows [[1,4],[0,5],[3,6]]; |
|
| 290 |
\() (mat.mapRows |
|
| 291 |
do r: |
|
| 292 |
if vec.at r 0 == 1 |
|
| 293 |
then vec.concat [r, r] |
|
| 294 |
else vec.resizedTo 1 r |
|
| 295 |
fi |
|
| 296 |
done m); |
|
| 297 |
false |
|
| 298 |
catch FailureException e: |
|
| 299 |
true |
|
| 300 |
yrt |
|
| 301 |
), |
|
| 302 |
|
|
| 287 | 303 |
"mapColumns-\(name)": \( |
| 288 | 304 |
m = fromRows [[1,4],[0,5],[3,6]]; |
| 289 | 305 |
m' = fromColumns [[1,0,3],[4,5,6]]; |
| ... | ... | |
| 304 | 320 |
compareMatrices m' (fromColumns [[1],[0],[3]]); |
| 305 | 321 |
), |
| 306 | 322 |
|
| 323 |
"mapColumns-fail-\(name)": \( |
|
| 324 |
try |
|
| 325 |
m = fromColumns [[1,4],[0,5],[3,6]]; |
|
| 326 |
\() (mat.mapColumns |
|
| 327 |
do r: |
|
| 328 |
if vec.at r 0 == 1 |
|
| 329 |
then vec.concat [r, r] |
|
| 330 |
else vec.resizedTo 1 r |
|
| 331 |
fi |
|
| 332 |
done m); |
|
| 333 |
false |
|
| 334 |
catch FailureException e: |
|
| 335 |
true |
|
| 336 |
yrt |
|
| 337 |
), |
|
| 338 |
|
|
| 307 | 339 |
"minValue-\(name)": \( |
| 308 | 340 |
compare (mat.minValue (fromRows [[1,2],[3,4],[5,-1]])) (-1) and |
| 309 | 341 |
compare (mat.minValue (fromRows [[1,2],[3,0],[5,-1]])) (-1) and |
Also available in: Unified diff