CellMatrix::CellMatrix(const MyArray& data):pimpl(new defaultCellMatrixImpl(data.size(),1)) { for(size_t i(0); i < data.size(); ++i) { (*pimpl)(i,0) = data[i]; } }
void Test1_1() { const int size(20); MyArray<int, size> array; array.fill(4); for (size_t i = 0; i < array.size(); i++) { cout << " In array at element: " << i << " is value: " << array[i] << endl; array[i] = i; cout << " In array at element: " << i << " is value: " << array[i] << endl; } auto* ptr = array.begin(); while (ptr != array.end()) { cout << "value: " << (*ptr) << endl; *ptr = 5; ptr++; } }
// The Loop Convert Transform doesn't detect free functions begin()/end() and // so fails to transform these cases which it should. void f() { MyArray Arr; for (unsigned i = 0, e = Arr.size(); i < e; ++i) { } MyContainer<int> C; for (int *I = begin(C), *E = end(C); I != E; ++I) { } }
// The Loop Convert Transform doesn't detect free functions begin()/end() and // so fails to transform these cases which it should. void f() { MyArray Arr; for (unsigned I = 0, E = Arr.size(); I < E; ++I) { } MyContainer<int> C; for (int *I = begin(C), *E = end(C); I != E; ++I) { } }
// The Loop Convert Transform doesn't detect free functions begin()/end() and // so fails to transform these cases which it should. void f() { MyArray Arr; for (unsigned i = 0, e = Arr.size(); i < e; ++i) {} // CHECK: for (auto & elem : Arr) {} MyContainer<int> C; for (int *I = begin(C), *E = end(C); I != E; ++I) {} // CHECK: for (auto & elem : C) {} }
MyArray Stats(const MyArray& data ) { double total=0.0; double totalsq=0.0; if (data.size() < 2) THROW_XLW("At least data points are needed"); for (unsigned long i=0; i < data.size(); i++) { total+=data[i]; totalsq+=data[i]*data[i]; } MyArray values(2); values[0] = total/data.size(); values[1] = totalsq/data.size() - values[0] *values[0] ; return values; }
xlw::CellMatrix::CellMatrix(const MyArray& data) : Cells(data.size()), Rows(data.size()), Columns(1) { for (size_t i=0; i < data.size(); ++i) Cells[i].push_back(CellValue(data[i])); }
CellMatrix Schedule_GetData(MG_XLObjectPtr& aSched, const string& aData) { MG_Schedule& vSched = dynamic_cast<MG_Schedule&>(*aSched); MyArray vArray; if (aData == "ResetDate") { const vector<MG_Date>& vDts = vSched.GetResetDates(); vArray.resize(vDts.size()); for(size_t i=0; i<vArray.size(); ++i) vArray[i] = FromJulianDayToXLDate(vDts[i].GetJulianDay()); } else if (aData == "StartDate") { const vector<MG_Date>& vDts = vSched.GetIntStartDates(); vArray.resize(vDts.size()); for(size_t i=0; i<vArray.size(); ++i) vArray[i] = FromJulianDayToXLDate(vDts[i].GetJulianDay()); } else if (aData == "EndDate") { const vector<MG_Date>& vDts = vSched.GetIntEndDates(); vArray.resize(vDts.size()); for(size_t i=0; i<vArray.size(); ++i) vArray[i] = FromJulianDayToXLDate(vDts[i].GetJulianDay()); } else if (aData == "PayDate") { const vector<MG_Date>& vDts = vSched.GetPayDates(); vArray.resize(vDts.size()); for(size_t i=0; i<vArray.size(); ++i) vArray[i] = FromJulianDayToXLDate(vDts[i].GetJulianDay()); } else if (aData == "InterestDays") { const vector<unsigned int>& vDays = vSched.GetIntDays(); vArray.resize(vDays.size()); for(size_t i=0; i<vArray.size(); ++i) vArray[i] = vDays[i]; } else if (aData == "InterestTerms") vArray = vSched.GetIntTerms(); else if (aData == "FwdStartDate") { const vector<MG_Date>& vDts = vSched.GetFwdRateStartDates(); vArray.resize(vDts.size()); for(size_t i=0; i<vArray.size(); ++i) vArray[i] = FromJulianDayToXLDate(vDts[i].GetJulianDay()); } else if (aData == "FwdEndDate") { const vector<MG_Date>& vDts = vSched.GetFwdRateEndDates(); vArray.resize(vDts.size()); for(size_t i=0; i<vArray.size(); ++i) vArray[i] = FromJulianDayToXLDate(vDts[i].GetJulianDay()); } CellMatrix vInfos(vArray); return vInfos; }