----- "Phil Steitz" <phil.ste...@gmail.com> a écrit : > Sorry if I am being dense here. What serialization problem do the new > fields cause, exactly? The class is immutable and they are set by the > constructor.
It takes more space to store. If someone uses serialization to store or send a bunch of complex this will vastly increase the load. > > On 6/17/09, luc.maison...@free.fr <luc.maison...@free.fr> wrote: > > The Complex class is still Serializable and should remain so. This > change > > adds two fields that seem not good candidate to serialization. > Would'nt it > > be better to mark these fields as transient and reset them at > > deserialization time in a new readObject method ? > > > > Luc > > > > ----- pste...@apache.org a écrit : > > > >> Author: psteitz > >> Date: Wed Jun 17 11:00:40 2009 > >> New Revision: 785552 > >> > >> URL: http://svn.apache.org/viewvc?rev=785552&view=rev > >> Log: > >> Optimized isNaN, isInfinite. Jira: MATH-2276. Contributed by > Mark > >> Anderson. > >> > >> Modified: > >> > >> > commons/proper/math/trunk/src/java/org/apache/commons/math/complex/Complex.java > >> commons/proper/math/trunk/src/site/xdoc/changes.xml > >> > >> Modified: > >> > commons/proper/math/trunk/src/java/org/apache/commons/math/complex/Complex.java > >> URL: > >> > http://svn.apache.org/viewvc/commons/proper/math/trunk/src/java/org/apache/commons/math/complex/Complex.java?rev=785552&r1=785551&r2=785552&view=diff > >> > ============================================================================== > >> --- > >> > commons/proper/math/trunk/src/java/org/apache/commons/math/complex/Complex.java > >> (original) > >> +++ > >> > commons/proper/math/trunk/src/java/org/apache/commons/math/complex/Complex.java > >> Wed Jun 17 11:00:40 2009 > >> @@ -76,6 +76,16 @@ > >> private final double real; > >> > >> /** > >> + * Record whether this complex number is equal to NaN > >> + */ > >> + private final boolean isNaN; > >> + > >> + /** > >> + * Record whether this complex number is infinite > >> + */ > >> + private final boolean isInfinite; > >> + > >> + /** > >> * Create a complex number given the real and imaginary > parts. > >> * > >> * @param real the real part > >> @@ -85,6 +95,10 @@ > >> super(); > >> this.real = real; > >> this.imaginary = imaginary; > >> + > >> + isNaN = Double.isNaN(real) || Double.isNaN(imaginary); > >> + isInfinite = !isNaN && > >> + (Double.isInfinite(real) || > Double.isInfinite(imaginary)); > >> } > >> > >> /** > >> @@ -318,7 +332,7 @@ > >> * false otherwise > >> */ > >> public boolean isNaN() { > >> - return Double.isNaN(real) || Double.isNaN(imaginary); > >> > >> + return isNaN; > >> } > >> > >> /** > >> @@ -331,8 +345,7 @@ > >> * and neither part is <code>NaN</code> > >> */ > >> public boolean isInfinite() { > >> - return !isNaN() && > >> - (Double.isInfinite(real) || > Double.isInfinite(imaginary)); > >> > >> + return isInfinite; > >> } > >> > >> /** > >> > >> Modified: commons/proper/math/trunk/src/site/xdoc/changes.xml > >> URL: > >> > http://svn.apache.org/viewvc/commons/proper/math/trunk/src/site/xdoc/changes.xml?rev=785552&r1=785551&r2=785552&view=diff > >> > ============================================================================== > >> --- commons/proper/math/trunk/src/site/xdoc/changes.xml (original) > >> +++ commons/proper/math/trunk/src/site/xdoc/changes.xml Wed Jun 17 > >> 11:00:40 2009 > >> @@ -39,7 +39,10 @@ > >> </properties> > >> <body> > >> <release version="2.0" date="TBD" description="TBD"> > >> - <action dev="luc" type="fix" issue="MATH-207" due-to="David > >> Stefka"> > >> + <action dev="psteitz" type="update" issue="MATH-276" > >> due-to="Mark Anderson"> > >> + Optimized Complex isNaN(), isInfinite() by moving > computation > >> to constructor. > >> + </action> > >> + <action dev="psteitz" type="fix" issue="MATH-207" > due-to="David > >> Stefka"> > >> Added Genetic Algorithm implementation. > >> </action> > >> <action dev="luc" type="fix" issue="MATH-274" > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > > For additional commands, e-mail: dev-h...@commons.apache.org > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > For additional commands, e-mail: dev-h...@commons.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org