I discovered an unexpected behavior when I take the Transpose of an Offset Unit-Diagonal. The Non-Unit variation performs as expected but when switched to Unit Diagonal the same operation leaves out the Transpose operation on the diagonal. I narrowed it down to a simple "bli_daddm" example which I've attached (C++) code but I get the same behavior on all the diagonal operations (bli_?addd, bli_?axpyd, etc.).
Is this the expected behavior ???
If so can you explain how the "diaga" argument is applied? Thanks.
Non-Unit Behavior (Expected)
| 2 2 0 0 |^T | 3 3 3 3 | | 5 5 5 5 |
| 2 2 2 0 | + | 3 3 3 3 | = | 5 5 5 5 |
| 2 2 2 2 | | 3 3 3 3 | | 3 5 5 5 |
| 2 2 2 2 | | 3 3 3 3 | | 3 3 5 5 |
Unit Behavior (Not Expected)
| 2 1 0 0 |^T | 3 3 3 3 | | 5 6 5 5 |
| 2 2 1 0 | + | 3 3 3 3 | = | 3 5 6 5 |
| 2 2 2 1 | | 3 3 3 3 | | 3 3 5 6 |
| 2 2 2 2 | | 3 3 3 3 | | 3 3 3 5 |
--
Bryan T. Flynt
Global Systems DivisionNOAA Earth System Research Laboratory