Running the tests with diagnostic options enabled, I see the following:

Running 
org.apache.commons.math4.analysis.integration.gauss.HermiteParametricTest
Compiled method (c2)   25704  794
org.apache.commons.math4.util.FastMath::pow (635 bytes)
 total in heap  [0xf37f3ac8,0xf37f4bc0] = 4344
 relocation     [0xf37f3b90,0xf37f3ca0] = 272
 constants      [0xf37f3ca0,0xf37f3d20] = 128
 main code      [0xf37f3d20,0xf37f42c0] = 1440
 stub code      [0xf37f42c0,0xf37f4318] = 88
 oops           [0xf37f4318,0xf37f4324] = 12
 scopes data    [0xf37f4324,0xf37f45cc] = 680
 scopes pcs     [0xf37f45cc,0xf37f4afc] = 1328
 dependencies   [0xf37f4afc,0xf37f4b00] = 4
 handler table  [0xf37f4b00,0xf37f4bc0] = 192
Could not load hsdis-i386.so; library not loadable; PrintAssembly is disabled
OopMapSet contains 8 OopMaps
#0
OopMap{off=484}
#1
OopMap{off=500}
#2
OopMap{ebp=Oop off=596}
#3
OopMap{off=808}
#4
OopMap{off=924}
#5
OopMap{off=964}
#6
OopMap{off=1088}
#7
OopMap{off=1208}

later on the method is recompiled (reduced in size):

Running 
org.apache.commons.math4.analysis.differentiation.DerivativeStructureTest
Compiled method (c2)   40169  941
org.apache.commons.math4.util.FastMath::pow (257 bytes)
 total in heap  [0xf37b6148,0xf37b6708] = 1472
 relocation     [0xf37b6210,0xf37b6230] = 32
 constants      [0xf37b6240,0xf37b6260] = 32
 main code      [0xf37b6260,0xf37b6420] = 448
 stub code      [0xf37b6420,0xf37b6430] = 16
 oops           [0xf37b6430,0xf37b6434] = 4
 scopes data    [0xf37b6434,0xf37b6524] = 240
 scopes pcs     [0xf37b6524,0xf37b6704] = 480
 dependencies   [0xf37b6704,0xf37b6708] = 4
OopMapSet contains 1 OopMaps
#0
OopMap{off=389}

afterwards the failing tests run:

Tests run: 53, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.034
sec <<< FAILURE! - in
org.apache.commons.math4.util.FastMathStrictComparisonTest
test1[37](org.apache.commons.math4.util.FastMathStrictComparisonTest)
Time elapsed: 0.005 sec  <<< FAILURE!
java.lang.AssertionError: double pow(-0.0, -Infinity) expected
Infinity actual 0.0 entries [1, 4]
        at org.junit.Assert.fail(Assert.java:88)
        at 
org.apache.commons.math4.util.FastMathStrictComparisonTest.reportFailedResults(FastMathStrictComparisonTest.java:158)
        at 
org.apache.commons.math4.util.FastMathStrictComparisonTest.callMethods(FastMathStrictComparisonTest.java:182)
        at 
org.apache.commons.math4.util.FastMathStrictComparisonTest.setupMethodCall(FastMathStrictComparisonTest.java:204)
        at 
org.apache.commons.math4.util.FastMathStrictComparisonTest.test1(FastMathStrictComparisonTest.java:92)



On Wed, Feb 25, 2015 at 10:40 AM, Thomas Neidhart <thomas.neidh...@gmail.com
> wrote:

> I wonder if in this case the problem is related to branch prediction or
> instruction re-ordering.
>
> The FastMath.pow() method has a lot of ifs to handle special cases, but
> they are all independent and and handled in sequence. No results are
> calculated or stored in them, so the JVM might wrongly assume that it can
> safely re-order them in a more efficient way.
>
> I will try to express the special cases using if / else instead and run a
> test to see if this changes the result.
>
>
> On Wed, Feb 25, 2015 at 3:09 AM, sebb <seb...@gmail.com> wrote:
>
>> Might be worth running a version of the test with JIT disabled.
>> This will make the test much longer so I suggest first seeing if the
>> tests fail on their own, and then disable JIT.
>> You could experiment with the additional Jenkins Math job I set up for
>> the H10 tests:
>>
>> https://builds.apache.org/job/Commons%20Math%20H10/
>>
>> On 24 February 2015 at 19:56, Thomas Neidhart <thomas.neidh...@gmail.com>
>> wrote:
>> > Hi,
>> >
>> > after switching to Java 1.7 there seems to be another problem with
>> > FastMath, see the two test failures below when running on jenkins.
>> >
>> > Can somebody reproduce it on a 64 bit machine (I just have a 32 bit
>> > laptop at home)?
>> >
>> > Test setup: Java 7 latest (1.7.0_75?), maven 3.1.1.
>> >
>> > Tests run: 65, Failures: 1, Errors: 0, Skipped: 1, Time elapsed: 13.332
>> > sec <<< FAILURE! - in org.apache.commons.math4.util.FastMathTest
>> > testPowSpecialCases(org.apache.commons.math4.util.FastMathTest)  Time
>> > elapsed: 0.007 sec  <<< FAILURE!
>> > java.lang.AssertionError: pow(0.5, Infinity) should be 0.0
>> > expected:<0.0> but was:<Infinity>
>> >         at org.junit.Assert.fail(Assert.java:88)
>> >         at org.junit.Assert.failNotEquals(Assert.java:743)
>> >         at org.junit.Assert.assertEquals(Assert.java:494)
>> >         at
>> >
>> org.apache.commons.math4.util.FastMathTest.testPowSpecialCases(FastMathTest.java:372)
>> >
>> > Running org.apache.commons.math4.util.FastMathStrictComparisonTest
>> > Tests run: 53, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.037
>> > sec <<< FAILURE! - in
>> > org.apache.commons.math4.util.FastMathStrictComparisonTest
>> > test1[37](org.apache.commons.math4.util.FastMathStrictComparisonTest)
>> > Time elapsed: 0 sec  <<< FAILURE!
>> > java.lang.AssertionError: double pow(-0.0, NaN) expected NaN actual
>> > -Infinity entries [1, 3]
>> >         at org.junit.Assert.fail(Assert.java:88)
>> >         at
>> >
>> org.apache.commons.math4.util.FastMathStrictComparisonTest.reportFailedResults(FastMathStrictComparisonTest.java:158)
>> >         at
>> >
>> org.apache.commons.math4.util.FastMathStrictComparisonTest.callMethods(FastMathStrictComparisonTest.java:182)
>> >         at
>> >
>> org.apache.commons.math4.util.FastMathStrictComparisonTest.setupMethodCall(FastMathStrictComparisonTest.java:204)
>> >         at
>> >
>> org.apache.commons.math4.util.FastMathStrictComparisonTest.test1(FastMathStrictComparisonTest.java:92)
>> >
>> > Thomas
>> >
>> > ---------------------------------------------------------------------
>> > 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
>>
>>
>

Reply via email to