float
or double
?The package can use the Real
type that can be either float
or double
for numerical computations. The file include.h
in the directory newmat
contains the following lines:
#define USING_DOUBLE // elements of type double //#define USING_FLOAT // elements of type float
that are used to select the floating point type used.
What is the performance of the package with respect to the time required to evaluate the kinematics, dynamics, etc ?
The program bench.cpp
can be used to benchmark some of the functionalities of the package for a 6 dof PUMA robot model. Here's an example obtained from a MacBook Intel 2.4Ghz Core 2 Duo (early 2008):
================================= Benchmarks for serial 6 dof robot ================================= Begin compute Forward Kinematics MilliSeconds 0.02 end Begin compute Inverse Kinematics MilliSeconds 0.50 end Begin compute Jacobian MilliSeconds 0.03 end Begin compute Torque MilliSeconds 0.14 end Begin acceleration MilliSeconds 0.67 end
When compiling the files under Visual C++ 6.0, it results in the following error:
c:\roboop\newmat\newmat.h(1404) : fatal error C1001: INTERNAL COMPILER ERROR (compiler file 'msc1.cpp', line 1786) Please choose the Technical Support command on the Visual C++ etc ...
You have to apply the latest service pack to Visual C++ 6.0.
roboop.sln
file under Visual C++ .NETIf you get an error when opening the roboop.sln
file, open the roboop.dsw
instead.