Bugzilla – Attachment 62938 Details for
Bug 51013
ODFF: implement missing imaginary functions
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
code for IMCOT, IMCSC, IMSEC, IMTAN, IMSINH, IMCOSH, IMSECH, IMCSCH
0001-ODFF-implement-missing-imaginary-functions-AOO-i1116.patch (text/plain), 29.35 KB, created by
Regina Henschel
on 2012-06-12 10:11:48 UTC
(
hide
)
Description:
code for IMCOT, IMCSC, IMSEC, IMTAN, IMSINH, IMCOSH, IMSECH, IMCSCH
Filename:
MIME Type:
Creator:
Regina Henschel
Created:
2012-06-12 10:11:48 UTC
Size:
29.35 KB
patch
obsolete
>From d286084873ad34b35fce351f1e25e7c1e1bed4c4 Mon Sep 17 00:00:00 2001 >From: Regina Henschel <rb.henschel@t-online.de> >Date: Sat, 9 Jun 2012 19:34:38 +0200 >Subject: [PATCH] ODFF: implement missing imaginary functions [AOO i111609 > r1348096] > >Change-Id: I04ce0b1fdf787c3d8b2301cd92400e54049494bf >--- > sc/inc/helpids.h | 8 + > sc/source/core/tool/addinhelpid.cxx | 8 + > sc/source/core/tool/odffmap.cxx | 9 + > sc/util/hidother.src | 8 + > .../idl/com/sun/star/sheet/addin/XAnalysis.idl | 32 ++++ > scaddins/source/analysis/analysis.cxx | 80 +++++++++ > scaddins/source/analysis/analysis.hrc | 27 +++- > scaddins/source/analysis/analysis.hxx | 8 + > scaddins/source/analysis/analysis.src | 144 ++++++++++++++++ > scaddins/source/analysis/analysis_deffuncnames.src | 72 ++++++++ > scaddins/source/analysis/analysis_funcnames.src | 40 +++++ > scaddins/source/analysis/analysishelper.cxx | 172 +++++++++++++++++++- > scaddins/source/analysis/analysishelper.hxx | 13 ++- > 13 files changed, 608 insertions(+), 13 deletions(-) > >diff --git a/sc/inc/helpids.h b/sc/inc/helpids.h >index 7c5955c..8f38a0b 100644 >--- a/sc/inc/helpids.h >+++ b/sc/inc/helpids.h >@@ -387,6 +387,14 @@ > #define HID_AAI_FUNC_OCT2HEX "SC_HID_AAI_FUNC_OCT2HEX" > #define HID_AAI_FUNC_CONVERT "SC_HID_AAI_FUNC_CONVERT" > #define HID_AAI_FUNC_FACTDOUBLE "SC_HID_AAI_FUNC_FACTDOUBLE" >+#define HID_AAI_FUNC_IMTAN "SC_HID_AAI_FUNC_IMTAN" >+#define HID_AAI_FUNC_IMSEC "SC_HID_AAI_FUNC_IMSEC" >+#define HID_AAI_FUNC_IMCSC "SC_HID_AAI_FUNC_IMCSC" >+#define HID_AAI_FUNC_IMCOT "SC_HID_AAI_FUNC_IMCOT" >+#define HID_AAI_FUNC_IMSINH "SC_HID_AAI_FUNC_IMSINH" >+#define HID_AAI_FUNC_IMCOSH "SC_HID_AAI_FUNC_IMCOSH" >+#define HID_AAI_FUNC_IMSECH "SC_HID_AAI_FUNC_IMSECH" >+#define HID_AAI_FUNC_IMCSCH "SC_HID_AAI_FUNC_IMCSCH" > > // DateFunc Addin Functions (max.20) ----------------------------------------- > #define HID_DAI_FUNC_DAYSINMONTH "SC_HID_DAI_FUNC_DAYSINMONTH" >diff --git a/sc/source/core/tool/addinhelpid.cxx b/sc/source/core/tool/addinhelpid.cxx >index 67bae51..0442b5a 100644 >--- a/sc/source/core/tool/addinhelpid.cxx >+++ b/sc/source/core/tool/addinhelpid.cxx >@@ -91,6 +91,10 @@ const ScUnoAddInHelpId pAnalysisHelpIds[] = > { "getImargument" , HID_AAI_FUNC_IMARGUMENT }, > { "getImconjugate" , HID_AAI_FUNC_IMCONJUGATE }, > { "getImcos" , HID_AAI_FUNC_IMCOS }, >+ { "getImcosh" , HID_AAI_FUNC_IMCOSH }, >+ { "getImcot" , HID_AAI_FUNC_IMCOT }, >+ { "getImcsc" , HID_AAI_FUNC_IMCSC }, >+ { "getImcsch" , HID_AAI_FUNC_IMCSCH }, > { "getImdiv" , HID_AAI_FUNC_IMDIV }, > { "getImexp" , HID_AAI_FUNC_IMEXP }, > { "getImln" , HID_AAI_FUNC_IMLN }, >@@ -99,10 +103,14 @@ const ScUnoAddInHelpId pAnalysisHelpIds[] = > { "getImpower" , HID_AAI_FUNC_IMPOWER }, > { "getImproduct" , HID_AAI_FUNC_IMPRODUCT }, > { "getImreal" , HID_AAI_FUNC_IMREAL }, >+ { "getImsec" , HID_AAI_FUNC_IMSEC }, >+ { "getImsech" , HID_AAI_FUNC_IMSECH }, > { "getImsin" , HID_AAI_FUNC_IMSIN }, >+ { "getImsinh" , HID_AAI_FUNC_IMSINH }, > { "getImsqrt" , HID_AAI_FUNC_IMSQRT }, > { "getImsub" , HID_AAI_FUNC_IMSUB }, > { "getImsum" , HID_AAI_FUNC_IMSUM }, >+ { "getImtan" , HID_AAI_FUNC_IMTAN }, > { "getIntrate" , HID_AAI_FUNC_INTRATE }, > { "getIseven" , HID_AAI_FUNC_ISEVEN }, > { "getIsodd" , HID_AAI_FUNC_ISODD }, >diff --git a/sc/source/core/tool/odffmap.cxx b/sc/source/core/tool/odffmap.cxx >index 2129da3..b61f8ad 100644 >--- a/sc/source/core/tool/odffmap.cxx >+++ b/sc/source/core/tool/odffmap.cxx >@@ -95,6 +95,14 @@ ScCompiler::AddInMap ScCompiler::maAddInMap[] = > { "IMSUB", "IMSUB", false, "com.sun.star.sheet.addin.Analysis.getImsub", "COM.SUN.STAR.SHEET.ADDIN.ANALYSIS.GETIMSUB" }, > { "IMSUM", "IMSUM", false, "com.sun.star.sheet.addin.Analysis.getImsum", "COM.SUN.STAR.SHEET.ADDIN.ANALYSIS.GETIMSUM" }, > { "IMSQRT", "IMSQRT", false, "com.sun.star.sheet.addin.Analysis.getImsqrt", "COM.SUN.STAR.SHEET.ADDIN.ANALYSIS.GETIMSQRT" }, >+ { "IMTAN", "IMTAN", false, "com.sun.star.sheet.addin.Analysis.getImtan", "COM.SUN.STAR.SHEET.ADDIN.ANALYSIS.GETIMTAN" }, >+ { "IMSEC", "IMSEC", false, "com.sun.star.sheet.addin.Analysis.getImsec", "COM.SUN.STAR.SHEET.ADDIN.ANALYSIS.GETIMSEC" }, >+ { "IMCSC", "IMCSC", false, "com.sun.star.sheet.addin.Analysis.getImcsc", "COM.SUN.STAR.SHEET.ADDIN.ANALYSIS.GETIMCSC" }, >+ { "IMCOT", "IMCOT", false, "com.sun.star.sheet.addin.Analysis.getImcot", "COM.SUN.STAR.SHEET.ADDIN.ANALYSIS.GETIMCOT" }, >+ { "IMSINH", "IMSINH", false, "com.sun.star.sheet.addin.Analysis.getImsinh", "COM.SUN.STAR.SHEET.ADDIN.ANALYSIS.GETIMSINH" }, >+ { "IMCOSH", "IMCOSH", false, "com.sun.star.sheet.addin.Analysis.getImcosh", "COM.SUN.STAR.SHEET.ADDIN.ANALYSIS.GETIMCOSH" }, >+ { "IMSECH", "IMSECH", false, "com.sun.star.sheet.addin.Analysis.getImsech", "COM.SUN.STAR.SHEET.ADDIN.ANALYSIS.GETIMSECH" }, >+ { "IMCSCH", "IMCSCH", false, "com.sun.star.sheet.addin.Analysis.getImcsch", "COM.SUN.STAR.SHEET.ADDIN.ANALYSIS.GETIMCSCH" }, > { "COMPLEX", "COMPLEX", false, "com.sun.star.sheet.addin.Analysis.getComplex", "COM.SUN.STAR.SHEET.ADDIN.ANALYSIS.GETCOMPLEX" }, > { "CONVERT", "CONVERT_ADD", false, "com.sun.star.sheet.addin.Analysis.getConvert", "COM.SUN.STAR.SHEET.ADDIN.ANALYSIS.GETCONVERT" }, > { "AMORDEGRC", "AMORDEGRC", false, "com.sun.star.sheet.addin.Analysis.getAmordegrc", "COM.SUN.STAR.SHEET.ADDIN.ANALYSIS.GETAMORDEGRC" }, >@@ -134,6 +142,7 @@ ScCompiler::AddInMap ScCompiler::maAddInMap[] = > { "COUPPCD", "COUPPCD", false, "com.sun.star.sheet.addin.Analysis.getCouppcd", "COM.SUN.STAR.SHEET.ADDIN.ANALYSIS.GETCOUPPCD" }, > { "COUPNUM", "COUPNUM", false, "com.sun.star.sheet.addin.Analysis.getCoupnum", "COM.SUN.STAR.SHEET.ADDIN.ANALYSIS.GETCOUPNUM" }, > { "FVSCHEDULE", "FVSCHEDULE", false, "com.sun.star.sheet.addin.Analysis.getFvschedule", "COM.SUN.STAR.SHEET.ADDIN.ANALYSIS.GETFVSCHEDULE" }, >+ > }; > > const ScCompiler::AddInMap* ScCompiler::GetAddInMap() >diff --git a/sc/util/hidother.src b/sc/util/hidother.src >index 85d36f9..fc31e88 100644 >--- a/sc/util/hidother.src >+++ b/sc/util/hidother.src >@@ -463,6 +463,14 @@ hidspecial HID_AAI_FUNC_IMSIN { HelpID = HID_AAI_FUNC_IMSIN; }; > hidspecial HID_AAI_FUNC_IMSUB { HelpID = HID_AAI_FUNC_IMSUB; }; > hidspecial HID_AAI_FUNC_IMSUM { HelpID = HID_AAI_FUNC_IMSUM; }; > hidspecial HID_AAI_FUNC_IMSQRT { HelpID = HID_AAI_FUNC_IMSQRT; }; >+hidspecial HID_AAI_FUNC_IMTAN { HelpID = HID_AAI_FUNC_IMTAN; }; >+hidspecial HID_AAI_FUNC_IMSEC { HelpID = HID_AAI_FUNC_IMSEC; }; >+hidspecial HID_AAI_FUNC_IMCSC { HelpID = HID_AAI_FUNC_IMCSC; }; >+hidspecial HID_AAI_FUNC_IMCOT { HelpID = HID_AAI_FUNC_IMCOT; }; >+hidspecial HID_AAI_FUNC_IMSINH { HelpID = HID_AAI_FUNC_IMSINH; }; >+hidspecial HID_AAI_FUNC_IMCOSH { HelpID = HID_AAI_FUNC_IMCOSH; }; >+hidspecial HID_AAI_FUNC_IMSECH { HelpID = HID_AAI_FUNC_IMSECH; }; >+hidspecial HID_AAI_FUNC_IMCSCH { HelpID = HID_AAI_FUNC_IMCSCH; }; > hidspecial HID_AAI_FUNC_COMPLEX { HelpID = HID_AAI_FUNC_COMPLEX; }; > hidspecial HID_AAI_FUNC_OCT2BIN { HelpID = HID_AAI_FUNC_OCT2BIN; }; > hidspecial HID_AAI_FUNC_OCT2DEZ { HelpID = HID_AAI_FUNC_OCT2DEZ; }; >diff --git a/scaddins/idl/com/sun/star/sheet/addin/XAnalysis.idl b/scaddins/idl/com/sun/star/sheet/addin/XAnalysis.idl >index 1cb0018..daae62b 100644 >--- a/scaddins/idl/com/sun/star/sheet/addin/XAnalysis.idl >+++ b/scaddins/idl/com/sun/star/sheet/addin/XAnalysis.idl >@@ -321,6 +321,38 @@ module addin > string getImsqrt( [in] string Num ) > raises( com::sun::star::lang::IllegalArgumentException ); > >+ /// imtan. >+ string getImtan( [in] string Num ) >+ raises( com::sun::star::lang::IllegalArgumentException ); >+ >+ /// imsec. >+ string getImsec( [in] string Num) >+ raises( com::sun::star::lang::IllegalArgumentException ); >+ >+ /// imcsc. >+ string getImcsc( [in] string Num ) >+ raises( com::sun::star::lang::IllegalArgumentException ); >+ >+ /// imcot. >+ string getImcot( [in] string Num ) >+ raises( com::sun::star::lang::IllegalArgumentException ); >+ >+ /// imsinh. >+ string getImsinh( [in] string Num ) >+ raises( com::sun::star::lang::IllegalArgumentException ); >+ >+ /// imcosh. >+ string getImcosh( [in] string Num ) >+ raises( com::sun::star::lang::IllegalArgumentException ); >+ >+ /// imsech. >+ string getImsech( [in] string Num) >+ raises( com::sun::star::lang::IllegalArgumentException ); >+ >+ /// imcsch. >+ string getImcsch( [in] string Num ) >+ raises( com::sun::star::lang::IllegalArgumentException ); >+ > /// complex. > string getComplex( [in] double Real, [in] double Imaginary, [in] any Suffix ) > raises( com::sun::star::lang::IllegalArgumentException ); >diff --git a/scaddins/source/analysis/analysis.cxx b/scaddins/source/analysis/analysis.cxx >index e62265f..2215f28 100644 >--- a/scaddins/source/analysis/analysis.cxx >+++ b/scaddins/source/analysis/analysis.cxx >@@ -1215,6 +1215,86 @@ STRING SAL_CALL AnalysisAddIn::getImsqrt( const STRING& aNum ) THROWDEF_RTE_IAE > } > > >+STRING SAL_CALL AnalysisAddIn::getImtan( const STRING& aNum ) THROWDEF_RTE_IAE >+{ >+ Complex z( aNum ); >+ >+ z.Tan(); >+ >+ return z.GetString(); >+} >+ >+ >+STRING SAL_CALL AnalysisAddIn::getImsec( const STRING& aNum ) THROWDEF_RTE_IAE >+{ >+ Complex z( aNum ); >+ >+ z.Sec(); >+ >+ return z.GetString(); >+} >+ >+ >+STRING SAL_CALL AnalysisAddIn::getImcsc( const STRING& aNum ) THROWDEF_RTE_IAE >+{ >+ Complex z( aNum ); >+ >+ z.Csc(); >+ >+ return z.GetString(); >+} >+ >+ >+STRING SAL_CALL AnalysisAddIn::getImcot( const STRING& aNum ) THROWDEF_RTE_IAE >+{ >+ Complex z( aNum ); >+ >+ z.Cot(); >+ >+ return z.GetString(); >+} >+ >+ >+STRING SAL_CALL AnalysisAddIn::getImsinh( const STRING& aNum ) THROWDEF_RTE_IAE >+{ >+ Complex z( aNum ); >+ >+ z.Sinh(); >+ >+ return z.GetString(); >+} >+ >+ >+STRING SAL_CALL AnalysisAddIn::getImcosh( const STRING& aNum ) THROWDEF_RTE_IAE >+{ >+ Complex z( aNum ); >+ >+ z.Cosh(); >+ >+ return z.GetString(); >+} >+ >+ >+STRING SAL_CALL AnalysisAddIn::getImsech( const STRING& aNum ) THROWDEF_RTE_IAE >+{ >+ Complex z( aNum ); >+ >+ z.Sech(); >+ >+ return z.GetString(); >+} >+ >+ >+STRING SAL_CALL AnalysisAddIn::getImcsch( const STRING& aNum ) THROWDEF_RTE_IAE >+{ >+ Complex z( aNum ); >+ >+ z.Csch(); >+ >+ return z.GetString(); >+} >+ >+ > STRING SAL_CALL AnalysisAddIn::getComplex( double fR, double fI, const ANY& rSuff ) THROWDEF_RTE_IAE > { > sal_Bool bi; >diff --git a/scaddins/source/analysis/analysis.hrc b/scaddins/source/analysis/analysis.hrc >index 7b5b94f..d53eb1e 100644 >--- a/scaddins/source/analysis/analysis.hrc >+++ b/scaddins/source/analysis/analysis.hrc >@@ -131,7 +131,14 @@ > #define ANALYSIS_Couppcd (ANALYSIS_FUNCDESC_START+90) > #define ANALYSIS_Coupnum (ANALYSIS_FUNCDESC_START+91) > #define ANALYSIS_Fvschedule (ANALYSIS_FUNCDESC_START+92) >- >+#define ANALYSIS_Imtan (ANALYSIS_FUNCDESC_START+93) >+#define ANALYSIS_Imsec (ANALYSIS_FUNCDESC_START+94) >+#define ANALYSIS_Imcsc (ANALYSIS_FUNCDESC_START+95) >+#define ANALYSIS_Imcot (ANALYSIS_FUNCDESC_START+96) >+#define ANALYSIS_Imsinh (ANALYSIS_FUNCDESC_START+97) >+#define ANALYSIS_Imcosh (ANALYSIS_FUNCDESC_START+98) >+#define ANALYSIS_Imsech (ANALYSIS_FUNCDESC_START+99) >+#define ANALYSIS_Imcsch (ANALYSIS_FUNCDESC_START+100) > > #define ANALYSIS_FUNCNAME_START (1) > >@@ -228,7 +235,14 @@ > #define ANALYSIS_FUNCNAME_Couppcd (ANALYSIS_FUNCNAME_START+90) > #define ANALYSIS_FUNCNAME_Coupnum (ANALYSIS_FUNCNAME_START+91) > #define ANALYSIS_FUNCNAME_Fvschedule (ANALYSIS_FUNCNAME_START+92) >- >+#define ANALYSIS_FUNCNAME_Imtan (ANALYSIS_FUNCNAME_START+93) >+#define ANALYSIS_FUNCNAME_Imsec (ANALYSIS_FUNCNAME_START+94) >+#define ANALYSIS_FUNCNAME_Imcsc (ANALYSIS_FUNCNAME_START+95) >+#define ANALYSIS_FUNCNAME_Imcot (ANALYSIS_FUNCNAME_START+96) >+#define ANALYSIS_FUNCNAME_Imsinh (ANALYSIS_FUNCNAME_START+97) >+#define ANALYSIS_FUNCNAME_Imcosh (ANALYSIS_FUNCNAME_START+98) >+#define ANALYSIS_FUNCNAME_Imsech (ANALYSIS_FUNCNAME_START+99) >+#define ANALYSIS_FUNCNAME_Imcsch (ANALYSIS_FUNCNAME_START+100) > > #define ANALYSIS_DEFFUNCNAME_START (RID_ANALYSIS_DEFFUNCTION_NAMES+1) > >@@ -325,6 +339,13 @@ > #define ANALYSIS_DEFFUNCNAME_Couppcd (ANALYSIS_DEFFUNCNAME_START+90) > #define ANALYSIS_DEFFUNCNAME_Coupnum (ANALYSIS_DEFFUNCNAME_START+91) > #define ANALYSIS_DEFFUNCNAME_Fvschedule (ANALYSIS_DEFFUNCNAME_START+92) >- >+#define ANALYSIS_DEFFUNCNAME_Imtan (ANALYSIS_DEFFUNCNAME_START+93) >+#define ANALYSIS_DEFFUNCNAME_Imsec (ANALYSIS_DEFFUNCNAME_START+94) >+#define ANALYSIS_DEFFUNCNAME_Imcsc (ANALYSIS_DEFFUNCNAME_START+95) >+#define ANALYSIS_DEFFUNCNAME_Imcot (ANALYSIS_DEFFUNCNAME_START+96) >+#define ANALYSIS_DEFFUNCNAME_Imsinh (ANALYSIS_DEFFUNCNAME_START+97) >+#define ANALYSIS_DEFFUNCNAME_Imcosh (ANALYSIS_DEFFUNCNAME_START+98) >+#define ANALYSIS_DEFFUNCNAME_Imsech (ANALYSIS_DEFFUNCNAME_START+99) >+#define ANALYSIS_DEFFUNCNAME_Imcsch (ANALYSIS_DEFFUNCNAME_START+100) > > #endif >diff --git a/scaddins/source/analysis/analysis.hxx b/scaddins/source/analysis/analysis.hxx >index 3e0fd4a..b6d58e6 100644 >--- a/scaddins/source/analysis/analysis.hxx >+++ b/scaddins/source/analysis/analysis.hxx >@@ -193,6 +193,14 @@ public: > virtual STRING SAL_CALL getImsum( constREFXPS& xOpt, const SEQSEQ( STRING )& aNum1, const SEQ( ANY )& aFollowingPars ) THROWDEF_RTE_IAE; > > virtual STRING SAL_CALL getImsqrt( const STRING& aNum ) THROWDEF_RTE_IAE; >+ virtual STRING SAL_CALL getImtan( const STRING& aNum ) THROWDEF_RTE_IAE; >+ virtual STRING SAL_CALL getImsec( const STRING& aNum ) THROWDEF_RTE_IAE; >+ virtual STRING SAL_CALL getImcsc( const STRING& aNum ) THROWDEF_RTE_IAE; >+ virtual STRING SAL_CALL getImcot( const STRING& aNum ) THROWDEF_RTE_IAE; >+ virtual STRING SAL_CALL getImsinh( const STRING& aNum ) THROWDEF_RTE_IAE; >+ virtual STRING SAL_CALL getImcosh( const STRING& aNum ) THROWDEF_RTE_IAE; >+ virtual STRING SAL_CALL getImsech( const STRING& aNum ) THROWDEF_RTE_IAE; >+ virtual STRING SAL_CALL getImcsch( const STRING& aNum ) THROWDEF_RTE_IAE; > virtual STRING SAL_CALL getComplex( double fReal, double fImaginary, const ANY& rSuffix ) THROWDEF_RTE_IAE; > > virtual double SAL_CALL getConvert( double fVal, const STRING& aFromUnit, const STRING& aToUnit ) THROWDEF_RTE_IAE; >diff --git a/scaddins/source/analysis/analysis.src b/scaddins/source/analysis/analysis.src >index bdff7932..8e81e3e 100644 >--- a/scaddins/source/analysis/analysis.src >+++ b/scaddins/source/analysis/analysis.src >@@ -1352,6 +1352,150 @@ Resource RID_ANALYSIS_FUNCTION_DESCRIPTIONS > > }; > >+ Resource ANALYSIS_Imtan >+ { >+ String 1 // description Imtan >+ { >+ Text [ en-US ] = "Returns the tangent of a complex number"; >+ }; >+ >+ String 2 // name of parameter 1 Imtan >+ { >+ Text [ en-US ] = "Complex number"; >+ }; >+ >+ String 3 // description of parameter 1 Imtan >+ { >+ Text [ en-US ] = "A complex number"; >+ }; >+ }; >+ >+ Resource ANALYSIS_Imsec >+ { >+ String 1 // description Imsec >+ { >+ Text [ en-US ] = "Returns the secant of a complex number"; >+ }; >+ >+ String 2 // name of parameter 1 Imsec >+ { >+ Text [ en-US ] = "Complex number"; >+ }; >+ >+ String 3 // description of parameter 1 Imsec >+ { >+ Text [ en-US ] = "A complex number"; >+ }; >+ }; >+ >+ Resource ANALYSIS_Imcsc >+ { >+ String 1 // description Imcsc >+ { >+ Text [ en-US ] = "Returns the cosecant of a complex number"; >+ }; >+ >+ String 2 // name of parameter 1 Imcsc >+ { >+ Text [ en-US ] = "Complex number"; >+ }; >+ >+ String 3 // description of parameter 1 Imcsc >+ { >+ Text [ en-US ] = "A complex number"; >+ }; >+ }; >+ >+ Resource ANALYSIS_Imcot >+ { >+ String 1 // description Imcot >+ { >+ Text [ en-US ] = "Returns the cotangent of a complex number"; >+ }; >+ >+ String 2 // name of parameter 1 Imcot >+ { >+ Text [ en-US ] = "Complex number"; >+ }; >+ >+ String 3 // description of parameter 1 Imcot >+ { >+ Text [ en-US ] = "A complex number"; >+ }; >+ }; >+ >+ Resource ANALYSIS_Imsinh >+ { >+ String 1 // description Imsinh >+ { >+ Text [ en-US ] = "Returns the hyperbolic sine of a complex number"; >+ }; >+ >+ String 2 // name of parameter 1 Imsinh >+ { >+ Text [ en-US ] = "Complex number"; >+ }; >+ >+ String 3 // description of parameter 1 Imsinh >+ { >+ Text [ en-US ] = "A complex number"; >+ }; >+ }; >+ >+ Resource ANALYSIS_Imcosh >+ { >+ String 1 // description Imcosh >+ { >+ Text [ en-US ] = "Returns the hyperbolic cosine of a complex number"; >+ }; >+ >+ String 2 // name of parameter 1 Imcosh >+ { >+ Text [ en-US ] = "Complex number"; >+ }; >+ >+ String 3 // description of parameter 1 Imcosh >+ { >+ Text [ en-US ] = "A complex number"; >+ }; >+ }; >+ >+ Resource ANALYSIS_Imsech >+ { >+ String 1 // description Imsech >+ { >+ Text [ en-US ] = "Returns the hyperbolic secant of a complex number"; >+ }; >+ >+ String 2 // name of parameter 1 Imsech >+ { >+ Text [ en-US ] = "Complex number"; >+ }; >+ >+ String 3 // description of parameter 1 Imsech >+ { >+ Text [ en-US ] = "A complex number"; >+ }; >+ }; >+ >+ Resource ANALYSIS_Imcsch >+ { >+ String 1 // description Imcsch >+ { >+ Text [ en-US ] = "Returns the hyperbolic cosecant of a complex number"; >+ }; >+ >+ String 2 // name of parameter 1 Imcsch >+ { >+ Text [ en-US ] = "Complex number"; >+ }; >+ >+ String 3 // description of parameter 1 Imcsch >+ { >+ Text [ en-US ] = "A complex number"; >+ }; >+ }; >+ > Resource ANALYSIS_Complex > { > String 1 // description Complex >diff --git a/scaddins/source/analysis/analysis_deffuncnames.src b/scaddins/source/analysis/analysis_deffuncnames.src >index 2c67e2c..cff3b5d 100644 >--- a/scaddins/source/analysis/analysis_deffuncnames.src >+++ b/scaddins/source/analysis/analysis_deffuncnames.src >@@ -813,6 +813,78 @@ Resource RID_ANALYSIS_DEFFUNCTION_NAMES > }; > }; > >+ StringArray ANALYSIS_DEFFUNCNAME_Imtan >+ { >+ ItemList = >+ { >+ < "IMTAN"; >; >+ < "IMTAN"; >; >+ }; >+ }; >+ >+ StringArray ANALYSIS_DEFFUNCNAME_Imsec >+ { >+ ItemList = >+ { >+ < "IMSEC"; >; >+ < "IMSEC"; >; >+ }; >+ }; >+ >+ StringArray ANALYSIS_DEFFUNCNAME_Imcsc >+ { >+ ItemList = >+ { >+ < "IMCSC"; >; >+ < "IMCSC"; >; >+ }; >+ }; >+ >+ StringArray ANALYSIS_DEFFUNCNAME_Imcot >+ { >+ ItemList = >+ { >+ < "IMCOT"; >; >+ < "IMCOT"; >; >+ }; >+ }; >+ >+ StringArray ANALYSIS_DEFFUNCNAME_Imsinh >+ { >+ ItemList = >+ { >+ < "IMSINH"; >; >+ < "IMSINH"; >; >+ }; >+ }; >+ >+ StringArray ANALYSIS_DEFFUNCNAME_Imcosh >+ { >+ ItemList = >+ { >+ < "IMCOSH"; >; >+ < "IMCOSH"; >; >+ }; >+ }; >+ >+ StringArray ANALYSIS_DEFFUNCNAME_Imsech >+ { >+ ItemList = >+ { >+ < "IMSECH"; >; >+ < "IMSECH"; >; >+ }; >+ }; >+ >+ StringArray ANALYSIS_DEFFUNCNAME_Imcsch >+ { >+ ItemList = >+ { >+ < "IMCSCH"; >; >+ < "IMCSCH"; >; >+ }; >+ }; >+ > StringArray ANALYSIS_DEFFUNCNAME_Complex > { > ItemList = >diff --git a/scaddins/source/analysis/analysis_funcnames.src b/scaddins/source/analysis/analysis_funcnames.src >index 47796f3..fea61a5 100644 >--- a/scaddins/source/analysis/analysis_funcnames.src >+++ b/scaddins/source/analysis/analysis_funcnames.src >@@ -465,6 +465,46 @@ Resource RID_ANALYSIS_FUNCTION_NAMES > Text [ en-US ] = "IMSQRT"; > }; > >+ String ANALYSIS_FUNCNAME_Imtan >+ { >+ Text [ en-US ] = "IMTAN"; >+ }; >+ >+ String ANALYSIS_FUNCNAME_Imsec >+ { >+ Text [ en-US ] = "IMSEC"; >+ }; >+ >+ String ANALYSIS_FUNCNAME_Imcsc >+ { >+ Text [ en-US ] = "IMCSC"; >+ }; >+ >+ String ANALYSIS_FUNCNAME_Imcot >+ { >+ Text [ en-US ] = "IMCOT"; >+ }; >+ >+ String ANALYSIS_FUNCNAME_Imsinh >+ { >+ Text [ en-US ] = "IMSINH"; >+ }; >+ >+ String ANALYSIS_FUNCNAME_Imcosh >+ { >+ Text [ en-US ] = "IMCOSH"; >+ }; >+ >+ String ANALYSIS_FUNCNAME_Imsech >+ { >+ Text [ en-US ] = "IMSECH"; >+ }; >+ >+ String ANALYSIS_FUNCNAME_Imcsch >+ { >+ Text [ en-US ] = "IMCSCH"; >+ }; >+ > String ANALYSIS_FUNCNAME_Complex > { > Text [ en-US ] = "COMPLEX"; >diff --git a/scaddins/source/analysis/analysishelper.cxx b/scaddins/source/analysis/analysishelper.cxx >index c2e17a8..a37632f 100644 >--- a/scaddins/source/analysis/analysishelper.cxx >+++ b/scaddins/source/analysis/analysishelper.cxx >@@ -108,6 +108,14 @@ const FuncDataBase pFuncDatas[] = > FUNCDATA( Imsub, UNIQUE, STDPAR, 2, FDCat_Tech ), > FUNCDATA( Imsqrt, UNIQUE, STDPAR, 1, FDCat_Tech ), > FUNCDATA( Imsum, UNIQUE, INTPAR, 1, FDCat_Tech ), >+ FUNCDATA( Imtan, UNIQUE, STDPAR, 1, FDCat_Tech ), >+ FUNCDATA( Imsec, UNIQUE, STDPAR, 1, FDCat_Tech ), >+ FUNCDATA( Imcsc, UNIQUE, STDPAR, 1, FDCat_Tech ), >+ FUNCDATA( Imcot, UNIQUE, STDPAR, 1, FDCat_Tech ), >+ FUNCDATA( Imsinh, UNIQUE, STDPAR, 1, FDCat_Tech ), >+ FUNCDATA( Imcosh, UNIQUE, STDPAR, 1, FDCat_Tech ), >+ FUNCDATA( Imsech, UNIQUE, STDPAR, 1, FDCat_Tech ), >+ FUNCDATA( Imcsch, UNIQUE, STDPAR, 1, FDCat_Tech ), > FUNCDATA( Complex, UNIQUE, STDPAR, 3, FDCat_Tech ), > FUNCDATA( Convert, DOUBLE, STDPAR, 3, FDCat_Tech ), > FUNCDATA( Amordegrc, UNIQUE, INTPAR, 7, FDCat_Finance ), >@@ -1861,15 +1869,9 @@ void Complex::Sqrt( void ) > } > > >-inline sal_Bool SinOverflow( double f ) >-{ >- return fabs( f ) >= 134217728; >-} >- >- > void Complex::Sin( void ) THROWDEF_RTE_IAE > { >- if( SinOverflow( r ) ) >+ if( !::rtl::math::isValidArcArg( r ) ) > THROW_IAE; > > if( i ) >@@ -1887,7 +1889,7 @@ void Complex::Sin( void ) THROWDEF_RTE_IAE > > void Complex::Cos( void ) THROWDEF_RTE_IAE > { >- if( SinOverflow( r ) ) >+ if( !::rtl::math::isValidArcArg( r ) ) > THROW_IAE; > > if( i ) >@@ -1961,6 +1963,160 @@ void Complex::Log2( void ) THROWDEF_RTE_IAE > } > > >+void Complex::Tan(void) THROWDEF_RTE_IAE >+{ >+ if ( i ) >+ { >+ if( !::rtl::math::isValidArcArg( 2.0 * r ) ) >+ THROW_IAE; >+ double fScale =1.0 / ( cos( 2.0 * r ) + cosh( 2.0 * i )); >+ r = sin( 2.0 * r ) * fScale; >+ i = sinh( 2.0 * i ) * fScale; >+ } >+ else >+ { >+ if( !::rtl::math::isValidArcArg( r ) ) >+ THROW_IAE; >+ r = tan( r ); >+ } >+} >+ >+ >+void Complex::Sec( void ) THROWDEF_RTE_IAE >+{ >+ if( i ) >+ { >+ if( !::rtl::math::isValidArcArg( 2 * r ) ) >+ THROW_IAE; >+ double fScale = 1.0 / (cosh( 2.0 * i) + cos ( 2.0 * r)); >+ double r_; >+ r_ = 2.0 * cos( r ) * cosh( i ) * fScale; >+ i = 2.0 * sin( r ) * sinh( i ) * fScale; >+ r = r_; >+ } >+ else >+ { >+ if( !::rtl::math::isValidArcArg( r ) ) >+ THROW_IAE; >+ r = 1.0 / cos( r ); >+ } >+} >+ >+ >+void Complex::Csc( void ) THROWDEF_RTE_IAE >+{ >+ if( i ) >+ { >+ if( !::rtl::math::isValidArcArg( 2 * r ) ) >+ THROW_IAE; >+ double fScale = 1.0 / (cosh( 2.0 * i) - cos ( 2.0 * r)); >+ double r_; >+ r_ = 2.0 * sin( r ) * cosh( i ) * fScale; >+ i = -2.0 * cos( r ) * sinh( i ) * fScale; >+ r = r_; >+ } >+ else >+ { >+ if( !::rtl::math::isValidArcArg( r ) ) >+ THROW_IAE; >+ r = 1.0 / sin( r ); >+ } >+} >+ >+ >+void Complex::Cot(void) THROWDEF_RTE_IAE >+{ >+ if ( i ) >+ { >+ if( !::rtl::math::isValidArcArg( 2.0 * r ) ) >+ THROW_IAE; >+ double fScale =1.0 / ( cosh( 2.0 * i ) - cos( 2.0 * r ) ); >+ r = sin( 2.0 * r ) * fScale; >+ i = - ( sinh( 2.0 * i ) * fScale ); >+ } >+ else >+ { >+ if( !::rtl::math::isValidArcArg( r ) ) >+ THROW_IAE; >+ r = 1.0 / tan( r ); >+ } >+} >+ >+ >+void Complex::Sinh( void ) THROWDEF_RTE_IAE >+{ >+ if( !::rtl::math::isValidArcArg( r ) ) >+ THROW_IAE; >+ >+ if( i ) >+ { >+ double r_; >+ r_ = sinh( r ) * cos( i ); >+ i = cosh( r ) * sin( i ); >+ r = r_; >+ } >+ else >+ r = sinh( r ); >+} >+ >+ >+void Complex::Cosh( void ) THROWDEF_RTE_IAE >+{ >+ if( !::rtl::math::isValidArcArg( r ) ) >+ THROW_IAE; >+ >+ if( i ) >+ { >+ double r_; >+ r_ = cosh( r ) * cos( i ); >+ i = sinh( r ) * sin( i ); >+ r = r_; >+ } >+ else >+ r = cosh( r ); >+} >+ >+ >+void Complex::Sech(void) THROWDEF_RTE_IAE >+{ >+ if ( i ) >+ { >+ if( !::rtl::math::isValidArcArg( 2.0 * r ) ) >+ THROW_IAE; >+ double fScale =1.0 / ( cosh( 2.0 * r ) + cos( 2.0 * i )); >+ double r_; >+ r_ = 2.0 * cosh( 2.0 * r ) * cos( i ) * fScale; >+ i = - (2.0 * sinh( 2.0 * r ) * sin( i ) * fScale ); >+ r = r_ ; >+ } >+ else >+ { >+ if( !::rtl::math::isValidArcArg( r ) ) >+ THROW_IAE; >+ r = 1.0 / cosh( r ); >+ } >+} >+ >+ >+void Complex::Csch(void) THROWDEF_RTE_IAE >+{ >+ if ( i ) >+ { >+ if( !::rtl::math::isValidArcArg( 2.0 * r ) ) >+ THROW_IAE; >+ double fScale =1.0 / ( cosh( 2.0 * r ) - cos( 2.0 * i )); >+ double r_; >+ r_ = 2.0 * sinh( 2.0 * r ) * cos( i ) * fScale; >+ i = - ( 2.0 * cosh( 2.0 * r ) * sin( i ) * fScale ); >+ r = r_ ; >+ } >+ else >+ { >+ if( !::rtl::math::isValidArcArg( r ) ) >+ THROW_IAE; >+ r = 1.0 / sinh( r ); >+ } >+} > > > ComplexList::~ComplexList() >diff --git a/scaddins/source/analysis/analysishelper.hxx b/scaddins/source/analysis/analysishelper.hxx >index 136a6e3..2abfc0f 100644 >--- a/scaddins/source/analysis/analysishelper.hxx >+++ b/scaddins/source/analysis/analysishelper.hxx >@@ -462,7 +462,7 @@ class Complex > sal_Unicode c; > > public: >- inline Complex( double fReal, double fImag = 0.0, sal_Char cC = '\0' ); >+ inline Complex( double fReal, double fImag = 0.0, sal_Unicode cC = '\0' ); > Complex( const STRING& rComplexAsString ) THROWDEF_RTE_IAE; > > inline static sal_Bool IsImagUnit( sal_Unicode c ); >@@ -490,6 +490,15 @@ public: > inline void Mult( const Complex& rMult ); > inline void Sub( const Complex& rMult ); > inline void Add( const Complex& rAdd ); >+ void Tan( void ) THROWDEF_RTE_IAE; >+ void Sec( void ) THROWDEF_RTE_IAE; >+ void Csc( void ) THROWDEF_RTE_IAE; >+ void Cot( void ) THROWDEF_RTE_IAE; >+ void Sinh( void ) THROWDEF_RTE_IAE; >+ void Cosh( void ) THROWDEF_RTE_IAE; >+ void Sech( void ) THROWDEF_RTE_IAE; >+ void Csch( void ) THROWDEF_RTE_IAE; >+ > }; > > >@@ -807,7 +816,7 @@ inline const FuncData* FuncDataList::Get( sal_uInt32 n ) const > } > > >-inline Complex::Complex( double fReal, double fImag, sal_Char cC ) : >+inline Complex::Complex( double fReal, double fImag, sal_Unicode cC ) : > r( fReal ), i( fImag ), c( cC ) > { > } >-- >1.7.5.1 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 51013
: 62938