<
Next version of Ox>
<
Previous version of Ox>
Ox 3.40: new features and fixes
New features and enhancements
- Added the ability to import oxo files that were
generated from OxGauss files.
- Add RTLD_GLOBAL flag to dynamic loading on Linux.
(Was needed to link to libdbi.)
- Added some ability for the symbol table to grow
(but this can only happen at the external code level).
Problems in version 3.30 which have been fixed in version 3.40:
- In program: main(){while(1)0;}
the loop is executed only once, while it should be an infinite loop.
This only happens if while is the first statement of the program and
the last statement in the while loop evaluates to 0 (so quite unlikely).
- dayofcalendar rather than dayofcalender (but both now
exist to maintain backward compatibility).
- polyroots of empty matrix now returns empty matrix
instead of negative dimension error
- small fix in solvenle (SolveGMRes) to check
if the residual norm is a missing value.
- In rare circumstances a call to ols2c/ols2r
with singularity could
lateron lead to an Out of memory error message.
- exit code specified in exit() was not used when
running from the command line.
- vector == matrix crashes, e.g: <1,1> == <1,1; 0,1; 1,0>
- x=zeros(1,0); x[0][]=1; leads to crash
(should leave x unchanged).
- variance(<>), correlation(<>),
standardize(<>) gives out of memory error message.
- "%z" format did not work for sscan
- <>.^2 crashes Ox.
Note that sqr(<>) is not affected by this.
- The following don't work with empty matrices: savemat
and complex functions (cmul, cdiv, etc.).
- pacf of 1x1 matrix doesn't work.
- lib/longrun.ox: LongRun() is printing negative long-run
covariances as zero.
- printing a function prints the name
(and address if it is an internal function, e.g. print(rann)).
Specifying a format for this could lead to a crash.
- quanbeta(x,1,1) returns 0.5 instead of 1.
- Singularity decision in olsr/olsc/decqr was
too stringent. Now it is based on inverteps() multiplied by the
maximum diagonal element of X'X (previously
it just used sqrt(inverteps()). Also, the warning for scaling is now given
when the ratio of the largest to the smallest diagonal element of X'X
is less than inverteps()
(previously, it was given when the ratio was less than 1e-10 or the minimum
less than 1e-12).
- Extending Ox:
- value argument of OxValSetDouble was int not double
- Providing missing documentation for exported functions from DLL:
OxSetOxArgs,OxGetOxArgs, OxGetMainArgs, OxSetMainArgs,
OxSetPrintlevel, OxGetPrintlevel, OxPuts.
- OxValGetStringCopy was not exported
OxGauss
- vech is wrongly using the Ox version.
- qqre,qre,qtyre,qyre should return P instead of P'
- export is missing
- __olsres should be _olsres.
- scalmiss should return 1 for empty matrix and 0 for empty string
- errorlog "Error message" now prints the message
- ftos omits a single character following the format
- power followed by unary operator gave error (e.g. x ^ -2)
- _eigerr was not defined
- files was missing second argument (which is ignored)
- a statement like let x0 = a+a b+b; did not compile correctly
- `declare external x' should be a syntax error but seems to be
treated as declare x.
- created lag(x) to be the same as lag1(x)
- now allowing function forward reference when address is taken in argument
- removed all conditional sections (for g2ox) from g2ox.ox and g2ox.h.
The default behaviour is now same as when OX_GAUSS was defined before.
Ox version 3.40.
©
JA Doornik
This file last changed .