Método matemático fma() en Java con ejemplos

En la clase de Matemáticas, hay dos tipos de método fma() dependiendo de los parámetros que se le pasen.

Los métodos son:

fma(doble a, doble b, doble c):

Este método de la clase Math se usa para devolver el producto exacto de los dos primeros dobles con la suma del tercer doble y luego redondear el resultado al doble más cercano. El redondeo se realiza utilizando el modo de redondeo al más cercano. Sean a, b, c tres dobles, entonces a * b + c se evalúa como una expresión regular de punto flotante, hay dos errores de redondeo, el primero para la operación de multiplicación de a*b, el segundo para la operación de suma del producto resultado con c.

Algunos casos especiales para este método son:

  • Si algún argumento de estos tres es NaN, entonces el resultado es NaN.
  • Si uno de los dos primeros argumentos es infinito y el otro es cero, entonces el resultado es NaN.
  • Si el producto exacto de dos argumentos es infinito y el tercer argumento es infinito de signo opuesto, el resultado es NaN.

Ejemplo:

Input: a = 2.0, b = 3.0, c = 3.0
Output: 9.0
    As 2.0 * 3.0 + 3.0 = 9.0

Input: a = 9.20, b = 6.30, c = 4.10
Output: 62.059999999999995 
    As 9.20 * 6.30 + 4.10 = 62.059999999999995 

Sintaxis:

public static double fma(double a, double b, double c)

Parámetros: este método acepta tres dobles a, b, c como parámetro donde a y b son argumentos a multiplicar y c es argumento a sumar con el producto.

Valor devuelto: este método devuelve un valor doble redondeado después de calcular a * b + c con rango y precisión ilimitados.

Nota: este método se agregó en JDK 9. Por lo tanto, no se ejecutará en el IDE en línea.

Los siguientes programas ilustran el método fma():

Programa 1:

// Java program to demonstrate the fma() Method.
  
public class GFG {
  
    // Main method
    public static void main(String[] args)
    {
  
        // three double values
        double a = 9.20, b = 6.30, c = 4.10;
  
        // apply fma method
        double d = Math.fma(a, b, c);
  
        // print result
        System.out.println(a + " * " + b
                           + " + " + c
                           + " = " + d);
    }
}

Producción:

9.2 * 6.3 + 4.1 = 62.059999999999995

Programa 2:

// Java program to demonstrate the fma() Method.
  
public class GFG {
  
    // Main method
    public static void main(String[] args)
    {
  
        // three double values
        double a = 19.20, b = 16.30, c = 44.10;
  
        // apply fma method
        double d = Math.fma(a, b, c);
  
        // print result
        System.out.println(a + " * " + b
                           + " + " + c
                           + " = " + d);
    }
}

Producción:

19.2 * 16.3 + 44.1 = 357.06

fma(flotante a, flotante b, flotante c):

Este método de la clase Math funciona igual que fma (doble a, doble b, doble c) pero la diferencia es que toma flotante como atributo y devuelve flotante como valor de retorno. Entonces podemos decir que este método devuelve el producto exacto de los dos primeros argumentos (valores flotantes) con la adición del tercer argumento (valor flotante) y luego redondea el resultado al flotante más cercano. El redondeo se realiza utilizando el modo de redondeo al más cercano. Sean a, b, c tres números flotantes, entonces a * b + c se evalúa como una expresión regular de punto flotante, hay dos errores de redondeo, el primero para la operación de multiplicación de a*b, el segundo para la operación de suma de resultado del producto con c.

Ejemplo :

Input: a = 29.20f, b = 18.40f, c = 43.10f;
Output: 580.38 
    As 29.20f * 18.40f + 43.10f = 580.38

Input: a = 9.20f, b = 6.30f, c = 4.10f;
Output: 62.059999999999995f 
    As 9.20f * 6.30f + 4.10f = 62.059999999999995f

Sintaxis:

public static double fma(float a, float b, float c)

Parámetros: Este método acepta tres flotantes a, b, c como parámetro donde a y b son argumentos que queremos multiplicar y c es argumento que queremos sumar con el producto.

Valor devuelto: este método devuelve un valor flotante redondeado después de calcular a * b + c con rango y precisión ilimitados.

Nota: este método se agregó en JDK 9. Por lo tanto, no se ejecutará en el IDE en línea.

Los siguientes programas ilustran el método fma():

Programa 1:

// Java program to demonstrate
// the fma() Method.
  
public class GFG {
  
    // Main method
    public static void main(String[] args)
    {
  
        // three double values
        float a = 29.20f, b = 18.40f, c = 43.10f;
  
        // apply fma method
        float d = Math.fma(a, b, c);
  
        // print result
        System.out.println(a + " * " + b
                           + " + " + c
                           + " = " + d);
    }
}

Producción:

29.2 * 18.4 + 43.1 = 580.38

Programa 2:

// Java program to demonstrate
// the fma() Method.
  
public class GFG {
  
    // Main method
    public static void main(String[] args)
    {
  
        // three double values
        float a = 49.29f, b = 28.58f, c = 33.63f;
  
        // apply fma method
        float d = Math.fma(a, b, c);
  
        // print result
        System.out.println(a + " * " + b
                           + " + " + c
                           + " = " + d);
    }
}

Producción:

49.29 * 28.58 + 33.63 = 1442.3383

Referencias: https://docs.oracle.com/javase/10/docs/api/java/lang/Math.html#fma(doble, doble, doble) , https://docs.oracle.com/javase/10 /docs/api/java/lang/Math.html#fma(flotante, flotante, flotante)

Publicación traducida automáticamente

Artículo escrito por AmanSingh2210 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *