History log of /libcore/ojluni/src/main/java/java/lang/Math.java
Revision Date Author Comments
d021f1d8475cfdee7ba434d34412c32f40e81693 19-Jan-2018 Vladimir Marko <vmarko@google.com> Change Math method from @FastNative to @CriticalNative.

MathBenchmarks.java#timePow results on taimen's little cores
fixed at frequency 1401600 with forced JIT compilation:
- before:
- X32: 356.33
- X64: 357.31
- after:
- X32: 315.39
- X64: 315.37
Similar improvements are seen for timeIEEEremainder and
timeLog1p.

Test: Rely on TreeHugger.
Bug: 70727450
Change-Id: I692070cb7413bdc1aeb620ee1c505397ee0999e8
5a6bb5540b3f30d8f0b2c2ea062fc465317db88e 29-Nov-2017 Neil Fuller <nfuller@google.com> OpenJDK 8u121 verify: java.lang.Math

Add change markers.

Bug: 35910877
Test: Build
Change-Id: I7988c3daaae9a647c673d336eda99b84918d07e0
fa5b565a3f6c6d7cbd6106ee8d360304c3a939a3 17-Feb-2017 Igor Murashkin <iam@google.com> jni: Switch to @FastNative for all JNI functions.

Switches all (248) methods that previously used !bang JNI in art/libcore
to all use @FastNative.

As a nice benefit, this should be about 1.5x faster than before for those method calls.
This measures out to a 3% startup time improvement for system_server.

Test: make test-art-host
Bug: 34955272
Change-Id: I0881f401c7660c79f275235362777bfa58241deb
76542847059b26fe060865c8e3b368db0265f394 05-Jan-2017 Aart Bik <ajcbik@google.com> Refined comment in FP abs() implementation.

Rationale:
As a "quality of implementation", rather than pure "spec compliance",
we require that Math.abs() clears the sign bit (but changes nothing else)
for all numbers, including NaN (signaling NaN may become quiet though).

Test: test-art-host
Bug: 30758343
Change-Id: I8d9ca9aa58a0ffbde6120370f7aecd02dc7395e0
932af329921acfcc7c83984793233e68387d67f6 19-Dec-2016 Aart Bik <ajcbik@google.com> Changed semantics of FP Math.abs() to impact bit sign (but nothing else).

Rationale:
As a "quality of implementation" rather than pure "spec compliance"
we require that Math.abs() clears the sign bit (but changes nothing
else) for all numbers, including NaN.

**NOTE**
This CL has a corresponding Art test.

Test: test-art-host
Bug: 30758343
Change-Id: I990c5ac72d2a3263b7b1d57dd6da4fabe7f8e274
c329f2536bfbc352252681bf34d6708fa627c1a4 08-Sep-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Update java.io.File to 8u60

- File fields path/prefixLength are final (and #readObject
is implemented using Unsafe).
- Temp file name generation uses longs. Restored TempDirectory
(removed in 3a4b7ebcde0ba6b7dce5c6118fa6a3da77b3d21d) inner
class, to minimize the diff from upstream.
- Javadoc and formating updates

Test: vogar run on all io tests I could find.
Bug: 31237296
Change-Id: Ia0ce0ba3db9cbdb4a5a411325ee1ce0d9c4a5d0a
6a5351e12a69e865fe31b8aac989bd2573aebbca 28-Jun-2016 Przemyslaw Szczepaniak <pszczepaniak@google.com> Port java.lang from openJdk8, part 3

Tests: Run all CTS Math/StrictMath/Process related tests
Bug: 28666126
Change-Id: If7555e9bcbccb60b988da96a2a1875e3672e82ee
f1aab72f51a6e520fd1374d2e0277363726b3481 05-Apr-2016 Yi Kong <yikong@google.com> Port OpenJDK8 java.lang functional util methods

Bug: 28036657
Change-Id: I148dda52b4cb86b76ed96b2bd2f8dc01114fe2a2
(cherry picked from commit e9d9ae3d5e57a60e20c2c01e3dceb3e51de8b9f4)
e9d9ae3d5e57a60e20c2c01e3dceb3e51de8b9f4 05-Apr-2016 Yi Kong <yikong@google.com> Port OpenJDK8 java.lang functional util methods

Bug: 28036657
Change-Id: I148dda52b4cb86b76ed96b2bd2f8dc01114fe2a2
17f6f6169e701afdf392a3749c6956042a5b3b72 17-Feb-2016 Hans Boehm <hboehm@google.com> Fix Math.round bug for large integral arguments

Cherrypick JDK 8 changeset 8052:917fffe971c8. This uses integer
manipulations to compute the result for all arguments for which
we can't just cast the argument.

Added required imports to make the JDK 8 patch compile.

HG changeset patch
User bpb
Date 1378944455 25200
Node ID 917fffe971c87826a8cbec16337d35fd6f73f0d6
Parent be6f5f027bc2ecc137b3d4074c94881e01d2d9ce
8010430: Math.round has surprising behavior for odd values of ulp 1
Summary: If the effective floating point exponent is zero return the
significand including the implicit 1-bit.
Reviewed-by: bpb, darcy, gls
Contributed-by: Dmitry Nadezhin <dmitry.nadezhin@oracle.com>

Bug: 27166445

(cherry picked from commit f043756ef5140e633d6b7afc9ae1f0058c9fa70f)

Change-Id: Ic5e93121113149163cea3993f187b52335d613fa
f043756ef5140e633d6b7afc9ae1f0058c9fa70f 17-Feb-2016 Hans Boehm <hboehm@google.com> Fix Math.round bug for large integral arguments

Cherrypick JDK 8 changeset 8052:917fffe971c8. This uses integer
manipulations to compute the result for all arguments for which
we can't just cast the argument.

Added required imports to make the JDK 8 patch compile.

HG changeset patch
User bpb
Date 1378944455 25200
Node ID 917fffe971c87826a8cbec16337d35fd6f73f0d6
Parent be6f5f027bc2ecc137b3d4074c94881e01d2d9ce
8010430: Math.round has surprising behavior for odd values of ulp 1
Summary: If the effective floating point exponent is zero return the
significand including the implicit 1-bit.
Reviewed-by: bpb, darcy, gls
Contributed-by: Dmitry Nadezhin <dmitry.nadezhin@oracle.com>

Bug: 27166445
Change-Id: Ia60a94a20970096dfc4b23143353cfc0828d9860
2c87ad3a45cecf9e344487cad1abfdebe79f2c7c 21-Dec-2015 Narayan Kamath <narayan@google.com> Update file headers.

Change-Id: I8149f41585768a1a4b72ab7bb4a1452376c05cc2
c6b8e2367fde6406ba2954797c8217f257ddeb23 28-Oct-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Native implementation of java.lang.Math

Using standard c math functions instead of
StrictMath implementations gives us great
performance boost in MathBenchmark (up to ~5x faster
in many tests).

Change-Id: I19642a1ea04bf50150ef2d3be8477bf243442ae9
0a94bbda34f5ea7d6c73634ddcd5b15f698f7598 28-Sep-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Use NoPreLoadHolder for random instance.

Change-Id: If9193b14b3a3451d7b0c5a230988e637bd5f9ef6
51b1b6997fd3f980076b8081f7f1165ccc2a4008 16-Feb-2015 Piotr Jastrzebski <haaawk@google.com> Initial import of OpenJdk files.

Create new libcore/ojluni directory with src/main/java and
src/main/native subdirectiories.

Build ojluni into core-oj jar.

Use openjdk classes from java.awt.font package.

Copy all files from jdk/src/share/classes and jdk/src/solaris/classes
directories in openjdk into libcore/ojluni/src/main/java.

Copy following native files from openjdk to
libcore/ojluni/src/main/native:
jdk/src/solaris/native/java/io/canonicalize_md.c
build/linux-amd64/include/classfile_constants.h
jdk/src/share/native/java/net/DatagramPacket.c
jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c
jdk/src/share/native/java/lang/Double.c
jdk/src/share/native/java/lang/fdlibm/include/fdlibm.h
jdk/src/solaris/native/sun/nio/ch/FileChannelImpl.c
jdk/src/solaris/native/java/io/FileDescriptor_md.c
jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c
jdk/src/share/native/java/io/FileInputStream.c
jdk/src/solaris/native/sun/nio/ch/FileKey.c
jdk/src/solaris/native/java/io/FileOutputStream_md.c
jdk/src/solaris/native/java/io/FileSystem_md.c
jdk/src/share/native/java/lang/Float.c
jdk/src/share/native/java/net/Inet4Address.c
jdk/src/solaris/native/java/net/Inet4AddressImpl.c
jdk/src/share/native/java/net/Inet6Address.c
jdk/src/solaris/native/java/net/Inet6AddressImpl.c
jdk/src/share/native/java/net/InetAddress.c
jdk/src/solaris/native/java/net/InetAddressImplFactory.c
jdk/src/share/native/java/io/io_util.c
jdk/src/solaris/native/sun/nio/ch/IOUtil.c
jdk/src/share/native/java/io/io_util.h
jdk/src/solaris/native/java/io/io_util_md.c
jdk/src/solaris/native/java/io/io_util_md.h
build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/java_io_FileDescriptor.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_FileInputStream.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_FileOutputStream.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_FileSystem.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_ObjectStreamClass.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_UnixFileSystem.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Double.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Float.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Integer.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Long.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Runtime.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Shutdown.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_StrictMath.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_String.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_System.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Thread.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Throwable.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_DatagramPacket.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet4Address.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet4AddressImpl.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet6Address.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet6AddressImpl.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_InetAddress.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_InetAddressImplFactory.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_NetworkInterface.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_PlainDatagramSocketImpl.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_PlainSocketImpl.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_SocketInputStream.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_SocketOptions.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_SocketOutputStream.h
jdk/src/share/native/java/lang/java_props.h
jdk/src/solaris/native/java/lang/java_props_md.c
jdk/src/share/native/java/util/zip/Adler32.c as java_util_zip_Adler32.c
jdk/src/share/native/java/util/zip/CRC32.c as java_util_zip_CRC32.c
build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_CRC32.h
jdk/src/share/native/java/util/zip/Deflater.c as java_util_zip_Deflater.c
build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_Deflater.h
jdk/src/share/native/java/util/zip/Inflater.c as java_util_zip_Inflater.c
build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_Inflater.h
jdk/src/share/native/java/util/zip/ZipFile.c as java_util_zip_ZipFile.c
build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_ZipFile.h
jdk/src/share/native/java/lang/fdlibm/include/jfdlibm.h
jdk/src/share/native/common/jlong.h
jdk/src/solaris/native/common/jlong_md.h
jdk/src/share/native/common/jni_util.c
jdk/src/share/native/common/jni_util.h
jdk/src/solaris/native/common/jni_util_md.c
jdk/src/share/javavm/export/jvm.h
jdk/src/solaris/javavm/export/jvm_md.h
jdk/src/solaris/native/java/net/linux_close.c
jdk/src/share/native/sun/misc/NativeSignalHandler.c
jdk/src/solaris/native/sun/nio/ch/NativeThread.c
jdk/src/share/native/java/net/net_util.c
jdk/src/share/native/java/net/net_util.h
jdk/src/solaris/native/java/net/net_util_md.c
jdk/src/solaris/native/java/net/net_util_md.h
jdk/src/solaris/native/java/net/NetworkInterface.c
jdk/src/share/native/sun/nio/ch/nio.h
jdk/src/solaris/native/sun/nio/ch/nio_util.h
jdk/src/share/native/java/io/ObjectStreamClass.c
jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c
jdk/src/solaris/native/java/net/PlainSocketImpl.c
jdk/src/solaris/native/java/lang/ProcessEnvironment_md.c
jdk/src/share/native/java/lang/Runtime.c
jdk/src/share/native/java/lang/Shutdown.c
jdk/src/share/native/sun/misc/Signal.c
jdk/src/solaris/native/java/net/SocketInputStream.c
jdk/src/solaris/native/java/net/SocketOutputStream.c
jdk/src/share/native/java/lang/StrictMath.c
jdk/src/share/native/java/lang/String.c
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/sun_misc_NativeSignalHandler.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/sun_misc_Signal.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/sun_net_spi_DefaultProxySelector.h
build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_FileChannelImpl.h
build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_FileDispatcherImpl.h
build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_FileKey.h
build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_IOStatus.h
build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_IOUtil.h
build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_NativeThread.h
jdk/src/share/native/java/lang/System.c
jdk/src/share/native/java/lang/Thread.c
jdk/src/share/native/java/lang/Throwable.c
jdk/src/solaris/native/java/io/UnixFileSystem_md.c
jdk/src/solaris/native/java/lang/UNIXProcess_md.c
jdk/src/share/native/java/util/zip/zip_util.c
jdk/src/share/native/java/util/zip/zip_util.h

Change-Id: Ib237df4e1b7b5b4d9f12e74d189e6ec9eed3c31d