Ada Programming/Attributes/'Machine Emax


      Ada Lovelace 1838.jpg


      Description

      X'Machine_Emax is an Ada attribute where X is any floating point type.

      Floating point types are represented as:

      sign \times mantissa \times radix^{exponent}

      where

      sign is 1 or -1
      mantissa is a fraction in base radix
      radix is the hardware radix (usually 2)
      exponent is an integer

      'Machine_Emax returns the largest exponent.

      Example

      with Ada.Text_IO;
      
      procedure Machine_Emax is
      
         package T_IO renames Ada.Text_IO;
         package I_IO is new  Ada.Text_IO.Integer_IO (Integer);
      begin
         T_IO.Put ("Emax of Float type       = ");
         I_IO.Put (Float'Machine_Emax);
         T_IO.New_Line;
         
         T_IO.Put ("Emax of Long_Float type  = ");
         I_IO.Put (Long_Float'Machine_Emax);
         T_IO.New_Line;
      
      end Machine_Emax;
      

      The output with GNAT 4.6 on the x86-64 architecture is:

      Emax of Float type       =         128
      Emax of Long_Float type  =        1024
      

      See also

      Wikibook

      Ada Reference Manual

      Last modified on 1 December 2012, at 09:00