void TabulatorTet<Scalar,ArrayScalar,1>::tabulate( ArrayScalar &outputValues , const int deg , const ArrayScalar &z ) { const int np = z.dimension(0); const int card = outputValues.dimension(0); FieldContainer<Sacado::Fad::DFad<Scalar> > dZ( z.dimension(0) , z.dimension(1) ); for (int i=0;i<np;i++) { for (int j=0;j<3;j++) { dZ(i,j) = Sacado::Fad::DFad<Scalar>( z(i,j) ); dZ(i,j).diff(j,3); } } FieldContainer<Sacado::Fad::DFad<Scalar> > dResult(card,np); TabulatorTet<Sacado::Fad::DFad<Scalar>,FieldContainer<Sacado::Fad::DFad<Scalar> >,0>::tabulate( dResult , deg , dZ ); for (int i=0;i<card;i++) { for (int j=0;j<np;j++) { for (int k=0;k<3;k++) { outputValues(i,j,k) = dResult(i,j).dx(k); } } } return; }
void TabulatorTri<Scalar,ArrayScalar,derivOrder>::tabulate( ArrayScalar &outputValues , const int deg , const ArrayScalar &z ) { const int np = z.dimension(0); const int card = outputValues.dimension(0); FieldContainer<Sacado::Fad::DFad<Scalar> > dZ( z.dimension(0) , z.dimension(1) ); for (int i=0;i<np;i++) { for (int j=0;j<2;j++) { dZ(i,j) = Sacado::Fad::DFad<Scalar>( z(i,j) ); dZ(i,j).diff(j,2); } } FieldContainer<Sacado::Fad::DFad<Scalar> > dResult(card,np,derivOrder+1); TabulatorTri<Sacado::Fad::DFad<Scalar>,FieldContainer<Sacado::Fad::DFad<Scalar> >,derivOrder-1>::tabulate(dResult , deg , dZ ); for (int i=0;i<card;i++) { for (int j=0;j<np;j++) { outputValues(i,j,0) = dResult(i,j,0).dx(0); for (unsigned k=0;k<derivOrder;k++) { outputValues(i,j,k+1) = dResult(i,j,k).dx(1); } } } return; }
std::vector<double> DiffusionProcess::simulate1path(const std::vector<double> &dDates) const { std::size_t iNDates = dDates.size(); std::vector<double> dResult(iNDates, dX0_); std::tr1::normal_distribution<double> dist(0.0,1.0); double dOldValue = dX0_; for (std::size_t iDate = 1 ; iDate < iNDates ; ++iDate) { double t0 = dDates[iDate - 1], dt = dDates[iDate] - t0; dOldValue = expectation(t0, dOldValue, dt) + stdev(t0, dOldValue, dt) * dist(*m_eng); if (bFloorSimulation_ && dOldValue < dFloor_) { dResult[iDate] = dFloor_; if (bStartFromFloor_) { dOldValue = dFloor_; } } else if (bCapSimulation_ && dOldValue > dCap_) { dResult[iDate] = dCap_; if (bStartFromCap_) { dOldValue = dCap_; } } else { dResult[iDate] = dOldValue; } } return dResult; }
void CResizeImageSession::OnFileDownloaded (CDatum dFileDesc, CDatum dData) // OnFileDownloaded // // We have the original file. Now resize it, store it in our cache, and return // it to the caller. { // Resize the image. // Compose a fileDownloadDesc for the newly resized image. CDatum dResult(CDatum::typeStruct); dResult.SetElement(FIELD_FILE_DESC, dFileDesc); dResult.SetElement(FIELD_DATA, dData); // Store it in our cache m_Engine.GetCache().SetEntry(m_sCacheID, dResult); // Reply to original caller SendMessageReply(MSG_AEON_FILE_DOWNLOAD_DESC, dResult); }