29 |
|
|
30 |
extern "C" { |
extern "C" { |
31 |
#include "DataC.h" |
#include "DataC.h" |
32 |
|
#include <omp.h> |
33 |
} |
} |
34 |
|
|
35 |
#include "esysmpi.h" |
#include "esysmpi.h" |
37 |
#include <algorithm> |
#include <algorithm> |
38 |
#include <sstream> |
#include <sstream> |
39 |
|
|
|
|
|
40 |
#include <boost/shared_ptr.hpp> |
#include <boost/shared_ptr.hpp> |
41 |
#include <boost/python/object.hpp> |
#include <boost/python/object.hpp> |
42 |
#include <boost/python/tuple.hpp> |
#include <boost/python/tuple.hpp> |
1658 |
// // m_data=DataAbstract_ptr(t); |
// // m_data=DataAbstract_ptr(t); |
1659 |
// set_m_data(DataAbstract_ptr(t)); |
// set_m_data(DataAbstract_ptr(t)); |
1660 |
// } |
// } |
1661 |
|
|
1662 |
|
#ifdef _OPENMP |
1663 |
|
if (omp_in_parallel()) |
1664 |
|
{ |
1665 |
|
*((int*)0)=17; |
1666 |
|
throw DataException("Programming error. Please do not run exclusiveWrite() in multi-threaded sections."); |
1667 |
|
} |
1668 |
|
#endif |
1669 |
|
|
1670 |
if (isShared()) |
if (isShared()) |
1671 |
{ |
{ |
1672 |
DataAbstract* t=m_data->deepCopy(); |
DataAbstract* t=m_data->deepCopy(); |
1688 |
|
|
1689 |
friend class DataAbstract; // To allow calls to updateShareStatus |
friend class DataAbstract; // To allow calls to updateShareStatus |
1690 |
|
|
|
// public: |
|
|
// void JDebug() |
|
|
// { |
|
|
// std::cerr << "UC=" << m_data.use_count() << " O=" << m_data->m_owners.size() << std::endl; |
|
|
// for (int i=0;i<m_data->m_owners.size();++i) |
|
|
// std::cerr << m_data->m_owners[i] << " "; |
|
|
// std::cerr << std::endl; |
|
|
// } |
|
|
|
|
1691 |
}; |
}; |
1692 |
|
|
1693 |
} // end namespace escript |
} // end namespace escript |
2110 |
DataTypes::ShapeType shape1 = arg_1_Z.getDataPointShape(); |
DataTypes::ShapeType shape1 = arg_1_Z.getDataPointShape(); |
2111 |
int size0 = arg_0_Z.getDataPointSize(); |
int size0 = arg_0_Z.getDataPointSize(); |
2112 |
int size1 = arg_1_Z.getDataPointSize(); |
int size1 = arg_1_Z.getDataPointSize(); |
|
|
|
2113 |
// Declare output Data object |
// Declare output Data object |
2114 |
Data res; |
Data res; |
2115 |
|
|
2116 |
if (shape0 == shape1) { |
if (shape0 == shape1) { |
|
|
|
2117 |
if (arg_0_Z.isConstant() && arg_1_Z.isConstant()) { |
if (arg_0_Z.isConstant() && arg_1_Z.isConstant()) { |
2118 |
res = Data(0.0, shape0, arg_1_Z.getFunctionSpace()); // DataConstant output |
res = Data(0.0, shape0, arg_1_Z.getFunctionSpace()); // DataConstant output |
2119 |
const double *ptr_0 = &(arg_0_Z.getDataAtOffsetRO(0)); |
const double *ptr_0 = &(arg_0_Z.getDataAtOffsetRO(0)); |
2158 |
|
|
2159 |
} |
} |
2160 |
else if (arg_0_Z.isConstant() && arg_1_Z.isExpanded()) { |
else if (arg_0_Z.isConstant() && arg_1_Z.isExpanded()) { |
|
|
|
2161 |
res = Data(0.0, shape0, arg_1_Z.getFunctionSpace(),true); // DataExpanded output |
res = Data(0.0, shape0, arg_1_Z.getFunctionSpace(),true); // DataExpanded output |
2162 |
DataConstant* tmp_0=dynamic_cast<DataConstant*>(arg_0_Z.borrowData()); |
DataConstant* tmp_0=dynamic_cast<DataConstant*>(arg_0_Z.borrowData()); |
2163 |
DataExpanded* tmp_1=dynamic_cast<DataExpanded*>(arg_1_Z.borrowData()); |
DataExpanded* tmp_1=dynamic_cast<DataExpanded*>(arg_1_Z.borrowData()); |
2167 |
int numSamples_1 = arg_1_Z.getNumSamples(); |
int numSamples_1 = arg_1_Z.getNumSamples(); |
2168 |
int numDataPointsPerSample_1 = arg_1_Z.getNumDataPointsPerSample(); |
int numDataPointsPerSample_1 = arg_1_Z.getNumDataPointsPerSample(); |
2169 |
int offset_0 = tmp_0->getPointOffset(0,0); |
int offset_0 = tmp_0->getPointOffset(0,0); |
2170 |
|
res.requireWrite(); |
2171 |
#pragma omp parallel for private(sampleNo_1,dataPointNo_1) schedule(static) |
#pragma omp parallel for private(sampleNo_1,dataPointNo_1) schedule(static) |
2172 |
for (sampleNo_1 = 0; sampleNo_1 < numSamples_1; sampleNo_1++) { |
for (sampleNo_1 = 0; sampleNo_1 < numSamples_1; sampleNo_1++) { |
2173 |
for (dataPointNo_1 = 0; dataPointNo_1 < numDataPointsPerSample_1; dataPointNo_1++) { |
for (dataPointNo_1 = 0; dataPointNo_1 < numDataPointsPerSample_1; dataPointNo_1++) { |
2182 |
|
|
2183 |
} |
} |
2184 |
else if (arg_0_Z.isTagged() && arg_1_Z.isConstant()) { |
else if (arg_0_Z.isTagged() && arg_1_Z.isConstant()) { |
|
|
|
2185 |
// Borrow DataTagged input from Data object |
// Borrow DataTagged input from Data object |
2186 |
DataTagged* tmp_0=dynamic_cast<DataTagged*>(arg_0_Z.borrowData()); |
DataTagged* tmp_0=dynamic_cast<DataTagged*>(arg_0_Z.borrowData()); |
2187 |
|
|
2214 |
|
|
2215 |
} |
} |
2216 |
else if (arg_0_Z.isTagged() && arg_1_Z.isTagged()) { |
else if (arg_0_Z.isTagged() && arg_1_Z.isTagged()) { |
|
|
|
2217 |
// Borrow DataTagged input from Data object |
// Borrow DataTagged input from Data object |
2218 |
DataTagged* tmp_0=dynamic_cast<DataTagged*>(arg_0_Z.borrowData()); |
DataTagged* tmp_0=dynamic_cast<DataTagged*>(arg_0_Z.borrowData()); |
2219 |
|
|
2255 |
|
|
2256 |
} |
} |
2257 |
else if (arg_0_Z.isTagged() && arg_1_Z.isExpanded()) { |
else if (arg_0_Z.isTagged() && arg_1_Z.isExpanded()) { |
|
|
|
2258 |
// After finding a common function space above the two inputs have the same numSamples and num DPPS |
// After finding a common function space above the two inputs have the same numSamples and num DPPS |
2259 |
res = Data(0.0, shape0, arg_1_Z.getFunctionSpace(),true); // DataExpanded output |
res = Data(0.0, shape0, arg_1_Z.getFunctionSpace(),true); // DataExpanded output |
2260 |
DataTagged* tmp_0=dynamic_cast<DataTagged*>(arg_0_Z.borrowData()); |
DataTagged* tmp_0=dynamic_cast<DataTagged*>(arg_0_Z.borrowData()); |
2264 |
int sampleNo_0,dataPointNo_0; |
int sampleNo_0,dataPointNo_0; |
2265 |
int numSamples_0 = arg_0_Z.getNumSamples(); |
int numSamples_0 = arg_0_Z.getNumSamples(); |
2266 |
int numDataPointsPerSample_0 = arg_0_Z.getNumDataPointsPerSample(); |
int numDataPointsPerSample_0 = arg_0_Z.getNumDataPointsPerSample(); |
2267 |
|
res.requireWrite(); |
2268 |
#pragma omp parallel for private(sampleNo_0,dataPointNo_0) schedule(static) |
#pragma omp parallel for private(sampleNo_0,dataPointNo_0) schedule(static) |
2269 |
for (sampleNo_0 = 0; sampleNo_0 < numSamples_0; sampleNo_0++) { |
for (sampleNo_0 = 0; sampleNo_0 < numSamples_0; sampleNo_0++) { |
2270 |
int offset_0 = tmp_0->getPointOffset(sampleNo_0,0); // They're all the same, so just use #0 |
int offset_0 = tmp_0->getPointOffset(sampleNo_0,0); // They're all the same, so just use #0 |
2271 |
const double *ptr_0 = &(arg_0_Z.getDataAtOffsetRW(offset_0)); |
const double *ptr_0 = &(arg_0_Z.getDataAtOffsetRO(offset_0)); |
2272 |
for (dataPointNo_0 = 0; dataPointNo_0 < numDataPointsPerSample_0; dataPointNo_0++) { |
for (dataPointNo_0 = 0; dataPointNo_0 < numDataPointsPerSample_0; dataPointNo_0++) { |
2273 |
int offset_1 = tmp_1->getPointOffset(sampleNo_0,dataPointNo_0); |
int offset_1 = tmp_1->getPointOffset(sampleNo_0,dataPointNo_0); |
2274 |
int offset_2 = tmp_2->getPointOffset(sampleNo_0,dataPointNo_0); |
int offset_2 = tmp_2->getPointOffset(sampleNo_0,dataPointNo_0); |
2280 |
|
|
2281 |
} |
} |
2282 |
else if (arg_0_Z.isExpanded() && arg_1_Z.isConstant()) { |
else if (arg_0_Z.isExpanded() && arg_1_Z.isConstant()) { |
|
|
|
2283 |
res = Data(0.0, shape0, arg_1_Z.getFunctionSpace(),true); // DataExpanded output |
res = Data(0.0, shape0, arg_1_Z.getFunctionSpace(),true); // DataExpanded output |
2284 |
DataExpanded* tmp_0=dynamic_cast<DataExpanded*>(arg_0_Z.borrowData()); |
DataExpanded* tmp_0=dynamic_cast<DataExpanded*>(arg_0_Z.borrowData()); |
2285 |
DataConstant* tmp_1=dynamic_cast<DataConstant*>(arg_1_Z.borrowData()); |
DataConstant* tmp_1=dynamic_cast<DataConstant*>(arg_1_Z.borrowData()); |
2289 |
int numSamples_0 = arg_0_Z.getNumSamples(); |
int numSamples_0 = arg_0_Z.getNumSamples(); |
2290 |
int numDataPointsPerSample_0 = arg_0_Z.getNumDataPointsPerSample(); |
int numDataPointsPerSample_0 = arg_0_Z.getNumDataPointsPerSample(); |
2291 |
int offset_1 = tmp_1->getPointOffset(0,0); |
int offset_1 = tmp_1->getPointOffset(0,0); |
2292 |
|
res.requireWrite(); |
2293 |
#pragma omp parallel for private(sampleNo_0,dataPointNo_0) schedule(static) |
#pragma omp parallel for private(sampleNo_0,dataPointNo_0) schedule(static) |
2294 |
for (sampleNo_0 = 0; sampleNo_0 < numSamples_0; sampleNo_0++) { |
for (sampleNo_0 = 0; sampleNo_0 < numSamples_0; sampleNo_0++) { |
2295 |
for (dataPointNo_0 = 0; dataPointNo_0 < numDataPointsPerSample_0; dataPointNo_0++) { |
for (dataPointNo_0 = 0; dataPointNo_0 < numDataPointsPerSample_0; dataPointNo_0++) { |
2307 |
|
|
2308 |
} |
} |
2309 |
else if (arg_0_Z.isExpanded() && arg_1_Z.isTagged()) { |
else if (arg_0_Z.isExpanded() && arg_1_Z.isTagged()) { |
|
|
|
2310 |
// After finding a common function space above the two inputs have the same numSamples and num DPPS |
// After finding a common function space above the two inputs have the same numSamples and num DPPS |
2311 |
res = Data(0.0, shape0, arg_1_Z.getFunctionSpace(),true); // DataExpanded output |
res = Data(0.0, shape0, arg_1_Z.getFunctionSpace(),true); // DataExpanded output |
2312 |
DataExpanded* tmp_0=dynamic_cast<DataExpanded*>(arg_0_Z.borrowData()); |
DataExpanded* tmp_0=dynamic_cast<DataExpanded*>(arg_0_Z.borrowData()); |
2316 |
int sampleNo_0,dataPointNo_0; |
int sampleNo_0,dataPointNo_0; |
2317 |
int numSamples_0 = arg_0_Z.getNumSamples(); |
int numSamples_0 = arg_0_Z.getNumSamples(); |
2318 |
int numDataPointsPerSample_0 = arg_0_Z.getNumDataPointsPerSample(); |
int numDataPointsPerSample_0 = arg_0_Z.getNumDataPointsPerSample(); |
2319 |
|
res.requireWrite(); |
2320 |
#pragma omp parallel for private(sampleNo_0,dataPointNo_0) schedule(static) |
#pragma omp parallel for private(sampleNo_0,dataPointNo_0) schedule(static) |
2321 |
for (sampleNo_0 = 0; sampleNo_0 < numSamples_0; sampleNo_0++) { |
for (sampleNo_0 = 0; sampleNo_0 < numSamples_0; sampleNo_0++) { |
2322 |
int offset_1 = tmp_1->getPointOffset(sampleNo_0,0); |
int offset_1 = tmp_1->getPointOffset(sampleNo_0,0); |
2332 |
|
|
2333 |
} |
} |
2334 |
else if (arg_0_Z.isExpanded() && arg_1_Z.isExpanded()) { |
else if (arg_0_Z.isExpanded() && arg_1_Z.isExpanded()) { |
|
|
|
2335 |
// After finding a common function space above the two inputs have the same numSamples and num DPPS |
// After finding a common function space above the two inputs have the same numSamples and num DPPS |
2336 |
res = Data(0.0, shape0, arg_1_Z.getFunctionSpace(),true); // DataExpanded output |
res = Data(0.0, shape0, arg_1_Z.getFunctionSpace(),true); // DataExpanded output |
2337 |
DataExpanded* tmp_0=dynamic_cast<DataExpanded*>(arg_0_Z.borrowData()); |
DataExpanded* tmp_0=dynamic_cast<DataExpanded*>(arg_0_Z.borrowData()); |
2341 |
int sampleNo_0,dataPointNo_0; |
int sampleNo_0,dataPointNo_0; |
2342 |
int numSamples_0 = arg_0_Z.getNumSamples(); |
int numSamples_0 = arg_0_Z.getNumSamples(); |
2343 |
int numDataPointsPerSample_0 = arg_0_Z.getNumDataPointsPerSample(); |
int numDataPointsPerSample_0 = arg_0_Z.getNumDataPointsPerSample(); |
2344 |
|
res.requireWrite(); |
2345 |
#pragma omp parallel for private(sampleNo_0,dataPointNo_0) schedule(static) |
#pragma omp parallel for private(sampleNo_0,dataPointNo_0) schedule(static) |
2346 |
for (sampleNo_0 = 0; sampleNo_0 < numSamples_0; sampleNo_0++) { |
for (sampleNo_0 = 0; sampleNo_0 < numSamples_0; sampleNo_0++) { |
2347 |
for (dataPointNo_0 = 0; dataPointNo_0 < numDataPointsPerSample_0; dataPointNo_0++) { |
for (dataPointNo_0 = 0; dataPointNo_0 < numDataPointsPerSample_0; dataPointNo_0++) { |
2361 |
} |
} |
2362 |
|
|
2363 |
} else if (0 == rank0) { |
} else if (0 == rank0) { |
|
|
|
2364 |
if (arg_0_Z.isConstant() && arg_1_Z.isConstant()) { |
if (arg_0_Z.isConstant() && arg_1_Z.isConstant()) { |
2365 |
res = Data(0.0, shape1, arg_1_Z.getFunctionSpace()); // DataConstant output |
res = Data(0.0, shape1, arg_1_Z.getFunctionSpace()); // DataConstant output |
2366 |
const double *ptr_0 = &(arg_0_Z.getDataAtOffsetRO(0)); |
const double *ptr_0 = &(arg_0_Z.getDataAtOffsetRO(0)); |
2412 |
int numSamples_1 = arg_1_Z.getNumSamples(); |
int numSamples_1 = arg_1_Z.getNumSamples(); |
2413 |
int numDataPointsPerSample_1 = arg_1_Z.getNumDataPointsPerSample(); |
int numDataPointsPerSample_1 = arg_1_Z.getNumDataPointsPerSample(); |
2414 |
int offset_0 = tmp_0->getPointOffset(0,0); |
int offset_0 = tmp_0->getPointOffset(0,0); |
2415 |
|
res.requireWrite(); |
2416 |
#pragma omp parallel for private(sampleNo_1,dataPointNo_1) schedule(static) |
#pragma omp parallel for private(sampleNo_1,dataPointNo_1) schedule(static) |
2417 |
for (sampleNo_1 = 0; sampleNo_1 < numSamples_1; sampleNo_1++) { |
for (sampleNo_1 = 0; sampleNo_1 < numSamples_1; sampleNo_1++) { |
2418 |
for (dataPointNo_1 = 0; dataPointNo_1 < numDataPointsPerSample_1; dataPointNo_1++) { |
for (dataPointNo_1 = 0; dataPointNo_1 < numDataPointsPerSample_1; dataPointNo_1++) { |
2523 |
int sampleNo_0,dataPointNo_0; |
int sampleNo_0,dataPointNo_0; |
2524 |
int numSamples_0 = arg_0_Z.getNumSamples(); |
int numSamples_0 = arg_0_Z.getNumSamples(); |
2525 |
int numDataPointsPerSample_0 = arg_0_Z.getNumDataPointsPerSample(); |
int numDataPointsPerSample_0 = arg_0_Z.getNumDataPointsPerSample(); |
2526 |
|
res.requireWrite(); |
2527 |
#pragma omp parallel for private(sampleNo_0,dataPointNo_0) schedule(static) |
#pragma omp parallel for private(sampleNo_0,dataPointNo_0) schedule(static) |
2528 |
for (sampleNo_0 = 0; sampleNo_0 < numSamples_0; sampleNo_0++) { |
for (sampleNo_0 = 0; sampleNo_0 < numSamples_0; sampleNo_0++) { |
2529 |
int offset_0 = tmp_0->getPointOffset(sampleNo_0,0); // They're all the same, so just use #0 |
int offset_0 = tmp_0->getPointOffset(sampleNo_0,0); // They're all the same, so just use #0 |
2539 |
|
|
2540 |
} |
} |
2541 |
else if (arg_0_Z.isExpanded() && arg_1_Z.isConstant()) { |
else if (arg_0_Z.isExpanded() && arg_1_Z.isConstant()) { |
|
|
|
2542 |
res = Data(0.0, shape1, arg_1_Z.getFunctionSpace(),true); // DataExpanded output |
res = Data(0.0, shape1, arg_1_Z.getFunctionSpace(),true); // DataExpanded output |
2543 |
DataExpanded* tmp_0=dynamic_cast<DataExpanded*>(arg_0_Z.borrowData()); |
DataExpanded* tmp_0=dynamic_cast<DataExpanded*>(arg_0_Z.borrowData()); |
2544 |
DataConstant* tmp_1=dynamic_cast<DataConstant*>(arg_1_Z.borrowData()); |
DataConstant* tmp_1=dynamic_cast<DataConstant*>(arg_1_Z.borrowData()); |
2548 |
int numSamples_0 = arg_0_Z.getNumSamples(); |
int numSamples_0 = arg_0_Z.getNumSamples(); |
2549 |
int numDataPointsPerSample_0 = arg_0_Z.getNumDataPointsPerSample(); |
int numDataPointsPerSample_0 = arg_0_Z.getNumDataPointsPerSample(); |
2550 |
int offset_1 = tmp_1->getPointOffset(0,0); |
int offset_1 = tmp_1->getPointOffset(0,0); |
2551 |
|
res.requireWrite(); |
2552 |
#pragma omp parallel for private(sampleNo_0,dataPointNo_0) schedule(static) |
#pragma omp parallel for private(sampleNo_0,dataPointNo_0) schedule(static) |
2553 |
for (sampleNo_0 = 0; sampleNo_0 < numSamples_0; sampleNo_0++) { |
for (sampleNo_0 = 0; sampleNo_0 < numSamples_0; sampleNo_0++) { |
2554 |
for (dataPointNo_0 = 0; dataPointNo_0 < numDataPointsPerSample_0; dataPointNo_0++) { |
for (dataPointNo_0 = 0; dataPointNo_0 < numDataPointsPerSample_0; dataPointNo_0++) { |
2574 |
int sampleNo_0,dataPointNo_0; |
int sampleNo_0,dataPointNo_0; |
2575 |
int numSamples_0 = arg_0_Z.getNumSamples(); |
int numSamples_0 = arg_0_Z.getNumSamples(); |
2576 |
int numDataPointsPerSample_0 = arg_0_Z.getNumDataPointsPerSample(); |
int numDataPointsPerSample_0 = arg_0_Z.getNumDataPointsPerSample(); |
2577 |
|
res.requireWrite(); |
2578 |
#pragma omp parallel for private(sampleNo_0,dataPointNo_0) schedule(static) |
#pragma omp parallel for private(sampleNo_0,dataPointNo_0) schedule(static) |
2579 |
for (sampleNo_0 = 0; sampleNo_0 < numSamples_0; sampleNo_0++) { |
for (sampleNo_0 = 0; sampleNo_0 < numSamples_0; sampleNo_0++) { |
2580 |
int offset_1 = tmp_1->getPointOffset(sampleNo_0,0); |
int offset_1 = tmp_1->getPointOffset(sampleNo_0,0); |
2600 |
int sampleNo_0,dataPointNo_0; |
int sampleNo_0,dataPointNo_0; |
2601 |
int numSamples_0 = arg_0_Z.getNumSamples(); |
int numSamples_0 = arg_0_Z.getNumSamples(); |
2602 |
int numDataPointsPerSample_0 = arg_0_Z.getNumDataPointsPerSample(); |
int numDataPointsPerSample_0 = arg_0_Z.getNumDataPointsPerSample(); |
2603 |
|
res.requireWrite(); |
2604 |
#pragma omp parallel for private(sampleNo_0,dataPointNo_0) schedule(static) |
#pragma omp parallel for private(sampleNo_0,dataPointNo_0) schedule(static) |
2605 |
for (sampleNo_0 = 0; sampleNo_0 < numSamples_0; sampleNo_0++) { |
for (sampleNo_0 = 0; sampleNo_0 < numSamples_0; sampleNo_0++) { |
2606 |
for (dataPointNo_0 = 0; dataPointNo_0 < numDataPointsPerSample_0; dataPointNo_0++) { |
for (dataPointNo_0 = 0; dataPointNo_0 < numDataPointsPerSample_0; dataPointNo_0++) { |
2620 |
} |
} |
2621 |
|
|
2622 |
} else if (0 == rank1) { |
} else if (0 == rank1) { |
|
|
|
2623 |
if (arg_0_Z.isConstant() && arg_1_Z.isConstant()) { |
if (arg_0_Z.isConstant() && arg_1_Z.isConstant()) { |
2624 |
res = Data(0.0, shape0, arg_1_Z.getFunctionSpace()); // DataConstant output |
res = Data(0.0, shape0, arg_1_Z.getFunctionSpace()); // DataConstant output |
2625 |
const double *ptr_0 = &(arg_0_Z.getDataAtOffsetRO(0)); |
const double *ptr_0 = &(arg_0_Z.getDataAtOffsetRO(0)); |
2671 |
int numSamples_1 = arg_1_Z.getNumSamples(); |
int numSamples_1 = arg_1_Z.getNumSamples(); |
2672 |
int numDataPointsPerSample_1 = arg_1_Z.getNumDataPointsPerSample(); |
int numDataPointsPerSample_1 = arg_1_Z.getNumDataPointsPerSample(); |
2673 |
int offset_0 = tmp_0->getPointOffset(0,0); |
int offset_0 = tmp_0->getPointOffset(0,0); |
2674 |
|
res.requireWrite(); |
2675 |
#pragma omp parallel for private(sampleNo_1,dataPointNo_1) schedule(static) |
#pragma omp parallel for private(sampleNo_1,dataPointNo_1) schedule(static) |
2676 |
for (sampleNo_1 = 0; sampleNo_1 < numSamples_1; sampleNo_1++) { |
for (sampleNo_1 = 0; sampleNo_1 < numSamples_1; sampleNo_1++) { |
2677 |
for (dataPointNo_1 = 0; dataPointNo_1 < numDataPointsPerSample_1; dataPointNo_1++) { |
for (dataPointNo_1 = 0; dataPointNo_1 < numDataPointsPerSample_1; dataPointNo_1++) { |
2779 |
int sampleNo_0,dataPointNo_0; |
int sampleNo_0,dataPointNo_0; |
2780 |
int numSamples_0 = arg_0_Z.getNumSamples(); |
int numSamples_0 = arg_0_Z.getNumSamples(); |
2781 |
int numDataPointsPerSample_0 = arg_0_Z.getNumDataPointsPerSample(); |
int numDataPointsPerSample_0 = arg_0_Z.getNumDataPointsPerSample(); |
2782 |
|
res.requireWrite(); |
2783 |
#pragma omp parallel for private(sampleNo_0,dataPointNo_0) schedule(static) |
#pragma omp parallel for private(sampleNo_0,dataPointNo_0) schedule(static) |
2784 |
for (sampleNo_0 = 0; sampleNo_0 < numSamples_0; sampleNo_0++) { |
for (sampleNo_0 = 0; sampleNo_0 < numSamples_0; sampleNo_0++) { |
2785 |
int offset_0 = tmp_0->getPointOffset(sampleNo_0,0); // They're all the same, so just use #0 |
int offset_0 = tmp_0->getPointOffset(sampleNo_0,0); // They're all the same, so just use #0 |
2795 |
|
|
2796 |
} |
} |
2797 |
else if (arg_0_Z.isExpanded() && arg_1_Z.isConstant()) { |
else if (arg_0_Z.isExpanded() && arg_1_Z.isConstant()) { |
|
|
|
2798 |
res = Data(0.0, shape0, arg_1_Z.getFunctionSpace(),true); // DataExpanded output |
res = Data(0.0, shape0, arg_1_Z.getFunctionSpace(),true); // DataExpanded output |
2799 |
DataExpanded* tmp_0=dynamic_cast<DataExpanded*>(arg_0_Z.borrowData()); |
DataExpanded* tmp_0=dynamic_cast<DataExpanded*>(arg_0_Z.borrowData()); |
2800 |
DataConstant* tmp_1=dynamic_cast<DataConstant*>(arg_1_Z.borrowData()); |
DataConstant* tmp_1=dynamic_cast<DataConstant*>(arg_1_Z.borrowData()); |
2804 |
int numSamples_0 = arg_0_Z.getNumSamples(); |
int numSamples_0 = arg_0_Z.getNumSamples(); |
2805 |
int numDataPointsPerSample_0 = arg_0_Z.getNumDataPointsPerSample(); |
int numDataPointsPerSample_0 = arg_0_Z.getNumDataPointsPerSample(); |
2806 |
int offset_1 = tmp_1->getPointOffset(0,0); |
int offset_1 = tmp_1->getPointOffset(0,0); |
2807 |
|
res.requireWrite(); |
2808 |
#pragma omp parallel for private(sampleNo_0,dataPointNo_0) schedule(static) |
#pragma omp parallel for private(sampleNo_0,dataPointNo_0) schedule(static) |
2809 |
for (sampleNo_0 = 0; sampleNo_0 < numSamples_0; sampleNo_0++) { |
for (sampleNo_0 = 0; sampleNo_0 < numSamples_0; sampleNo_0++) { |
2810 |
for (dataPointNo_0 = 0; dataPointNo_0 < numDataPointsPerSample_0; dataPointNo_0++) { |
for (dataPointNo_0 = 0; dataPointNo_0 < numDataPointsPerSample_0; dataPointNo_0++) { |
2830 |
int sampleNo_0,dataPointNo_0; |
int sampleNo_0,dataPointNo_0; |
2831 |
int numSamples_0 = arg_0_Z.getNumSamples(); |
int numSamples_0 = arg_0_Z.getNumSamples(); |
2832 |
int numDataPointsPerSample_0 = arg_0_Z.getNumDataPointsPerSample(); |
int numDataPointsPerSample_0 = arg_0_Z.getNumDataPointsPerSample(); |
2833 |
|
res.requireWrite(); |
2834 |
#pragma omp parallel for private(sampleNo_0,dataPointNo_0) schedule(static) |
#pragma omp parallel for private(sampleNo_0,dataPointNo_0) schedule(static) |
2835 |
for (sampleNo_0 = 0; sampleNo_0 < numSamples_0; sampleNo_0++) { |
for (sampleNo_0 = 0; sampleNo_0 < numSamples_0; sampleNo_0++) { |
2836 |
int offset_1 = tmp_1->getPointOffset(sampleNo_0,0); |
int offset_1 = tmp_1->getPointOffset(sampleNo_0,0); |
2856 |
int sampleNo_0,dataPointNo_0; |
int sampleNo_0,dataPointNo_0; |
2857 |
int numSamples_0 = arg_0_Z.getNumSamples(); |
int numSamples_0 = arg_0_Z.getNumSamples(); |
2858 |
int numDataPointsPerSample_0 = arg_0_Z.getNumDataPointsPerSample(); |
int numDataPointsPerSample_0 = arg_0_Z.getNumDataPointsPerSample(); |
2859 |
|
res.requireWrite(); |
2860 |
#pragma omp parallel for private(sampleNo_0,dataPointNo_0) schedule(static) |
#pragma omp parallel for private(sampleNo_0,dataPointNo_0) schedule(static) |
2861 |
for (sampleNo_0 = 0; sampleNo_0 < numSamples_0; sampleNo_0++) { |
for (sampleNo_0 = 0; sampleNo_0 < numSamples_0; sampleNo_0++) { |
2862 |
for (dataPointNo_0 = 0; dataPointNo_0 < numDataPointsPerSample_0; dataPointNo_0++) { |
for (dataPointNo_0 = 0; dataPointNo_0 < numDataPointsPerSample_0; dataPointNo_0++) { |