[Ifeffit] Bug report
newville at cars.uchicago.edu
Tue Jun 7 09:33:32 CDT 2005
Yep, that is an ifeffit error. It turns out to be specific to
math expressions in path() commands, but it is definitely a bug.
It seems that a math expression for a path parameter that starts
with '(' and ends with ')' and for which these '(' and ')' are
not a matched pair will incorrectly raise a syntax error. This
doesn't happen for set() or def().
I think this is an historical accident (that is it got fixed a
long time ago for set() and def() and never got fixed for
path()). It seems easy to fix, though I should probably test it
carefully, and I don't know that I'll have Windows dlls soon. It
also seems easy to work around. Let me know if it isn't.
On Mon, 6 Jun 2005, Scott Calvin wrote:
> Hi Bruce and Matt,
> I've just spent a few hours trying to track down a bug that showed up in
> one of my complicated Artemis files. I've boiled it down to the point where
> I can make it happen in one of the example files, although of course in
> this context it looks a little pointless.
> At any rate, take Ifeffit/examples/Artemis/Cu/oneshell.apj, and change the
> sigma2 for path 1 to:
> (1)*sigsqr + signor*(1)
> and run a fit.
> For me, that generates the ifeffit message:
> path(1, sigma2 = (1)*sigsqr + signor*(1))
> syntax error: (1)*sigsqr)+signor*((1)
> parentheses not used properly
> and causes a sigma2 of 0 to be used. Artemis doesn't report any error; you
> have to look in the ifeffit buffer or notice that you're getting a funny
> value of sigma2 (i.e. 0) assigned to path 1.
> Now change the sigma2 to read:
> (1)*sigsqr + signor*(1)*1
> and everything works fine. Weird, huh?
> I'm using Artemis 0.7.015 and ifeffit 1.2.7 on Windows XP.
> --Scott Calvin
> Sarah Lawrence College
> Ifeffit mailing list
> Ifeffit at millenia.cars.aps.anl.gov
More information about the Ifeffit