|
not a TensorRef == no indexes used | ||
assertIndexesUsed(c) |
${fixed} = {fixed}$
${summed} = {summed}$ ${extra} = {extra}$ GOOD |
time: 1.252000ms stack: size: 7
|
|
| ||
|
single TensorRef, fixed | ||
assertIndexesUsed(c'_i', {fixed='_i'})
|
${{ fixed} _i} = {{ fixed} _i}$
${summed} = {summed}$ ${extra} = {extra}$ GOOD |
time: 2.209000ms stack: size: 7
|
assertIndexesUsed(c'_ij', {fixed='_ij'})
|
${{{ fixed} _i} _j} = {{{ fixed} _i} _j}$
${summed} = {summed}$ ${extra} = {extra}$ GOOD |
time: 3.633000ms stack: size: 7
|
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
|
|
| ||
|
single TensorRef, summed | ||
assertIndexesUsed(c'^i_i', {summed='^i'})
|
${fixed} = {fixed}$
${{ summed} ^i} = {{ summed} ^i}$ ${extra} = {extra}$ GOOD |
time: 1.043000ms stack: size: 7
|
|
| ||
|
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
|
|
| ||
|
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
|
|
| ||
|
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
|
|
| ||
|
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
|
assertIndexesUsed(a'_ij' + b'_ij', {fixed='_ij'})
|
${{{ fixed} _i} _j} = {{{ fixed} _i} _j}$
${summed} = {summed}$ ${extra} = {extra}$ GOOD |
time: 0.968000ms stack: size: 7
|
|
| ||
|
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
|
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
|
|
| ||
|
add, extra | ||
assertIndexesUsed( a'_i' + b, {extra='_i'})
|
${fixed} = {fixed}$
${summed} = {summed}$ ${{ extra} _i} = {{ extra} _i}$ GOOD |
time: 0.702000ms stack: size: 7
|
assertIndexesUsed( a + b'_j', {extra='_j'})
|
${fixed} = {fixed}$
${summed} = {summed}$ ${{ extra} _j} = {{ extra} _j}$ GOOD |
time: 0.657000ms stack: size: 7
|
assertIndexesUsed( a'_i' + b'_j', {extra='_ij'})
|
${fixed} = {fixed}$
${summed} = {summed}$ ${{{ extra} _i} _j} = {{{ extra} _i} _j}$ GOOD |
time: 1.528000ms stack: size: 7
|
|
| ||
|
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
|
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
|
|
| ||
|
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
|
|
| ||
|
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
|
|
| ||
|
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
|
|
| ||
|
| ||
|
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
|
|
| ||
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
|
|
| ||
assertIndexesUsed(a'^i' * b'_i', {summed='^i'})
|
${fixed} = {fixed}$
${{ summed} ^i} = {{ summed} ^i}$ ${extra} = {extra}$ GOOD |
time: 0.568000ms stack: size: 7
|
|
| ||
assertIndexesUsed(a'^i' * b'_i' + c, {summed='^i'})
|
${fixed} = {fixed}$
${{ summed} ^i} = {{ summed} ^i}$ ${extra} = {extra}$ GOOD |
time: 0.928000ms stack: size: 7
|
|
| ||
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
|