Matlab Runtime Library - Consists of approximately 400 Matlab math functions - Сообщения
WroteWroteUpdated. Now the installer is located within the plugin.
There is an user interaction issue. After updating the plugin and re-starting smath,
the installer dialog pops up and offers installation. You are also informed that you do not need installation if you already have the runtime environment installed. In this case it is natural that the user chooses [Cancel]. Then, however, the dialog pops up every time you launch smath.
If you choose [Install] even if you know that nothing needs to be installed, then suddenly the installer gets aware of that and just finishes and no more messages appear on start-up.
Updated. I think I found a way to do the installation without the use of environment variable path. You can remove the path from the environment variable. Also, you can delete the installation files from c:\MATLAB6p5.
Is there a chance to return scalars if the result matrix has 1x1 size by default (without touching each function separately)? Then we could use all the functions as direct replacement for the standard ones. The drawback would be that these functions cannot handle lists (except if you can recognize that in the plugin and do sys2mat and vice versa.
One could even think of working with any nested structures by flattening them out internally and afterwards restructuring the results according to input.
I guess that unit handling would not be trivial. However, for most special functions this is irrelevant anyways.
WroteWorks here.
Is there a chance to return scalars if the result matrix has 1x1 size by default (without touching each function separately)? Then we could use all the functions as direct replacement for the standard ones.
Updated. Done. As for the rest, I'll think about it.
For now we have 49 functions.
[INFO ] [Plugin.Initialize()] mwabs(1) - the absolute value of the elements of X.
[INFO ] [Plugin.Initialize()] mweq(2) - A == B.
[INFO ] [Plugin.Initialize()] mwfft2(1) - two-dimensional fast Fourier transform.
[INFO ] [Plugin.Initialize()] mwfind(1) - find indices and values of nonzero elements.
[INFO ] [Plugin.Initialize()] mwfprintf(4) - [file, permission, format, data] - write formatted data to file.
[INFO ] [Plugin.Initialize()] mwge(2) - A >= B.
[INFO ] [Plugin.Initialize()] mwgt(2) - A > B.
[INFO ] [Plugin.Initialize()] mwifft2(1) - two-dimensional inverse discrete Fourier transform.
[INFO ] [Plugin.Initialize()] mwifftshift(2) - inverse FFT shift.
[INFO ] [Plugin.Initialize()] mwle(2) - A <= B.
[INFO ] [Plugin.Initialize()] mwlt(2) - A < B.
[INFO ] [Plugin.Initialize()] mwneq(2) - A ~= B.
[INFO ] [Plugin.Initialize()] mwsign(1) - signum function.
[INFO ] [Plugin.Initialize()] mwfscanf(3) - ( file, permission, format ) - read formatted data from file.
[INFO ] [Plugin.Initialize()] mwfscanf(4) - ( file, permission, format, size ) - read formatted data from file.
[INFO ] [Plugin.Initialize()] mwode45(5) - (init, x1, x2, intvls, D) solve non-stiff differential equations, medium order method.
[INFO ] [Plugin.Initialize()] mwode23(5) - (init, x1, x2, intvls, D) solve non-stiff differential equations, low order method.
[INFO ] [Plugin.Initialize()] mwode113(5) - (init, x1, x2, intvls, D) solve non-stiff differential equations, variable order method.
[INFO ] [Plugin.Initialize()] mwode15s(5) - (init, x1, x2, intvls, D) solve stiff differential equations and DAEs, variable order method.
[INFO ] [Plugin.Initialize()] mwode23s(5) - (init, x1, x2, intvls, D) solve stiff differential equations, low order method.
[INFO ] [Plugin.Initialize()] mwand(2) - A & B.
[INFO ] [Plugin.Initialize()] mwor(2) - A | B.
[INFO ] [Plugin.Initialize()] mwnot(1) - ~A.
[INFO ] [Plugin.Initialize()] mwacos(1) - inverse cosine.
[INFO ] [Plugin.Initialize()] mwacosh(1) - inverse hyperbolic cosine.
[INFO ] [Plugin.Initialize()] mwacot(1) - inverse cotangent.
[INFO ] [Plugin.Initialize()] mwacoth(1) - inverse hyperbolic cotangent.
[INFO ] [Plugin.Initialize()] mwacsc(1) - inverse cosecant.
[INFO ] [Plugin.Initialize()] mwacsch(1) - inverse hyperbolic cosecant.
[INFO ] [Plugin.Initialize()] mwall(1) - ( A ) test to determine if all elements are nonzero.
[INFO ] [Plugin.Initialize()] mwall(2) - ( A, DIM ) test to determine if all elements are nonzero.
[INFO ] [Plugin.Initialize()] mwangle(1) - phase angle.
[INFO ] [Plugin.Initialize()] mwany(1) - ( A ) for any nonzeros.
[INFO ] [Plugin.Initialize()] mwany(2) - ( A, DIM ) test for any nonzeros.
[INFO ] [Plugin.Initialize()] mwasec(1) - inverse secant.
[INFO ] [Plugin.Initialize()] mwasech(1) - inverse hyperbolic secant.
[INFO ] [Plugin.Initialize()] mwasin(1) - inverse sine.
[INFO ] [Plugin.Initialize()] mwasinh(1) - inverse hyperbolic sine.
[INFO ] [Plugin.Initialize()] mwatan(1) - inverse tangent.
[INFO ] [Plugin.Initialize()] mwatanh(1) - inverse hyperbolic tangent.
[INFO ] [Plugin.Initialize()] mwatan2(2) - ( Y, X ) four-quadrant inverse tangent.
[INFO ] [Plugin.Initialize()] mwabs(1) - diagonal scaling to improve eigenvalue accuracy.
[INFO ] [Plugin.Initialize()] mwbeta(2) - (Z,W) computes the beta function for corresponding elements of Z and W. The beta function is defined as beta(z,w) = integral from 0 to 1 of t.^(z-1) .* (1-t).^(w-1) dt. The arrays Z and W must be the same size (or either can be scalar).
[INFO ] [Plugin.Initialize()] mwbetainc(3) - (X,Z,W) computes the incomplete beta function for corresponding elements of X, Z, and W. The elements of X must be in the closed interval [0,1]. The arguments X, Z and W must all be the same size (or any of them can be scalar).
[INFO ] [Plugin.Initialize()] mwbetaln(2) - (Z,W) computes the natural logarithm of the beta function for corresponding elements of Z and W. The arrays Z and W must be the same size (or either can be scalar). BETALN is defined as: BETALN = LOG(BETA(Z,W)) and is obtained without computing BETA(Z,W). Since the beta function can range over very large or very small values, its logarithm is sometimes more useful
[INFO ] [Plugin.Initialize()] mwbin2dec(1) - convert binary string to decimal integer.
[INFO ] [Plugin.Initialize()] mwbitand(2) - (A,B ) returns the bit-wise AND of the two arguments A and B. Both A and B must contain non-negative integers between 0 and BITMAX.
[INFO ] [Plugin.Initialize()] mwbitcmp(2) - (A,N) returns the bit-wise complement of A as an N-bit non-negative integer.
[INFO ] [Plugin.Initialize()] mwbitor(2) - (A,B ) returns the bit-wise OR of the two arguments A and B. Both A and B must contain non-negative integers between 0 and BITMAX.
[INFO ] [Plugin.Initialize()] Successfully. 49 functions loaded.
Something went wrong with the diagonal scaling. I can't see such a function.
325 сообщений из 2 052 понравились и 1 не понравились пользователям.
Группа: Moderator
WroteI'm not sure, but I think that next year we will not see support for namespaces and function overloading. Andrey is a very busy. Therefore, I recommend to use prefixes in the documentation.
For now we have 49 functions.[INFO ] [Plugin.Initialize()] Is64Bit() = 32
[INFO ] [Plugin.Initialize()] mwabs(1) - the absolute value of the elements of X.
[INFO ] [Plugin.Initialize()] mweq(2) - A == B.
[INFO ] [Plugin.Initialize()] mwfft2(1) - two-dimensional fast Fourier transform.
[INFO ] [Plugin.Initialize()] mwfind(1) - find indices and values of nonzero elements.
[INFO ] [Plugin.Initialize()] mwfprintf(4) - [file, permission, format, data] - write formatted data to file.
[INFO ] [Plugin.Initialize()] mwge(2) - A >= B.
[INFO ] [Plugin.Initialize()] mwgt(2) - A > B.
[INFO ] [Plugin.Initialize()] mwifft2(1) - two-dimensional inverse discrete Fourier transform.
[INFO ] [Plugin.Initialize()] mwifftshift(2) - inverse FFT shift.
[INFO ] [Plugin.Initialize()] mwle(2) - A <= B.
[INFO ] [Plugin.Initialize()] mwlt(2) - A < B.
[INFO ] [Plugin.Initialize()] mwneq(2) - A ~= B.
[INFO ] [Plugin.Initialize()] mwsign(1) - signum function.
[INFO ] [Plugin.Initialize()] mwfscanf(3) - ( file, permission, format ) - read formatted data from file.
[INFO ] [Plugin.Initialize()] mwfscanf(4) - ( file, permission, format, size ) - read formatted data from file.
[INFO ] [Plugin.Initialize()] mwode45(5) - (init, x1, x2, intvls, D) solve non-stiff differential equations, medium order method.
[INFO ] [Plugin.Initialize()] mwode23(5) - (init, x1, x2, intvls, D) solve non-stiff differential equations, low order method.
[INFO ] [Plugin.Initialize()] mwode113(5) - (init, x1, x2, intvls, D) solve non-stiff differential equations, variable order method.
[INFO ] [Plugin.Initialize()] mwode15s(5) - (init, x1, x2, intvls, D) solve stiff differential equations and DAEs, variable order method.
[INFO ] [Plugin.Initialize()] mwode23s(5) - (init, x1, x2, intvls, D) solve stiff differential equations, low order method.
[INFO ] [Plugin.Initialize()] mwand(2) - A & B.
[INFO ] [Plugin.Initialize()] mwor(2) - A | B.
[INFO ] [Plugin.Initialize()] mwnot(1) - ~A.
[INFO ] [Plugin.Initialize()] mwacos(1) - inverse cosine.
[INFO ] [Plugin.Initialize()] mwacosh(1) - inverse hyperbolic cosine.
[INFO ] [Plugin.Initialize()] mwacot(1) - inverse cotangent.
[INFO ] [Plugin.Initialize()] mwacoth(1) - inverse hyperbolic cotangent.
[INFO ] [Plugin.Initialize()] mwacsc(1) - inverse cosecant.
[INFO ] [Plugin.Initialize()] mwacsch(1) - inverse hyperbolic cosecant.
[INFO ] [Plugin.Initialize()] mwall(1) - ( A ) test to determine if all elements are nonzero.
[INFO ] [Plugin.Initialize()] mwall(2) - ( A, DIM ) test to determine if all elements are nonzero.
[INFO ] [Plugin.Initialize()] mwangle(1) - phase angle.
[INFO ] [Plugin.Initialize()] mwany(1) - ( A ) for any nonzeros.
[INFO ] [Plugin.Initialize()] mwany(2) - ( A, DIM ) test for any nonzeros.
[INFO ] [Plugin.Initialize()] mwasec(1) - inverse secant.
[INFO ] [Plugin.Initialize()] mwasech(1) - inverse hyperbolic secant.
[INFO ] [Plugin.Initialize()] mwasin(1) - inverse sine.
[INFO ] [Plugin.Initialize()] mwasinh(1) - inverse hyperbolic sine.
[INFO ] [Plugin.Initialize()] mwatan(1) - inverse tangent.
[INFO ] [Plugin.Initialize()] mwatanh(1) - inverse hyperbolic tangent.
[INFO ] [Plugin.Initialize()] mwatan2(2) - ( Y, X ) four-quadrant inverse tangent.
[INFO ] [Plugin.Initialize()] mwabs(1) - diagonal scaling to improve eigenvalue accuracy.
[INFO ] [Plugin.Initialize()] mwbeta(2) - (Z,W) computes the beta function for corresponding elements of Z and W. The beta function is defined as beta(z,w) = integral from 0 to 1 of t.^(z-1) .* (1-t).^(w-1) dt. The arrays Z and W must be the same size (or either can be scalar).
[INFO ] [Plugin.Initialize()] mwbetainc(3) - (X,Z,W) computes the incomplete beta function for corresponding elements of X, Z, and W. The elements of X must be in the closed interval [0,1]. The arguments X, Z and W must all be the same size (or any of them can be scalar).
[INFO ] [Plugin.Initialize()] mwbetaln(2) - (Z,W) computes the natural logarithm of the beta function for corresponding elements of Z and W. The arrays Z and W must be the same size (or either can be scalar). BETALN is defined as: BETALN = LOG(BETA(Z,W)) and is obtained without computing BETA(Z,W). Since the beta function can range over very large or very small values, its logarithm is sometimes more useful
[INFO ] [Plugin.Initialize()] mwbin2dec(1) - convert binary string to decimal integer.
[INFO ] [Plugin.Initialize()] mwbitand(2) - (A,B ) returns the bit-wise AND of the two arguments A and B. Both A and B must contain non-negative integers between 0 and BITMAX.
[INFO ] [Plugin.Initialize()] mwbitcmp(2) - (A,N) returns the bit-wise complement of A as an N-bit non-negative integer.
[INFO ] [Plugin.Initialize()] mwbitor(2) - (A,B ) returns the bit-wise OR of the two arguments A and B. Both A and B must contain non-negative integers between 0 and BITMAX.
[INFO ] [Plugin.Initialize()] Successfully. 49 functions loaded.
Thank you uni

As I could see in the first post of yours, when you manage to get those functions to work you are updating the plugin - blue starting with mw... (I counted more than 49 at the moment )

If you get most of those functions in the list to work in spite of the mentioned obstacles in SMath (different number of arguments etc.), it would be really something big

Regards,
Radovan
Also, I recommend to modify the calling syntax.
mwany(M) test if any of the elements in M is nonzero. Corresponds to matlab any(M( : )), where the colon operator flattens the matrix into a vector.
mwany(M,1) or mwany(M,2) do the test along the columns and rows respectively (no change except bug fixing required)
Same for mwall.
mwany.sm (10 КиБ) скачан 185 раз(а).
325 сообщений из 2 052 понравились и 1 не понравились пользователям.
Группа: Moderator

WroteUpdated. 83 functions (see log.txt in the plugin folder).
I tried it first and could see that mwbesselx() functions do not work. Then I checked the log.txt file.
This is the end of it
....
8/25/2013 12:35:58 PM [INFO ] [Plugin.Initialize()] Successfully. 83 functions loaded.
8/25/2013 12:39:34 PM [ERROR] [Plugin.NumericEvaluation()] mwbesseli(2) Exception has been thrown by the target of an invocation.
8/25/2013 12:39:34 PM [ERROR] [Plugin.NumericEvaluation()] mwbesseli(2) Exception has been thrown by the target of an invocation.
8/25/2013 12:39:51 PM [ERROR] [Plugin.NumericEvaluation()] mwbesseli(2) Exception has been thrown by the target of an invocation.
8/25/2013 12:39:51 PM [ERROR] [Plugin.NumericEvaluation()] mwbesseli(2) Exception has been thrown by the target of an invocation.
8/25/2013 12:39:56 PM [ERROR] [Plugin.NumericEvaluation()] mwbesseli(2) Exception has been thrown by the target of an invocation.
8/25/2013 12:39:56 PM [ERROR] [Plugin.NumericEvaluation()] mwbesseli(2) Exception has been thrown by the target of an invocation.
8/25/2013 12:41:32 PM [ERROR] [Plugin.NumericEvaluation()] mwbesseli(2) Exception has been thrown by the target of an invocation.
8/25/2013 12:41:32 PM [ERROR] [Plugin.NumericEvaluation()] mwbesseli(2) Exception has been thrown by the target of an invocation.
8/25/2013 12:41:50 PM [ERROR] [Plugin.NumericEvaluation()] mwbesseli(2) Exception has been thrown by the target of an invocation.
8/25/2013 12:41:50 PM [ERROR] [Plugin.NumericEvaluation()] mwbesseli(2) Exception has been thrown by the target of an invocation.
....
No success with mwbetainc() yet as well. I suppose you know all this, just wanted to confirm.
Regards,
Radovan
25.08.2013 14:18:54 [ERROR] [mwbesseli] Failed to load MEX-File : besselmx.
25.08.2013 14:19:00 [ERROR] [mwbesseli] Failed to load MEX-File : besselmx.
25.08.2013 14:19:09 [ERROR] [mwbesselj] Failed to load MEX-File : besselmx.
25.08.2013 14:19:16 [ERROR] [mwbesselj] Failed to load MEX-File : besselmx.
25.08.2013 14:19:20 [ERROR] [mwbesselj] Failed to load MEX-File : besselmx.
25.08.2013 14:20:55 [ERROR] [mwbesseli] Failed to load MEX-File : besselmx.
and I get an error message from SMath (translated)
The program cannot be launched because DFORMD.dll is missing on your computer. Re-install the program to solve the problem.
such a dll is present on my system as part of the ANSYS finite element package.
325 сообщений из 2 052 понравились и 1 не понравились пользователям.
Группа: Moderator
8/25/2013 2:22:55 PM [ERROR] [mwbesseli] Failed to load MEX-File : besselmx.
when I try to use mwbetainc() there is only one message about the first argument
8/25/2013 2:45:00 PM [ERROR] [mwbetainc] X must be in the interval [0,1].
although I used something like this
[MATH=eng]z:range(0,10)[/MATH]
[MATH=eng]mwbetainc(0.5,z,3)=#@#[/MATH]
with the usual error message ...-function is not defined
Regards,
Radovan
[EDIT] I do not have a message about missing dll like Martin
325 сообщений из 2 052 понравились и 1 не понравились пользователям.
Группа: Moderator
WroteUpdated. Try now. As for mwbetainc(), I don't know yet what's going on.
I can confirm that mwbesselx() functions are working for me

Regards,
Radovan
Added: mwrand(), mwrandn(), mwsize(), mwconv(), mwconv2(), mwnnz(), mwnonzeos(), mwtrace(), mwconj(), mwxor(), mwtril(), mwtriu(), mwcorrcoef(), mweye(), mwones(), mwzeros(), mwroots(), mwrot90(), mwsum().
When you assign a matrix generating function to a variable, then this is done symbolically by default in your plugin. Thus, a random matrix looks differently every time it is used. This behaviour is different from Davide's Statistical tools, where numeric evaluation seems to be default.
I guess that symbols with changing contents at every use are somewhat unexpected for the user. Therefore, I would therefore recommend to set evaluation to numeric by default, unless there is something to gain from symbolic evaluation (which I do not see so far, bit I may be wrong).
Edit: There are multiple implications of that SMath symbolics is unaware of scalar or vector properties of operands. Therefore I urgently recommend to suppress symbolic evaluation for (possibly) matrix valued functions. In the second example, replacing mwones() by Ones() solves the problem (mismatch between symbolic and numeric evaluation)
Edit2: To internally apply eval() in every function should help.
Error message in log file: Argument to xxx must not be complex.
Error message in SMath: function is not defined.
I can't see any complex argument.
Section math boolean matlab.sm (25 КиБ) скачан 185 раз(а).
325 сообщений из 2 052 понравились и 1 не понравились пользователям.
Группа: Moderator
log.txt from the plugin folder
the last part
....
8/27/2013 6:50:53 AM [INFO ] [Plugin.Initialize()] Successfully. 112 functions loaded.
8/27/2013 6:52:42 AM [ERROR] [Plugin.NumericEvaluation()] mwxor(2) Exception has been thrown by the target of an invocation.
8/27/2013 6:52:42 AM [ERROR] [Plugin.NumericEvaluation()] mwxor(2) Exception has been thrown by the target of an invocation.
8/27/2013 6:52:55 AM [ERROR] [Plugin.NumericEvaluation()] mwxor(2) Exception has been thrown by the target of an invocation.
8/27/2013 6:52:55 AM [ERROR] [Plugin.NumericEvaluation()] mwxor(2) Exception has been thrown by the target of an invocation.
8/27/2013 6:53:08 AM [ERROR] [Plugin.NumericEvaluation()] mwand(2) Exception has been thrown by the target of an invocation.
8/27/2013 6:53:08 AM [ERROR] [Plugin.NumericEvaluation()] mwand(2) Exception has been thrown by the target of an invocation.
8/27/2013 6:53:13 AM [ERROR] [Plugin.NumericEvaluation()] mwxor(2) Exception has been thrown by the target of an invocation.
8/27/2013 6:53:13 AM [ERROR] [Plugin.NumericEvaluation()] mwxor(2) Exception has been thrown by the target of an invocation.
8/27/2013 6:53:13 AM [ERROR] [Plugin.NumericEvaluation()] mwand(2) Exception has been thrown by the target of an invocation.
8/27/2013 6:53:13 AM [ERROR] [Plugin.NumericEvaluation()] mwand(2) Exception has been thrown by the target of an invocation.
8/27/2013 6:53:19 AM [ERROR] [Plugin.NumericEvaluation()] mwxor(2) Exception has been thrown by the target of an invocation.
8/27/2013 6:53:19 AM [ERROR] [Plugin.NumericEvaluation()] mwxor(2) Exception has been thrown by the target of an invocation.
8/27/2013 6:53:48 AM [ERROR] [Plugin.NumericEvaluation()] mwor(2) Exception has been thrown by the target of an invocation.
8/27/2013 6:53:48 AM [ERROR] [Plugin.NumericEvaluation()] mwor(2) Exception has been thrown by the target of an invocation.
log.txt from win32 folder
8/27/2013 6:52:42 AM [ERROR] [mwxor] Operands to AND must not be complex.
8/27/2013 6:52:42 AM [ERROR] [mwxor] Operands to AND must not be complex.
8/27/2013 6:52:55 AM [ERROR] [mwxor] Operands to AND must not be complex.
8/27/2013 6:52:55 AM [ERROR] [mwxor] Operands to AND must not be complex.
8/27/2013 6:53:08 AM [ERROR] [mwand] Operands to AND must not be complex.
8/27/2013 6:53:08 AM [ERROR] [mwand] Operands to AND must not be complex.
8/27/2013 6:53:13 AM [ERROR] [mwxor] Operands to AND must not be complex.
8/27/2013 6:53:13 AM [ERROR] [mwxor] Operands to AND must not be complex.
8/27/2013 6:53:13 AM [ERROR] [mwand] Operands to AND must not be complex.
8/27/2013 6:53:13 AM [ERROR] [mwand] Operands to AND must not be complex.
8/27/2013 6:53:19 AM [ERROR] [mwxor] Operands to AND must not be complex.
8/27/2013 6:53:19 AM [ERROR] [mwxor] Operands to AND must not be complex.
8/27/2013 6:53:48 AM [ERROR] [mwor] Operands to OR must not be complex.
8/27/2013 6:53:48 AM [ERROR] [mwor] Operands to OR must not be complex.
Regards,
Radovan
mwrand(), mvrandn(), mwand(), mwor(), mwnot(), mwxor() - bugs fixed;

As for symbolic simplifications when dealing with matrices, I think that in this case it's a bug. The multiplication operator believes that the second operand returns a scalar, but this is not true.

-
Новые сообщения
-
Нет новых сообщений