not a TensorRef == no indexes used


assertIndexesUsed(c)
${fixed} = {fixed}$
${summed} = {summed}$
${extra} = {extra}$
GOOD
time: 1.252000ms
stack: size: 7
  • Init
  • Prune
  • Expand
  • Prune
  • Factor
  • Prune
  • Tidy


single TensorRef, fixed


assertIndexesUsed(c'_i', {fixed='_i'})
${{ fixed} _i} = {{ fixed} _i}$
${summed} = {summed}$
${extra} = {extra}$
GOOD
time: 2.209000ms
stack: size: 7
  • Init
  • Prune
  • Expand
  • Prune
  • Factor
  • Prune
  • Tidy

assertIndexesUsed(c'_ij', {fixed='_ij'})
${{{ fixed} _i} _j} = {{{ fixed} _i} _j}$
${summed} = {summed}$
${extra} = {extra}$
GOOD
time: 3.633000ms
stack: size: 7
  • Init
  • Prune
  • Expand
  • Prune
  • Factor
  • Prune
  • Tidy

assertIndexesUsed(c'^i_jk', {fixed='^i_jk'})
${{{{ fixed} ^i} _j} _k} = {{{{ fixed} ^i} _j} _k}$
${summed} = {summed}$
${extra} = {extra}$
GOOD
time: 2.305000ms
stack: size: 7
  • Init
  • Prune
  • Expand
  • Prune
  • Factor
  • Prune
  • Tidy


single TensorRef, summed


assertIndexesUsed(c'^i_i', {summed='^i'})
${fixed} = {fixed}$
${{ summed} ^i} = {{ summed} ^i}$
${extra} = {extra}$
GOOD
time: 1.043000ms
stack: size: 7
  • Init
  • Prune
  • Expand
  • Prune
  • Factor
  • Prune
  • Tidy


single TensorRef, mixed


assertIndexesUsed(c'^i_ij', {fixed='_j', summed='^i'})
${{ fixed} _j} = {{ fixed} _j}$
${{ summed} ^i} = {{ summed} ^i}$
${extra} = {extra}$
GOOD
time: 1.431000ms
stack: size: 7
  • Init
  • Prune
  • Expand
  • Prune
  • Factor
  • Prune
  • Tidy


mul, fixed * summed


assertIndexesUsed(a'_i' * b'^j_j', {fixed='_i', summed='^j'})
${{ fixed} _i} = {{ fixed} _i}$
${{ summed} ^j} = {{ summed} ^j}$
${extra} = {extra}$
GOOD
time: 1.173000ms
stack: size: 7
  • Init
  • Prune
  • Expand
  • Prune
  • Factor
  • Prune
  • Tidy


mul, fixed * fixed => summed


assertIndexesUsed(g'^im' * c'_mjk', {fixed='^i_jk', summed='^m'})
${{{{ fixed} ^i} _j} _k} = {{{{ fixed} ^i} _j} _k}$
${{ summed} ^m} = {{ summed} ^m}$
${extra} = {extra}$
GOOD
time: 2.157000ms
stack: size: 7
  • Init
  • Prune
  • Expand
  • Prune
  • Factor
  • Prune
  • Tidy


add, nothing


assertIndexesUsed(a + b)
${fixed} = {fixed}$
${summed} = {summed}$
${extra} = {extra}$
GOOD
time: 0.335000ms
stack: size: 0

    
    
    add, fixed
    
    

    assertIndexesUsed(a'_i' + b'_i', {fixed='_i'})
    ${{ fixed} _i} = {{ fixed} _i}$
    ${summed} = {summed}$
    ${extra} = {extra}$
    GOOD
    time: 0.862000ms
    stack: size: 7
    • Init
    • Prune
    • Expand
    • Prune
    • Factor
    • Prune
    • Tidy

    assertIndexesUsed(a'_ij' + b'_ij', {fixed='_ij'})
    ${{{ fixed} _i} _j} = {{{ fixed} _i} _j}$
    ${summed} = {summed}$
    ${extra} = {extra}$
    GOOD
    time: 0.968000ms
    stack: size: 7
    • Init
    • Prune
    • Expand
    • Prune
    • Factor
    • Prune
    • Tidy

    
    
    add, summed
    
    

    assertIndexesUsed(a'^i_i' + b'^i_i', {summed='^i'})
    ${fixed} = {fixed}$
    ${{ summed} ^i} = {{ summed} ^i}$
    ${extra} = {extra}$
    GOOD
    time: 0.661000ms
    stack: size: 7
    • Init
    • Prune
    • Expand
    • Prune
    • Factor
    • Prune
    • Tidy

    assertIndexesUsed(a'^i_i' + b'^j_j', {summed='^ij'})
    ${fixed} = {fixed}$
    ${{{ summed} ^i} ^j} = {{{ summed} ^i} ^j}$
    ${extra} = {extra}$
    GOOD
    time: 1.525000ms
    stack: size: 7
    • Init
    • Prune
    • Expand
    • Prune
    • Factor
    • Prune
    • Tidy

    
    
    add, extra
    
    

    assertIndexesUsed( a'_i' + b, {extra='_i'})
    ${fixed} = {fixed}$
    ${summed} = {summed}$
    ${{ extra} _i} = {{ extra} _i}$
    GOOD
    time: 0.702000ms
    stack: size: 7
    • Init
    • Prune
    • Expand
    • Prune
    • Factor
    • Prune
    • Tidy

    assertIndexesUsed( a + b'_j', {extra='_j'})
    ${fixed} = {fixed}$
    ${summed} = {summed}$
    ${{ extra} _j} = {{ extra} _j}$
    GOOD
    time: 0.657000ms
    stack: size: 7
    • Init
    • Prune
    • Expand
    • Prune
    • Factor
    • Prune
    • Tidy

    assertIndexesUsed( a'_i' + b'_j', {extra='_ij'})
    ${fixed} = {fixed}$
    ${summed} = {summed}$
    ${{{ extra} _i} _j} = {{{ extra} _i} _j}$
    GOOD
    time: 1.528000ms
    stack: size: 7
    • Init
    • Prune
    • Expand
    • Prune
    • Factor
    • Prune
    • Tidy

    
    
    add, fixed + summed
    
    

    assertIndexesUsed( a'^i_ij' + b'^i_ij', {fixed='_j', summed='^i'})
    ${{ fixed} _j} = {{ fixed} _j}$
    ${{ summed} ^i} = {{ summed} ^i}$
    ${extra} = {extra}$
    GOOD
    time: 2.383000ms
    stack: size: 7
    • Init
    • Prune
    • Expand
    • Prune
    • Factor
    • Prune
    • Tidy

    assertIndexesUsed( a'^i_ij' + b'^k_kj', {fixed='_j', summed='^ik'})
    ${{ fixed} _j} = {{ fixed} _j}$
    ${{{ summed} ^i} ^k} = {{{ summed} ^i} ^k}$
    ${extra} = {extra}$
    GOOD
    time: 1.273000ms
    stack: size: 7
    • Init
    • Prune
    • Expand
    • Prune
    • Factor
    • Prune
    • Tidy

    
    
    add, fixed + extra
    
    

    assertIndexesUsed( a'_ij' + b'_kj', {fixed='_j', extra='_ik'})
    ${{ fixed} _j} = {{ fixed} _j}$
    ${summed} = {summed}$
    ${{{ extra} _i} _k} = {{{ extra} _i} _k}$
    GOOD
    time: 1.323000ms
    stack: size: 7
    • Init
    • Prune
    • Expand
    • Prune
    • Factor
    • Prune
    • Tidy

    
    
    add, summed + extra
    
    

    assertIndexesUsed( a'^i_ij' + b'^i_ik', {summed='^i', extra='_jk'})
    ${fixed} = {fixed}$
    ${{ summed} ^i} = {{ summed} ^i}$
    ${{{ extra} _j} _k} = {{{ extra} _j} _k}$
    GOOD
    time: 0.952000ms
    stack: size: 7
    • Init
    • Prune
    • Expand
    • Prune
    • Factor
    • Prune
    • Tidy

    
    
    add, fixed + summed + extra
    
    

    assertIndexesUsed( a'_ij^jk' + b'_ij^jl', {fixed='_i', summed='_j', extra='^kl'})
    ${{ fixed} _i} = {{ fixed} _i}$
    ${{ summed} _j} = {{ summed} _j}$
    ${{{ extra} ^k} ^l} = {{{ extra} ^k} ^l}$
    GOOD
    time: 1.273000ms
    stack: size: 7
    • Init
    • Prune
    • Expand
    • Prune
    • Factor
    • Prune
    • Tidy

    
    

    
    
    TODO fixed and summed of add
    
    
    TODO fixed and summed of add and mul
    
    

    
    

    
    
    notice that the summed index is counted by the number of the symbol's occurrence, regardless of the lower/upper
    
    
    this means the lower/upper of the summed will be arbitrary
    
    

    assertIndexesUsed( a'^i' * b'_i' * c'_j', {fixed='_j', summed='^i'})
    ${{ fixed} _j} = {{ fixed} _j}$
    ${{ summed} ^i} = {{ summed} ^i}$
    ${extra} = {extra}$
    GOOD
    time: 0.849000ms
    stack: size: 7
    • Init
    • Prune
    • Expand
    • Prune
    • Factor
    • Prune
    • Tidy

    
    

    assertIndexesUsed(a'^i' * b'_i' * c'_j' + d'^i' * e'_i' * f'_j', {fixed='_j', summed='^i'})
    ${{ fixed} _j} = {{ fixed} _j}$
    ${{ summed} ^i} = {{ summed} ^i}$
    ${extra} = {extra}$
    GOOD
    time: 1.057000ms
    stack: size: 7
    • Init
    • Prune
    • Expand
    • Prune
    • Factor
    • Prune
    • Tidy

    
    

    assertIndexesUsed(a'^i' * b'_i', {summed='^i'})
    ${fixed} = {fixed}$
    ${{ summed} ^i} = {{ summed} ^i}$
    ${extra} = {extra}$
    GOOD
    time: 0.568000ms
    stack: size: 7
    • Init
    • Prune
    • Expand
    • Prune
    • Factor
    • Prune
    • Tidy

    
    

    assertIndexesUsed(a'^i' * b'_i' + c, {summed='^i'})
    ${fixed} = {fixed}$
    ${{ summed} ^i} = {{ summed} ^i}$
    ${extra} = {extra}$
    GOOD
    time: 0.928000ms
    stack: size: 7
    • Init
    • Prune
    • Expand
    • Prune
    • Factor
    • Prune
    • Tidy

    
    

    assertIndexesUsed(a'^i' * b'_i' + c'^i' * d'_i', {summed='^i'})
    ${fixed} = {fixed}$
    ${{ summed} ^i} = {{ summed} ^i}$
    ${extra} = {extra}$
    GOOD
    time: 0.799000ms
    stack: size: 7
    • Init
    • Prune
    • Expand
    • Prune
    • Factor
    • Prune
    • Tidy