<Next version of Ox>
<Previous version of Ox>
Ox: Fixes and new features in version 1.07
New features and remarks, version 1.07
-
Matrix cache enhancements. Ox 1.07 can be up to 3 times faster
than version 1.06. The speed improvement is obtained by optimization
of the run-time engine, and introduction of an internal cache.
The size of the cache can be controlled. To switch off caching,
use -rc0,0 as a command line argument.
-
There are changes in the command line switches, run Ox without source code
to see.
-
New functions: exit, fft,
isdotfeq, lower, limits, vecr,
prodc, prodr, setdiagonal, setlower, setupper,
strlwr, strupper, sumsqrc, sumsqrr, upper.
-
invert() now optionally returns the logarithm of the absolute
determinant, and the sign (not the determinant anymore).
-
determinant() will now print a message if the result is deemed unreliable.
Remaining LU based routines (declu, logdet, invert) can signal
in the return code that the result could be unreliable.
-
Now interpreting m[a] as m[vecr(a)] if a is a matrix.
-
Introduction of dot-relational operators (.|| .&& .!= .== .>= .>
.< .<=). These will al return a matrix of zeros and ones.
The operators without a dot will return the scalar 1 or 0.
Most code will be unaffected, but if you use dot-conditional
expressions, you will have to use the dot-relational operators in it.
-
Rudimentary Gauss to Ox translator.
-
The loadmat() and savemat() functions can now
directly load/save the following file types: PcGive (.in7.bn7),
Excel (.xls, up to version 4), Lotus (wks, wk1), Gauss data (.xht/.dat)
and Gauss matrix (.fmt) files.
These can also be loaded directly into a database.
-
An external declaration can now specify matrix size, e.g:
decl x[5][5] = 1;
-
Introduction of 'How to' chapter.
Fixed bugs in version 1.07
There was a partial rewrite of the run-time engine
(especially matrix indexing and function calling).
-
When assigning x, when x is
const decl x;
at external level, to a class member, the class member would
suddenly become static.
-
Fixed bug in x[][] = , and in |ing from [0][1] matrix.
-
There was a problem with declu when giving a upper triangular
matrix as input (could think it was singular). Changed the
algorithm. Also, returned U didn't have lower triangular part
set to zero.
-
olsc() and olsr() return the wrong (X'X)^-1 matrix (ols2c
and ols2r are correct).
-
simnor.ox works fine in OxRun, but gives out of memory message
in Oxlw. This is caused by the graphics, but I haven't been able to
locate the problem yet.