Re: Compilation problems with SUN CC

Posted by Andreas Spengler-2 on
URL: http://quantlib.414.s1.nabble.com/Compilation-problems-with-SUN-CC-tp12581p12586.html

Also in ql/models/marketmodels/models


*** capletcoterminalalphacalibration.cpp.orig   Fri Feb 20 15:11:46 2009
--- capletcoterminalalphacalibration.cpp        Fri Feb 20 15:12:00 2009
***************
*** 128,134 ****
          std::vector<std::vector<Volatility> > newVols;
          std::vector<Volatility> theseNewVols(numberOfRates);
          std::vector<Volatility> firstRateVols(numberOfRates);
!         firstRateVols[0] = sqrt(displacedSwapVariances[0]->variances()[0]);
          std::vector<Volatility> secondRateVols(numberOfRates);
          std::vector<Real> correlations(numberOfRates);
          newVols.push_back(firstRateVols);
--- 128,134 ----
          std::vector<std::vector<Volatility> > newVols;
          std::vector<Volatility> theseNewVols(numberOfRates);
          std::vector<Volatility> firstRateVols(numberOfRates);
!         firstRateVols[0] =
std::sqrt(displacedSwapVariances[0]->variances()[0]);
          std::vector<Volatility> secondRateVols(numberOfRates);
          std::vector<Real> correlations(numberOfRates);
          newVols.push_back(firstRateVols);
***************
*** 146,152 ****
              const std::vector<Real>& var =
                                      displacedSwapVariances[i+1]->variances();
              for (Size j =0; j < i+2; ++j)
!                 secondRateVols[j] = sqrt(var[j]);

              for (Size k=0; k < i+1; k++) {
                  Real correlation=0.0;
--- 146,152 ----
              const std::vector<Real>& var =
                                      displacedSwapVariances[i+1]->variances();
              for (Size j =0; j < i+2; ++j)
!                 secondRateVols[j] = std::sqrt(var[j]);

              for (Size k=0; k < i+1; k++) {
                  Real correlation=0.0;



----------------------------------------------------------------------------
*** capletcoterminalperiodic.cpp.orig   Fri Feb 20 15:09:51 2009
--- capletcoterminalperiodic.cpp        Fri Feb 20 15:10:05 2009
***************
*** 151,157 ****

              for (Size i=0; i < numberBigRates; ++i)
              {
!                 modelSwaptionVols[i] =
sqrt(swaptionTotCovariance[i][i]/periodsmm->evolution().rateTimes()[i]);
                  Real scale = marketSwaptionVols[i]/modelSwaptionVols[i];
                  scalingFactors[i] *= scale; // since applied to vol

--- 151,157 ----

              for (Size i=0; i < numberBigRates; ++i)
              {
!                 modelSwaptionVols[i] =
std::sqrt(swaptionTotCovariance[i][i]/periodsmm->evolution().rateTimes()[i]);
                  Real scale = marketSwaptionVols[i]/modelSwaptionVols[i];
                  scalingFactors[i] *= scale; // since applied to vol

***************
*** 162,168 ****
              for (Size i=0; i < numberBigRates; ++i)
                  modelSwaptionVolsMatrix[iterationsDone][i] =
modelSwaptionVols[i];

!             periodSwaptionRmsError =
sqrt(totalSwaptionError/numberBigRates);
              errorImprovement = previousError -periodSwaptionRmsError;
              previousError = periodSwaptionRmsError;
          }
--- 162,168 ----
              for (Size i=0; i < numberBigRates; ++i)
                  modelSwaptionVolsMatrix[iterationsDone][i] =
modelSwaptionVols[i];

!             periodSwaptionRmsError =
std::sqrt(totalSwaptionError/numberBigRates);
              errorImprovement = previousError -periodSwaptionRmsError;
              previousError = periodSwaptionRmsError;
          }


---------------------------------------------------------------------------
*** capletcoterminalswaptioncalibration.cpp.orig        Fri Feb 20
15:07:52 2009
--- capletcoterminalswaptioncalibration.cpp     Fri Feb 20 15:08:29 2009
***************
*** 134,140 ****
              for (Size j=0; j<numberOfRates; ++j)
                  for (Size k=0; k < CovarianceSwapPseudos[i].columns();
++k)
                      CovarianceSwapPseudos[i][j][k] *=
!                             sqrt(swapTimeInhomogeneousVariances[i][j]);

              CovarianceSwapMarginalCovs[i] = CovarianceSwapPseudos[i] *
                                      transpose(CovarianceSwapPseudos[i]);
--- 134,140 ----
              for (Size j=0; j<numberOfRates; ++j)
                  for (Size k=0; k < CovarianceSwapPseudos[i].columns();
++k)
                      CovarianceSwapPseudos[i][j][k] *=
!                            
std::sqrt(swapTimeInhomogeneousVariances[i][j]);

              CovarianceSwapMarginalCovs[i] = CovarianceSwapPseudos[i] *
                                      transpose(CovarianceSwapPseudos[i]);
***************
*** 162,168 ****
                  for (Size k=0; k<numberOfFactors; ++k)
                      correlation += thisPseudo[i-1][k]*thisPseudo[i][k];
                  almostTotCovariance[i] += correlation *
!                     sqrt(swapTimeInhomogeneousVariances[j][i] *
                      swapTimeInhomogeneousVariances[j][i-1]);
              }
              if (i>0) {
--- 162,168 ----
                  for (Size k=0; k<numberOfFactors; ++k)
                      correlation += thisPseudo[i-1][k]*thisPseudo[i][k];
                  almostTotCovariance[i] += correlation *
!                     std::sqrt(swapTimeInhomogeneousVariances[j][i] *
                      swapTimeInhomogeneousVariances[j][i-1]);
              }
              if (i>0) {
***************
*** 171,177 ****
                  for (Size k=0; k<numberOfFactors; ++k)
                      correlation += thisPseudo[i-1][k]*thisPseudo[i][k];
                  leftCovariance[i] = correlation *
!                     sqrt(swapTimeInhomogeneousVariances[j][i] *
                      swapTimeInhomogeneousVariances[j][i-1]);
              }
          }
--- 171,177 ----
                  for (Size k=0; k<numberOfFactors; ++k)
                      correlation += thisPseudo[i-1][k]*thisPseudo[i][k];
                  leftCovariance[i] = correlation *
!                     std::sqrt(swapTimeInhomogeneousVariances[j][i] *
                      swapTimeInhomogeneousVariances[j][i-1]);
              }
          }
***************
*** 260,272 ****
                  // pick up the minimum vol for the caplet
                  root = minimum;
              } else if (lowestRoot) {
!                 root = (-linearPart-sqrt(disc))/(2.0*quadraticPart);
              } else {
                  if (minimum>1.0)
!                     root = (-linearPart-sqrt(disc))/(2.0*quadraticPart);
                  else {
                      rightUsed = true;
!                     root = (-linearPart+sqrt(disc))/(2.0*quadraticPart);
                  }
              }

--- 260,272 ----
                  // pick up the minimum vol for the caplet
                  root = minimum;
              } else if (lowestRoot) {
!                 root = (-linearPart-std::sqrt(disc))/(2.0*quadraticPart);
              } else {
                  if (minimum>1.0)
!                     root =
(-linearPart-std::sqrt(disc))/(2.0*quadraticPart);
                  else {
                      rightUsed = true;
!                     root =
(-linearPart+std::sqrt(disc))/(2.0*quadraticPart);
                  }
              }

***************
*** 274,280 ****
              Real varianceToFind = totVariance[i]-varianceFound;
              Real mult =
varianceToFind/swapTimeInhomogeneousVariances[i][i];
              if (mult<=0.0 && rightUsed) {
!                 root = (-linearPart-sqrt(disc))/(2.0*quadraticPart);
                  varianceFound = root*root*almostTotVariance[i];
                  varianceToFind = totVariance[i]-varianceFound;
                  mult = varianceToFind/swapTimeInhomogeneousVariances[i][i];
--- 274,280 ----
              Real varianceToFind = totVariance[i]-varianceFound;
              Real mult =
varianceToFind/swapTimeInhomogeneousVariances[i][i];
              if (mult<=0.0 && rightUsed) {
!                 root = (-linearPart-std::sqrt(disc))/(2.0*quadraticPart);
                  varianceFound = root*root*almostTotVariance[i];
                  varianceToFind = totVariance[i]-varianceFound;
                  mult = varianceToFind/swapTimeInhomogeneousVariances[i][i];




------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev