Dine kommentarer
Hello Michal,
Toolbox overloads standard MATLAB routines to create elementary arrays - zeros, ones, eye, etc.
This is needed to support 'mp' type as argument in such functions, e.g. eye(100,'mp').
If requested type is not 'mp' then toolbox dispatches the call to built-in MATLAB functions (see arrayCreationOverload.m for more details). Dispatch is quick but I expect it to be slower than direct call to double-precision functions.
MATLAB picks up toolbox overload when it is on the path.
Probably this is what causing slow-down in your tests.
Yes, these functions try to use all available cores. If functions were slow - this means that other processes were intensively using the same cores.
I see, thank you for clarification. MATLAB is huge, maybe something went wrong during update.
But definitely, this it is not a toolbox bug :).
I am not sure why this is happening.
But I suspect that freshly installed MATLAB might do some extra work in the background (building cache to speed-up startup time in future, or something similar). Do you see intensive processes in the background?
Hi Michal,
From the first glance conversion to mp is trivial for this script.
Basically you only need to convert standard arrays to mp-type.
So that just add 'mp' as last argument to every call to 'zeros', 'eye', etc. e.g.:
zeros(...) - > zeros(...,'mp') eye(...) - > eye(...,'mp') ...
Also, of course, make sure input parameters to LinProg generate mp-values.
Let me know if you encounter any other issues.
Thank you for your help! We have just published a changelog for new version:
Thank you very much for doing the tests! This is very helpful for us.
@ I just solve the same incompatibility problem with TOMLAB toolbox and few other third-party commercial matlab toolboxes.
Great! Do you have access to its source code or did you use some different approach?
Kundesupport af UserEcho
The ode45 is m-script, it creates a lot of elementary arrays inside - which are dispatched through toolbox overloads (when it is on the path). That is why ode45 is slower.
Run ode45 through performance profiler and check where bottleneck is.
In general toolbox treats ODEs the same way as all other functionality - toolbox doesn't do any intrusive actions (e.g. replace standard scripts or else). MATLAB just picks up its overloads when it is on the path.