xref: /AOO41X/main/scaddins/source/analysis/analysis.hxx (revision f6a6b25f1885e86d6053da7fca75a43e7c94e309)
1*f6a6b25fSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*f6a6b25fSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*f6a6b25fSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*f6a6b25fSAndrew Rist  * distributed with this work for additional information
6*f6a6b25fSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*f6a6b25fSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*f6a6b25fSAndrew Rist  * "License"); you may not use this file except in compliance
9*f6a6b25fSAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
11*f6a6b25fSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
13*f6a6b25fSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*f6a6b25fSAndrew Rist  * software distributed under the License is distributed on an
15*f6a6b25fSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*f6a6b25fSAndrew Rist  * KIND, either express or implied.  See the License for the
17*f6a6b25fSAndrew Rist  * specific language governing permissions and limitations
18*f6a6b25fSAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
20*f6a6b25fSAndrew Rist  *************************************************************/
21*f6a6b25fSAndrew Rist 
22*f6a6b25fSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef ANALYSIS_HXX
25cdf0e10cSrcweir #define ANALYSIS_HXX
26cdf0e10cSrcweir 
27cdf0e10cSrcweir 
28cdf0e10cSrcweir #include <com/sun/star/sheet/XAddIn.hpp>
29cdf0e10cSrcweir #include <com/sun/star/lang/XServiceName.hpp>
30cdf0e10cSrcweir #include <com/sun/star/lang/XServiceInfo.hpp>
31cdf0e10cSrcweir #include <com/sun/star/lang/XMultiServiceFactory.hpp>
32cdf0e10cSrcweir #include <com/sun/star/sheet/addin/XAnalysis.hpp>
33cdf0e10cSrcweir #include <com/sun/star/sheet/LocalizedName.hpp>
34cdf0e10cSrcweir #include <com/sun/star/sheet/XCompatibilityNames.hpp>
35cdf0e10cSrcweir #include <com/sun/star/sheet/NoConvergenceException.hpp>
36cdf0e10cSrcweir 
37cdf0e10cSrcweir #include <cppuhelper/implbase5.hxx>	// helper for implementations
38cdf0e10cSrcweir 
39cdf0e10cSrcweir #include "analysisdefs.hxx"
40cdf0e10cSrcweir #include "analysishelper.hxx"
41cdf0e10cSrcweir 
42cdf0e10cSrcweir 
43cdf0e10cSrcweir class FuncData;
44cdf0e10cSrcweir class FuncDataList;
45cdf0e10cSrcweir class ConvertDataList;
46cdf0e10cSrcweir class ResMgr;
47cdf0e10cSrcweir 
48cdf0e10cSrcweir 
49cdf0e10cSrcweir REF( CSS::uno::XInterface ) SAL_CALL AnalysisAddIn_CreateInstance( const REF( CSS::lang::XMultiServiceFactory )& );
50cdf0e10cSrcweir 
51cdf0e10cSrcweir 
52cdf0e10cSrcweir class AnalysisAddIn : public cppu::WeakImplHelper5<
53cdf0e10cSrcweir 							CSS::sheet::XAddIn,
54cdf0e10cSrcweir 							CSS::sheet::XCompatibilityNames,
55cdf0e10cSrcweir 							CSS::sheet::addin::XAnalysis,
56cdf0e10cSrcweir 							CSS::lang::XServiceName,
57cdf0e10cSrcweir 							CSS::lang::XServiceInfo >
58cdf0e10cSrcweir {
59cdf0e10cSrcweir private:
60cdf0e10cSrcweir 	CSS::lang::Locale			aFuncLoc;
61cdf0e10cSrcweir 	CSS::lang::Locale*			pDefLocales;
62cdf0e10cSrcweir 	FuncDataList*				pFD;
63cdf0e10cSrcweir 	double*						pFactDoubles;
64cdf0e10cSrcweir 	ConvertDataList*			pCDL;
65cdf0e10cSrcweir 	ResMgr*						pResMgr;
66cdf0e10cSrcweir 
67cdf0e10cSrcweir     ScaAnyConverter             aAnyConv;
68cdf0e10cSrcweir 
69cdf0e10cSrcweir 	ResMgr&						GetResMgr( void ) THROWDEF_RTE;
70cdf0e10cSrcweir 	STRING						GetDisplFuncStr( sal_uInt16 nFuncNum ) THROWDEF_RTE;
71cdf0e10cSrcweir 	STRING						GetFuncDescrStr( sal_uInt16 nResId, sal_uInt16 nStrIndex ) THROWDEF_RTE;
72cdf0e10cSrcweir 	void						InitDefLocales( void );
73cdf0e10cSrcweir 	inline const CSS::lang::Locale&	GetLocale( sal_uInt32 nInd );
74cdf0e10cSrcweir 	void						InitData( void );
75cdf0e10cSrcweir 
76cdf0e10cSrcweir                                 /// Converts an Any to sal_Int32 in the range from 0 to 4 (date calculation mode).
77cdf0e10cSrcweir     sal_Int32                   getDateMode(
78cdf0e10cSrcweir                                     const CSS::uno::Reference< CSS::beans::XPropertySet >& xPropSet,
79cdf0e10cSrcweir                                     const CSS::uno::Any& rAny )
80cdf0e10cSrcweir                                 throw( CSS::uno::RuntimeException, CSS::lang::IllegalArgumentException );
81cdf0e10cSrcweir 
82cdf0e10cSrcweir public:
83cdf0e10cSrcweir                                 AnalysisAddIn(
84cdf0e10cSrcweir                                     const CSS::uno::Reference< CSS::lang::XMultiServiceFactory >& xServiceFact );
85cdf0e10cSrcweir 	virtual						~AnalysisAddIn();
86cdf0e10cSrcweir 
87cdf0e10cSrcweir 	double						FactDouble( sal_Int32 nNum ) THROWDEF_RTE_IAE;
88cdf0e10cSrcweir 
89cdf0e10cSrcweir 	static STRING				getImplementationName_Static();
90cdf0e10cSrcweir 	static SEQ( STRING )		getSupportedServiceNames_Static();
91cdf0e10cSrcweir 
92cdf0e10cSrcweir 								// XAddIn
93cdf0e10cSrcweir     virtual STRING SAL_CALL		getProgrammaticFuntionName( const STRING& aDisplayName ) THROWDEF_RTE;
94cdf0e10cSrcweir     virtual STRING SAL_CALL		getDisplayFunctionName( const STRING& aProgrammaticName ) THROWDEF_RTE;
95cdf0e10cSrcweir     virtual STRING SAL_CALL		getFunctionDescription( const STRING& aProgrammaticName ) THROWDEF_RTE;
96cdf0e10cSrcweir     virtual STRING SAL_CALL		getDisplayArgumentName( const STRING& aProgrammaticFunctionName, sal_Int32 nArgument ) THROWDEF_RTE;
97cdf0e10cSrcweir     virtual STRING SAL_CALL		getArgumentDescription( const STRING& aProgrammaticFunctionName, sal_Int32 nArgument ) THROWDEF_RTE;
98cdf0e10cSrcweir     virtual STRING SAL_CALL		getProgrammaticCategoryName( const STRING& aProgrammaticFunctionName ) THROWDEF_RTE;
99cdf0e10cSrcweir     virtual STRING SAL_CALL		getDisplayCategoryName( const STRING& aProgrammaticFunctionName ) THROWDEF_RTE;
100cdf0e10cSrcweir 
101cdf0e10cSrcweir                                 // XCompatibilityNames
102cdf0e10cSrcweir     virtual SEQofLocName SAL_CALL getCompatibilityNames( const STRING& aProgrammaticName ) THROWDEF_RTE;
103cdf0e10cSrcweir 
104cdf0e10cSrcweir 								// XLocalizable
105cdf0e10cSrcweir     virtual void SAL_CALL		setLocale( const CSS::lang::Locale& eLocale ) THROWDEF_RTE;
106cdf0e10cSrcweir     virtual CSS::lang::Locale SAL_CALL getLocale(  ) THROWDEF_RTE;
107cdf0e10cSrcweir 
108cdf0e10cSrcweir 								// XServiceName
109cdf0e10cSrcweir     virtual STRING SAL_CALL		getServiceName(  ) THROWDEF_RTE;
110cdf0e10cSrcweir 
111cdf0e10cSrcweir 								// XServiceInfo
112cdf0e10cSrcweir     virtual STRING SAL_CALL		getImplementationName(  ) THROWDEF_RTE;
113cdf0e10cSrcweir     virtual sal_Bool SAL_CALL	supportsService( const STRING& ServiceName ) THROWDEF_RTE;
114cdf0e10cSrcweir     virtual SEQ( STRING ) SAL_CALL	getSupportedServiceNames(  ) THROWDEF_RTE;
115cdf0e10cSrcweir 
116cdf0e10cSrcweir 	//	methods from own interfaces start here
117cdf0e10cSrcweir 
118cdf0e10cSrcweir 							// XAnalysis
119cdf0e10cSrcweir //    virtual double SAL_CALL		get_Test( constREFXPS&, sal_Int32 nMode, double f1, double f2, double f3 ) THROWDEF_RTE;
120cdf0e10cSrcweir 
121cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL	getWorkday( constREFXPS&, sal_Int32 nStartDate, sal_Int32 nDays, const ANY& aHDay ) THROWDEF_RTE_IAE;
122cdf0e10cSrcweir     virtual double SAL_CALL		getYearfrac( constREFXPS&, sal_Int32 nStartDate, sal_Int32 nEndDate, const ANY& aMode ) THROWDEF_RTE_IAE;
123cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL	getEdate( constREFXPS&, sal_Int32 nStartDate, sal_Int32 nMonths ) THROWDEF_RTE_IAE;
124cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL	getWeeknum( constREFXPS&, sal_Int32 nStartDate, sal_Int32 nMode ) THROWDEF_RTE_IAE;
125cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL	getEomonth( constREFXPS&, sal_Int32 nStartDate, sal_Int32 nMonths ) THROWDEF_RTE_IAE;
126cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL	getNetworkdays( constREFXPS&, sal_Int32 nStartDate, sal_Int32 nEndDate, const ANY& aHDay ) THROWDEF_RTE_IAE;
127cdf0e10cSrcweir 
128cdf0e10cSrcweir 	virtual sal_Int32 SAL_CALL	getIseven( sal_Int32 nVal ) THROWDEF_RTE_IAE;
129cdf0e10cSrcweir 	virtual sal_Int32 SAL_CALL	getIsodd( sal_Int32 nVal ) THROWDEF_RTE_IAE;
130cdf0e10cSrcweir 
131cdf0e10cSrcweir     virtual double SAL_CALL     getMultinomial( constREFXPS& xOpt, const SEQSEQ( sal_Int32 )& aVLst, const SEQ( com::sun::star::uno::Any )& aOptVLst ) THROWDEF_RTE_IAE;
132cdf0e10cSrcweir 	virtual double SAL_CALL		getSeriessum( double fX, double fN, double fM, const SEQSEQ( double )& aCoeffList ) THROWDEF_RTE_IAE;
133cdf0e10cSrcweir 	virtual double SAL_CALL		getQuotient( double fNum, double fDenum ) THROWDEF_RTE_IAE;
134cdf0e10cSrcweir 
135cdf0e10cSrcweir 	virtual double SAL_CALL		getMround( double fNum, double fMult ) THROWDEF_RTE_IAE;
136cdf0e10cSrcweir 	virtual double SAL_CALL		getSqrtpi( double fNum ) THROWDEF_RTE_IAE;
137cdf0e10cSrcweir 
138cdf0e10cSrcweir     virtual double SAL_CALL		getRandbetween( double fMin, double fMax ) THROWDEF_RTE_IAE;
139cdf0e10cSrcweir 
140cdf0e10cSrcweir     virtual double SAL_CALL     getGcd( constREFXPS& xOpt, const SEQSEQ( double )& aVLst, const SEQ( ANY )& aOptVLst ) THROWDEF_RTE_IAE;
141cdf0e10cSrcweir     virtual double SAL_CALL     getLcm( constREFXPS& xOpt, const SEQSEQ( double )& aVLst, const SEQ( ANY )& aOptVLst ) THROWDEF_RTE_IAE;
142cdf0e10cSrcweir 
143cdf0e10cSrcweir 	virtual double SAL_CALL		getBesseli( double fNum, sal_Int32 nOrder ) THROWDEF_RTE_IAE_NCE;
144cdf0e10cSrcweir 	virtual double SAL_CALL		getBesselj( double fNum, sal_Int32 nOrder ) THROWDEF_RTE_IAE_NCE;
145cdf0e10cSrcweir 	virtual double SAL_CALL		getBesselk( double fNum, sal_Int32 nOrder ) THROWDEF_RTE_IAE_NCE;
146cdf0e10cSrcweir 	virtual double SAL_CALL		getBessely( double fNum, sal_Int32 nOrder ) THROWDEF_RTE_IAE_NCE;
147cdf0e10cSrcweir 
148cdf0e10cSrcweir     virtual STRING SAL_CALL     getBin2Oct( constREFXPS& xOpt, const STRING& aNum, const ANY& rPlaces ) THROWDEF_RTE_IAE;
149cdf0e10cSrcweir 	virtual double SAL_CALL		getBin2Dec( const STRING& aNum ) THROWDEF_RTE_IAE;
150cdf0e10cSrcweir     virtual STRING SAL_CALL     getBin2Hex( constREFXPS& xOpt, const STRING& aNum, const ANY& rPlaces ) THROWDEF_RTE_IAE;
151cdf0e10cSrcweir 
152cdf0e10cSrcweir     virtual STRING SAL_CALL     getOct2Bin( constREFXPS& xOpt, const STRING& aNum, const ANY& rPlaces ) THROWDEF_RTE_IAE;
153cdf0e10cSrcweir 	virtual double SAL_CALL		getOct2Dec( const STRING& aNum ) THROWDEF_RTE_IAE;
154cdf0e10cSrcweir     virtual STRING SAL_CALL     getOct2Hex( constREFXPS& xOpt, const STRING& aNum, const ANY& rPlaces ) THROWDEF_RTE_IAE;
155cdf0e10cSrcweir 
156cdf0e10cSrcweir     virtual STRING SAL_CALL     getDec2Bin( constREFXPS& xOpt, sal_Int32 fNum, const ANY& rPlaces ) THROWDEF_RTE_IAE;
157cdf0e10cSrcweir     virtual STRING SAL_CALL     getDec2Oct( constREFXPS& xOpt, sal_Int32 fNum, const ANY& rPlaces ) THROWDEF_RTE_IAE;
158cdf0e10cSrcweir     virtual STRING SAL_CALL     getDec2Hex( constREFXPS& xOpt, double fNum, const ANY& rPlaces ) THROWDEF_RTE_IAE;
159cdf0e10cSrcweir 
160cdf0e10cSrcweir     virtual STRING SAL_CALL     getHex2Bin( constREFXPS& xOpt, const STRING& aNum, const ANY& rPlaces ) THROWDEF_RTE_IAE;
161cdf0e10cSrcweir 	virtual double SAL_CALL		getHex2Dec( const STRING& aNum ) THROWDEF_RTE_IAE;
162cdf0e10cSrcweir     virtual STRING SAL_CALL     getHex2Oct( constREFXPS& xOpt, const STRING& aNum, const ANY& rPlaces ) THROWDEF_RTE_IAE;
163cdf0e10cSrcweir 
164cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL  getDelta( constREFXPS& xOpt, double fNum1, const ANY& rNum2 ) THROWDEF_RTE_IAE;
165cdf0e10cSrcweir 
166cdf0e10cSrcweir     virtual double SAL_CALL     getErf( constREFXPS& xOpt, double fLowerLimit, const ANY& rUpperLimit ) THROWDEF_RTE_IAE;
167cdf0e10cSrcweir 	virtual double SAL_CALL		getErfc( double fLowerLimit ) THROWDEF_RTE_IAE;
168cdf0e10cSrcweir 
169cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL  getGestep( constREFXPS& xOpt, double fNum, const ANY& rStep ) THROWDEF_RTE_IAE;
170cdf0e10cSrcweir 
171cdf0e10cSrcweir 	virtual double SAL_CALL		getFactdouble( sal_Int32 nNum ) THROWDEF_RTE_IAE;
172cdf0e10cSrcweir 
173cdf0e10cSrcweir 	virtual double SAL_CALL		getImabs( const STRING& aNum ) THROWDEF_RTE_IAE;
174cdf0e10cSrcweir 	virtual double SAL_CALL		getImaginary( const STRING& aNum ) THROWDEF_RTE_IAE;
175cdf0e10cSrcweir 	virtual STRING SAL_CALL		getImpower( const STRING& aNum, double fPower ) THROWDEF_RTE_IAE;
176cdf0e10cSrcweir 	virtual double SAL_CALL		getImargument( const STRING& aNum ) THROWDEF_RTE_IAE;
177cdf0e10cSrcweir 	virtual STRING SAL_CALL		getImcos( const STRING& aNum ) THROWDEF_RTE_IAE;
178cdf0e10cSrcweir 	virtual STRING SAL_CALL		getImdiv( const STRING& aDivident, const STRING& aDivisor ) THROWDEF_RTE_IAE;
179cdf0e10cSrcweir 	virtual STRING SAL_CALL		getImexp( const STRING& aNum ) THROWDEF_RTE_IAE;
180cdf0e10cSrcweir 	virtual STRING SAL_CALL		getImconjugate( const STRING& aNum ) THROWDEF_RTE_IAE;
181cdf0e10cSrcweir 	virtual STRING SAL_CALL		getImln( const STRING& aNum ) THROWDEF_RTE_IAE;
182cdf0e10cSrcweir 	virtual STRING SAL_CALL		getImlog10( const STRING& aNum ) THROWDEF_RTE_IAE;
183cdf0e10cSrcweir 	virtual STRING SAL_CALL		getImlog2( const STRING& aNum ) THROWDEF_RTE_IAE;
184cdf0e10cSrcweir     virtual STRING SAL_CALL     getImproduct( constREFXPS& xOpt, const SEQSEQ( STRING )& aNum1, const SEQ_ANY& aNumList ) THROWDEF_RTE_IAE;
185cdf0e10cSrcweir 	virtual double SAL_CALL		getImreal( const STRING& aNum ) THROWDEF_RTE_IAE;
186cdf0e10cSrcweir 	virtual STRING SAL_CALL		getImsin( const STRING& aNum ) THROWDEF_RTE_IAE;
187cdf0e10cSrcweir 	virtual STRING SAL_CALL		getImsub( const STRING& aNum1, const STRING& aNum2 ) THROWDEF_RTE_IAE;
188cdf0e10cSrcweir     virtual STRING SAL_CALL     getImsum( constREFXPS& xOpt, const SEQSEQ( STRING )& aNum1, const SEQ( ANY )& aFollowingPars ) THROWDEF_RTE_IAE;
189cdf0e10cSrcweir 
190cdf0e10cSrcweir 	virtual STRING SAL_CALL		getImsqrt( const STRING& aNum ) THROWDEF_RTE_IAE;
191cdf0e10cSrcweir 	virtual STRING SAL_CALL		getComplex( double fReal, double fImaginary, const ANY& rSuffix ) THROWDEF_RTE_IAE;
192cdf0e10cSrcweir 
193cdf0e10cSrcweir 	virtual double SAL_CALL		getConvert( double fVal, const STRING& aFromUnit, const STRING& aToUnit ) THROWDEF_RTE_IAE;
194cdf0e10cSrcweir 
195cdf0e10cSrcweir 	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;
196cdf0e10cSrcweir 	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;
197cdf0e10cSrcweir 	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;
198cdf0e10cSrcweir 	virtual double SAL_CALL		getAccrintm( constREFXPS& xOpt, sal_Int32 nIssue, sal_Int32 nSettle, double fRate, const ANY& rVal, const ANY& rOptBase ) THROWDEF_RTE_IAE;
199cdf0e10cSrcweir 	virtual double SAL_CALL		getReceived( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fInvest, double fDisc, const ANY& rOptBase ) THROWDEF_RTE_IAE;
200cdf0e10cSrcweir 	virtual double SAL_CALL		getDisc( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fPrice, double fRedemp, const ANY& rOptBase ) THROWDEF_RTE_IAE;
201cdf0e10cSrcweir 	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;
202cdf0e10cSrcweir 	virtual double SAL_CALL		getEffect( double fNominal, sal_Int32 nPeriods ) THROWDEF_RTE_IAE;
203cdf0e10cSrcweir 	virtual double SAL_CALL		getCumprinc( double fRate, sal_Int32 nNumPeriods, double fVal, sal_Int32 nStartPer, sal_Int32 nEndPer, sal_Int32 nPayType ) THROWDEF_RTE_IAE;
204cdf0e10cSrcweir 	virtual double SAL_CALL		getCumipmt( double fRate, sal_Int32 nNumPeriods, double fVal, sal_Int32 nStartPer, sal_Int32 nEndPer, sal_Int32 nPayType ) THROWDEF_RTE_IAE;
205cdf0e10cSrcweir 	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;
206cdf0e10cSrcweir 	virtual double SAL_CALL		getPricedisc( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fDisc, double fRedemp, const ANY& rOptBase ) THROWDEF_RTE_IAE;
207cdf0e10cSrcweir 	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;
208cdf0e10cSrcweir 	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;
209cdf0e10cSrcweir 	virtual double SAL_CALL		getNominal( double fRate, sal_Int32 nPeriods ) THROWDEF_RTE_IAE;
210cdf0e10cSrcweir 	virtual double SAL_CALL		getDollarfr( double fDollarDec, sal_Int32 nFrac ) THROWDEF_RTE_IAE;
211cdf0e10cSrcweir 	virtual double SAL_CALL		getDollarde( double fDollarFrac, sal_Int32 nFrac ) THROWDEF_RTE_IAE;
212cdf0e10cSrcweir 	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;
213cdf0e10cSrcweir 	virtual double SAL_CALL		getYielddisc( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fPrice, double fRedemp, const ANY& rOptBase ) THROWDEF_RTE_IAE;
214cdf0e10cSrcweir 	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;
215cdf0e10cSrcweir 	virtual double SAL_CALL		getTbilleq( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fDisc ) THROWDEF_RTE_IAE;
216cdf0e10cSrcweir 	virtual double SAL_CALL		getTbillprice( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fDisc ) THROWDEF_RTE_IAE;
217cdf0e10cSrcweir 	virtual double SAL_CALL		getTbillyield( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fPrice ) THROWDEF_RTE_IAE;
218cdf0e10cSrcweir 	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;
219cdf0e10cSrcweir 	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;
220cdf0e10cSrcweir 	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;
221cdf0e10cSrcweir 	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;
222cdf0e10cSrcweir     virtual double SAL_CALL     getXirr( constREFXPS& xOpt, const SEQSEQ( double )& rValues, const SEQSEQ( sal_Int32 )& rDates, const ANY& rGuess ) THROWDEF_RTE_IAE;
223cdf0e10cSrcweir 	virtual double SAL_CALL		getXnpv( double fRate, const SEQSEQ( double )& rValues, const SEQSEQ( sal_Int32 )& rDates ) THROWDEF_RTE_IAE;
224cdf0e10cSrcweir 	virtual double SAL_CALL		getIntrate( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, double fInvest, double fRedemp, const ANY& rOptBase ) THROWDEF_RTE_IAE;
225cdf0e10cSrcweir 	virtual double SAL_CALL		getCoupncd( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nFreq, const ANY& rOptBase ) THROWDEF_RTE_IAE;
226cdf0e10cSrcweir 	virtual double SAL_CALL		getCoupdays( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nFreq, const ANY& rOptBase ) THROWDEF_RTE_IAE;
227cdf0e10cSrcweir 	virtual double SAL_CALL		getCoupdaysnc( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nFreq, const ANY& rOptBase ) THROWDEF_RTE_IAE;
228cdf0e10cSrcweir 	virtual double SAL_CALL		getCoupdaybs( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nFreq, const ANY& rOptBase ) THROWDEF_RTE_IAE;
229cdf0e10cSrcweir 	virtual double SAL_CALL		getCouppcd( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nFreq, const ANY& rOptBase ) THROWDEF_RTE_IAE;
230cdf0e10cSrcweir 	virtual double SAL_CALL		getCoupnum( constREFXPS& xOpt, sal_Int32 nSettle, sal_Int32 nMat, sal_Int32 nFreq, const ANY& rOptBase ) THROWDEF_RTE_IAE;
231cdf0e10cSrcweir 	virtual double SAL_CALL		getFvschedule( double fPrinc, const SEQSEQ( double )& rSchedule ) THROWDEF_RTE_IAE;
232cdf0e10cSrcweir };
233cdf0e10cSrcweir 
234cdf0e10cSrcweir //------------------------------------------------------------------
235cdf0e10cSrcweir 
236cdf0e10cSrcweir #endif
237cdf0e10cSrcweir 
238