Provided by: erlang-manpages_20.2.2+dfsg-1ubuntu2_all bug

NAME

       fixed - the corba fixed type

DESCRIPTION

       This module contains functions that gives an interface to the CORBA fixed type.

       The type Fixed used below is defined as:

       -record(fixed, {digits, scale, value}).

       where  digits  is the total amount of digits it consists of and scale is the number of fractional digits.
       The value field contains the actual Fixed value represented as an integer. The limitations of each  field
       are:

         * Digits - integer(), -1 > Digits < 32

         * Scale - integer(), -1 > Scale =< Digits

         * Value - integer(), range (31 digits): +/-9999999999999999999999999999999

       Since  the  Value  part  is  represented  by an integer, it is vital that the Digits and Scale values are
       correct. This also means that trailing zeros cannot be left out in some cases:

         * fixed<5,3> eq. 03.140d eq. 3140

         * fixed<3,2> eq. 3.14d eq. 314

       Leading zeros can be left out.

       For your convenience, this module exports functions which handle unary (-) and binary  (+-*/)  operations
       legal  for the Fixed type. Since a unary + have no effect, this module do not export such a function. Any
       of the binary operations may cause an overflow  (i.e.  more  than  31  significant  digits;  leading  and
       trailing  zeros  are  not  considered  significant).  If this is the case, the Digit and Scale values are
       adjusted and the Value truncated (no rounding performed). This behavior is compliant with the  OMG  CORBA
       specification. Each binary operation have the following upper bounds:

         * Fixed1 + Fixed2 - fixed<max(d1-s1,d2-s2) + max(s1,s2) + 1, max(s1,s2)>

         * Fixed1 - Fixed2 - fixed<max(d1-s1,d2-s2) + max(s1,s2) + 1, max(s1,s2)>

         * Fixed1 * Fixed2 - fixed<d1+d2, s1+s2>

         * Fixed1 / Fixed2 - fixed<(d1-s1+s2) + Sinf ,Sinf >

       A quotient may have an arbitrary number of decimal places, which is denoted by a scale of Sinf.

EXPORTS

       create(Digits, Scale, Value) -> Result

              Types:

                 Result = Fixed Type | {'EXCEPTION', #'BAD_PARAM'{}}

              This  function  creates  a new instance of a Fixed Type. If the limitations is not fulfilled (e.g.
              overflow) an exception is raised.

       get_typecode(Fixed) -> Result

              Types:

                 Result = TypeCode | {'EXCEPTION', #'BAD_PARAM'{}}

              Returns the TypeCode which represents the supplied Fixed type. If the  parameter  is  not  of  the
              correct type, an exception is raised.

       add(Fixed1, Fixed2) -> Result

              Types:

                 Result = Fixed1 + Fixed2 | {'EXCEPTION', #'BAD_PARAM'{}}

              Performs  a  Fixed  type  addition. If the parameters are not of the correct type, an exception is
              raised.

       subtract(Fixed1, Fixed2) -> Result

              Types:

                 Result = Fixed1 - Fixed2 | {'EXCEPTION', #'BAD_PARAM'{}}

              Performs a Fixed type subtraction. If the parameters are not of the correct type, an exception  is
              raised.

       multiply(Fixed1, Fixed2) -> Result

              Types:

                 Result = Fixed1 * Fixed2 | {'EXCEPTION', #'BAD_PARAM'{}}

              Performs  a Fixed type multiplication. If the parameters are not of the correct type, an exception
              is raised.

       divide(Fixed1, Fixed2) -> Result

              Types:

                 Result = Fixed1 / Fixed2 | {'EXCEPTION', #'BAD_PARAM'{}}

              Performs a Fixed type division. If the parameters are not of the correct  type,  an  exception  is
              raised.

       unary_minus(Fixed) -> Result

              Types:

                 Result = -Fixed | {'EXCEPTION', #'BAD_PARAM'{}}

              Negates  the  supplied  Fixed  type.  If the parameter is not of the correct type, an exception is
              raised.