You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by "Becksfort, Jared" <Ja...@STJUDE.ORG> on 2013/03/08 21:14:33 UTC

[math] Scaling arrays

Hello,

I may be missing it somewhere, but I am surprised there is no function for scaling arrays in MathArrays.java or somewhere else.

-          Am I stupidly missing it?

-          Is there a reason it is not in there?

-          Shall I add it?

Thanks,
Jared

________________________________
Email Disclaimer: www.stjude.org/emaildisclaimer
Consultation Disclaimer: www.stjude.org/consultationdisclaimer

RE: [math] Scaling arrays

Posted by "Becksfort, Jared" <Ja...@STJUDE.ORG>.
> Patches just applied.  Many thanks.  One small thing that will make it easier in the future is to create patches from the top-level /trunk directory.  Thanks!

>Phil

OK, will do.

Email Disclaimer:  www.stjude.org/emaildisclaimer
Consultation Disclaimer:  www.stjude.org/consultationdisclaimer


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Re: [math] Scaling arrays

Posted by Phil Steitz <ph...@gmail.com>.
On 3/15/13 1:21 PM, Becksfort, Jared wrote:
>
> -----Original Message-----
> From: Becksfort, Jared
> Sent: Monday, March 11, 2013 12:28 PM
> To: Commons Developers List
> Subject: RE: [math] Scaling arrays. .
>
> On 3/11/13 8:21 AM, Becksfort, Jared wrote:
>> Hi Phil,
>>
>>> What exactly *is* it and what are the use cases?
>> Just a method to multiply each element in an array by a number and return either a copy of the array or do it in place.  Maybe there can be one method for either way:
>>
>> public static double[] scale(double val, final double[] arr) {
>>         double[] newArr = new double[arr.length];
>>         for (int i = 0; i < arr.length; i++) {
>>             newArr[i] = arr[i] * val;
>>         }
>>         return newArr;
>>     }
>>
>>     public static void scaleInPlace(double val, final double[] arr) {
>>         for (int i = 0; i < arr.length; i++) {
>>             arr[i] *= val;
>>         }
>>     }
>>
>>> ...use cases
>> I imagine they are pretty varied.  These methods could be used any time you want to multiply all elements in an array by a number without writing a loop each time.  I am using this in some optimization code that I am submitting but figured it would be broadly applicable enough to just be put in the MathArrays class.
>>
>> Jared
>>
>> -----Original Message-----
>> From: Phil Steitz [mailto:phil.steitz@gmail.com]
>> Sent: Sunday, March 10, 2013 2:19 PM
>> To: Commons Developers List
>> Subject: Re: [math] Scaling arrays. .
>>
>> On 3/8/13 12:14 PM, Becksfort, Jared wrote:
>>> Hello,
>>>
>>> I may be missing it somewhere, but I am surprised there is no function for scaling arrays in MathArrays.java or somewhere else.
>>>
>>> -          Am I stupidly missing it?
>> Probably not.  Closest thing is probably normalize in MathArrays.
>>> -          Is there a reason it is not in there?
>> Probably no; though you will find that most vector / array algebraic operations are implemented on the objects in the linear package, rather than directly on double[]s.
>>> -          Shall I add it?
>> +1 to add this
>> Created an issue and submitted patches for MathArrays.java and MathArraysTest.java
>> https://issues.apache.org/jira/browse/MATH-946
>> Jared
>> Phil
>> What exactly *is* it and what are the use cases?
>>
>> Phil
>>> Thanks,
>>> Jared
> Hello,
>
> Does anyone know if these changes might be committed to the repository?  Some upcoming changes I am submitting for another issue rely on it.  It is not too much trouble for me to remove the dependencies, but if this is going in then I may as well use it.
>
> https://issues.apache.org/jira/browse/MATH-946

Patches just applied.  Many thanks.  One small thing that will make
it easier in the future is to create patches from the top-level
/trunk directory.  Thanks!

Phil
>
> Thanks,
> Jared
>
>
>
> Email Disclaimer:  www.stjude.org/emaildisclaimer
> Consultation Disclaimer:  www.stjude.org/consultationdisclaimer
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Re: [math] Scaling arrays

Posted by Luc Maisonobe <Lu...@free.fr>.
Le 15/03/2013 22:36, Luc Maisonobe a écrit :
> Le 15/03/2013 21:21, Becksfort, Jared a écrit :
>>
>>
>> -----Original Message----- From: Becksfort, Jared Sent: Monday, March
>> 11, 2013 12:28 PM To: Commons Developers List Subject: RE: [math]
>> Scaling arrays. .
>>
>> On 3/11/13 8:21 AM, Becksfort, Jared wrote:
>>> Hi Phil,
>>>
>>>> What exactly *is* it and what are the use cases?
>>> Just a method to multiply each element in an array by a number and
>>> return either a copy of the array or do it in place.  Maybe there
>>> can be one method for either way:
>>>
>>> public static double[] scale(double val, final double[] arr) { 
>>> double[] newArr = new double[arr.length]; for (int i = 0; i <
>>> arr.length; i++) { newArr[i] = arr[i] * val; } return newArr; }
>>>
>>> public static void scaleInPlace(double val, final double[] arr) { 
>>> for (int i = 0; i < arr.length; i++) { arr[i] *= val; } }
>>>
>>>> ...use cases
>>> I imagine they are pretty varied.  These methods could be used any
>>> time you want to multiply all elements in an array by a number
>>> without writing a loop each time.  I am using this in some
>>> optimization code that I am submitting but figured it would be
>>> broadly applicable enough to just be put in the MathArrays class.
>>>
>>> Jared
>>>
>>> -----Original Message----- From: Phil Steitz
>>> [mailto:phil.steitz@gmail.com] Sent: Sunday, March 10, 2013 2:19
>>> PM To: Commons Developers List Subject: Re: [math] Scaling arrays.
>>> .
>>>
>>> On 3/8/13 12:14 PM, Becksfort, Jared wrote:
>>>> Hello,
>>>>
>>>> I may be missing it somewhere, but I am surprised there is no
>>>> function for scaling arrays in MathArrays.java or somewhere
>>>> else.
>>>>
>>>> -          Am I stupidly missing it?
>>> Probably not.  Closest thing is probably normalize in MathArrays.
>>>> -          Is there a reason it is not in there?
>>> Probably no; though you will find that most vector / array
>>> algebraic operations are implemented on the objects in the linear
>>> package, rather than directly on double[]s.
>>>> -          Shall I add it?
>>
>>> +1 to add this
>>
>>> Created an issue and submitted patches for MathArrays.java and
>>> MathArraysTest.java
>>
>>> https://issues.apache.org/jira/browse/MATH-946
>>
>>> Jared
>>
>>> Phil What exactly *is* it and what are the use cases?
>>>
>>> Phil
>>>> Thanks, Jared
>>
>> Hello,
>>
> 
> Hi Jared,
> 
>> Does anyone know if these changes might be committed to the
>> repository?  Some upcoming changes I am submitting for another issue
>> rely on it.  It is not too much trouble for me to remove the
>> dependencies, but if this is going in then I may as well use it.
> 
> I will look at this tomorrow morning (European time) and will probably
> commit it if nobody does it before.

Well, it seems Phil did it just a few minutes ago ;-)

Luc

> 
> best regards,
> Luc
> 
>>
>> https://issues.apache.org/jira/browse/MATH-946
>>
>> Thanks, Jared
>>
>>
>>
>> Email Disclaimer:  www.stjude.org/emaildisclaimer Consultation
>> Disclaimer:  www.stjude.org/consultationdisclaimer
>>
>>
>> ---------------------------------------------------------------------
>>
>>
> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
>> For additional commands, e-mail: dev-help@commons.apache.org
>>
>>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Re: [math] Scaling arrays

Posted by Luc Maisonobe <Lu...@free.fr>.
Le 15/03/2013 21:21, Becksfort, Jared a écrit :
> 
> 
> -----Original Message----- From: Becksfort, Jared Sent: Monday, March
> 11, 2013 12:28 PM To: Commons Developers List Subject: RE: [math]
> Scaling arrays. .
> 
> On 3/11/13 8:21 AM, Becksfort, Jared wrote:
>> Hi Phil,
>> 
>>> What exactly *is* it and what are the use cases?
>> Just a method to multiply each element in an array by a number and
>> return either a copy of the array or do it in place.  Maybe there
>> can be one method for either way:
>> 
>> public static double[] scale(double val, final double[] arr) { 
>> double[] newArr = new double[arr.length]; for (int i = 0; i <
>> arr.length; i++) { newArr[i] = arr[i] * val; } return newArr; }
>> 
>> public static void scaleInPlace(double val, final double[] arr) { 
>> for (int i = 0; i < arr.length; i++) { arr[i] *= val; } }
>> 
>>> ...use cases
>> I imagine they are pretty varied.  These methods could be used any
>> time you want to multiply all elements in an array by a number
>> without writing a loop each time.  I am using this in some
>> optimization code that I am submitting but figured it would be
>> broadly applicable enough to just be put in the MathArrays class.
>> 
>> Jared
>> 
>> -----Original Message----- From: Phil Steitz
>> [mailto:phil.steitz@gmail.com] Sent: Sunday, March 10, 2013 2:19
>> PM To: Commons Developers List Subject: Re: [math] Scaling arrays.
>> .
>> 
>> On 3/8/13 12:14 PM, Becksfort, Jared wrote:
>>> Hello,
>>> 
>>> I may be missing it somewhere, but I am surprised there is no
>>> function for scaling arrays in MathArrays.java or somewhere
>>> else.
>>> 
>>> -          Am I stupidly missing it?
>> Probably not.  Closest thing is probably normalize in MathArrays.
>>> -          Is there a reason it is not in there?
>> Probably no; though you will find that most vector / array
>> algebraic operations are implemented on the objects in the linear
>> package, rather than directly on double[]s.
>>> -          Shall I add it?
> 
>> +1 to add this
> 
>> Created an issue and submitted patches for MathArrays.java and
>> MathArraysTest.java
> 
>> https://issues.apache.org/jira/browse/MATH-946
> 
>> Jared
> 
>> Phil What exactly *is* it and what are the use cases?
>> 
>> Phil
>>> Thanks, Jared
> 
> Hello,
> 

Hi Jared,

> Does anyone know if these changes might be committed to the
> repository?  Some upcoming changes I am submitting for another issue
> rely on it.  It is not too much trouble for me to remove the
> dependencies, but if this is going in then I may as well use it.

I will look at this tomorrow morning (European time) and will probably
commit it if nobody does it before.

best regards,
Luc

> 
> https://issues.apache.org/jira/browse/MATH-946
> 
> Thanks, Jared
> 
> 
> 
> Email Disclaimer:  www.stjude.org/emaildisclaimer Consultation
> Disclaimer:  www.stjude.org/consultationdisclaimer
> 
> 
> ---------------------------------------------------------------------
>
> 
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


RE: [math] Scaling arrays

Posted by "Becksfort, Jared" <Ja...@STJUDE.ORG>.

-----Original Message-----
From: Becksfort, Jared
Sent: Monday, March 11, 2013 12:28 PM
To: Commons Developers List
Subject: RE: [math] Scaling arrays. .

On 3/11/13 8:21 AM, Becksfort, Jared wrote:
> Hi Phil,
>
>> What exactly *is* it and what are the use cases?
> Just a method to multiply each element in an array by a number and return either a copy of the array or do it in place.  Maybe there can be one method for either way:
>
> public static double[] scale(double val, final double[] arr) {
>         double[] newArr = new double[arr.length];
>         for (int i = 0; i < arr.length; i++) {
>             newArr[i] = arr[i] * val;
>         }
>         return newArr;
>     }
>
>     public static void scaleInPlace(double val, final double[] arr) {
>         for (int i = 0; i < arr.length; i++) {
>             arr[i] *= val;
>         }
>     }
>
>> ...use cases
> I imagine they are pretty varied.  These methods could be used any time you want to multiply all elements in an array by a number without writing a loop each time.  I am using this in some optimization code that I am submitting but figured it would be broadly applicable enough to just be put in the MathArrays class.
>
> Jared
>
> -----Original Message-----
> From: Phil Steitz [mailto:phil.steitz@gmail.com]
> Sent: Sunday, March 10, 2013 2:19 PM
> To: Commons Developers List
> Subject: Re: [math] Scaling arrays. .
>
> On 3/8/13 12:14 PM, Becksfort, Jared wrote:
>> Hello,
>>
>> I may be missing it somewhere, but I am surprised there is no function for scaling arrays in MathArrays.java or somewhere else.
>>
>> -          Am I stupidly missing it?
> Probably not.  Closest thing is probably normalize in MathArrays.
>> -          Is there a reason it is not in there?
> Probably no; though you will find that most vector / array algebraic operations are implemented on the objects in the linear package, rather than directly on double[]s.
>> -          Shall I add it?

>+1 to add this

>Created an issue and submitted patches for MathArrays.java and MathArraysTest.java

>https://issues.apache.org/jira/browse/MATH-946

>Jared

>Phil
> What exactly *is* it and what are the use cases?
>
> Phil
>> Thanks,
>> Jared

Hello,

Does anyone know if these changes might be committed to the repository?  Some upcoming changes I am submitting for another issue rely on it.  It is not too much trouble for me to remove the dependencies, but if this is going in then I may as well use it.

https://issues.apache.org/jira/browse/MATH-946

Thanks,
Jared



Email Disclaimer:  www.stjude.org/emaildisclaimer
Consultation Disclaimer:  www.stjude.org/consultationdisclaimer


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


RE: [math] Scaling arrays

Posted by "Becksfort, Jared" <Ja...@STJUDE.ORG>.
On 3/11/13 8:21 AM, Becksfort, Jared wrote:
> Hi Phil,
>
>> What exactly *is* it and what are the use cases?
> Just a method to multiply each element in an array by a number and return either a copy of the array or do it in place.  Maybe there can be one method for either way:
>
> public static double[] scale(double val, final double[] arr) {
>         double[] newArr = new double[arr.length];
>         for (int i = 0; i < arr.length; i++) {
>             newArr[i] = arr[i] * val;
>         }
>         return newArr;
>     }
>
>     public static void scaleInPlace(double val, final double[] arr) {
>         for (int i = 0; i < arr.length; i++) {
>             arr[i] *= val;
>         }
>     }
>
>> ...use cases
> I imagine they are pretty varied.  These methods could be used any time you want to multiply all elements in an array by a number without writing a loop each time.  I am using this in some optimization code that I am submitting but figured it would be broadly applicable enough to just be put in the MathArrays class.
>
> Jared
>
> -----Original Message-----
> From: Phil Steitz [mailto:phil.steitz@gmail.com]
> Sent: Sunday, March 10, 2013 2:19 PM
> To: Commons Developers List
> Subject: Re: [math] Scaling arrays. .
>
> On 3/8/13 12:14 PM, Becksfort, Jared wrote:
>> Hello,
>>
>> I may be missing it somewhere, but I am surprised there is no function for scaling arrays in MathArrays.java or somewhere else.
>>
>> -          Am I stupidly missing it?
> Probably not.  Closest thing is probably normalize in MathArrays.
>> -          Is there a reason it is not in there?
> Probably no; though you will find that most vector / array algebraic operations are implemented on the objects in the linear package, rather than directly on double[]s.
>> -          Shall I add it?

>+1 to add this

Created an issue and submitted patches for MathArrays.java and MathArraysTest.java

https://issues.apache.org/jira/browse/MATH-946

Jared

>Phil
> What exactly *is* it and what are the use cases?
>
> Phil
>> Thanks,
>> Jared



Email Disclaimer:  www.stjude.org/emaildisclaimer
Consultation Disclaimer:  www.stjude.org/consultationdisclaimer


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Re: [math] Scaling arrays

Posted by Phil Steitz <ph...@gmail.com>.
On 3/11/13 8:21 AM, Becksfort, Jared wrote:
> Hi Phil,
>
>> What exactly *is* it and what are the use cases?
> Just a method to multiply each element in an array by a number and return either a copy of the array or do it in place.  Maybe there can be one method for either way:
>
> public static double[] scale(double val, final double[] arr) {
>         double[] newArr = new double[arr.length];
>         for (int i = 0; i < arr.length; i++) {
>             newArr[i] = arr[i] * val;
>         }
>         return newArr;
>     }
>     
>     public static void scaleInPlace(double val, final double[] arr) {
>         for (int i = 0; i < arr.length; i++) {
>             arr[i] *= val;
>         }
>     }
>
>> ...use cases
> I imagine they are pretty varied.  These methods could be used any time you want to multiply all elements in an array by a number without writing a loop each time.  I am using this in some optimization code that I am submitting but figured it would be broadly applicable enough to just be put in the MathArrays class.
>
> Jared
>
> -----Original Message-----
> From: Phil Steitz [mailto:phil.steitz@gmail.com] 
> Sent: Sunday, March 10, 2013 2:19 PM
> To: Commons Developers List
> Subject: Re: [math] Scaling arrays. .
>
> On 3/8/13 12:14 PM, Becksfort, Jared wrote:
>> Hello,
>>
>> I may be missing it somewhere, but I am surprised there is no function for scaling arrays in MathArrays.java or somewhere else.
>>
>> -          Am I stupidly missing it?
> Probably not.  Closest thing is probably normalize in MathArrays.
>> -          Is there a reason it is not in there?
> Probably no; though you will find that most vector / array algebraic operations are implemented on the objects in the linear package, rather than directly on double[]s.
>> -          Shall I add it?

+1 to add this

Phil
> What exactly *is* it and what are the use cases?
>
> Phil
>> Thanks,
>> Jared
>>
>> ________________________________
>> Email Disclaimer: www.stjude.org/emaildisclaimer Consultation 
>> Disclaimer: www.stjude.org/consultationdisclaimer
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


RE: [math] Scaling arrays

Posted by "Becksfort, Jared" <Ja...@STJUDE.ORG>.
Hi Phil,

> What exactly *is* it and what are the use cases?

Just a method to multiply each element in an array by a number and return either a copy of the array or do it in place.  Maybe there can be one method for either way:

public static double[] scale(double val, final double[] arr) {
        double[] newArr = new double[arr.length];
        for (int i = 0; i < arr.length; i++) {
            newArr[i] = arr[i] * val;
        }
        return newArr;
    }
    
    public static void scaleInPlace(double val, final double[] arr) {
        for (int i = 0; i < arr.length; i++) {
            arr[i] *= val;
        }
    }

>...use cases

I imagine they are pretty varied.  These methods could be used any time you want to multiply all elements in an array by a number without writing a loop each time.  I am using this in some optimization code that I am submitting but figured it would be broadly applicable enough to just be put in the MathArrays class.

Jared

-----Original Message-----
From: Phil Steitz [mailto:phil.steitz@gmail.com] 
Sent: Sunday, March 10, 2013 2:19 PM
To: Commons Developers List
Subject: Re: [math] Scaling arrays. .

On 3/8/13 12:14 PM, Becksfort, Jared wrote:
> Hello,
>
> I may be missing it somewhere, but I am surprised there is no function for scaling arrays in MathArrays.java or somewhere else.
>
> -          Am I stupidly missing it?

Probably not.  Closest thing is probably normalize in MathArrays.
>
> -          Is there a reason it is not in there?

Probably no; though you will find that most vector / array algebraic operations are implemented on the objects in the linear package, rather than directly on double[]s.
>
> -          Shall I add it?

What exactly *is* it and what are the use cases?

Phil
>
> Thanks,
> Jared
>
> ________________________________
> Email Disclaimer: www.stjude.org/emaildisclaimer Consultation 
> Disclaimer: www.stjude.org/consultationdisclaimer
>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Re: [math] Scaling arrays

Posted by Phil Steitz <ph...@gmail.com>.
On 3/8/13 12:14 PM, Becksfort, Jared wrote:
> Hello,
>
> I may be missing it somewhere, but I am surprised there is no function for scaling arrays in MathArrays.java or somewhere else.
>
> -          Am I stupidly missing it?

Probably not.  Closest thing is probably normalize in MathArrays.
>
> -          Is there a reason it is not in there?

Probably no; though you will find that most vector / array algebraic
operations are implemented on the objects in the linear package,
rather than directly on double[]s.
>
> -          Shall I add it?

What exactly *is* it and what are the use cases?

Phil
>
> Thanks,
> Jared
>
> ________________________________
> Email Disclaimer: www.stjude.org/emaildisclaimer
> Consultation Disclaimer: www.stjude.org/consultationdisclaimer
>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org