[ https://issues.apache.org/jira/browse/MATH1130?page=com.atlassian.jira.plugin.system.issuetabpanels:alltabpanel
]
Venkatesha Murthy TS updated MATH1130:

Description:
These are utility functions mostly required as part of MathArrays.
MathArrays:
=============
The requirement is as follows:
a) double[] copyOf(double[] values, int begin, int length) ;
Similar to most other functions that support slice defined by the array part from [begin,
begin+length) ;its a requirement to copy a slice which is not available (the closest is copyOf(array,
int len) which misses out the begin index)
b) double[] removeAll(double[] values, int begin, int length, double removable);
Need a function to remove a value from array slice defined by [begin,begin+length) and return
the filtered version.
c) double[] replaceAll(double[] values, int begin, int length, double oldValue, double newValue);
Need a function to replace inplace an oldValue substituted with newValue in the array slice
defined by [begin,begin+length) and return the original complete array with just replaced
values only in the segment [begin,begin+length)
MathUtils
=========
boolean canEqual(double d1, double d2) ;
provide a canEqual function that is slightly better than exisitng MathUtils.equals. We could
also improve existing equals method however.
So the change here is that the new enhanced canEqual can do a quick check on Nans and then
move to a detailed Double.compare(..) method. This avoids the Double.compare call when any
one of them is NaN.
was:
These are utility functions mostly required as part of MathArrays.
MathArrays:
=============
The requirement is as follows:
a) double[] copyOf(double[] values, int begin, int length) ;
Similar to most other functions that support slice defined by the array part from [begin,
begin+length) ;its a requirement to copy a slice which is not available (the closest is copyOf(array,
int len) which misses out the begin index)
b) double[] removeAll(double[] values, int begin, int length, double removable);
Need a function to remove a value from array slice defined by [begin,begin+length) and return
the filtered version.
c) double[] replaceAll(double[] values, int begin, int length, double oldValue, double newValue);
Need a function to replace inplace an oldValue substituted with newValue in the array slice
defined by [begin,begin+length) and return the original complete array with just replaced
values only in the segment [begin,begin+length)
MathUtils
=========
boolean canEqual(double d1, double d2) ;
provide a canEqual function that is slightly better than exisitng MathUtils.equals. We could
also improve existing equals method however.
So the change here is that the new enhanced canEqual can do a quick check on Nans and as well
as both +ve and ve Infinities faster and then move to a detailed Double.compare(..) method.
This avoids the Double.compare call for infinities and NaN with faster reference equal check
(i.e == ).
> A new set of functions for copyof, remove and replace a given value on a slice of array
> 
>
> Key: MATH1130
> URL: https://issues.apache.org/jira/browse/MATH1130
> Project: Commons Math
> Issue Type: New Feature
> Affects Versions: 3.4
> Reporter: Venkatesha Murthy TS
> Attachments: math1130canequal.patch, math1130checknotnan.patch, math1130remove.patch,
math1130replace.patch, math1130.patch
>
>
> These are utility functions mostly required as part of MathArrays.
> MathArrays:
> =============
> The requirement is as follows:
> a) double[] copyOf(double[] values, int begin, int length) ;
> Similar to most other functions that support slice defined by the array part from [begin,
begin+length) ;its a requirement to copy a slice which is not available (the closest is copyOf(array,
int len) which misses out the begin index)
> b) double[] removeAll(double[] values, int begin, int length, double removable);
> Need a function to remove a value from array slice defined by [begin,begin+length) and
return the filtered version.
> c) double[] replaceAll(double[] values, int begin, int length, double oldValue, double
newValue);
> Need a function to replace inplace an oldValue substituted with newValue in the array
slice defined by [begin,begin+length) and return the original complete array with just replaced
values only in the segment [begin,begin+length)
> MathUtils
> =========
> boolean canEqual(double d1, double d2) ;
> provide a canEqual function that is slightly better than exisitng MathUtils.equals. We
could also improve existing equals method however.
> So the change here is that the new enhanced canEqual can do a quick check on Nans and
then move to a detailed Double.compare(..) method. This avoids the Double.compare call when
any one of them is NaN.

This message was sent by Atlassian JIRA
(v6.2#6252)
