28 double fCost, sal_Int32 nDate, sal_Int32 nFirstPer,
double fRestVal,
29 double fPer,
double fRate,
const css::uno::Any& rOB )
31 if( nDate > nFirstPer || fRate <= 0.0 || fRestVal > fCost ||
32 fCost <= 0.0 || fRestVal < 0 || fPer < 0 )
33 throw css::lang::IllegalArgumentException();
41 double fCost, sal_Int32 nDate, sal_Int32 nFirstPer,
double fRestVal,
42 double fPer,
double fRate,
const css::uno::Any& rOB )
44 if ( nDate > nFirstPer || fRate <= 0.0 || fRestVal > fCost ||
45 fCost <= 0.0 || fRestVal < 0 || fPer < 0 )
46 throw css::lang::IllegalArgumentException();
54 sal_Int32 nIssue, sal_Int32 , sal_Int32 nSettle,
double fRate,
55 const css::uno::Any &rVal, sal_Int32 nFreq,
const css::uno::Any& rOB )
59 if( fRate <= 0.0 || fVal <= 0.0 ||
isFreqInvalid(nFreq) || nIssue >= nSettle)
60 throw css::lang::IllegalArgumentException();
68 sal_Int32 nIssue, sal_Int32 nSettle,
double fRate,
const css::uno::Any& rVal,
const css::uno::Any& rOB )
72 if( fRate <= 0.0 || fVal <= 0.0 || nIssue >= nSettle )
73 throw css::lang::IllegalArgumentException();
81 sal_Int32 nSettle, sal_Int32 nMat,
double fInvest,
double fDisc,
const css::uno::Any& rOB )
83 if( fInvest <= 0.0 || fDisc <= 0.0 || nSettle >= nMat )
84 throw css::lang::IllegalArgumentException();
92 sal_Int32 nSettle, sal_Int32 nMat,
double fPrice,
double fRedemp,
const css::uno::Any& rOB )
94 if( fPrice <= 0.0 || fRedemp <= 0.0 || nSettle >= nMat )
95 throw css::lang::IllegalArgumentException();
102 sal_Int32 nSettle, sal_Int32 nMat,
double fCoup,
double fYield, sal_Int32 nFreq,
const css::uno::Any& rOB )
104 if( fCoup < 0.0 || fYield < 0.0 ||
isFreqInvalid(nFreq) || nSettle >= nMat )
105 throw css::lang::IllegalArgumentException();
114 if( nPeriods < 1 || fNominal <= 0.0 )
115 throw css::lang::IllegalArgumentException();
117 double fPeriods = nPeriods;
119 double fRet = pow( 1.0 + fNominal / fPeriods, fPeriods ) - 1.0;
125 sal_Int32 nStartPer, sal_Int32 nEndPer, sal_Int32 nPayType )
129 if( nStartPer < 1 || nEndPer < nStartPer || fRate <= 0.0 || nEndPer > nNumPeriods ||
130 fVal <= 0.0 || ( nPayType != 0 && nPayType != 1 ) )
131 throw css::lang::IllegalArgumentException();
133 fPmt =
GetPmt( fRate, nNumPeriods, fVal, 0.0, nPayType );
137 sal_uInt32 nStart = sal_uInt32( nStartPer );
138 sal_uInt32 nEnd = sal_uInt32( nEndPer );
143 fPpmt = fPmt + fVal * fRate;
150 for( sal_uInt32
i = nStart ;
i <= nEnd ;
i++ )
153 fPpmt += fPmt - (
GetFv( fRate,
double(
i - 2 ), fPmt, fVal, 1 ) - fPmt ) * fRate;
155 fPpmt += fPmt -
GetFv( fRate,
double(
i - 1 ), fPmt, fVal, 0 ) * fRate;
163 sal_Int32 nStartPer, sal_Int32 nEndPer, sal_Int32 nPayType )
167 if( nStartPer < 1 || nEndPer < nStartPer || fRate <= 0.0 || nEndPer > nNumPeriods ||
168 fVal <= 0.0 || ( nPayType != 0 && nPayType != 1 ) )
169 throw css::lang::IllegalArgumentException();
171 fPmt =
GetPmt( fRate, nNumPeriods, fVal, 0.0, nPayType );
175 sal_uInt32 nStart = sal_uInt32( nStartPer );
176 sal_uInt32 nEnd = sal_uInt32( nEndPer );
186 for( sal_uInt32
i = nStart ;
i <= nEnd ;
i++ )
189 fIpmt +=
GetFv( fRate,
double(
i - 2 ), fPmt, fVal, 1 ) - fPmt;
191 fIpmt +=
GetFv( fRate,
double(
i - 1 ), fPmt, fVal, 0 );
201 sal_Int32 nSettle, sal_Int32 nMat,
double fRate,
double fYield,
double fRedemp, sal_Int32 nFreq,
202 const css::uno::Any& rOB )
204 if( fYield < 0.0 || fRate < 0.0 || fRedemp <= 0.0 ||
isFreqInvalid(nFreq) || nSettle >= nMat )
205 throw css::lang::IllegalArgumentException();
213 sal_Int32 nSettle, sal_Int32 nMat,
double fDisc,
double fRedemp,
const css::uno::Any& rOB )
215 if( fDisc <= 0.0 || fRedemp <= 0.0 || nSettle >= nMat )
216 throw css::lang::IllegalArgumentException();
224 sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nIssue,
double fRate,
double fYield,
const css::uno::Any& rOB )
226 if( fRate < 0.0 || fYield < 0.0 || nSettle >= nMat )
227 throw css::lang::IllegalArgumentException();
232 double fIssMat =
GetYearFrac( nNullDate, nIssue, nMat, nBase );
233 double fIssSet =
GetYearFrac( nNullDate, nIssue, nSettle, nBase );
234 double fSetMat =
GetYearFrac( nNullDate, nSettle, nMat, nBase );
236 double fRet = 1.0 + fIssMat * fRate;
237 fRet /= 1.0 + fSetMat * fYield;
238 fRet -= fIssSet * fRate;
246 sal_Int32 nSettle, sal_Int32 nMat,
double fCoup,
double fYield, sal_Int32 nFreq,
const css::uno::Any& rOB )
249 throw css::lang::IllegalArgumentException();
252 fRet /= 1.0 + ( fYield / double( nFreq ) );
259 if( fRate <= 0.0 || nPeriods < 0 )
260 throw css::lang::IllegalArgumentException();
262 double fPeriods = nPeriods;
263 double fRet = ( pow( fRate + 1.0, 1.0 / fPeriods ) - 1.0 ) * fPeriods;
271 throw css::lang::IllegalArgumentException();
274 double fFrac = nFrac;
276 double fRet = modf( fDollarDec, &fInt );
280 fRet *= pow( 10.0, -ceil( log10( fFrac ) ) );
291 throw css::lang::IllegalArgumentException();
294 double fFrac = nFrac;
296 double fRet = modf( fDollarFrac, &fInt );
300 fRet *= pow( 10.0, ceil( log10( fFrac ) ) );
309 sal_Int32 nSettle, sal_Int32 nMat,
double fCoup,
double fPrice,
double fRedemp, sal_Int32 nFreq,
const css::uno::Any& rOB )
311 if( fCoup < 0.0 || fPrice <= 0.0 || fRedemp <= 0.0 ||
isFreqInvalid(nFreq) || nSettle >= nMat )
312 throw css::lang::IllegalArgumentException();
320 sal_Int32 nSettle, sal_Int32 nMat,
double fPrice,
double fRedemp,
const css::uno::Any& rOB )
322 if( fPrice <= 0.0 || fRedemp <= 0.0 || nSettle >= nMat )
323 throw css::lang::IllegalArgumentException();
327 double fRet = ( fRedemp / fPrice ) - 1.0;
335 sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nIssue,
double fRate,
double fPrice,
const css::uno::Any& rOB )
337 if( fPrice <= 0.0 || fRate < 0.0 || nSettle >= nMat || nSettle < nIssue)
338 throw css::lang::IllegalArgumentException();
346 sal_Int32 nSettle, sal_Int32 nMat,
double fDisc )
352 if( fDisc <= 0.0 || nSettle >= nMat || nDiff > 360 )
353 throw css::lang::IllegalArgumentException();
355 double fRet = ( 365 * fDisc ) / ( 360 - ( fDisc *
double( nDiff ) ) );
361 sal_Int32 nSettle, sal_Int32 nMat,
double fDisc )
363 if( fDisc <= 0.0 || nSettle > nMat )
364 throw css::lang::IllegalArgumentException();
368 double fFraction =
GetYearFrac( xOpt, nSettle, nMat, 0 );
371 throw css::lang::IllegalArgumentException();
373 double fRet = 100.0 * ( 1.0 - fDisc * fFraction );
378double SAL_CALL
AnalysisAddIn::getTbillyield(
const css::uno::Reference< css::beans::XPropertySet >& xOpt, sal_Int32 nSettle, sal_Int32 nMat,
double fPrice )
383 if( fPrice <= 0.0 || nSettle >= nMat || nDiff > 360 )
384 throw css::lang::IllegalArgumentException();
389 fRet /= double( nDiff );
401 sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nIssue, sal_Int32 nFirstCoup,
402 double fRate,
double fYield,
double fRedemp, sal_Int32 nFreq,
const css::uno::Any& rOB )
404 if( fRate < 0.0 || fYield < 0.0 ||
isFreqInvalid(nFreq) || nMat <= nFirstCoup || nFirstCoup <= nSettle || nSettle <= nIssue )
405 throw css::lang::IllegalArgumentException();
407 double fRet =
GetOddfprice(
GetNullDate( xOpt ), nSettle, nMat, nIssue, nFirstCoup, fRate, fYield, fRedemp, nFreq,
getDateMode( xOpt, rOB ) );
419 sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nIssue, sal_Int32 nFirstCoup,
420 double fRate,
double fPrice,
double fRedemp, sal_Int32 nFreq,
const css::uno::Any& rOB )
422 if( fRate < 0.0 || fPrice <= 0.0 ||
isFreqInvalid(nFreq) || nMat <= nFirstCoup || nFirstCoup <= nSettle || nSettle <= nIssue )
423 throw css::lang::IllegalArgumentException();
425 double fRet =
GetOddfyield(
GetNullDate( xOpt ), nSettle, nMat, nIssue, nFirstCoup, fRate, fPrice, fRedemp, nFreq,
433 sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nLastInterest,
434 double fRate,
double fYield,
double fRedemp, sal_Int32 nFreq,
const css::uno::Any& rOB )
436 if( fRate <= 0.0 || fYield < 0.0 || fRedemp <= 0.0 ||
isFreqInvalid(nFreq) || nMat <= nSettle || nSettle <= nLastInterest )
437 throw css::lang::IllegalArgumentException();
446 sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nLastInterest,
447 double fRate,
double fPrice,
double fRedemp, sal_Int32 nFreq,
const css::uno::Any& rOB )
449 if( fRate <= 0.0 || fPrice <= 0.0 || fRedemp <= 0.0 ||
isFreqInvalid(nFreq) || nMat <= nSettle || nSettle <= nLastInterest )
450 throw css::lang::IllegalArgumentException();
459#define V_(i) (rValues.Get(i))
460#define D_(i) (rDates.Get(i))
477 double r = fRate + 1.0;
478 double fResult =
V_(0);
480 fResult +=
V_(
i) / pow( r, (
D_(
i) - D_0) / 365.0 );
503 double r = fRate + 1.0;
504 double fResult = 0.0;
507 double E_i = (
D_(
i) - D_0) / 365.0;
508 fResult -= E_i *
V_(
i) / pow( r, E_i + 1.0 );
519 const css::uno::Reference< css::beans::XPropertySet >& xOpt,
const css::uno::Sequence< css::uno::Sequence< double > >& rValues,
const css::uno::Sequence< css::uno::Sequence< sal_Int32 > >& rDates,
const css::uno::Any& rGuessRate )
522 aValues.
Append( rValues );
526 throw css::lang::IllegalArgumentException();
530 if( fResultRate <= -1 )
531 throw css::lang::IllegalArgumentException();
534 static const double fMaxEps = 1e-10;
536 static const sal_Int32 nMaxIter = 50;
541 sal_Int32 nIterScan = 0;
542 bool bContLoop =
false;
543 bool bResultRateScanEnd =
false;
552 fResultRate = -0.99 + (nIterScan -1)* 0.01;
557 double fRateEps = fabs( fNewRate - fResultRate );
558 fResultRate = fNewRate;
559 bContLoop = (fRateEps > fMaxEps) && (fabs( fResultValue ) > fMaxEps);
561 while( bContLoop && (++nIter < nMaxIter) );
563 if ( std::isnan(fResultRate) || std::isinf(fResultRate)
564 ||std::isnan(fResultValue) || std::isinf(fResultValue))
568 bResultRateScanEnd = (nIterScan >= 200);
570 while(bContLoop && !bResultRateScanEnd);
573 throw css::lang::IllegalArgumentException();
579 double fRate,
const css::uno::Sequence< css::uno::Sequence< double > >& rValues,
const css::uno::Sequence< css::uno::Sequence< sal_Int32 > >& rDates )
584 aValList.
Append( rValues );
585 aDateList.
Append( rDates );
587 sal_uInt32 nNum = aValList.
Count();
589 if( nNum != aDateList.
Count() || nNum < 2 )
590 throw css::lang::IllegalArgumentException();
593 double fNull = aDateList.
Get( 0 );
596 for( sal_uInt32
i = 0 ;
i < nNum ;
i++ )
597 fRet += aValList.
Get(
i ) / ( pow( fRate, ( aDateList.
Get(
i ) - fNull ) / 365.0 ) );
604 sal_Int32 nSettle, sal_Int32 nMat,
double fInvest,
double fRedemp,
const css::uno::Any& rOB )
606 if( fInvest <= 0.0 || fRedemp <= 0.0 || nSettle >= nMat )
607 throw css::lang::IllegalArgumentException();
615 sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nFreq,
const css::uno::Any& rOB )
623 sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nFreq,
const css::uno::Any& rOB )
631 sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nFreq,
const css::uno::Any& rOB )
639 sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nFreq,
const css::uno::Any& rOB )
647 sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nFreq,
const css::uno::Any& rOB )
655 sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nFreq,
const css::uno::Any& rOB )
666 aSchedList.
Append( rSchedule );
668 for( sal_uInt32
i = 0;
i < aSchedList.
Count(); ++
i )
669 fPrinc *= 1.0 + aSchedList.
Get(
i);
bool isFreqInvalid(sal_Int32 nFreq)
double finiteOrThrow(double d)
virtual double SAL_CALL getAccrintm(const css::uno::Reference< css::beans::XPropertySet > &xOpt, sal_Int32 nIssue, sal_Int32 nSettle, double fRate, const css::uno::Any &rVal, const css::uno::Any &rOptBase) override
virtual double SAL_CALL getMduration(const css::uno::Reference< css::beans::XPropertySet > &xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fCoup, double fYield, sal_Int32 nFreq, const css::uno::Any &rOptBase) override
virtual double SAL_CALL getXnpv(double fRate, const css::uno::Sequence< css::uno::Sequence< double > > &rValues, const css::uno::Sequence< css::uno::Sequence< sal_Int32 > > &rDates) override
virtual double SAL_CALL getYielddisc(const css::uno::Reference< css::beans::XPropertySet > &xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fPrice, double fRedemp, const css::uno::Any &rOptBase) override
virtual double SAL_CALL getAmordegrc(const css::uno::Reference< css::beans::XPropertySet > &, double fCost, sal_Int32 nDate, sal_Int32 nFirstPer, double fRestVal, double fPer, double fRate, const css::uno::Any &rOptBase) override
virtual double SAL_CALL getCumprinc(double fRate, sal_Int32 nNumPeriods, double fVal, sal_Int32 nStartPer, sal_Int32 nEndPer, sal_Int32 nPayType) override
virtual double SAL_CALL getPricemat(const css::uno::Reference< css::beans::XPropertySet > &xOpt, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nIssue, double fRate, double fYield, const css::uno::Any &rOptBase) override
virtual double SAL_CALL getDollarfr(double fDollarDec, sal_Int32 nFrac) override
virtual double SAL_CALL getCoupnum(const css::uno::Reference< css::beans::XPropertySet > &xOpt, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nFreq, const css::uno::Any &rOptBase) override
virtual double SAL_CALL getFvschedule(double fPrinc, const css::uno::Sequence< css::uno::Sequence< double > > &rSchedule) override
virtual double SAL_CALL getAmorlinc(const css::uno::Reference< css::beans::XPropertySet > &, double fCost, sal_Int32 nDate, sal_Int32 nFirstPer, double fRestVal, double fPer, double fRate, const css::uno::Any &rOptBase) override
virtual double SAL_CALL getDollarde(double fDollarFrac, sal_Int32 nFrac) override
virtual double SAL_CALL getDuration(const css::uno::Reference< css::beans::XPropertySet > &xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fCoup, double fYield, sal_Int32 nFreq, const css::uno::Any &rOptBase) override
virtual double SAL_CALL getCoupncd(const css::uno::Reference< css::beans::XPropertySet > &xOpt, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nFreq, const css::uno::Any &rOptBase) override
virtual double SAL_CALL getPricedisc(const css::uno::Reference< css::beans::XPropertySet > &xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fDisc, double fRedemp, const css::uno::Any &rOptBase) override
virtual double SAL_CALL getYieldmat(const css::uno::Reference< css::beans::XPropertySet > &xOpt, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nIssue, double fRate, double fPrice, const css::uno::Any &rOptBase) override
virtual double SAL_CALL getReceived(const css::uno::Reference< css::beans::XPropertySet > &xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fInvest, double fDisc, const css::uno::Any &rOptBase) override
virtual double SAL_CALL getYield(const css::uno::Reference< css::beans::XPropertySet > &xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fCoup, double fPrice, double fRedemp, sal_Int32 nFreq, const css::uno::Any &rOptBase) override
virtual double SAL_CALL getCoupdaybs(const css::uno::Reference< css::beans::XPropertySet > &xOpt, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nFreq, const css::uno::Any &rOptBase) override
virtual double SAL_CALL getEffect(double fNominal, sal_Int32 nPeriods) override
virtual double SAL_CALL getOddfprice(const css::uno::Reference< css::beans::XPropertySet > &xOpt, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nIssue, sal_Int32 nFirstCoup, double fRate, double fYield, double fRedemp, sal_Int32 nFreq, const css::uno::Any &rOptBase) override
virtual double SAL_CALL getXirr(const css::uno::Reference< css::beans::XPropertySet > &xOpt, const css::uno::Sequence< css::uno::Sequence< double > > &rValues, const css::uno::Sequence< css::uno::Sequence< sal_Int32 > > &rDates, const css::uno::Any &rGuess) override
virtual double SAL_CALL getPrice(const css::uno::Reference< css::beans::XPropertySet > &xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fRate, double fYield, double fRedemp, sal_Int32 nFreq, const css::uno::Any &rOptBase) override
virtual double SAL_CALL getNominal(double fRate, sal_Int32 nPeriods) override
virtual double SAL_CALL getDisc(const css::uno::Reference< css::beans::XPropertySet > &xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fPrice, double fRedemp, const css::uno::Any &rOptBase) override
virtual double SAL_CALL getCouppcd(const css::uno::Reference< css::beans::XPropertySet > &xOpt, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nFreq, const css::uno::Any &rOptBase) override
virtual double SAL_CALL getAccrint(const css::uno::Reference< css::beans::XPropertySet > &xOpt, sal_Int32 nIssue, sal_Int32 nFirstInter, sal_Int32 nSettle, double fRate, const css::uno::Any &rVal, sal_Int32 nFreq, const css::uno::Any &rOptBase) override
virtual double SAL_CALL getOddlyield(const css::uno::Reference< css::beans::XPropertySet > &xOpt, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nLastInterest, double fRate, double fPrice, double fRedemp, sal_Int32 nFreq, const css::uno::Any &rOptBase) override
virtual double SAL_CALL getTbillprice(const css::uno::Reference< css::beans::XPropertySet > &xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fDisc) override
virtual double SAL_CALL getCoupdays(const css::uno::Reference< css::beans::XPropertySet > &xOpt, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nFreq, const css::uno::Any &rOptBase) override
virtual double SAL_CALL getCoupdaysnc(const css::uno::Reference< css::beans::XPropertySet > &xOpt, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nFreq, const css::uno::Any &rOptBase) override
virtual double SAL_CALL getIntrate(const css::uno::Reference< css::beans::XPropertySet > &xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fInvest, double fRedemp, const css::uno::Any &rOptBase) override
virtual double SAL_CALL getOddlprice(const css::uno::Reference< css::beans::XPropertySet > &xOpt, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nLastInterest, double fRate, double fYield, double fRedemp, sal_Int32 nFreq, const css::uno::Any &rOptBase) override
virtual double SAL_CALL getTbilleq(const css::uno::Reference< css::beans::XPropertySet > &xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fDisc) override
sca::analysis::ScaAnyConverter aAnyConv
sal_Int32 getDateMode(const css::uno::Reference< css::beans::XPropertySet > &xPropSet, const css::uno::Any &rAny)
Converts an Any to sal_Int32 in the range from 0 to 4 (date calculation mode).
virtual double SAL_CALL getTbillyield(const css::uno::Reference< css::beans::XPropertySet > &xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fPrice) override
virtual double SAL_CALL getCumipmt(double fRate, sal_Int32 nNumPeriods, double fVal, sal_Int32 nStartPer, sal_Int32 nEndPer, sal_Int32 nPayType) override
virtual double SAL_CALL getOddfyield(const css::uno::Reference< css::beans::XPropertySet > &xOpt, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nIssue, sal_Int32 nFirstCoup, double fRate, double fPrice, double fRedemp, sal_Int32 nFreq, const css::uno::Any &rOptBase) override
bool getDouble(double &rfResult, const css::uno::Any &rAny) const
Converts an Any to double (without initialization).
double Get(sal_uInt32 n) const
void Append(double fValue)
static double lcl_sca_XirrResult(const ScaDoubleList &rValues, const ScaDoubleList &rDates, double fRate)
Calculates the resulting amount for the passed interest rate and the given XIRR parameters.
static double lcl_sca_XirrResult_Deriv1(const ScaDoubleList &rValues, const ScaDoubleList &rDates, double fRate)
Calculates the first derivation of lcl_sca_XirrResult().
constexpr T & temporary(T &&x)
double GetOddfprice(sal_Int32, sal_Int32, sal_Int32, sal_Int32, sal_Int32, double, double, double, sal_Int32, sal_Int32)
double GetOddfyield(sal_Int32, sal_Int32, sal_Int32, sal_Int32, sal_Int32, double, double, double, sal_Int32, sal_Int32)
double GetPmt(double fRate, double fNper, double fPv, double fFv, sal_Int32 nPayType)
double GetCoupdaysnc(sal_Int32 nNullDate, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nFreq, sal_Int32 nBase)
double GetCouppcd(sal_Int32 nNullDate, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nFreq, sal_Int32 nBase)
double GetAmordegrc(sal_Int32 nNullDate, double fCost, sal_Int32 nDate, sal_Int32 nFirstPer, double fRestVal, double fPer, double fRate, sal_Int32 nBase)
double GetCoupnum(sal_Int32 nNullDate, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nFreq, sal_Int32 nBase)
double getPrice_(sal_Int32 nNullDate, sal_Int32 nSettle, sal_Int32 nMat, double fRate, double fYield, double fRedemp, sal_Int32 nFreq, sal_Int32 nBase)
double GetCoupdays(sal_Int32 nNullDate, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nFreq, sal_Int32 nBase)
double GetCoupdaybs(sal_Int32 nNullDate, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nFreq, sal_Int32 nBase)
double GetFv(double fRate, double fNper, double fPmt, double fPv, sal_Int32 nPayType)
double GetAmorlinc(sal_Int32 nNullDate, double fCost, sal_Int32 nDate, sal_Int32 nFirstPer, double fRestVal, double fPer, double fRate, sal_Int32 nBase)
double GetCoupncd(sal_Int32 nNullDate, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nFreq, sal_Int32 nBase)
const char GetDiffDate360[]
const char GetOddlyield[]
const char GetOddlprice[]
#define SAL_WNOUNREACHABLE_CODE_POP
#define SAL_WNOUNREACHABLE_CODE_PUSH