1*bf2c3715SXin Li<?xml version="1.0" encoding="utf-8"?> 2*bf2c3715SXin Li 3*bf2c3715SXin Li<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010"> 4*bf2c3715SXin Li 5*bf2c3715SXin Li <!-- Fixed x Fixed Matrix --> 6*bf2c3715SXin Li <Type Name="Eigen::Matrix<*,*,*,*,*,*>"> 7*bf2c3715SXin Li <AlternativeType Name="Eigen::Array<*,-1,-1,*,*,*>"/> 8*bf2c3715SXin Li <DisplayString>[{$T2}, {$T3}] (fixed matrix)</DisplayString> 9*bf2c3715SXin Li <Expand> 10*bf2c3715SXin Li <ArrayItems Condition="Flags%2"> <!-- row major layout --> 11*bf2c3715SXin Li <Rank>2</Rank> 12*bf2c3715SXin Li <Size>$i==0 ? $T2 : $T3</Size> 13*bf2c3715SXin Li <ValuePointer>m_storage.m_data.array</ValuePointer> 14*bf2c3715SXin Li </ArrayItems> 15*bf2c3715SXin Li <ArrayItems Condition="!(Flags%2)"> <!-- column major layout --> 16*bf2c3715SXin Li <Direction>Backward</Direction> 17*bf2c3715SXin Li <Rank>2</Rank> 18*bf2c3715SXin Li <Size>$i==0 ? $T2 : $T3</Size> 19*bf2c3715SXin Li <ValuePointer>m_storage.m_data.array</ValuePointer> 20*bf2c3715SXin Li </ArrayItems> 21*bf2c3715SXin Li </Expand> 22*bf2c3715SXin Li </Type> 23*bf2c3715SXin Li 24*bf2c3715SXin Li <!-- 2 x 2 Matrix --> 25*bf2c3715SXin Li <Type Name="Eigen::Matrix<*,2,2,*,*,*>"> 26*bf2c3715SXin Li <AlternativeType Name="Eigen::Array<*,2,2,*,*,*>"/> 27*bf2c3715SXin Li <DisplayString>[2, 2] (fixed matrix)</DisplayString> 28*bf2c3715SXin Li <Expand> 29*bf2c3715SXin Li <Synthetic Name="[row 0]" Condition="Flags%2"> 30*bf2c3715SXin Li <DisplayString>({m_storage.m_data.array[0]}, {m_storage.m_data.array[1]})</DisplayString> 31*bf2c3715SXin Li </Synthetic> 32*bf2c3715SXin Li <Synthetic Name="[row 0]" Condition="!(Flags%2)"> 33*bf2c3715SXin Li <DisplayString>({m_storage.m_data.array[0]}, {m_storage.m_data.array[2]})</DisplayString> 34*bf2c3715SXin Li </Synthetic> 35*bf2c3715SXin Li <Synthetic Name="[row 1]" Condition="Flags%2"> 36*bf2c3715SXin Li <DisplayString>({m_storage.m_data.array[2]}, {m_storage.m_data.array[3]})</DisplayString> 37*bf2c3715SXin Li </Synthetic> 38*bf2c3715SXin Li <Synthetic Name="[row 1]" Condition="!(Flags%2)"> 39*bf2c3715SXin Li <DisplayString>({m_storage.m_data.array[1]}, {m_storage.m_data.array[3]})</DisplayString> 40*bf2c3715SXin Li </Synthetic> 41*bf2c3715SXin Li </Expand> 42*bf2c3715SXin Li </Type> 43*bf2c3715SXin Li 44*bf2c3715SXin Li <!-- 3 x 3 Matrix --> 45*bf2c3715SXin Li <Type Name="Eigen::Matrix<*,3,3,*,*,*>"> 46*bf2c3715SXin Li <AlternativeType Name="Eigen::Array<*,3,3,*,*,*>"/> 47*bf2c3715SXin Li <DisplayString>[3, 3] (fixed matrix)</DisplayString> 48*bf2c3715SXin Li <Expand> 49*bf2c3715SXin Li <Synthetic Name="[row 0]" Condition="Flags%2"> 50*bf2c3715SXin Li <DisplayString>({m_storage.m_data.array[0]}, {m_storage.m_data.array[1]}, {m_storage.m_data.array[2]})</DisplayString> 51*bf2c3715SXin Li </Synthetic> 52*bf2c3715SXin Li <Synthetic Name="[row 0]" Condition="!(Flags%2)"> 53*bf2c3715SXin Li <DisplayString>({m_storage.m_data.array[0]}, {m_storage.m_data.array[3]}, {m_storage.m_data.array[6]})</DisplayString> 54*bf2c3715SXin Li </Synthetic> 55*bf2c3715SXin Li <Synthetic Name="[row 1]" Condition="Flags%2"> 56*bf2c3715SXin Li <DisplayString>({m_storage.m_data.array[3]}, {m_storage.m_data.array[4]}, {m_storage.m_data.array[5]})</DisplayString> 57*bf2c3715SXin Li </Synthetic> 58*bf2c3715SXin Li <Synthetic Name="[row 1]" Condition="!(Flags%2)"> 59*bf2c3715SXin Li <DisplayString>({m_storage.m_data.array[1]}, {m_storage.m_data.array[4]}, {m_storage.m_data.array[7]})</DisplayString> 60*bf2c3715SXin Li </Synthetic> 61*bf2c3715SXin Li <Synthetic Name="[row 2]" Condition="Flags%2"> 62*bf2c3715SXin Li <DisplayString>({m_storage.m_data.array[6]}, {m_storage.m_data.array[7]}, {m_storage.m_data.array[8]})</DisplayString> 63*bf2c3715SXin Li </Synthetic> 64*bf2c3715SXin Li <Synthetic Name="[row 2]" Condition="!(Flags%2)"> 65*bf2c3715SXin Li <DisplayString>({m_storage.m_data.array[2]}, {m_storage.m_data.array[5]}, {m_storage.m_data.array[8]})</DisplayString> 66*bf2c3715SXin Li </Synthetic> 67*bf2c3715SXin Li </Expand> 68*bf2c3715SXin Li </Type> 69*bf2c3715SXin Li 70*bf2c3715SXin Li <!-- 4 x 4 Matrix --> 71*bf2c3715SXin Li <Type Name="Eigen::Matrix<*,4,4,*,*,*>"> 72*bf2c3715SXin Li <AlternativeType Name="Eigen::Array<*,4,4,*,*,*>"/> 73*bf2c3715SXin Li <DisplayString>[4, 4] (fixed matrix)</DisplayString> 74*bf2c3715SXin Li <Expand> 75*bf2c3715SXin Li <Synthetic Name="[row 0]" Condition="Flags%2"> 76*bf2c3715SXin Li <DisplayString>({m_storage.m_data.array[0]}, {m_storage.m_data.array[1]}, {m_storage.m_data.array[2]}, {m_storage.m_data.array[3]})</DisplayString> 77*bf2c3715SXin Li </Synthetic> 78*bf2c3715SXin Li <Synthetic Name="[row 0]" Condition="!(Flags%2)"> 79*bf2c3715SXin Li <DisplayString>({m_storage.m_data.array[0]}, {m_storage.m_data.array[4]}, {m_storage.m_data.array[8]}, {m_storage.m_data.array[12]})</DisplayString> 80*bf2c3715SXin Li </Synthetic> 81*bf2c3715SXin Li <Synthetic Name="[row 1]" Condition="Flags%2"> 82*bf2c3715SXin Li <DisplayString>({m_storage.m_data.array[4]}, {m_storage.m_data.array[5]}, {m_storage.m_data.array[6]}, {m_storage.m_data.array[7]})</DisplayString> 83*bf2c3715SXin Li </Synthetic> 84*bf2c3715SXin Li <Synthetic Name="[row 1]" Condition="!(Flags%2)"> 85*bf2c3715SXin Li <DisplayString>({m_storage.m_data.array[1]}, {m_storage.m_data.array[5]}, {m_storage.m_data.array[9]}, {m_storage.m_data.array[13]})</DisplayString> 86*bf2c3715SXin Li </Synthetic> 87*bf2c3715SXin Li <Synthetic Name="[row 2]" Condition="Flags%2"> 88*bf2c3715SXin Li <DisplayString>({m_storage.m_data.array[8]}, {m_storage.m_data.array[9]}, {m_storage.m_data.array[10]}, {m_storage.m_data.array[11]})</DisplayString> 89*bf2c3715SXin Li </Synthetic> 90*bf2c3715SXin Li <Synthetic Name="[row 2]" Condition="!(Flags%2)"> 91*bf2c3715SXin Li <DisplayString>({m_storage.m_data.array[2]}, {m_storage.m_data.array[6]}, {m_storage.m_data.array[10]}, {m_storage.m_data.array[14]})</DisplayString> 92*bf2c3715SXin Li </Synthetic> 93*bf2c3715SXin Li <Synthetic Name="[row 3]" Condition="Flags%2"> 94*bf2c3715SXin Li <DisplayString>({m_storage.m_data.array[12]}, {m_storage.m_data.array[13]}, {m_storage.m_data.array[14]}, {m_storage.m_data.array[15]})</DisplayString> 95*bf2c3715SXin Li </Synthetic> 96*bf2c3715SXin Li <Synthetic Name="[row 3]" Condition="!(Flags%2)"> 97*bf2c3715SXin Li <DisplayString>({m_storage.m_data.array[3]}, {m_storage.m_data.array[7]}, {m_storage.m_data.array[11]}, {m_storage.m_data.array[15]})</DisplayString> 98*bf2c3715SXin Li </Synthetic> 99*bf2c3715SXin Li </Expand> 100*bf2c3715SXin Li </Type> 101*bf2c3715SXin Li 102*bf2c3715SXin Li <!-- Dynamic x Dynamic Matrix --> 103*bf2c3715SXin Li <Type Name="Eigen::Matrix<*,-1,-1,*,*,*>"> 104*bf2c3715SXin Li <AlternativeType Name="Eigen::Array<*,-1,-1,*,*,*>"/> 105*bf2c3715SXin Li <DisplayString Condition="m_storage.m_data == 0">empty</DisplayString> 106*bf2c3715SXin Li <DisplayString Condition="m_storage.m_data != 0">[{m_storage.m_rows}, {m_storage.m_cols}] (dynamic matrix)</DisplayString> 107*bf2c3715SXin Li <Expand> 108*bf2c3715SXin Li <ArrayItems Condition="Flags%2"> <!-- row major layout --> 109*bf2c3715SXin Li <Rank>2</Rank> 110*bf2c3715SXin Li <Size>$i==0 ? m_storage.m_rows : m_storage.m_cols</Size> 111*bf2c3715SXin Li <ValuePointer>m_storage.m_data</ValuePointer> 112*bf2c3715SXin Li </ArrayItems> 113*bf2c3715SXin Li <ArrayItems Condition="!(Flags%2)"> <!-- column major layout --> 114*bf2c3715SXin Li <Direction>Backward</Direction> 115*bf2c3715SXin Li <Rank>2</Rank> 116*bf2c3715SXin Li <Size>$i==0 ? m_storage.m_rows : m_storage.m_cols</Size> 117*bf2c3715SXin Li <ValuePointer>m_storage.m_data</ValuePointer> 118*bf2c3715SXin Li </ArrayItems> 119*bf2c3715SXin Li </Expand> 120*bf2c3715SXin Li </Type> 121*bf2c3715SXin Li 122*bf2c3715SXin Li <!-- Fixed x Dynamic Matrix --> 123*bf2c3715SXin Li <Type Name="Eigen::Matrix<*,*,-1,*,*,*>"> 124*bf2c3715SXin Li <AlternativeType Name="Eigen::Array<*,*,-1,*,*,*>"/> 125*bf2c3715SXin Li <DisplayString Condition="m_storage.m_data == 0">empty</DisplayString> 126*bf2c3715SXin Li <DisplayString Condition="m_storage.m_data != 0">[{$T2}, {m_storage.m_cols}] (dynamic column matrix)</DisplayString> 127*bf2c3715SXin Li <Expand> 128*bf2c3715SXin Li <ArrayItems Condition="Flags%2"> <!-- row major layout --> 129*bf2c3715SXin Li <Rank>2</Rank> 130*bf2c3715SXin Li <Size>$i==0 ? $T2 : m_storage.m_cols</Size> 131*bf2c3715SXin Li <ValuePointer>m_storage.m_data</ValuePointer> 132*bf2c3715SXin Li </ArrayItems> 133*bf2c3715SXin Li <ArrayItems Condition="!(Flags%2)"> <!-- column major layout --> 134*bf2c3715SXin Li <Direction>Backward</Direction> 135*bf2c3715SXin Li <Rank>2</Rank> 136*bf2c3715SXin Li <Size>$i==0 ? $T2 : m_storage.m_cols</Size> 137*bf2c3715SXin Li <ValuePointer>m_storage.m_data</ValuePointer> 138*bf2c3715SXin Li </ArrayItems> 139*bf2c3715SXin Li </Expand> 140*bf2c3715SXin Li </Type> 141*bf2c3715SXin Li 142*bf2c3715SXin Li <!-- Dynamic x Fixed Matrix --> 143*bf2c3715SXin Li <Type Name="Eigen::Matrix<*,-1,*,*,*,*>"> 144*bf2c3715SXin Li <AlternativeType Name="Eigen::Array<*,-1,*,*,*,*>"/> 145*bf2c3715SXin Li <DisplayString Condition="m_storage.m_data == 0">empty</DisplayString> 146*bf2c3715SXin Li <DisplayString Condition="m_storage.m_data != 0">[{m_storage.m_rows}, {$T2}] (dynamic row matrix)</DisplayString> 147*bf2c3715SXin Li <Expand> 148*bf2c3715SXin Li <ArrayItems Condition="Flags%2"> <!-- row major layout --> 149*bf2c3715SXin Li <Rank>2</Rank> 150*bf2c3715SXin Li <Size>$i==0 ? m_storage.m_rows : $T2</Size> 151*bf2c3715SXin Li <ValuePointer>m_storage.m_data</ValuePointer> 152*bf2c3715SXin Li </ArrayItems> 153*bf2c3715SXin Li <ArrayItems Condition="!(Flags%2)"> <!-- column major layout --> 154*bf2c3715SXin Li <Direction>Backward</Direction> 155*bf2c3715SXin Li <Rank>2</Rank> 156*bf2c3715SXin Li <Size>$i==0 ? m_storage.m_rows : $T2</Size> 157*bf2c3715SXin Li <ValuePointer>m_storage.m_data</ValuePointer> 158*bf2c3715SXin Li </ArrayItems> 159*bf2c3715SXin Li </Expand> 160*bf2c3715SXin Li </Type> 161*bf2c3715SXin Li 162*bf2c3715SXin Li <!-- Dynamic Column Vector --> 163*bf2c3715SXin Li <Type Name="Eigen::Matrix<*,1,-1,*,*,*>"> 164*bf2c3715SXin Li <AlternativeType Name="Eigen::Array<*,1,-1,*,*,*>"/> 165*bf2c3715SXin Li <DisplayString Condition="m_storage.m_data == 0">empty</DisplayString> 166*bf2c3715SXin Li <DisplayString Condition="m_storage.m_data != 0">[{m_storage.m_cols}] (dynamic column vector)</DisplayString> 167*bf2c3715SXin Li <Expand> 168*bf2c3715SXin Li <Item Name="[size]">m_storage.m_cols</Item> 169*bf2c3715SXin Li <ArrayItems> 170*bf2c3715SXin Li <Size>m_storage.m_cols</Size> 171*bf2c3715SXin Li <ValuePointer>m_storage.m_data</ValuePointer> 172*bf2c3715SXin Li </ArrayItems> 173*bf2c3715SXin Li </Expand> 174*bf2c3715SXin Li </Type> 175*bf2c3715SXin Li 176*bf2c3715SXin Li <!-- Dynamic Row Vector --> 177*bf2c3715SXin Li <Type Name="Eigen::Matrix<*,-1,1,*,*,*>"> 178*bf2c3715SXin Li <AlternativeType Name="Eigen::Array<*,-1,1,*,*,*>"/> 179*bf2c3715SXin Li <DisplayString Condition="m_storage.m_data == 0">empty</DisplayString> 180*bf2c3715SXin Li <DisplayString Condition="m_storage.m_data != 0">[{m_storage.m_rows}] (dynamic row vector)</DisplayString> 181*bf2c3715SXin Li <Expand> 182*bf2c3715SXin Li <Item Name="[size]">m_storage.m_rows</Item> 183*bf2c3715SXin Li <ArrayItems> 184*bf2c3715SXin Li <Size>m_storage.m_rows</Size> 185*bf2c3715SXin Li <ValuePointer>m_storage.m_data</ValuePointer> 186*bf2c3715SXin Li </ArrayItems> 187*bf2c3715SXin Li </Expand> 188*bf2c3715SXin Li </Type> 189*bf2c3715SXin Li 190*bf2c3715SXin Li <!-- Fixed Vector --> 191*bf2c3715SXin Li <Type Name="Eigen::Matrix<*,1,1,*,*,*>"> 192*bf2c3715SXin Li <AlternativeType Name="Eigen::Array<*,1,1,*,*,*>"/> 193*bf2c3715SXin Li <DisplayString>[1] ({m_storage.m_data.array[0]})</DisplayString> 194*bf2c3715SXin Li <Expand> 195*bf2c3715SXin Li <Item Name="[x]">m_storage.m_data.array[0]</Item> 196*bf2c3715SXin Li </Expand> 197*bf2c3715SXin Li </Type> 198*bf2c3715SXin Li 199*bf2c3715SXin Li <Type Name="Eigen::Matrix<*,2,1,*,*,*>"> 200*bf2c3715SXin Li <AlternativeType Name="Eigen::Matrix<*,1,2,*,*,*>"/> 201*bf2c3715SXin Li <AlternativeType Name="Eigen::Array<*,2,1,*,*,*>"/> 202*bf2c3715SXin Li <AlternativeType Name="Eigen::Array<*,1,2,*,*,*>"/> 203*bf2c3715SXin Li <DisplayString>[2] ({m_storage.m_data.array[0]}, {m_storage.m_data.array[1]})</DisplayString> 204*bf2c3715SXin Li <Expand> 205*bf2c3715SXin Li <Item Name="[x]">m_storage.m_data.array[0]</Item> 206*bf2c3715SXin Li <Item Name="[y]">m_storage.m_data.array[1]</Item> 207*bf2c3715SXin Li </Expand> 208*bf2c3715SXin Li </Type> 209*bf2c3715SXin Li 210*bf2c3715SXin Li <Type Name="Eigen::Matrix<*,3,1,*,*,*>"> 211*bf2c3715SXin Li <AlternativeType Name="Eigen::Matrix<*,1,3,*,*,*>"/> 212*bf2c3715SXin Li <AlternativeType Name="Eigen::Array<*,3,1,*,*,*>"/> 213*bf2c3715SXin Li <AlternativeType Name="Eigen::Array<*,1,3,*,*,*>"/> 214*bf2c3715SXin Li <DisplayString>[3] ({m_storage.m_data.array[0]}, {m_storage.m_data.array[1]}, {m_storage.m_data.array[2]})</DisplayString> 215*bf2c3715SXin Li <Expand> 216*bf2c3715SXin Li <Item Name="[x]">m_storage.m_data.array[0]</Item> 217*bf2c3715SXin Li <Item Name="[y]">m_storage.m_data.array[1]</Item> 218*bf2c3715SXin Li <Item Name="[z]">m_storage.m_data.array[2]</Item> 219*bf2c3715SXin Li </Expand> 220*bf2c3715SXin Li </Type> 221*bf2c3715SXin Li 222*bf2c3715SXin Li <Type Name="Eigen::Matrix<*,4,1,*,*,*>"> 223*bf2c3715SXin Li <AlternativeType Name="Eigen::Matrix<*,1,4,*,*,*>"/> 224*bf2c3715SXin Li <AlternativeType Name="Eigen::Array<*,4,1,*,*,*>"/> 225*bf2c3715SXin Li <AlternativeType Name="Eigen::Array<*,1,4,*,*,*>"/> 226*bf2c3715SXin Li <DisplayString>[4] ({m_storage.m_data.array[0]}, {m_storage.m_data.array[1]}, {m_storage.m_data.array[2]}, {m_storage.m_data.array[3]})</DisplayString> 227*bf2c3715SXin Li <Expand> 228*bf2c3715SXin Li <Item Name="[x]">m_storage.m_data.array[0]</Item> 229*bf2c3715SXin Li <Item Name="[y]">m_storage.m_data.array[1]</Item> 230*bf2c3715SXin Li <Item Name="[z]">m_storage.m_data.array[2]</Item> 231*bf2c3715SXin Li <Item Name="[w]">m_storage.m_data.array[3]</Item> 232*bf2c3715SXin Li </Expand> 233*bf2c3715SXin Li </Type> 234*bf2c3715SXin Li 235*bf2c3715SXin Li</AutoVisualizer> 236