|  | ; *************************************************************** | 
|  | ; * Eigen Visualizer | 
|  | ; * | 
|  | ; * Author: Hauke Heibel <hauke.heibel@gmail.com> | 
|  | ; * | 
|  | ; * Support the enhanced debugging of the following Eigen | 
|  | ; * types (*: any, +:fixed dimension) : | 
|  | ; * | 
|  | ; * - Eigen::Matrix<*,4,1,*,*,*> and Eigen::Matrix<*,1,4,*,*,*> | 
|  | ; * - Eigen::Matrix<*,3,1,*,*,*> and Eigen::Matrix<*,1,3,*,*,*> | 
|  | ; * - Eigen::Matrix<*,2,1,*,*,*> and Eigen::Matrix<*,1,2,*,*,*> | 
|  | ; * - Eigen::Matrix<*,-1,-1,*,*,*> | 
|  | ; * - Eigen::Matrix<*,+,-1,*,*,*> | 
|  | ; * - Eigen::Matrix<*,-1,+,*,*,*> | 
|  | ; * - Eigen::Matrix<*,+,+,*,*,*> | 
|  | ; * | 
|  | ; * Matrices are displayed properly independantly of the memory | 
|  | ; * alignment (RowMajor vs. ColMajor). | 
|  | ; * | 
|  | ; * This file is distributed WITHOUT ANY WARRANTY. Please ensure | 
|  | ; * that your original autoexp.dat file is copied to a safe | 
|  | ; * place before proceeding with its modification. | 
|  | ; *************************************************************** | 
|  |  | 
|  | [Visualizer] | 
|  |  | 
|  | ; Fixed size 4-vectors | 
|  | Eigen::Matrix<*,4,1,*,*,*>|Eigen::Matrix<*,1,4,*,*,*>{ | 
|  | children | 
|  | ( | 
|  | #( | 
|  | [internals]: [$c,!], | 
|  | x : ($c.m_storage.m_data.array)[0], | 
|  | y : ($c.m_storage.m_data.array)[1], | 
|  | z : ($c.m_storage.m_data.array)[2], | 
|  | w : ($c.m_storage.m_data.array)[3] | 
|  | ) | 
|  | ) | 
|  |  | 
|  | preview | 
|  | ( | 
|  | #( | 
|  | "[", | 
|  | 4, | 
|  | "](", | 
|  | #array(expr: $e.m_storage.m_data.array[$i], size: 4), | 
|  | ")" | 
|  | ) | 
|  | ) | 
|  | } | 
|  |  | 
|  | ; Fixed size 3-vectors | 
|  | Eigen::Matrix<*,3,1,*,*,*>|Eigen::Matrix<*,1,3,*,*,*>{ | 
|  | children | 
|  | ( | 
|  | #( | 
|  | [internals]: [$c,!], | 
|  | x : ($c.m_storage.m_data.array)[0], | 
|  | y : ($c.m_storage.m_data.array)[1], | 
|  | z : ($c.m_storage.m_data.array)[2] | 
|  | ) | 
|  | ) | 
|  |  | 
|  | preview | 
|  | ( | 
|  | #( | 
|  | "[", | 
|  | 3, | 
|  | "](", | 
|  | #array(expr: $e.m_storage.m_data.array[$i], size: 3), | 
|  | ")" | 
|  | ) | 
|  | ) | 
|  | } | 
|  |  | 
|  | ; Fixed size 2-vectors | 
|  | Eigen::Matrix<*,2,1,*,*,*>|Eigen::Matrix<*,1,2,*,*,*>{ | 
|  | children | 
|  | ( | 
|  | #( | 
|  | [internals]: [$c,!], | 
|  | x : ($c.m_storage.m_data.array)[0], | 
|  | y : ($c.m_storage.m_data.array)[1] | 
|  | ) | 
|  | ) | 
|  |  | 
|  | preview | 
|  | ( | 
|  | #( | 
|  | "[", | 
|  | 2, | 
|  | "](", | 
|  | #array(expr: $e.m_storage.m_data.array[$i], size: 2), | 
|  | ")" | 
|  | ) | 
|  | ) | 
|  | } | 
|  |  | 
|  | ; Fixed size 1-vectors | 
|  | Eigen::Matrix<*,1,1,*,*,*>|Eigen::Matrix<*,1,1,*,*,*>{ | 
|  | children | 
|  | ( | 
|  | #( | 
|  | [internals]: [$c,!], | 
|  | x : ($c.m_storage.m_data.array)[0] | 
|  | ) | 
|  | ) | 
|  |  | 
|  | preview | 
|  | ( | 
|  | #( | 
|  | "[", | 
|  | 1, | 
|  | "](", | 
|  | #array(expr: $e.m_storage.m_data.array[$i], size: 1), | 
|  | ")" | 
|  | ) | 
|  | ) | 
|  | } | 
|  |  | 
|  | ; Dynamic matrices (ColMajor and RowMajor support) | 
|  | Eigen::Matrix<*,-1,-1,*,*,*>{ | 
|  | children | 
|  | ( | 
|  | #( | 
|  | [internals]: [$c,!], | 
|  | rows: $c.m_storage.m_rows, | 
|  | cols: $c.m_storage.m_cols, | 
|  | ; Check for RowMajorBit | 
|  | #if ($c.Flags & 0x1) ( | 
|  | #array( | 
|  | rank: 2, | 
|  | base: 0, | 
|  | expr: ($c.m_storage.m_data)[($i % $c.m_storage.m_rows)*$c.m_storage.m_cols + (($i- $i % $c.m_storage.m_rows)/$c.m_storage.m_rows)], | 
|  | size: ($r==1)*$c.m_storage.m_rows+($r==0)*$c.m_storage.m_cols | 
|  | ) | 
|  | ) #else ( | 
|  | #array( | 
|  | rank: 2, | 
|  | base: 0, | 
|  | expr: ($c.m_storage.m_data)[$i], | 
|  | size: ($r==1)*$c.m_storage.m_rows+($r==0)*$c.m_storage.m_cols | 
|  | ) | 
|  | ) | 
|  | ) | 
|  | ) | 
|  |  | 
|  | preview | 
|  | ( | 
|  | #( | 
|  | "[", | 
|  | $c.m_storage.m_rows, | 
|  | ",", | 
|  | $c.m_storage.m_cols, | 
|  | "](", | 
|  | #array( | 
|  | expr :    [($c.m_storage.m_data)[$i],g], | 
|  | size :    $c.m_storage.m_rows*$c.m_storage.m_cols | 
|  | ), | 
|  | ")" | 
|  | ) | 
|  | ) | 
|  | } | 
|  |  | 
|  | ; Fixed rows, dynamic columns matrix (ColMajor and RowMajor support) | 
|  | Eigen::Matrix<*,*,-1,*,*,*>{ | 
|  | children | 
|  | ( | 
|  | #( | 
|  | [internals]: [$c,!], | 
|  | rows: $c.RowsAtCompileTime, | 
|  | cols: $c.m_storage.m_cols, | 
|  | ; Check for RowMajorBit | 
|  | #if ($c.Flags & 0x1) ( | 
|  | #array( | 
|  | rank: 2, | 
|  | base: 0, | 
|  | expr: ($c.m_storage.m_data)[($i % $c.RowsAtCompileTime)*$c.m_storage.m_cols + (($i- $i % $c.RowsAtCompileTime)/$c.RowsAtCompileTime)], | 
|  | size: ($r==1)*$c.RowsAtCompileTime+($r==0)*$c.m_storage.m_cols | 
|  | ) | 
|  | ) #else ( | 
|  | #array( | 
|  | rank: 2, | 
|  | base: 0, | 
|  | expr: ($c.m_storage.m_data)[$i], | 
|  | size: ($r==1)*$c.RowsAtCompileTime+($r==0)*$c.m_storage.m_cols | 
|  | ) | 
|  | ) | 
|  | ) | 
|  | ) | 
|  |  | 
|  | preview | 
|  | ( | 
|  | #( | 
|  | "[", | 
|  | $c.RowsAtCompileTime, | 
|  | ",", | 
|  | $c.m_storage.m_cols, | 
|  | "](", | 
|  | #array( | 
|  | expr :    [($c.m_storage.m_data)[$i],g], | 
|  | size :    $c.RowsAtCompileTime*$c.m_storage.m_cols | 
|  | ), | 
|  | ")" | 
|  | ) | 
|  | ) | 
|  | } | 
|  |  | 
|  | ; Dynamic rows, fixed columns matrix (ColMajor and RowMajor support) | 
|  | Eigen::Matrix<*,-1,*,*,*,*>{ | 
|  | children | 
|  | ( | 
|  | #( | 
|  | [internals]: [$c,!], | 
|  | rows: $c.m_storage.m_rows, | 
|  | cols: $c.ColsAtCompileTime, | 
|  | ; Check for RowMajorBit | 
|  | #if ($c.Flags & 0x1) ( | 
|  | #array( | 
|  | rank: 2, | 
|  | base: 0, | 
|  | expr: ($c.m_storage.m_data)[($i % $c.m_storage.m_rows)*$c.ColsAtCompileTime + (($i- $i % $c.m_storage.m_rows)/$c.m_storage.m_rows)], | 
|  | size: ($r==1)*$c.m_storage.m_rows+($r==0)*$c.ColsAtCompileTime | 
|  | ) | 
|  | ) #else ( | 
|  | #array( | 
|  | rank: 2, | 
|  | base: 0, | 
|  | expr: ($c.m_storage.m_data)[$i], | 
|  | size: ($r==1)*$c.m_storage.m_rows+($r==0)*$c.ColsAtCompileTime | 
|  | ) | 
|  | ) | 
|  | ) | 
|  | ) | 
|  |  | 
|  | preview | 
|  | ( | 
|  | #( | 
|  | "[", | 
|  | $c.m_storage.m_rows, | 
|  | ",", | 
|  | $c.ColsAtCompileTime, | 
|  | "](", | 
|  | #array( | 
|  | expr :    [($c.m_storage.m_data)[$i],g], | 
|  | size :    $c.m_storage.m_rows*$c.ColsAtCompileTime | 
|  | ), | 
|  | ")" | 
|  | ) | 
|  | ) | 
|  | } | 
|  |  | 
|  | ; Fixed size matrix (ColMajor and RowMajor support) | 
|  | Eigen::Matrix<*,*,*,*,*,*>{ | 
|  | children | 
|  | ( | 
|  | #( | 
|  | [internals]: [$c,!], | 
|  | rows: $c.RowsAtCompileTime, | 
|  | cols: $c.ColsAtCompileTime, | 
|  | ; Check for RowMajorBit | 
|  | #if ($c.Flags & 0x1) ( | 
|  | #array( | 
|  | rank: 2, | 
|  | base: 0, | 
|  | expr: ($c.m_storage.m_data.array)[($i % $c.RowsAtCompileTime)*$c.ColsAtCompileTime + (($i- $i % $c.RowsAtCompileTime)/$c.RowsAtCompileTime)], | 
|  | size: ($r==1)*$c.RowsAtCompileTime+($r==0)*$c.ColsAtCompileTime | 
|  | ) | 
|  | ) #else ( | 
|  | #array( | 
|  | rank: 2, | 
|  | base: 0, | 
|  | expr: ($c.m_storage.m_data.array)[$i], | 
|  | size: ($r==1)*$c.RowsAtCompileTime+($r==0)*$c.ColsAtCompileTime | 
|  | ) | 
|  | ) | 
|  | ) | 
|  | ) | 
|  |  | 
|  | preview | 
|  | ( | 
|  | #( | 
|  | "[", | 
|  | $c.RowsAtCompileTime, | 
|  | ",", | 
|  | $c.ColsAtCompileTime, | 
|  | "](", | 
|  | #array( | 
|  | expr :    [($c.m_storage.m_data.array)[$i],g], | 
|  | size :    $c.RowsAtCompileTime*$c.ColsAtCompileTime | 
|  | ), | 
|  | ")" | 
|  | ) | 
|  | ) | 
|  | } |