[jira] [Created] (MATH-683) Create a method shift in the PolynomialFunction class

classic Classic list List threaded Threaded
14 messages Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Created] (MATH-683) Create a method shift in the PolynomialFunction class

ASF GitHub Bot (Jira)
Create a method shift in the PolynomialFunction class
-----------------------------------------------------

                 Key: MATH-683
                 URL: https://issues.apache.org/jira/browse/MATH-683
             Project: Commons Math
          Issue Type: New Feature
    Affects Versions: 3.0
         Environment: All
            Reporter: DI COSTANZO
            Priority: Trivial


Create a method shift to transform a polynomial P(k) in P(k + a) where a is any double value.
The polynomial sum(ai * k^i) turns into sum(ai * (k+a)^i)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       
Reply | Threaded
Open this post in threaded view
|

[jira] [Commented] (MATH-683) Create a method shift in the PolynomialFunction class

ASF GitHub Bot (Jira)

    [ https://issues.apache.org/jira/browse/MATH-683?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13119256#comment-13119256 ]

Gilles commented on MATH-683:
-----------------------------

You obtain the result by calling the "value" method with "k + a" as the argument.
Or did I miss something?
Please explain what you want to achieve.

               

> Create a method shift in the PolynomialFunction class
> -----------------------------------------------------
>
>                 Key: MATH-683
>                 URL: https://issues.apache.org/jira/browse/MATH-683
>             Project: Commons Math
>          Issue Type: New Feature
>    Affects Versions: 3.0
>         Environment: All
>            Reporter: DI COSTANZO
>            Priority: Trivial
>
> Create a method shift to transform a polynomial P(k) in P(k + a) where a is any double value.
> The polynomial sum(ai * k^i) turns into sum(ai * (k+a)^i)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       
Reply | Threaded
Open this post in threaded view
|

[jira] [Commented] (MATH-683) Create a method shift in the PolynomialFunction class

ASF GitHub Bot (Jira)
In reply to this post by ASF GitHub Bot (Jira)

    [ https://issues.apache.org/jira/browse/MATH-683?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13119267#comment-13119267 ]

DI COSTANZO commented on MATH-683:
----------------------------------

No. I don't want to modify the "value" method. I just want to add a new "shift" method transforming the current polynomial defined as an array of coeffcient in increasing 'x' power, by a new polynomial where 'x' is replaced by 'x+a', a beeing a double value. The signature could be something like this :

PolynomialFunction shift(final double shift){
}

So, if the initial polynomial is given by :
P1 = sum(ai * x^i) (i = 0...n)

The new polynomial created by the "shift" method will be :
P2 = sum(ai * (x + a)^i) (i = 0...n)
               

> Create a method shift in the PolynomialFunction class
> -----------------------------------------------------
>
>                 Key: MATH-683
>                 URL: https://issues.apache.org/jira/browse/MATH-683
>             Project: Commons Math
>          Issue Type: New Feature
>    Affects Versions: 3.0
>         Environment: All
>            Reporter: DI COSTANZO
>            Priority: Trivial
>
> Create a method shift to transform a polynomial P(k) in P(k + a) where a is any double value.
> The polynomial sum(ai * k^i) turns into sum(ai * (k+a)^i)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       
Reply | Threaded
Open this post in threaded view
|

[jira] [Commented] (MATH-683) Create a method shift in the PolynomialFunction class

ASF GitHub Bot (Jira)
In reply to this post by ASF GitHub Bot (Jira)

    [ https://issues.apache.org/jira/browse/MATH-683?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13119273#comment-13119273 ]

S├ębastien Brisard commented on MATH-683:
----------------------------------------

I think you might want to specify whether or not you would like at some point to be able to retrieve the coefficients of {{P2}}. In other words, do you need {{P2}} to be a {{PolynomialFunction}} or do you merely need to be able to compose {{P1}} and a shifter, which would return {{P2}} as a {{UnivariateRealFunction}}, e.g
{code}
final PolynomialFunction p1 = PolynomialsUtils.createLegendrePolynomial(10);
final double a = 1.;
UnivariateRealFunction p2 = new UnivariateRealFunction(){
  public double value(final double x){
    return p1.value(x+a);
  }
}
{code}
I suspect the answer is the first option, since you also requested for the Pascale Triangle...
S├ębastien
               

> Create a method shift in the PolynomialFunction class
> -----------------------------------------------------
>
>                 Key: MATH-683
>                 URL: https://issues.apache.org/jira/browse/MATH-683
>             Project: Commons Math
>          Issue Type: New Feature
>    Affects Versions: 3.0
>         Environment: All
>            Reporter: DI COSTANZO
>            Priority: Trivial
>
> Create a method shift to transform a polynomial P(k) in P(k + a) where a is any double value.
> The polynomial sum(ai * k^i) turns into sum(ai * (k+a)^i)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply | Threaded
Open this post in threaded view
|

[jira] [Commented] (MATH-683) Create a method shift in the PolynomialFunction class

ASF GitHub Bot (Jira)
In reply to this post by ASF GitHub Bot (Jira)

    [ https://issues.apache.org/jira/browse/MATH-683?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13119278#comment-13119278 ]

DI COSTANZO commented on MATH-683:
----------------------------------

You're right, I'm interested by the first option, I need P2 to be a PolynomialFunction.
And effectively, my post on the Pascal Triangle goes in this sense.
Romain
               

> Create a method shift in the PolynomialFunction class
> -----------------------------------------------------
>
>                 Key: MATH-683
>                 URL: https://issues.apache.org/jira/browse/MATH-683
>             Project: Commons Math
>          Issue Type: New Feature
>    Affects Versions: 3.0
>         Environment: All
>            Reporter: DI COSTANZO
>            Priority: Trivial
>
> Create a method shift to transform a polynomial P(k) in P(k + a) where a is any double value.
> The polynomial sum(ai * k^i) turns into sum(ai * (k+a)^i)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       
Reply | Threaded
Open this post in threaded view
|

[jira] [Commented] (MATH-683) Create a method shift in the PolynomialFunction class

ASF GitHub Bot (Jira)
In reply to this post by ASF GitHub Bot (Jira)

    [ https://issues.apache.org/jira/browse/MATH-683?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13119304#comment-13119304 ]

Gilles commented on MATH-683:
-----------------------------

Maybe that I'm being a little dense, but I think that you've not explained why the following class, which you could create in your application, is not what you need:
{code}
public class ShiftedPolynomial extends PolynomialFunction {
    private double shift;

    public ShiftedPolynomial(PolynomialFunction f, double a) {
        this(f.getCoefficients(), a);
    }
    public ShiftedPolynomial(double c[], double a) {
        super(c);
        shift = a;
    }

    public double value(double x) {
        super.value(x + shift);
    }

    public ShiftedPolynomial polynomialDerivative() {
        return new ShiftedPolynomial(super.polynomialDerivative(), shift);
    }
}
{code}

               

> Create a method shift in the PolynomialFunction class
> -----------------------------------------------------
>
>                 Key: MATH-683
>                 URL: https://issues.apache.org/jira/browse/MATH-683
>             Project: Commons Math
>          Issue Type: New Feature
>    Affects Versions: 3.0
>         Environment: All
>            Reporter: DI COSTANZO
>            Priority: Trivial
>
> Create a method shift to transform a polynomial P(k) in P(k + a) where a is any double value.
> The polynomial sum(ai * k^i) turns into sum(ai * (k+a)^i)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       
Reply | Threaded
Open this post in threaded view
|

[jira] [Commented] (MATH-683) Create a method shift in the PolynomialFunction class

ASF GitHub Bot (Jira)
In reply to this post by ASF GitHub Bot (Jira)

    [ https://issues.apache.org/jira/browse/MATH-683?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13119313#comment-13119313 ]

DI COSTANZO commented on MATH-683:
----------------------------------

Effectivelly, the code you posted above can be a solution for someone who only want to evaluate a polynomial function shifted by a specific value.
Unfortunately, I can't deal with that representation, as I need to have the coefficients of the shifted polynomial :
I'm facing this problem in a recurrence formula. To achieve it, I need to sum polynomial, some of them being shifted by real values.
               

> Create a method shift in the PolynomialFunction class
> -----------------------------------------------------
>
>                 Key: MATH-683
>                 URL: https://issues.apache.org/jira/browse/MATH-683
>             Project: Commons Math
>          Issue Type: New Feature
>    Affects Versions: 3.0
>         Environment: All
>            Reporter: DI COSTANZO
>            Priority: Trivial
>
> Create a method shift to transform a polynomial P(k) in P(k + a) where a is any double value.
> The polynomial sum(ai * k^i) turns into sum(ai * (k+a)^i)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       
Reply | Threaded
Open this post in threaded view
|

[jira] [Commented] (MATH-683) Create a method shift in the PolynomialFunction class

ASF GitHub Bot (Jira)
In reply to this post by ASF GitHub Bot (Jira)

    [ https://issues.apache.org/jira/browse/MATH-683?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13119315#comment-13119315 ]

DI COSTANZO commented on MATH-683:
----------------------------------

Just a last precision,I need to implement this method anyway to achieve my work on those recurrence formul. What I can do is to send you the corresponding code, and you could add it if you think it could be usefull to others...
Romain
               

> Create a method shift in the PolynomialFunction class
> -----------------------------------------------------
>
>                 Key: MATH-683
>                 URL: https://issues.apache.org/jira/browse/MATH-683
>             Project: Commons Math
>          Issue Type: New Feature
>    Affects Versions: 3.0
>         Environment: All
>            Reporter: DI COSTANZO
>            Priority: Trivial
>
> Create a method shift to transform a polynomial P(k) in P(k + a) where a is any double value.
> The polynomial sum(ai * k^i) turns into sum(ai * (k+a)^i)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       
Reply | Threaded
Open this post in threaded view
|

[jira] [Commented] (MATH-683) Create a method shift in the PolynomialFunction class

ASF GitHub Bot (Jira)
In reply to this post by ASF GitHub Bot (Jira)

    [ https://issues.apache.org/jira/browse/MATH-683?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13119334#comment-13119334 ]

Gilles commented on MATH-683:
-----------------------------

Yes, please attach everything that could be useful to figure out what is the required functionality.
So, if I understand correctly, what you really request is the function that would compute the new  coefficients ("bi"):
{noformat}
Ps(k) = Sum bi * k^i
      = Sum ai * (k + a)^i
      = P(k + a)
{noformat}

This functionality should probably go in the "PolynomialsUtils" class:
{code}
public static double[] shiftedPolynomialCoefficients(double[] c, double shift) {
    // ...
}
{code}

               

> Create a method shift in the PolynomialFunction class
> -----------------------------------------------------
>
>                 Key: MATH-683
>                 URL: https://issues.apache.org/jira/browse/MATH-683
>             Project: Commons Math
>          Issue Type: New Feature
>    Affects Versions: 3.0
>         Environment: All
>            Reporter: DI COSTANZO
>            Priority: Trivial
>
> Create a method shift to transform a polynomial P(k) in P(k + a) where a is any double value.
> The polynomial sum(ai * k^i) turns into sum(ai * (k+a)^i)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       
Reply | Threaded
Open this post in threaded view
|

[jira] [Commented] (MATH-683) Create a method shift in the PolynomialFunction class

ASF GitHub Bot (Jira)
In reply to this post by ASF GitHub Bot (Jira)

    [ https://issues.apache.org/jira/browse/MATH-683?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13119339#comment-13119339 ]

DI COSTANZO commented on MATH-683:
----------------------------------

That's it. I'll send you the code when completed.

               

> Create a method shift in the PolynomialFunction class
> -----------------------------------------------------
>
>                 Key: MATH-683
>                 URL: https://issues.apache.org/jira/browse/MATH-683
>             Project: Commons Math
>          Issue Type: New Feature
>    Affects Versions: 3.0
>         Environment: All
>            Reporter: DI COSTANZO
>            Priority: Trivial
>
> Create a method shift to transform a polynomial P(k) in P(k + a) where a is any double value.
> The polynomial sum(ai * k^i) turns into sum(ai * (k+a)^i)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       
Reply | Threaded
Open this post in threaded view
|

[jira] [Updated] (MATH-683) Create a method shift in the PolynomialFunction class

ASF GitHub Bot (Jira)
In reply to this post by ASF GitHub Bot (Jira)

     [ https://issues.apache.org/jira/browse/MATH-683?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

DI COSTANZO updated MATH-683:
-----------------------------

    Attachment: PolynomialsUtilsTest.java
                PolynomialsUtils.java

Hello,

Here is the code for the shift method described above, and its associated test. As wanted, I add this functionnality in the PolynomailsUtils class.
Romain
               

> Create a method shift in the PolynomialFunction class
> -----------------------------------------------------
>
>                 Key: MATH-683
>                 URL: https://issues.apache.org/jira/browse/MATH-683
>             Project: Commons Math
>          Issue Type: New Feature
>    Affects Versions: 3.0
>         Environment: All
>            Reporter: DI COSTANZO
>            Priority: Trivial
>         Attachments: PolynomialsUtils.java, PolynomialsUtilsTest.java
>
>
> Create a method shift to transform a polynomial P(k) in P(k + a) where a is any double value.
> The polynomial sum(ai * k^i) turns into sum(ai * (k+a)^i)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       
Reply | Threaded
Open this post in threaded view
|

[jira] [Resolved] (MATH-683) Create a method shift in the PolynomialFunction class

ASF GitHub Bot (Jira)
In reply to this post by ASF GitHub Bot (Jira)

     [ https://issues.apache.org/jira/browse/MATH-683?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gilles resolved MATH-683.
-------------------------

       Resolution: Fixed
    Fix Version/s: 3.0

Committed (with some stylistic changes) in revision 1179671.

Thanks for the contribution. But when submitting changes to an existing file, it is better to provide a "patch". Also, do not forget to check whether there are any warnings generated by the "CheckStyle" tool.

               

> Create a method shift in the PolynomialFunction class
> -----------------------------------------------------
>
>                 Key: MATH-683
>                 URL: https://issues.apache.org/jira/browse/MATH-683
>             Project: Commons Math
>          Issue Type: New Feature
>    Affects Versions: 3.0
>         Environment: All
>            Reporter: DI COSTANZO
>            Priority: Trivial
>             Fix For: 3.0
>
>         Attachments: PolynomialsUtils.java, PolynomialsUtilsTest.java
>
>
> Create a method shift to transform a polynomial P(k) in P(k + a) where a is any double value.
> The polynomial sum(ai * k^i) turns into sum(ai * (k+a)^i)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       
Reply | Threaded
Open this post in threaded view
|

[jira] [Commented] (MATH-683) Create a method shift in the PolynomialFunction class

ASF GitHub Bot (Jira)
In reply to this post by ASF GitHub Bot (Jira)

    [ https://issues.apache.org/jira/browse/MATH-683?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13122018#comment-13122018 ]

Gilles commented on MATH-683:
-----------------------------

I also changed the return type of the method, in order to emphasize the transformation of the coefficients. It is trivial for the user to create the "PolynomialFunction".
               

> Create a method shift in the PolynomialFunction class
> -----------------------------------------------------
>
>                 Key: MATH-683
>                 URL: https://issues.apache.org/jira/browse/MATH-683
>             Project: Commons Math
>          Issue Type: New Feature
>    Affects Versions: 3.0
>         Environment: All
>            Reporter: DI COSTANZO
>            Priority: Trivial
>             Fix For: 3.0
>
>         Attachments: PolynomialsUtils.java, PolynomialsUtilsTest.java
>
>
> Create a method shift to transform a polynomial P(k) in P(k + a) where a is any double value.
> The polynomial sum(ai * k^i) turns into sum(ai * (k+a)^i)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       
Reply | Threaded
Open this post in threaded view
|

[jira] [Commented] (MATH-683) Create a method shift in the PolynomialFunction class

ASF GitHub Bot (Jira)
In reply to this post by ASF GitHub Bot (Jira)

    [ https://issues.apache.org/jira/browse/MATH-683?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13122664#comment-13122664 ]

DI COSTANZO commented on MATH-683:
----------------------------------

Thanks !
I didn't know for the patch, I'll provide one next time. And I'll will also check the CheckStyle warnings.
               

> Create a method shift in the PolynomialFunction class
> -----------------------------------------------------
>
>                 Key: MATH-683
>                 URL: https://issues.apache.org/jira/browse/MATH-683
>             Project: Commons Math
>          Issue Type: New Feature
>    Affects Versions: 3.0
>         Environment: All
>            Reporter: DI COSTANZO
>            Priority: Trivial
>             Fix For: 3.0
>
>         Attachments: PolynomialsUtils.java, PolynomialsUtilsTest.java
>
>
> Create a method shift to transform a polynomial P(k) in P(k + a) where a is any double value.
> The polynomial sum(ai * k^i) turns into sum(ai * (k+a)^i)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira