xref: /AOO41X/main/scaddins/source/analysis/analysis.hxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
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