-
Notifications
You must be signed in to change notification settings - Fork 55
Upgradeto095
In version 0.9.5 the old parser based on Boost::Spirit is replaced with a new hand-crafted parser. Large part of the libfityk library has been rewritten.
The GUI should work like in previous versions. Users who maintain fityk scripts may use this converter [will be uploaded later] (in Python) to update the scripts. After using the converter scripts may require manual tweaking.
As usually, feedback is welcome.
-
cmd in @2
→@2: cmd
-
cmd in @2, @3
→@2 @3: cmd
-
cmd in @*
→@*: cmd
Datasets before :
are handled in a generic way. If multiple datasets
are given, the command is executed multiple times, one time for each datasets.
This:
@0 @0 @0: fit 5
performs fitting of the same dataset three times, every time 5 iterations.
Commands fit
and plot
can take dataset also as an argument:
@*: fit # fit all datasets one by one fit @* # fit all datasets together (it can be slower) plot [] @* # given datasets are used only to determine min_[xy] and max_[xy]
If dataset is omitted, the default one is used. The default dataset can be
changed with a new command use @n
. Initially, @0
is default.
There are three printing commands now: info
, print
and debug
.
-
debug
is used mostly for testing the program itself and most of the users will not need it. -
print
is mainly used to output numbers (expression values) -
info
is used for everything else
The print
command is followed by a comma-separated list of expressions
and/or strings:
=-> p pi, pi^2, pi^3 3.14159 9.8696 31.0063 =-> with numeric_format='%.15f' print pi 3.141592653589793 =-> p '2+3 =', 2+3 2+3 = 5
The other valid arguments are filename
and title
. They are useful
for listing the same values for multiple datasets, e.g.:
=-> @*: print filename, F[0].area, F[0].area.error
print
can also print a list where each line corresponds to one data point:
=-> print all: x, y [a list with all points is printed] =-> print all: x, y, F(x), abs(y-F(x)) ...
It is possible to select which points are to be printed by replacing
all
with if
followed by a condition:
=-> print if a: x, y # only active points are printed ... =-> print if x > 30 and x < 40: x, y ...
info
arguments are keywords (listed in the manual), functions (%f),
variables ($v), and function types.
=-> i version Fityk 0.9.5 =-> i formula 66424*exp(-ln(2)*(((x)-24.7118)/0.1354)^2)+6000/(1+(((x)-34.926)/0.19345)^2) =-> i simplified_formula 66424*exp(-37.8084*(x-24.7118)^2)+6000/(1+26.7216*(x-34.926)^2) =-> i Linear Linear(a0=intercept, a1=slope) = a0 + a1 * x
Some keyword arguments require sub-arguments.
Variable values can be shown with both info
and print
:
=-> i $_1 $_1 = ~66424 = 66424 [auto] =-> p $_1 66424
Both info
and print
can be redirected to a file by appending
>> filename
or >filename
:
=-> print all: x, y >> foo.dat # export data =-> info state >> foo.fit # save session
With one exception: print expression > filename
does not work
if the filename is not enclosed in single quotes. That is
because the parser interprets >
as a part of the expression.
The workaround is to use quotes: print 2+3 > 'filename'
. The same
result can be achieved with two commands:
delete file filename; print 2+3 >> filename
.
- all keyword values are lowercase
- removed
formula_export_style
(there are separateinfo
arguments for different styles:info formula
andinfo gnuplot_formula
- removed
guess_at_center_pm
-
info_numeric_format
→numeric_format
- instead of 3 possible values of
autoplot
, there are now two boolean options:autoplot
andfit_replot
. -
verbosity
takes integer values (-1 .. 2) instead of keywords -
set @0.title = ...
→@0: title = ...
- new options
logfile
andlog_full
- parameter
center
in not special anymore -
guess Func [20:40] center=30
→guess Func(center=30) [20:40]
-
%f = guess Func in @0
→guess %f=Func in @0
-
commands > file
→set logfile file
-
commands < file
→exec file
-
commands ! shell-command
→exec ! shell-command
-
dump > file
→info state > file
numarea(%f, 10, 30, 100) → ``%f.numarea(10, 30, 100)
numarea(F, 10, 30, 100) → ``F.numarea(10, 30, 100)
-
F -= %f
→ not possible (usedelete %f
orF = ...
) - Added
delete file filename
. It is not an error to try to delete a non-existing file.