@@ -112,10 +112,34 @@ getindex{T,S}(A::LowerTriangular{T,S}, i::Integer, j::Integer) = i >= j ? A.data
112
112
getindex {T,S} (A:: UnitUpperTriangular{T,S} , i:: Integer , j:: Integer ) = i == j ? one (T) : (i < j ? A. data[i,j] : zero (A. data[i,j]))
113
113
getindex {T,S} (A:: UpperTriangular{T,S} , i:: Integer , j:: Integer ) = i <= j ? A. data[i,j] : zero (A. data[i,j])
114
114
115
- setindex! (A:: UpperTriangular , x, i:: Integer , j:: Integer ) = i <= j ? (A. data[i,j] = x; A) : throw (BoundsError ())
116
- setindex! (A:: UnitUpperTriangular , x, i:: Integer , j:: Integer ) = i < j ? (A. data[i,j] = x; A) : throw (BoundsError ())
117
- setindex! (A:: LowerTriangular , x, i:: Integer , j:: Integer ) = i >= j ? (A. data[i,j] = x; A) : throw (BoundsError ())
118
- setindex! (A:: UnitLowerTriangular , x, i:: Integer , j:: Integer ) = i > j ? (A. data[i,j] = x; A) : throw (BoundsError ())
115
+ function setindex! (A:: UpperTriangular , x, i:: Integer , j:: Integer )
116
+ if i <= j
117
+ A. data[i,j] = x; A
118
+ else
119
+ throw (BoundsError ())
120
+ end
121
+ end
122
+ function setindex! (A:: UnitUpperTriangular , x, i:: Integer , j:: Integer )
123
+ if i < j
124
+ A. data[i,j] = x; A
125
+ else
126
+ throw (BoundsError ())
127
+ end
128
+ end
129
+ function setindex! (A:: LowerTriangular , x, i:: Integer , j:: Integer )
130
+ if i >= j
131
+ A. data[i,j] = x; A
132
+ else
133
+ throw (BoundsError ())
134
+ end
135
+ end
136
+ function setindex! (A:: UnitLowerTriangular , x, i:: Integer , j:: Integer )
137
+ if i > j
138
+ A. data[i,j] = x; A
139
+ else
140
+ throw (BoundsError ())
141
+ end
142
+ end
119
143
120
144
istril (A:: LowerTriangular ) = true
121
145
istril (A:: UnitLowerTriangular ) = true
319
343
function A_mul_B! (A:: UpperTriangular , B:: StridedVecOrMat )
320
344
m, n = size (B, 1 ), size (B, 2 )
321
345
if m != size (A, 1 )
322
- throw (DimensionMismatch (" left and right hand side does not fit " ))
346
+ throw (DimensionMismatch (" B needs first dimension of size $( size (A, 1 )) , has size $m " ))
323
347
end
324
348
for j = 1 : n
325
349
for i = 1 : m
335
359
function A_mul_B! (A:: UnitUpperTriangular , B:: StridedVecOrMat )
336
360
m, n = size (B, 1 ), size (B, 2 )
337
361
if m != size (A, 1 )
338
- throw (DimensionMismatch (" left and right hand side does not fit " ))
362
+ throw (DimensionMismatch (" B needs first dimension of size $( size (A, 1 )) , has size $m " ))
339
363
end
340
364
for j = 1 : n
341
365
for i = 1 : m
352
376
function A_mul_B! (A:: LowerTriangular , B:: StridedVecOrMat )
353
377
m, n = size (B, 1 ), size (B, 2 )
354
378
if m != size (A, 1 )
355
- throw (DimensionMismatch (" left and right hand side does not fit " ))
379
+ throw (DimensionMismatch (" B needs first dimension of size $( size (A, 1 )) , has size $m " ))
356
380
end
357
381
for j = 1 : n
358
382
for i = m: - 1 : 1
368
392
function A_mul_B! (A:: UnitLowerTriangular , B:: StridedVecOrMat )
369
393
m, n = size (B, 1 ), size (B, 2 )
370
394
if m != size (A, 1 )
371
- throw (DimensionMismatch (" left and right hand side does not fit " ))
395
+ throw (DimensionMismatch (" B needs first dimension of size $( size (A, 1 )) , has size $m " ))
372
396
end
373
397
for j = 1 : n
374
398
for i = m: - 1 : 1
385
409
function Ac_mul_B! (A:: UpperTriangular , B:: StridedVecOrMat )
386
410
m, n = size (B, 1 ), size (B, 2 )
387
411
if m != size (A, 1 )
388
- throw (DimensionMismatch (" left and right hand side does not fit " ))
412
+ throw (DimensionMismatch (" B needs first dimension of size $( size (A, 1 )) , has size $m " ))
389
413
end
390
414
for j = 1 : n
391
415
for i = m: - 1 : 1
401
425
function Ac_mul_B! (A:: UnitUpperTriangular , B:: StridedVecOrMat )
402
426
m, n = size (B, 1 ), size (B, 2 )
403
427
if m != size (A, 1 )
404
- throw (DimensionMismatch (" left and right hand side does not fit " ))
428
+ throw (DimensionMismatch (" B needs first dimension of size $( size (A, 1 )) , has size $m " ))
405
429
end
406
430
for j = 1 : n
407
431
for i = m: - 1 : 1
418
442
function Ac_mul_B! (A:: LowerTriangular , B:: StridedVecOrMat )
419
443
m, n = size (B, 1 ), size (B, 2 )
420
444
if m != size (A, 1 )
421
- throw (DimensionMismatch (" left and right hand side does not fit " ))
445
+ throw (DimensionMismatch (" B needs first dimension of size $( size (A, 1 )) , has size $m " ))
422
446
end
423
447
for j = 1 : n
424
448
for i = 1 : m
434
458
function Ac_mul_B! (A:: UnitLowerTriangular , B:: StridedVecOrMat )
435
459
m, n = size (B, 1 ), size (B, 2 )
436
460
if m != size (A, 1 )
437
- throw (DimensionMismatch (" left and right hand side does not fit " ))
461
+ throw (DimensionMismatch (" B needs first dimension of size $( size (A, 1 )) , has size $m " ))
438
462
end
439
463
for j = 1 : n
440
464
for i = 1 : m
451
475
function A_mul_B! (A:: StridedMatrix , B:: UpperTriangular )
452
476
m, n = size (A)
453
477
if size (B, 1 ) != n
454
- throw (DimensionMismatch (" left and right hand side does not fit " ))
478
+ throw (DimensionMismatch (" B needs first dimension of size $n , has size $( size (B, 1 )) " ))
455
479
end
456
480
for i = 1 : m
457
481
for j = n: - 1 : 1
467
491
function A_mul_B! (A:: StridedMatrix , B:: UnitUpperTriangular )
468
492
m, n = size (A)
469
493
if size (B, 1 ) != n
470
- throw (DimensionMismatch (" left and right hand side does not fit " ))
494
+ throw (DimensionMismatch (" B needs first dimension of size $n , has size $( size (B, 1 )) " ))
471
495
end
472
496
for i = 1 : m
473
497
for j = n: - 1 : 1
484
508
function A_mul_B! (A:: StridedMatrix , B:: LowerTriangular )
485
509
m, n = size (A)
486
510
if size (B, 1 ) != n
487
- throw (DimensionMismatch (" left and right hand side does not fit " ))
511
+ throw (DimensionMismatch (" B needs first dimension of size $n , has size $( size (B, 1 )) " ))
488
512
end
489
513
for i = 1 : m
490
514
for j = 1 : n
500
524
function A_mul_B! (A:: StridedMatrix , B:: UnitLowerTriangular )
501
525
m, n = size (A)
502
526
if size (B, 1 ) != n
503
- throw (DimensionMismatch (" left and right hand side does not fit " ))
527
+ throw (DimensionMismatch (" B needs first dimension of size $n , has size $( size (B, 1 )) " ))
504
528
end
505
529
for i = 1 : m
506
530
for j = 1 : n
517
541
function A_mul_Bc! (A:: StridedMatrix , B:: UpperTriangular )
518
542
m, n = size (A)
519
543
if size (B, 1 ) != n
520
- throw (DimensionMismatch (" left and right hand side does not fit " ))
544
+ throw (DimensionMismatch (" B needs first dimension of size $n , has size $( size (B, 1 )) " ))
521
545
end
522
546
for i = 1 : m
523
547
for j = 1 : n
533
557
function A_mul_Bc! (A:: StridedMatrix , B:: UnitUpperTriangular )
534
558
m, n = size (A)
535
559
if size (B, 1 ) != n
536
- throw (DimensionMismatch (" left and right hand side does not fit " ))
560
+ throw (DimensionMismatch (" B needs first dimension of size $n , has size $( size (B, 1 )) " ))
537
561
end
538
562
for i = 1 : m
539
563
for j = 1 : n
550
574
function A_mul_Bc! (A:: StridedMatrix , B:: LowerTriangular )
551
575
m, n = size (A)
552
576
if size (B, 1 ) != n
553
- throw (DimensionMismatch (" left and right hand side does not fit " ))
577
+ throw (DimensionMismatch (" B needs first dimension of size $n , has size $( size (B, 1 )) " ))
554
578
end
555
579
for i = 1 : m
556
580
for j = n: - 1 : 1
566
590
function A_mul_Bc! (A:: StridedMatrix , B:: UnitLowerTriangular )
567
591
m, n = size (A)
568
592
if size (B, 1 ) != n
569
- throw (DimensionMismatch (" left and right hand side does not fit " ))
593
+ throw (DimensionMismatch (" B needs first dimension of size $n , has size $( size (B, 1 )) " ))
570
594
end
571
595
for i = 1 : m
572
596
for j = n: - 1 : 1
651
675
function A_rdiv_B! (A:: StridedMatrix , B:: UpperTriangular )
652
676
m, n = size (A)
653
677
if size (B, 1 ) != n
654
- throw (DimensionMismatch (" left and right hand side does not fit " ))
678
+ throw (DimensionMismatch (" B needs first dimension of size $n , has size $( size (B, 1 )) " ))
655
679
end
656
680
for i = 1 : m
657
681
for j = 1 : n
667
691
function A_rdiv_B! (A:: StridedMatrix , B:: UnitUpperTriangular )
668
692
m, n = size (A)
669
693
if size (B, 1 ) != n
670
- throw (DimensionMismatch (" left and right hand side does not fit " ))
694
+ throw (DimensionMismatch (" B needs first dimension of size $n , has size $( size (B, 1 )) " ))
671
695
end
672
696
for i = 1 : m
673
697
for j = 1 : n
684
708
function A_rdiv_B! (A:: StridedMatrix , B:: LowerTriangular )
685
709
m, n = size (A)
686
710
if size (B, 1 ) != n
687
- throw (DimensionMismatch (" left and right hand side does not fit " ))
711
+ throw (DimensionMismatch (" B needs first dimension of size $n , has size $( size (B, 1 )) " ))
688
712
end
689
713
for i = 1 : m
690
714
for j = n: - 1 : 1
700
724
function A_rdiv_B! (A:: StridedMatrix , B:: UnitLowerTriangular )
701
725
m, n = size (A)
702
726
if size (B, 1 ) != n
703
- throw (DimensionMismatch (" left and right hand side does not fit " ))
727
+ throw (DimensionMismatch (" B needs first dimension of size $n , has size $( size (B, 1 )) " ))
704
728
end
705
729
for i = 1 : m
706
730
for j = n: - 1 : 1
717
741
function A_rdiv_Bc! (A:: StridedMatrix , B:: UpperTriangular )
718
742
m, n = size (A)
719
743
if size (B, 1 ) != n
720
- throw (DimensionMismatch (" left and right hand side does not fit " ))
744
+ throw (DimensionMismatch (" B needs first dimension of size $n , has size $( size (B, 1 )) " ))
721
745
end
722
746
for i = 1 : m
723
747
for j = n: - 1 : 1
733
757
function A_rdiv_Bc! (A:: StridedMatrix , B:: UnitUpperTriangular )
734
758
m, n = size (A)
735
759
if size (B, 1 ) != n
736
- throw (DimensionMismatch (" left and right hand side does not fit " ))
760
+ throw (DimensionMismatch (" B needs first dimension of size $n , has size $( size (B, 1 )) " ))
737
761
end
738
762
for i = 1 : m
739
763
for j = n: - 1 : 1
750
774
function A_rdiv_Bc! (A:: StridedMatrix , B:: LowerTriangular )
751
775
m, n = size (A)
752
776
if size (B, 1 ) != n
753
- throw (DimensionMismatch (" left and right hand side does not fit " ))
777
+ throw (DimensionMismatch (" B needs first dimension of size $n , has size $( size (B, 1 )) " ))
754
778
end
755
779
for i = 1 : m
756
780
for j = 1 : n
766
790
function A_rdiv_Bc! (A:: StridedMatrix , B:: UnitLowerTriangular )
767
791
m, n = size (A)
768
792
if size (B, 1 ) != n
769
- throw (DimensionMismatch (" left and right hand side does not fit " ))
793
+ throw (DimensionMismatch (" B needs first dimension of size $n , has size $( size (B, 1 )) " ))
770
794
end
771
795
for i = 1 : m
772
796
for j = 1 : n
0 commit comments