1*cdf0e10cSrcweir /************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir 28*cdf0e10cSrcweir #ifndef ANALYSIS_HXX 29*cdf0e10cSrcweir #define ANALYSIS_HXX 30*cdf0e10cSrcweir 31*cdf0e10cSrcweir 32*cdf0e10cSrcweir #include <com/sun/star/sheet/XAddIn.hpp> 33*cdf0e10cSrcweir #include <com/sun/star/lang/XServiceName.hpp> 34*cdf0e10cSrcweir #include <com/sun/star/lang/XServiceInfo.hpp> 35*cdf0e10cSrcweir #include <com/sun/star/lang/XMultiServiceFactory.hpp> 36*cdf0e10cSrcweir #include <com/sun/star/sheet/addin/XAnalysis.hpp> 37*cdf0e10cSrcweir #include <com/sun/star/sheet/LocalizedName.hpp> 38*cdf0e10cSrcweir #include <com/sun/star/sheet/XCompatibilityNames.hpp> 39*cdf0e10cSrcweir #include <com/sun/star/sheet/NoConvergenceException.hpp> 40*cdf0e10cSrcweir 41*cdf0e10cSrcweir #include <cppuhelper/implbase5.hxx> // helper for implementations 42*cdf0e10cSrcweir 43*cdf0e10cSrcweir #include "analysisdefs.hxx" 44*cdf0e10cSrcweir #include "analysishelper.hxx" 45*cdf0e10cSrcweir 46*cdf0e10cSrcweir 47*cdf0e10cSrcweir class FuncData; 48*cdf0e10cSrcweir class FuncDataList; 49*cdf0e10cSrcweir class ConvertDataList; 50*cdf0e10cSrcweir class ResMgr; 51*cdf0e10cSrcweir 52*cdf0e10cSrcweir 53*cdf0e10cSrcweir REF( CSS::uno::XInterface ) SAL_CALL AnalysisAddIn_CreateInstance( const REF( CSS::lang::XMultiServiceFactory )& ); 54*cdf0e10cSrcweir 55*cdf0e10cSrcweir 56*cdf0e10cSrcweir class AnalysisAddIn : public cppu::WeakImplHelper5< 57*cdf0e10cSrcweir CSS::sheet::XAddIn, 58*cdf0e10cSrcweir CSS::sheet::XCompatibilityNames, 59*cdf0e10cSrcweir CSS::sheet::addin::XAnalysis, 60*cdf0e10cSrcweir CSS::lang::XServiceName, 61*cdf0e10cSrcweir CSS::lang::XServiceInfo > 62*cdf0e10cSrcweir { 63*cdf0e10cSrcweir private: 64*cdf0e10cSrcweir CSS::lang::Locale aFuncLoc; 65*cdf0e10cSrcweir CSS::lang::Locale* pDefLocales; 66*cdf0e10cSrcweir FuncDataList* pFD; 67*cdf0e10cSrcweir double* pFactDoubles; 68*cdf0e10cSrcweir ConvertDataList* pCDL; 69*cdf0e10cSrcweir ResMgr* pResMgr; 70*cdf0e10cSrcweir 71*cdf0e10cSrcweir ScaAnyConverter aAnyConv; 72*cdf0e10cSrcweir 73*cdf0e10cSrcweir ResMgr& GetResMgr( void ) THROWDEF_RTE; 74*cdf0e10cSrcweir STRING GetDisplFuncStr( sal_uInt16 nFuncNum ) THROWDEF_RTE; 75*cdf0e10cSrcweir STRING GetFuncDescrStr( sal_uInt16 nResId, sal_uInt16 nStrIndex ) THROWDEF_RTE; 76*cdf0e10cSrcweir void InitDefLocales( void ); 77*cdf0e10cSrcweir inline const CSS::lang::Locale& GetLocale( sal_uInt32 nInd ); 78*cdf0e10cSrcweir void InitData( void ); 79*cdf0e10cSrcweir 80*cdf0e10cSrcweir /// Converts an Any to sal_Int32 in the range from 0 to 4 (date calculation mode). 81*cdf0e10cSrcweir sal_Int32 getDateMode( 82*cdf0e10cSrcweir const CSS::uno::Reference< CSS::beans::XPropertySet >& xPropSet, 83*cdf0e10cSrcweir const CSS::uno::Any& rAny ) 84*cdf0e10cSrcweir throw( CSS::uno::RuntimeException, CSS::lang::IllegalArgumentException ); 85*cdf0e10cSrcweir 86*cdf0e10cSrcweir public: 87*cdf0e10cSrcweir AnalysisAddIn( 88*cdf0e10cSrcweir const CSS::uno::Reference< CSS::lang::XMultiServiceFactory >& xServiceFact ); 89*cdf0e10cSrcweir virtual ~AnalysisAddIn(); 90*cdf0e10cSrcweir 91*cdf0e10cSrcweir double FactDouble( sal_Int32 nNum ) THROWDEF_RTE_IAE; 92*cdf0e10cSrcweir 93*cdf0e10cSrcweir static STRING getImplementationName_Static(); 94*cdf0e10cSrcweir static SEQ( STRING ) getSupportedServiceNames_Static(); 95*cdf0e10cSrcweir 96*cdf0e10cSrcweir // XAddIn 97*cdf0e10cSrcweir virtual STRING SAL_CALL getProgrammaticFuntionName( const STRING& aDisplayName ) THROWDEF_RTE; 98*cdf0e10cSrcweir virtual STRING SAL_CALL getDisplayFunctionName( const STRING& aProgrammaticName ) THROWDEF_RTE; 99*cdf0e10cSrcweir virtual STRING SAL_CALL getFunctionDescription( const STRING& aProgrammaticName ) THROWDEF_RTE; 100*cdf0e10cSrcweir virtual STRING SAL_CALL getDisplayArgumentName( const STRING& aProgrammaticFunctionName, sal_Int32 nArgument ) THROWDEF_RTE; 101*cdf0e10cSrcweir virtual STRING SAL_CALL getArgumentDescription( const STRING& aProgrammaticFunctionName, sal_Int32 nArgument ) THROWDEF_RTE; 102*cdf0e10cSrcweir virtual STRING SAL_CALL getProgrammaticCategoryName( const STRING& aProgrammaticFunctionName ) THROWDEF_RTE; 103*cdf0e10cSrcweir virtual STRING SAL_CALL getDisplayCategoryName( const STRING& aProgrammaticFunctionName ) THROWDEF_RTE; 104*cdf0e10cSrcweir 105*cdf0e10cSrcweir // XCompatibilityNames 106*cdf0e10cSrcweir virtual SEQofLocName SAL_CALL getCompatibilityNames( const STRING& aProgrammaticName ) THROWDEF_RTE; 107*cdf0e10cSrcweir 108*cdf0e10cSrcweir // XLocalizable 109*cdf0e10cSrcweir virtual void SAL_CALL setLocale( const CSS::lang::Locale& eLocale ) THROWDEF_RTE; 110*cdf0e10cSrcweir virtual CSS::lang::Locale SAL_CALL getLocale( ) THROWDEF_RTE; 111*cdf0e10cSrcweir 112*cdf0e10cSrcweir // XServiceName 113*cdf0e10cSrcweir virtual STRING SAL_CALL getServiceName( ) THROWDEF_RTE; 114*cdf0e10cSrcweir 115*cdf0e10cSrcweir // XServiceInfo 116*cdf0e10cSrcweir virtual STRING SAL_CALL getImplementationName( ) THROWDEF_RTE; 117*cdf0e10cSrcweir virtual sal_Bool SAL_CALL supportsService( const STRING& ServiceName ) THROWDEF_RTE; 118*cdf0e10cSrcweir virtual SEQ( STRING ) SAL_CALL getSupportedServiceNames( ) THROWDEF_RTE; 119*cdf0e10cSrcweir 120*cdf0e10cSrcweir // methods from own interfaces start here 121*cdf0e10cSrcweir 122*cdf0e10cSrcweir // XAnalysis 123*cdf0e10cSrcweir // virtual double SAL_CALL get_Test( constREFXPS&, sal_Int32 nMode, double f1, double f2, double f3 ) THROWDEF_RTE; 124*cdf0e10cSrcweir 125*cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getWorkday( constREFXPS&, sal_Int32 nStartDate, sal_Int32 nDays, const ANY& aHDay ) THROWDEF_RTE_IAE; 126*cdf0e10cSrcweir virtual double SAL_CALL getYearfrac( constREFXPS&, sal_Int32 nStartDate, sal_Int32 nEndDate, const ANY& aMode ) THROWDEF_RTE_IAE; 127*cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getEdate( constREFXPS&, sal_Int32 nStartDate, sal_Int32 nMonths ) THROWDEF_RTE_IAE; 128*cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getWeeknum( constREFXPS&, sal_Int32 nStartDate, sal_Int32 nMode ) THROWDEF_RTE_IAE; 129*cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getEomonth( constREFXPS&, sal_Int32 nStartDate, sal_Int32 nMonths ) THROWDEF_RTE_IAE; 130*cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getNetworkdays( constREFXPS&, sal_Int32 nStartDate, sal_Int32 nEndDate, const ANY& aHDay ) THROWDEF_RTE_IAE; 131*cdf0e10cSrcweir 132*cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getIseven( sal_Int32 nVal ) THROWDEF_RTE_IAE; 133*cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getIsodd( sal_Int32 nVal ) THROWDEF_RTE_IAE; 134*cdf0e10cSrcweir 135*cdf0e10cSrcweir virtual double SAL_CALL getMultinomial( constREFXPS& xOpt, const SEQSEQ( sal_Int32 )& aVLst, const SEQ( com::sun::star::uno::Any )& aOptVLst ) THROWDEF_RTE_IAE; 136*cdf0e10cSrcweir virtual double SAL_CALL getSeriessum( double fX, double fN, double fM, const SEQSEQ( double )& aCoeffList ) THROWDEF_RTE_IAE; 137*cdf0e10cSrcweir virtual double SAL_CALL getQuotient( double fNum, double fDenum ) THROWDEF_RTE_IAE; 138*cdf0e10cSrcweir 139*cdf0e10cSrcweir virtual double SAL_CALL getMround( double fNum, double fMult ) THROWDEF_RTE_IAE; 140*cdf0e10cSrcweir virtual double SAL_CALL getSqrtpi( double fNum ) THROWDEF_RTE_IAE; 141*cdf0e10cSrcweir 142*cdf0e10cSrcweir virtual double SAL_CALL getRandbetween( double fMin, double fMax ) THROWDEF_RTE_IAE; 143*cdf0e10cSrcweir 144*cdf0e10cSrcweir virtual double SAL_CALL getGcd( constREFXPS& xOpt, const SEQSEQ( double )& aVLst, const SEQ( ANY )& aOptVLst ) THROWDEF_RTE_IAE; 145*cdf0e10cSrcweir virtual double SAL_CALL getLcm( constREFXPS& xOpt, const SEQSEQ( double )& aVLst, const SEQ( ANY )& aOptVLst ) THROWDEF_RTE_IAE; 146*cdf0e10cSrcweir 147*cdf0e10cSrcweir virtual double SAL_CALL getBesseli( double fNum, sal_Int32 nOrder ) THROWDEF_RTE_IAE_NCE; 148*cdf0e10cSrcweir virtual double SAL_CALL getBesselj( double fNum, sal_Int32 nOrder ) THROWDEF_RTE_IAE_NCE; 149*cdf0e10cSrcweir virtual double SAL_CALL getBesselk( double fNum, sal_Int32 nOrder ) THROWDEF_RTE_IAE_NCE; 150*cdf0e10cSrcweir virtual double SAL_CALL getBessely( double fNum, sal_Int32 nOrder ) THROWDEF_RTE_IAE_NCE; 151*cdf0e10cSrcweir 152*cdf0e10cSrcweir virtual STRING SAL_CALL getBin2Oct( constREFXPS& xOpt, const STRING& aNum, const ANY& rPlaces ) THROWDEF_RTE_IAE; 153*cdf0e10cSrcweir virtual double SAL_CALL getBin2Dec( const STRING& aNum ) THROWDEF_RTE_IAE; 154*cdf0e10cSrcweir virtual STRING SAL_CALL getBin2Hex( constREFXPS& xOpt, const STRING& aNum, const ANY& rPlaces ) THROWDEF_RTE_IAE; 155*cdf0e10cSrcweir 156*cdf0e10cSrcweir virtual STRING SAL_CALL getOct2Bin( constREFXPS& xOpt, const STRING& aNum, const ANY& rPlaces ) THROWDEF_RTE_IAE; 157*cdf0e10cSrcweir virtual double SAL_CALL getOct2Dec( const STRING& aNum ) THROWDEF_RTE_IAE; 158*cdf0e10cSrcweir virtual STRING SAL_CALL getOct2Hex( constREFXPS& xOpt, const STRING& aNum, const ANY& rPlaces ) THROWDEF_RTE_IAE; 159*cdf0e10cSrcweir 160*cdf0e10cSrcweir virtual STRING SAL_CALL getDec2Bin( constREFXPS& xOpt, sal_Int32 fNum, const ANY& rPlaces ) THROWDEF_RTE_IAE; 161*cdf0e10cSrcweir virtual STRING SAL_CALL getDec2Oct( constREFXPS& xOpt, sal_Int32 fNum, const ANY& rPlaces ) THROWDEF_RTE_IAE; 162*cdf0e10cSrcweir virtual STRING SAL_CALL getDec2Hex( constREFXPS& xOpt, double fNum, const ANY& rPlaces ) THROWDEF_RTE_IAE; 163*cdf0e10cSrcweir 164*cdf0e10cSrcweir virtual STRING SAL_CALL getHex2Bin( constREFXPS& xOpt, const STRING& aNum, const ANY& rPlaces ) THROWDEF_RTE_IAE; 165*cdf0e10cSrcweir virtual double SAL_CALL getHex2Dec( const STRING& aNum ) THROWDEF_RTE_IAE; 166*cdf0e10cSrcweir virtual STRING SAL_CALL getHex2Oct( constREFXPS& xOpt, const STRING& aNum, const ANY& rPlaces ) THROWDEF_RTE_IAE; 167*cdf0e10cSrcweir 168*cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getDelta( constREFXPS& xOpt, double fNum1, const ANY& rNum2 ) THROWDEF_RTE_IAE; 169*cdf0e10cSrcweir 170*cdf0e10cSrcweir virtual double SAL_CALL getErf( constREFXPS& xOpt, double fLowerLimit, const ANY& rUpperLimit ) THROWDEF_RTE_IAE; 171*cdf0e10cSrcweir virtual double SAL_CALL getErfc( double fLowerLimit ) THROWDEF_RTE_IAE; 172*cdf0e10cSrcweir 173*cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getGestep( constREFXPS& xOpt, double fNum, const ANY& rStep ) THROWDEF_RTE_IAE; 174*cdf0e10cSrcweir 175*cdf0e10cSrcweir virtual double SAL_CALL getFactdouble( sal_Int32 nNum ) THROWDEF_RTE_IAE; 176*cdf0e10cSrcweir 177*cdf0e10cSrcweir virtual double SAL_CALL getImabs( const STRING& aNum ) THROWDEF_RTE_IAE; 178*cdf0e10cSrcweir virtual double SAL_CALL getImaginary( const STRING& aNum ) THROWDEF_RTE_IAE; 179*cdf0e10cSrcweir virtual STRING SAL_CALL getImpower( const STRING& aNum, double fPower ) THROWDEF_RTE_IAE; 180*cdf0e10cSrcweir virtual double SAL_CALL getImargument( const STRING& aNum ) THROWDEF_RTE_IAE; 181*cdf0e10cSrcweir virtual STRING SAL_CALL getImcos( const STRING& aNum ) THROWDEF_RTE_IAE; 182*cdf0e10cSrcweir virtual STRING SAL_CALL getImdiv( const STRING& aDivident, const STRING& aDivisor ) THROWDEF_RTE_IAE; 183*cdf0e10cSrcweir virtual STRING SAL_CALL getImexp( const STRING& aNum ) THROWDEF_RTE_IAE; 184*cdf0e10cSrcweir virtual STRING SAL_CALL getImconjugate( const STRING& aNum ) THROWDEF_RTE_IAE; 185*cdf0e10cSrcweir virtual STRING SAL_CALL getImln( const STRING& aNum ) THROWDEF_RTE_IAE; 186*cdf0e10cSrcweir virtual STRING SAL_CALL getImlog10( const STRING& aNum ) THROWDEF_RTE_IAE; 187*cdf0e10cSrcweir virtual STRING SAL_CALL getImlog2( const STRING& aNum ) THROWDEF_RTE_IAE; 188*cdf0e10cSrcweir virtual STRING SAL_CALL getImproduct( constREFXPS& xOpt, const SEQSEQ( STRING )& aNum1, const SEQ_ANY& aNumList ) THROWDEF_RTE_IAE; 189*cdf0e10cSrcweir virtual double SAL_CALL getImreal( const STRING& aNum ) THROWDEF_RTE_IAE; 190*cdf0e10cSrcweir virtual STRING SAL_CALL getImsin( const STRING& aNum ) THROWDEF_RTE_IAE; 191*cdf0e10cSrcweir virtual STRING SAL_CALL getImsub( const STRING& aNum1, const STRING& aNum2 ) THROWDEF_RTE_IAE; 192*cdf0e10cSrcweir virtual STRING SAL_CALL getImsum( constREFXPS& xOpt, const SEQSEQ( STRING )& aNum1, const SEQ( ANY )& aFollowingPars ) THROWDEF_RTE_IAE; 193*cdf0e10cSrcweir 194*cdf0e10cSrcweir virtual STRING SAL_CALL getImsqrt( const STRING& aNum ) THROWDEF_RTE_IAE; 195*cdf0e10cSrcweir virtual STRING SAL_CALL getComplex( double fReal, double fImaginary, const ANY& rSuffix ) THROWDEF_RTE_IAE; 196*cdf0e10cSrcweir 197*cdf0e10cSrcweir virtual double SAL_CALL getConvert( double fVal, const STRING& aFromUnit, const STRING& aToUnit ) THROWDEF_RTE_IAE; 198*cdf0e10cSrcweir 199*cdf0e10cSrcweir virtual double SAL_CALL getAmordegrc( constREFXPS&, double fCost, sal_Int32 nDate, sal_Int32 nFirstPer, double fRestVal, double fPer, double fRate, const ANY& rOptBase ) THROWDEF_RTE_IAE; 200*cdf0e10cSrcweir virtual double SAL_CALL getAmorlinc( constREFXPS&, double fCost, sal_Int32 nDate, sal_Int32 nFirstPer, double fRestVal, double fPer, double fRate, const ANY& rOptBase ) THROWDEF_RTE_IAE; 201*cdf0e10cSrcweir virtual double SAL_CALL getAccrint( constREFXPS& xOpt, sal_Int32 nIssue, sal_Int32 nFirstInter, sal_Int32 nSettle, double fRate, const ANY& rVal, sal_Int32 nFreq, const ANY& rOptBase ) THROWDEF_RTE_IAE; 202*cdf0e10cSrcweir virtual double SAL_CALL getAccrintm( constREFXPS& xOpt, sal_Int32 nIssue, sal_Int32 nSettle, double fRate, const ANY& rVal, const ANY& rOptBase ) THROWDEF_RTE_IAE; 203*cdf0e10cSrcweir virtual double SAL_CALL getReceived( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fInvest, double fDisc, const ANY& rOptBase ) THROWDEF_RTE_IAE; 204*cdf0e10cSrcweir virtual double SAL_CALL getDisc( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fPrice, double fRedemp, const ANY& rOptBase ) THROWDEF_RTE_IAE; 205*cdf0e10cSrcweir virtual double SAL_CALL getDuration( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fCoup, double fYield, sal_Int32 nFreq, const ANY& rOptBase ) THROWDEF_RTE_IAE; 206*cdf0e10cSrcweir virtual double SAL_CALL getEffect( double fNominal, sal_Int32 nPeriods ) THROWDEF_RTE_IAE; 207*cdf0e10cSrcweir virtual double SAL_CALL getCumprinc( double fRate, sal_Int32 nNumPeriods, double fVal, sal_Int32 nStartPer, sal_Int32 nEndPer, sal_Int32 nPayType ) THROWDEF_RTE_IAE; 208*cdf0e10cSrcweir virtual double SAL_CALL getCumipmt( double fRate, sal_Int32 nNumPeriods, double fVal, sal_Int32 nStartPer, sal_Int32 nEndPer, sal_Int32 nPayType ) THROWDEF_RTE_IAE; 209*cdf0e10cSrcweir virtual double SAL_CALL getPrice( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fRate, double fYield, double fRedemp, sal_Int32 nFreq, const ANY& rOptBase ) THROWDEF_RTE_IAE; 210*cdf0e10cSrcweir virtual double SAL_CALL getPricedisc( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fDisc, double fRedemp, const ANY& rOptBase ) THROWDEF_RTE_IAE; 211*cdf0e10cSrcweir virtual double SAL_CALL getPricemat( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nIssue, double fRate, double fYield, const ANY& rOptBase ) THROWDEF_RTE_IAE; 212*cdf0e10cSrcweir virtual double SAL_CALL getMduration( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fCoup, double fYield, sal_Int32 nFreq, const ANY& rOptBase ) THROWDEF_RTE_IAE; 213*cdf0e10cSrcweir virtual double SAL_CALL getNominal( double fRate, sal_Int32 nPeriods ) THROWDEF_RTE_IAE; 214*cdf0e10cSrcweir virtual double SAL_CALL getDollarfr( double fDollarDec, sal_Int32 nFrac ) THROWDEF_RTE_IAE; 215*cdf0e10cSrcweir virtual double SAL_CALL getDollarde( double fDollarFrac, sal_Int32 nFrac ) THROWDEF_RTE_IAE; 216*cdf0e10cSrcweir virtual double SAL_CALL getYield( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fCoup, double fPrice, double fRedemp, sal_Int32 nFreq, const ANY& rOptBase ) THROWDEF_RTE_IAE; 217*cdf0e10cSrcweir virtual double SAL_CALL getYielddisc( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fPrice, double fRedemp, const ANY& rOptBase ) THROWDEF_RTE_IAE; 218*cdf0e10cSrcweir virtual double SAL_CALL getYieldmat( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nIssue, double fRate, double fPrice, const ANY& rOptBase ) THROWDEF_RTE_IAE; 219*cdf0e10cSrcweir virtual double SAL_CALL getTbilleq( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fDisc ) THROWDEF_RTE_IAE; 220*cdf0e10cSrcweir virtual double SAL_CALL getTbillprice( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fDisc ) THROWDEF_RTE_IAE; 221*cdf0e10cSrcweir virtual double SAL_CALL getTbillyield( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fPrice ) THROWDEF_RTE_IAE; 222*cdf0e10cSrcweir virtual double SAL_CALL getOddfprice( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nIssue, sal_Int32 nFirstCoup, double fRate, double fYield, double fRedemp, sal_Int32 nFreq, const ANY& rOptBase ) THROWDEF_RTE_IAE; 223*cdf0e10cSrcweir virtual double SAL_CALL getOddfyield( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nIssue, sal_Int32 nFirstCoup, double fRate, double fPrice, double fRedemp, sal_Int32 nFreq, const ANY& rOptBase ) THROWDEF_RTE_IAE; 224*cdf0e10cSrcweir virtual double SAL_CALL getOddlprice( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nLastInterest, double fRate, double fYield, double fRedemp, sal_Int32 nFreq, const ANY& rOptBase ) THROWDEF_RTE_IAE; 225*cdf0e10cSrcweir virtual double SAL_CALL getOddlyield( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nLastInterest, double fRate, double fPrice, double fRedemp, sal_Int32 nFreq, const ANY& rOptBase) THROWDEF_RTE_IAE; 226*cdf0e10cSrcweir virtual double SAL_CALL getXirr( constREFXPS& xOpt, const SEQSEQ( double )& rValues, const SEQSEQ( sal_Int32 )& rDates, const ANY& rGuess ) THROWDEF_RTE_IAE; 227*cdf0e10cSrcweir virtual double SAL_CALL getXnpv( double fRate, const SEQSEQ( double )& rValues, const SEQSEQ( sal_Int32 )& rDates ) THROWDEF_RTE_IAE; 228*cdf0e10cSrcweir virtual double SAL_CALL getIntrate( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fInvest, double fRedemp, const ANY& rOptBase ) THROWDEF_RTE_IAE; 229*cdf0e10cSrcweir virtual double SAL_CALL getCoupncd( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nFreq, const ANY& rOptBase ) THROWDEF_RTE_IAE; 230*cdf0e10cSrcweir virtual double SAL_CALL getCoupdays( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nFreq, const ANY& rOptBase ) THROWDEF_RTE_IAE; 231*cdf0e10cSrcweir virtual double SAL_CALL getCoupdaysnc( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nFreq, const ANY& rOptBase ) THROWDEF_RTE_IAE; 232*cdf0e10cSrcweir virtual double SAL_CALL getCoupdaybs( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nFreq, const ANY& rOptBase ) THROWDEF_RTE_IAE; 233*cdf0e10cSrcweir virtual double SAL_CALL getCouppcd( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nFreq, const ANY& rOptBase ) THROWDEF_RTE_IAE; 234*cdf0e10cSrcweir virtual double SAL_CALL getCoupnum( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nFreq, const ANY& rOptBase ) THROWDEF_RTE_IAE; 235*cdf0e10cSrcweir virtual double SAL_CALL getFvschedule( double fPrinc, const SEQSEQ( double )& rSchedule ) THROWDEF_RTE_IAE; 236*cdf0e10cSrcweir }; 237*cdf0e10cSrcweir 238*cdf0e10cSrcweir //------------------------------------------------------------------ 239*cdf0e10cSrcweir 240*cdf0e10cSrcweir #endif 241*cdf0e10cSrcweir 242