; *************************************************************** ; * Eigen Visualizer ; * ; * Author: Hauke Heibel ; * ; * Support the enhanced debugging of the following Eigen ; * types (*: any, +:fixed dimension) : ; * ; * - StormEigen::Matrix<*,4,1,*,*,*> and StormEigen::Matrix<*,1,4,*,*,*> ; * - StormEigen::Matrix<*,3,1,*,*,*> and StormEigen::Matrix<*,1,3,*,*,*> ; * - StormEigen::Matrix<*,2,1,*,*,*> and StormEigen::Matrix<*,1,2,*,*,*> ; * - StormEigen::Matrix<*,-1,-1,*,*,*> ; * - StormEigen::Matrix<*,+,-1,*,*,*> ; * - StormEigen::Matrix<*,-1,+,*,*,*> ; * - StormEigen::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 StormEigen::Matrix<*,4,1,*,*,*>|StormEigen::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 StormEigen::Matrix<*,3,1,*,*,*>|StormEigen::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 StormEigen::Matrix<*,2,1,*,*,*>|StormEigen::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 StormEigen::Matrix<*,1,1,*,*,*>|StormEigen::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) StormEigen::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) StormEigen::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) StormEigen::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) StormEigen::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 ), ")" ) ) }