The multiple free indices complaint is for the coefficient evaluation which is prefactorised by TSFC. For the argument, I reverted the kernel interface on this branch, and fixed the attachment of linear loops pragmas. Yet COFFEE does nothing.
@FabioLuporini: can you have a look at this example, and tell whether:
there is a problem with the generated AST and something needs to be generated differently; or
COFFEE needs some minor fix in analysis etc. to recognise this; or
Just in case it is unclear, here's what the sum factorised version is supposed to look like. If the answer happens to be 3, don't bother wasting too much doing sum factorisation in COFFEE, there is a fairly easy way to do it in TSFC, although that requires argument factorisation. (Fortunately, unlike UFLACS, we will be able to turn that off at least. But it would be nice to have an automatic/optimal logic that gives the best combination of sum factorisation and COFFEE.)
FInAT
master
, firedrakeproject/tsfc@2fac97b6bd630613dd5f3e5a91ee6b83ab1fe14a (finat-coffee-patch
branch), running this snippet:Standard error:
Standard output.
The multiple free indices complaint is for the coefficient evaluation which is prefactorised by TSFC. For the argument, I reverted the kernel interface on this branch, and fixed the attachment of linear loops pragmas. Yet COFFEE does nothing.
@FabioLuporini: can you have a look at this example, and tell whether:
Just in case it is unclear, here's what the sum factorised version is supposed to look like. If the answer happens to be 3, don't bother wasting too much doing sum factorisation in COFFEE, there is a fairly easy way to do it in TSFC, although that requires argument factorisation. (Fortunately, unlike UFLACS, we will be able to turn that off at least. But it would be nice to have an automatic/optimal logic that gives the best combination of sum factorisation and COFFEE.)