Section Header
  
  
    + name    := Expanded INTEGER -> 
  
 Integer: 
  UINTEGER_8,  UINTEGER_16, UINTEGER_32, UINTEGER_64,
  INTEGER_8 ,  INTEGER_16 , INTEGER_32 , INTEGER_64 ,
  UINTEGER_BIG,INTEGER_BIG,
  
 Fixed real:
  UREAL_16_16, UREAL_24_8 , UREAL_26_6 , 
  REAL_16_16 , REAL_24_8  , REAL_26_6  , 
  
 Float Real:
  REAL, REAL_32, REAL_64, REAL_80,
  
 Other:
  POINTER;
 
  
    - comment := "Generic Integer.";
  
  
    - type    := `int`;
  
    - default := 0;
Section Insert
  
  
    - parent_numeric:NUMERIC := 
  
Section Public
    
  
  
 Range.
  
  
  
    - maximum:UINTEGER_64 <-  
  
  
    - minimum:INTEGER_64  <-  
  
  
  
 Binary Operator.
  
  
  
    - '%'  Left 100 other:SELF    :SELF <- 
  
  
    - '%#' Left 100 other:INTEGER :SELF <- 
  
  
    - '**' Right 120 exp:SELF :SELF <-
  
  
    - pow exp:SELF :SELF <-
  
  
  
 Conversion format with test.
  
  
  
    - bound_test low:INTEGER_64 to up:UINTEGER_64 :BOOLEAN <-
    
  - to_integer:INTEGER <- Self;
  
  
    - to_pointer:POINTER <-
    
  
  
 BCD Format. 
  
  
  
    - to_binary:SELF <-
  
         Self is BCD formatted, convert to binary value
    
  
    - to_bcd:SELF <-
  
         Self is binary formatted, convert to bcd value
    
  
  
 Facility typing.
  
  
  
    - kb:SELF <- 
  
  
    - mb:SELF <- 
  
  
    - gb:SELF <- 
  
  
    - tb:SELF <- 
  
  
  
 Logic Operator
  
      
  
    - '&'  Left 100 other:SELF :SELF <- 
  
  
    - '|'  Left 80  other:SELF :SELF <- 
  
  
    - '^'  Left 80  other:SELF :SELF <- 
  
    - '>>' Left 100 other:INTEGER :SELF <- 
  
    - '<<' Left 100 other:INTEGER :SELF <- 
  
  
  
 Unary operator
  
    
  
    - '~' :SELF <-  
        (-SELF.one) - Self;
  
  
  
 Test. 
  
  
  
    - align_power step:SELF :SELF <-
    
  
    - is_power_2:BOOLEAN <-
      
  
  
 Function :
  
  
  
    - sqrt:SELF <-
    
  
    - factorial:SELF <-
    
  
    - fibonacci:SELF <-
    
  
    - is_odd:BOOLEAN  <-   
         Is odd ?
  
  
    - is_even:BOOLEAN <-  
         Is even ?
  
  
    - gcd other:SELF :SELF <-
  
         Great Common Divisor of `self' and `other'.
   
  
  
 Random
  
  
    - random :SELF <-
  
         Random number between 0 to `maximum' in SELF.
  
  
    - random_upper upper:SELF :SELF <-
  
         Random number between 0 to `upper'.
  
  
    - random_between lower:SELF and upper:SELF :SELF <-
  
         Random number between `lower' to `upper'.
    
  
  
 Looping.
  
  
  
    - times action:BLOCK <-
    
  
  
 Convertion
  
    
  
    - append_in buffer:STRING <- 
  
         Append in the `buffer' the equivalent of `to_string'. No new STRING
  
         creation during the process.
 
  
    - decimal_digit:CHARACTER <-
  
         Gives the corresponding CHARACTER for range 0..9.
    
  
    - digit:CHARACTER <- 
  
  
    - hexadecimal_digit:CHARACTER <-
  
         Gives the corresponding CHARACTER for range 0..15.
    
  
    - to_character:CHARACTER <- 
  
         Return the coresponding ASCII character.
  
  
    - to_octal:SELF <-
  
         Gives coresponding octal value.
    
  
    - to_hexadecimal:STRING <-
  
         Convert the hexadecimal view of `self' into a new allocated
  
         STRING. For example, if `self' is -1 the new STRING is
  
         "FFFFFFFF" on a 32 bit machine.
  
         Note: see also `to_hexadecimal_in' to save memory.
    
  
    - to_hexadecimal_format s:INTEGER :STRING <-
  
         Convert the hexadecimal view of `self' into a new allocated
  
         STRING. For example, if `self' is -1 the new STRING is
  
         "FFFFFFFF" on a 32 bit machine.
  
         Note: see also `to_hexadecimal_in' to save memory.
    
  
    - to_hexadecimal_in buffer:STRING <-
  
         Append in `buffer' the equivalent of `to_hexadecimal'. No new STRING
  
         creation during the process.
    
  
    - to_hexadecimal_in buffer:STRING format s:INTEGER <-
  
         Append in `buffer' the equivalent of `to_hexadecimal'. No new STRING
  
         creation during the process.
  
  
    - to_binary_in buffer:STRING format s:INTEGER <-
  
         Append in `buffer' the equivalent of `to_binary_string'. No new STRING
  
         creation during the process.
    
  
  
 Hashing:
  
  
  
    - hash_code:INTEGER <-  
         BSBS:  Il faut revoir => Depending processor
  
  
  
 Print
  
  
  
    - print <-
    
  
    - print_positif <-
  
         Display this number without memory.
  
  
    - print_hex <-
  
         Display this number without memory.
    
  
  
 Debug manager facility.
  
  
  
    - '?' blc:BLOCK <-  
  
Section INTEGER  
  
  
    - to_raw_pointer:POINTER         <-