harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexey Varlamov (JIRA)" <j...@apache.org>
Subject [jira] Closed: (HARMONY-5480) [drlvm][jit] Some of java.lang.Math methods could be implemented by api_magics
Date Wed, 09 Apr 2008 10:55:25 GMT

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

Alexey Varlamov closed HARMONY-5480.
------------------------------------


Argh, I relied on George's and Mikhail's review but found a bunch of issues after committing:
- not appropriate magic for int/long ABS;
- bad signature used for ATAN2;
- incorrect magic for ATAN2 (it should give results ranged as (-Pi,Pi) but gave (-Pi/2,Pi/2)).
Also, definitions in encoder table still look strange/innaccurate, will try to grok further.

The major issues listed above are fixed at revision: 646262, regression test provided.
BTW, Math.sin/cos/tan now have lesser accuracy than required by spec (~10units vs 1 ulp) -
hopefully this is tolerable behaviour for real apps.

> [drlvm][jit] Some of java.lang.Math methods could be implemented by api_magics
> ------------------------------------------------------------------------------
>
>                 Key: HARMONY-5480
>                 URL: https://issues.apache.org/jira/browse/HARMONY-5480
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Evgeniya Maenkova
>            Assignee: Alexey Varlamov
>             Fix For: 5.0M6
>
>         Attachments: math.diff, MathTest.java, vm.math.patch2, vm.math.patch4
>
>
> The patch gives >7x speedup on my laptop on test mentioned below:
> package math;
> public class MathTest {
> 	static void f() {
> 		Math.abs(-123987.1236d);
> 		Math.asin(0.7);
> 		Math.acos(0.7);		
> 		Math.log(123.123);
> 		Math.log10(123.123);
> 		Math.log1p(123.123);		
> 		Math.sin(12312.123);
> 		Math.cos(12312.123);
> 		Math.sqrt(234234.234234);
> 		Math.tan(234234.12342134);
> 		Math.atan(2347.234);
> 		Math.atan2(231.123, 0);
> 		Math.abs(-123.1231123f);				
> 	}
>     public static void main(String[] args) {    	
>     	System.out.println("Warmup started....");
>     	for (int i = 0; i < 2500 * 2500; i ++) {
> 		     f();
> 		}
>     	for (int i = 0; i < 250 * 2500; i ++) {
> 		     f();
> 		}
>     	System.out.println("Warmup ended....");
>     	long start = System.currentTimeMillis();		
> 		for (int i = 0; i < 2500 * 2500; i ++) {
>     		f();
> 		}
> 		System.out.println("floor result: " + (System.currentTimeMillis() - start));	
> 	}
> }
> Administrator@EGMAENKO-MOBL /cygdrive/c/ecl_311_ws/MicroBenches/bin1
> $ /cygdrive/c/home_test/temp_builds/egm_r618602_Mj_Mc/bin/java -XX:jit.arg.Math
> _as_magic=true -Xem:server math.MathTest
> Warmup started....
> Warmup ended....
> floor result: 4875
> Administrator@EGMAENKO-MOBL /cygdrive/c/ecl_311_ws/MicroBenches/bin1
> $ /cygdrive/c/home_test/temp_builds/egm_r618602_Mj_Mc/bin/java -XX:jit.arg.Math
> _as_magic=false -Xem:server math.MathTest
> Warmup started....
> Warmup ended....
> floor result: 34141

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message