diff options
Diffstat (limited to 'offapi/com/sun/star/chart2/XRegressionCurveCalculator.idl')
-rw-r--r-- | offapi/com/sun/star/chart2/XRegressionCurveCalculator.idl | 187 |
1 files changed, 187 insertions, 0 deletions
diff --git a/offapi/com/sun/star/chart2/XRegressionCurveCalculator.idl b/offapi/com/sun/star/chart2/XRegressionCurveCalculator.idl new file mode 100644 index 000000000..c4313f42b --- /dev/null +++ b/offapi/com/sun/star/chart2/XRegressionCurveCalculator.idl @@ -0,0 +1,187 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_XRegressionCurveCalculator_idl +#define com_sun_star_chart2_XRegressionCurveCalculator_idl + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/util/XNumberFormatsSupplier.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/geometry/RealPoint2D.idl> +#include <com/sun/star/chart2/XScaling.idl> + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +interface XRegressionCurveCalculator : com::sun::star::uno::XInterface +{ + /** set calculation properties for curve calculation. + + @param degree + Degree of polynomial regression curve, value should be greater than zero + If the curve is not polynomial, this property has no effect. + + @param period + Period of a moving average regression curve, value should be greater or equal to 2 + If the curve is not moving average regression curve, this property has no effect. + + @param forceIntercept + Should force the intercept value. + + @param interceptValue + Intercept value. + + @param movingType + Only if regression type is "Moving Average" + @see ::com::sun::star::chart2::MovingAverageType + + */ + void setRegressionProperties( [in] long degree, + [in] boolean forceIntercept, + [in] double interceptValue, + [in] long period, + [in] long movingType); + + /** recalculates the parameters of the internal regression curve according to + the <i>x</i>- and <i>y</i>-values given. + + @param aXValues + All x-values that represent the measurement points on + which the regression is based + + @param aYValues + All y-values that represent the measurement points on + which the regression is based + */ + void recalculateRegression( [in] sequence< double > aXValues, + [in] sequence< double > aYValues); + + + /** calculates the value of the regression curve for <i>x</i>. + + @param x + The abscissa value for which the value of the regression + curve should be calculated. All numbers that are part of + the domain of the regression function are valid. + + @return + If <i>x</i> is element of the domain of the regression + curve function, the result is its value. + + @throws com::sun::star::lang::IllegalArgumentException + If <i>x</i> is not part of the domain of the regression + function. + */ + double getCurveValue( [in] double x ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** calculate multiple points of a regression curve at once. Note + that this method may optimize the output by returning less + points, e.g. for a line you may get only two resulting points + instead of nPointCount() points. This is only + allowed if the parameter + bMaySkipPointsInCalculation() is set to + `TRUE`. + + <p>It is important that a renderer takes the scalings into + account. When one of these parameters is unknown, no + optimization must be done.</p> + + @param min the abscissa value for the starting point. + @param max the abscissa value for the ending point. + + @param nPointCount the number of points to calculate. + + @param bMaySkipPointsInCalculation determines whether it is + allowed to skip points in the calculation. When this + parameter is `TRUE` it is assumed that the underlying + coordinate system is Cartesian. + + @param xScalingX a scaling that is used for the values in + x-direction + + @param xScalingY a scaling that is used for the values in + y-direction + */ + sequence< com::sun::star::geometry::RealPoint2D > getCurveValues( + [in] double min, + [in] double max, + [in] long nPointCount, + [in] XScaling xScalingX, + [in] XScaling xScalingY, + [in] boolean bMaySkipPointsInCalculation ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** Returns the value of the correlation coefficient for the given + regression. This value is often denoted as <i>r</i> or + <i>R</i>. + + <p>The value of <i>r</i> is signed. Often + <i>r</i><sup>2</sup> is used instead of <i>r</i> to denote + a regression curve's accuracy.</p> + + @return + The return value is the fraction of the variance in the + data that is explained by the regression. + */ + double getCorrelationCoefficient(); + + /** Retrieve a string showing the regression curve's function with + calculated parameters. + + @return + The string returned contains the regression curve's + formula in a form <pre>"f(x) = ..."</pre>, where the + calculated parts are filled out. For a linear regression + you might get <pre>"f(x) = 0.341 x + 1.45"</pre>. + */ + string getRepresentation(); + + /** Returns a representation using the given number format for formatting all numbers + contained in the formula. Wrap equation to fit in nFormulaLength characters + + @see getRepresentation + */ + string getFormattedRepresentation( [in] com::sun::star::util::XNumberFormatsSupplier xNumFmtSupplier, + [in] long nNumberFormatKey, + [in] long nFormulaLength ); + + /** Set the names of X and Y variables of the equation to replace "x" and "f(x)" in representation + + @param aXName string of the name of X variable + @param aYName string of the name of Y variable + */ + void setXYNames( [in] string aXName, + [in] string aYName ); + +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |