Opened 14 years ago

Last modified 14 years ago

#1289 closed defect (worksforme)

inv function is not working

Reported by: mohsen Owned by: mohsen
Priority: high Milestone:
Component: Version:
Keywords: Cc: mohsen,

Description

{{{model kalmanRiccati

parameter Real Rv[:,:] = [0.01, 0; 0, 0.01];
Real KK[2,2] = Modelica.Math.Matrices.inv(Rv);

end kalmanRiccati;}}}

The above model result in the below error. I susspect that the Lapack library is nor correctly
linked in

Best Regards
Mohsen

{{{record SimulationResult

resultFile = "Simulation failed.

Error: Error building simulator. Buildlog: g++ -I"C:\OpenModelica1.5.0/include/omc" -msse2 -mfpmath=sse -I. -o kalmanRiccati.exe kalmanRiccati.cpp -llapack-mingw -ltmglib-mingw -lblas-mingw -lf2c -lsim -L"C:\OpenModelica1.5.0/lib/omc" -lc_runtime -lf2c -linteractive -lsendData -lQtNetwork-mingw -lQtCore-mingw -lQtGui-mingw -luuid -lole32 -lws2_32
In file included from kalmanRiccati.cpp:14:
kalmanRiccati_functions.cpp: In function `Modelica_Math_Matrices_LAPACK_dgetri_rettype _Modelica_Math_Matrices_LAPACK_dgetri(real_array, integer_array)':
kalmanRiccati_functions.cpp:95: error: no matching function for call to `min(int, size_t&)'
kalmanRiccati_functions.cpp: In function `Modelica_Math_Matrices_inv_rettype _Modelica_Math_Matrices_inv(real_array)':
kalmanRiccati_functions.cpp:188: error: cannot convert real_array*' to modelica_real*' for argument 2' to void copy_real_array_data_mem(real_array_t*, modelica_real*)'
kalmanRiccati_functions.cpp:189: error: cannot convert integer_array*' to modelica_integer*' for argument 2' to void copy_integer_array_data_mem(integer_array_t*, modelica_integer*)'
OMDev\tools\MinGW\bin\mingw32-make: * [kalmanRiccati] Error 1

Error: Error building simulator. Buildlog: command g++ not found. Check $OPENMODELICAHOME
Error: Error building simulator. Buildlog: command "C:\OpenModelica1.5.0/share/omc/scripts/Compile" not found. Check $OPENMODELICAHOME
"
end SimulationResult;}}}

Change History (1)

comment:1 by Martin Sjölund, 14 years ago

Both of these work in the same model in (trunk) Linux:
{{{model kalmanRiccati

parameter Real Rv[:,:] = [0.01, 0; 0, 0.01];
parameter Real I3[:,:] = [1, 0, 0 ; 0, 1, 0 ; 0, 0, 1];
Real KK2[2,2] = Modelica.Math.Matrices.inv(Rv);
Real KK3[3,3] = Modelica.Math.Matrices.inv(I3);

end kalmanRiccati;}}}

Note: See TracTickets for help on using tickets.