^
and **
reimplemented to permit
noninteger exponents.
avg(aa[1,10])
really is an average of just
aa[1,10]
. Previously, avg(aa[1,10])
actually
performed sum(aa[1,10])/arraySize
. Now it does
sum(aa[1,10])/10
.
^
and **
reimplemented to permit
noninteger exponents.
aCalcArraySize
is no longer needed and no longer
exists.
aCalcAsyncThreshold
(default: 10000).
NELM
(the default), or as NUSE
, depending on
the value of the record's SIZE
field, which can be either "NELM" or
"NUSE". "NELM" always works, but is in some cases less efficient than "NUSE".
If "NUSE" is selected, the link or channel must be closed and reestablished when
the record's NUSE
field increases.
fitmpoly
, nderiv
,
nsmoo
were broken because they had incorrect stack-effect numbers.
Added the following functions for the aCalcout record
sCalcout and aCalcout records were not calling device support's init_record() routine
Added FWHM function to array calc support.
Added array calc support. This generalizes EPICS standard calc support in much the same way that the string calc support did, but with arrays instead of strings.
Added a python program to test string-calc software.
Interp support uses different genSub-record fields, and has acquired a mode switch and a success indicator. See calc/documentation/interp.README.
sCalcout record has two new functions:
interp.c, interp.db, interp.adl - no longer supports spline interpolation. Array length no longer limited to 2000 elements. Added range checking. Now the number of elements must be specified at load time, with the macro, N. Polynomial order is now forced to be in [0..10].
All databases have been converted to vdct.
Swait-record documentation added
New string operators '-|' and '|-' (delete first/last occurrence of substring).
Added arrayTest.c, a gensub-based support for producing unique arrays at runtime, e.g., for verifying that sscanRecord/saveData are storing data exactly as it was acquired. Also added arrayTest.db and arrayTest.adl.
Complete list of stringCalc functions, operators, and constants, with examples, is available as a set of medm displays, starting with the top-level display "calcExamples.adl". All medm displays that display calc expressions call up these doc displays.
stringCalc record now uses device support. Supplied soft device support allows the user to specify whether or not to wait for completion of the operation started by the OUT link.
EPICS base no longer contains the code required to check calc expressions for the sCalcout and transform records at boot time or DCT time. (At run time, the expressions are checked by sCalcPostfix.)
This is the first release of the synApps calc module. Version numbering for this module begins with 2.3 because this module was split from version 2.2 of the std module, and I wanted to retain the CVS histories of module contents.
This version is intended to build with EPICS base 3.14.5. Differences from software as previously released in std 2.2:interp.c, interp.db, interp.adl - now supports spline and polynomial interpolation.
subAve.c - registry stuff
Suggestions and Comments to: