Skip to content

Commit 535b5f2

Browse files
committed
fix in array operations sum_array and dot_array
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@22475 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
1 parent fc738ce commit 535b5f2

File tree

5 files changed

+14
-15
lines changed

5 files changed

+14
-15
lines changed

SimulationRuntime/cpp/Core/Math/ArrayOperations.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,9 @@ template < typename T>
246246
T sum_array ( BaseArray<T> & leftArray )
247247
{
248248
T val;
249-
val = std::accumulate( leftArray.getData(), leftArray.getData() + leftArray.getNumElems() ,0 );
249+
T* data = leftArray.getData();
250+
unsigned int dim = leftArray.getNumElems();
251+
val = std::accumulate( data, data + dim ,0.0 );
250252
return val;
251253
}
252254

@@ -263,7 +265,7 @@ T dot_array( BaseArray<T> & a , BaseArray<T> & b )
263265
T* data1 = a.getData();
264266
unsigned int nelems = a.getNumElems();
265267
T* data2 = b.getData();
266-
T r = std::inner_product(data1, data1 + nelems, data2, 0);
268+
T r = std::inner_product(data1, data1 + nelems, data2, 0.0);
267269
return r;
268270
};
269271

SimulationRuntime/cpp/Include/Core/DataExchange/Policies/MatfileWriter.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ class MatFileWriter : public Writer<dim_1, dim_2, dim_3, dim_4>
2222
public:
2323
MatFileWriter(unsigned long size, string output_path, string file_name)
2424
: Writer<dim_1, dim_2, dim_3, dim_4>(),
25-
_output_stream(0),
2625
_dataHdrPos(),
2726
_dataEofPos(),
2827
_curser_position(0),

SimulationRuntime/cpp/Solver/CVode/FactoryExport.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
#define BOOST_EXTENSION_SOLVER_DECL BOOST_EXTENSION_IMPORT_DECL
1010
#define BOOST_EXTENSION_STATESELECT_DECL BOOST_EXTENSION_IMPORT_DECL
1111
#define BOOST_EXTENSION_SOLVERSETTINGS_DECL BOOST_EXTENSION_IMPORT_DECL
12-
#define BOOST_EXTENSION_MONITOR_DECL BOOST_EXTENSION_EXPORT_DECL
12+
#define BOOST_EXTENSION_MONITOR_DECL BOOST_EXTENSION_IMPORT_DECL
1313
#else
1414
error "operating system not supported"
1515
#endif

SimulationRuntime/cpp/Solver/Euler/Euler.cpp

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -116,18 +116,15 @@ void Euler::initialize()
116116
if( _eulerSettings->getDenseOutput())
117117
{
118118
// Ausgabeschrittweite
119-
_hOut = dynamic_cast<ISolverSettings*>(_eulerSettings)->getGlobalSettings()->gethOutput();
120-
119+
_hOut = dynamic_cast<ISolverSettings*>(_eulerSettings)->getGlobalSettings()->gethOutput();
120+
_h=_hOut;
121121
}
122-
_h = std::max(std::min(_h, dynamic_cast<ISolverSettings*>(_eulerSettings)->getUpperLimit()), dynamic_cast<ISolverSettings*>(_eulerSettings)->getLowerLimit());
123-
double hout = dynamic_cast<ISolverSettings*>(_eulerSettings)->getGlobalSettings()->gethOutput();
124-
_outputStp = hout/_h ;
122+
else
123+
{
124+
_h = std::max(std::min(_h, dynamic_cast<ISolverSettings*>(_eulerSettings)->getUpperLimit()), dynamic_cast<ISolverSettings*>(_eulerSettings)->getLowerLimit());
125+
}
125126
_tZero=-1;
126-
if(_outputStp<1)
127-
{
128-
_outputStp=1;
129-
dynamic_cast<ISolverSettings*>(_eulerSettings)->setUpperLimit(hout);
130-
}
127+
131128
}
132129
}
133130
void Euler::setTimeOut(unsigned int time_out)

SimulationRuntime/cpp/Solver/Euler/FactoryExport.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ extern "C" ISolverSettings* createEulerSettings(IGlobalSettings* globalSettings)
1818
}
1919

2020
#elif defined(SIMSTER_BUILD)
21-
21+
#include <Modelica.h>
22+
#include <Policies/FactoryConfig.h>
2223
#include "Euler.h"
2324
#include "EulerSettings.h"
2425

0 commit comments

Comments
 (0)