The current version of Kranc cannot digest the current version of McLachlan. The problem is with enforcing the trace A constraint, where the variable At_ij is both read and written -- Kranc does not emit the statement that reads the local variable from the grid function.
The enclosed patch corrects this. It is somewhat lengthy and not entirely elegant:
Output assignments for all temporaries, not only for those that are only used in the RHS. If a temporary is used in a LHS, it may still need to be loaded from a grid function.
Add a somewhat complex logic to ensure that each temporary and shortcut is declared only once.
When declaring temporaries, do not declare them as constant, because they may change.
-erik
On Jun 21, 2010, at 20:53 , Frank Loeffler wrote:
On Mon, Jun 21, 2010 at 06:26:34PM -0400, Erik Schnetter wrote:
The current version of Kranc cannot digest the current version of McLachlan.
Does this mean the released version of both?
Both; there have been no changes since the release.
-erik
On 21 Jun 2010, at 18:26, Erik Schnetter wrote:
The current version of Kranc cannot digest the current version of McLachlan. The problem is with enforcing the trace A constraint, where the variable At_ij is both read and written -- Kranc does not emit the statement that reads the local variable from the grid function.
The enclosed patch corrects this. It is somewhat lengthy and not entirely elegant:
I would rather not commit such a patch, especially as I thought that the code to do this had already been implemented. It's possible that the code was reverted somehow in a later commit. Can you check back to
http://github.com/ianhinder/Kranc/commit/f88dacd7e55e94c64a6cd103c81f9bccdb9...
and see if that version of Kranc works for you?
Output assignments for all temporaries, not only for those that are only used in the RHS. If a temporary is used in a LHS, it may still need to be loaded from a grid function.
This will have a performance hit (the compiler is often not smart enough to eliminate these things).
Add a somewhat complex logic to ensure that each temporary and shortcut is declared only once.
When declaring temporaries, do not declare them as constant, because they may change.
As I said, I thought that the logic was already there to do the right thing. I will have to look into this again.
On Jun 22, 2010, at 8:18 , Ian Hinder wrote:
On 21 Jun 2010, at 18:26, Erik Schnetter wrote:
The current version of Kranc cannot digest the current version of McLachlan. The problem is with enforcing the trace A constraint, where the variable At_ij is both read and written -- Kranc does not emit the statement that reads the local variable from the grid function.
The enclosed patch corrects this. It is somewhat lengthy and not entirely elegant:
I would rather not commit such a patch, especially as I thought that the code to do this had already been implemented. It's possible that the code was reverted somehow in a later commit. Can you check back to
http://github.com/ianhinder/Kranc/commit/f88dacd7e55e94c64a6cd103c81f9bccdb9...
and see if that version of Kranc works for you?
How do I "check back" to this version? What git command do I use for this? I tried
git checkout f88dacd7e55e94c64a6cd103c81f9bccdb99601a
but this doesn't work because this "reference is not a tree". When I
git clone http://github.com/ianhinder/Kranc/commit/f88dacd7e55e94c64a6cd103c81f9bccdb9...
then the error is that the "remote HEAD refers to nonexistent ref".
-erik
On 22 Jun 2010, at 10:26, Erik Schnetter wrote:
On Jun 22, 2010, at 8:18 , Ian Hinder wrote:
On 21 Jun 2010, at 18:26, Erik Schnetter wrote:
The current version of Kranc cannot digest the current version of McLachlan. The problem is with enforcing the trace A constraint, where the variable At_ij is both read and written -- Kranc does not emit the statement that reads the local variable from the grid function.
The enclosed patch corrects this. It is somewhat lengthy and not entirely elegant:
I would rather not commit such a patch, especially as I thought that the code to do this had already been implemented. It's possible that the code was reverted somehow in a later commit. Can you check back to
http://github.com/ianhinder/Kranc/commit/f88dacd7e55e94c64a6cd103c81f9bccdb9...
and see if that version of Kranc works for you?
How do I "check back" to this version? What git command do I use for this? I tried
git checkout f88dacd7e55e94c64a6cd103c81f9bccdb99601a
but this doesn't work because this "reference is not a tree". When I
git clone http://github.com/ianhinder/Kranc/commit/f88dacd7e55e94c64a6cd103c81f9bccdb9...
then the error is that the "remote HEAD refers to nonexistent ref".
In the repository directory (take a backup first - there are ways to do this safely with local branches, but this is the simplest to explain),
git reset --hard f88dacd7e55e94c64a6cd103c81f9bccdb99601a
This will reset the current HEAD to that commit. The "--hard" deletes any local changes, so check you don't have any that you don't want to lose.
On Jun 21, 2010, at 18:26 , Erik Schnetter wrote:
The current version of Kranc cannot digest the current version of McLachlan. The problem is with enforcing the trace A constraint, where the variable At_ij is both read and written -- Kranc does not emit the statement that reads the local variable from the grid function.
The enclosed patch corrects this. It is somewhat lengthy and not entirely elegant:
Output assignments for all temporaries, not only for those that are only used in the RHS. If a temporary is used in a LHS, it may still need to be loaded from a grid function.
Add a somewhat complex logic to ensure that each temporary and shortcut is declared only once.
When declaring temporaries, do not declare them as constant, because they may change.
Please ignore this; I was using the wrong repository for Kranc.
-erik
users@lists.einsteintoolkit.org