TheDeveloperBlog.com

Home | Contact Us

C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML

<< Back to JAVA

Java Math.sqrt Method: java.lang.Math.sqrt

Use the Math.sqrt method to compute square roots. Sqrt can be called as java.lang.Math.sqrt.
Math.sqrt. In mathematics, a square root maps the area of a square to the length of its side. In Java we use the Math class to compute square roots.Math
With this method, we receive a double. For programs that call Math.sqrt many times, a lookup table cache can be used. This approach (memoization) helps many programs.
Square root. Consider this program. It does not import java.lang.Math at its top. Instead we directly access Math.sqrt using its composite name. It shows the output of sqrt.

Result: The square root of 4 is 2. We see 2.0 because Math.sqrt returns a double.

Tip: For cases when we do not need fractional values, we can cast the result of Math.sqrt to an int.

Cast
Java program that uses Math.sqrt public class Program { public static void main(String[] args) { // ... Test the sqrt method. double value = java.lang.Math.sqrt(4); double value2 = java.lang.Math.sqrt(9); System.out.println(value); System.out.println(value2); } } Output 2.0 3.0
Benchmark, lookup table. Memoization is a powerful programming technique. In it, we avoid computing a data we previously computed. We store values in a structure like an array.

Version 1: In this version of the code we call Math.sqrt repeatedly—no caching is used here.

Version 2: We use a double array cache of 100 Math.sqrt values. We access those values many times.

Array

Result: Accessing array elements is more than ten times faster than calling Math.sqrt each time.

Java program that times Math.sqrt lookup table public class Program { public static void main(String[] args) { // A lookup table for square roots. double[] cache = new double[100]; long t1 = System.currentTimeMillis(); // Version 1: use Math.sqrt each time. for (int i = 0; i < 1000000; i++) { for (int x = 1; x < 100; x++) { double result = Math.sqrt(x); if (result == 0) { return; } } } long t2 = System.currentTimeMillis(); // Version 2: use lookup table after first time. for (int i = 0; i < 1000000; i++) { for (int x = 1; x < 100; x++) { double result; if (cache[x] != 0) { result = cache[x]; } else { result = Math.sqrt(x); cache[x] = result; } if (result == 0) { return; } } } long t3 = System.currentTimeMillis(); // ... Benchmark times. System.out.println(t2 - t1); System.out.println(t3 - t2); } } Output 594 ms Math.sqrt 47 ms Cache lookup, Math.sqrt if not found
Some notes, memoization. The exact usage of Math.sqrt is good to know. But optimization techniques like memoization are more general purpose. They can help us develop many programs.
Square root review. As a developer I rarely need to call Math.sqrt. But this makes the Math class even more important. A custom implementation would be less reliable and useful.
© TheDeveloperBlog.com
The Dev Codes

Related Links:


Related Links

Adjectives Ado Ai Android Angular Antonyms Apache Articles Asp Autocad Automata Aws Azure Basic Binary Bitcoin Blockchain C Cassandra Change Coa Computer Control Cpp Create Creating C-Sharp Cyber Daa Data Dbms Deletion Devops Difference Discrete Es6 Ethical Examples Features Firebase Flutter Fs Git Go Hbase History Hive Hiveql How Html Idioms Insertion Installing Ios Java Joomla Js Kafka Kali Laravel Logical Machine Matlab Matrix Mongodb Mysql One Opencv Oracle Ordering Os Pandas Php Pig Pl Postgresql Powershell Prepositions Program Python React Ruby Scala Selecting Selenium Sentence Seo Sharepoint Software Spellings Spotting Spring Sql Sqlite Sqoop Svn Swift Synonyms Talend Testng Types Uml Unity Vbnet Verbal Webdriver What Wpf