LisaacTM Platform

UINTEGER_BIG


Integer without bits limit! (Just for fun!)
Inherit/Insert Summary
parent_object No developed.
 
Constructor Summary
create
 
Slot Summary
storage
last_modulo
count
lower
upper
item
copy
force to
put to
add_last
resize
last
normalize
make
set_with_zero
is_zero
compare
-1 if Self < other 0 if Self = other +1 if Self > other
divide_one_word
This method is used by divide. The one word divisor is specified by divisor is saw as unsigned. Self is the dividend (saw positive) at invocation but is replaced by the quotient. The remainder is returned as unsigned INTEGER. Note: Current is modified by this method.
normalize_shift
Shift left until the most significant bit is on. Result give the number of left shift.
shift_left
Shift bits of magnitude by n position left. (Note that no bit can be lost because the storage area is automatically extended when it is necessary.)
shift_right
Shift bits of magnitude by n position right.
multiply_and_subtract
Only used by divide.
add_back
Only used by divide. old_u1 is the value of u1 before multiply_and_subtract.
is_a_good_divide
divide_to
Euclidian division. Calculates the quotient and remainder of Current divided by other. (The contents of Current and other are not changed.) Note: Uses Algorithm D in Knuth
 
Conversion format with test.
to_uinteger_64
to_uinteger_32
to_uinteger_16
to_uinteger_8
to_integer_64
to_integer
to_integer_16
to_integer_8
 
binary operator :
substract
substract_integer
addition
addition_integer
multiply
Infix '*#'
Infix '/'
Infix '/#'
and_binary
or_binary
 
Test binary operator :
Infix '>'
Infix '>#'
Infix '=='
 
Function.
factorial_integer
 
conversion
append_in
Append in the buffer the equivalent of to_string. No new STRING creation during the process.
print_positif
 

Inherit/Insert Detail

parent_object

.../base/number/integer/uinteger_big.li line #10

Section:
Inherit

Profile:
- SelfSELFparent_object : OBJECT

Constructor Detail

create

.../base/number/integer/uinteger_big.li line #51

Section:
Public

Profile:
- SelfSELFcreate   init : UINTEGER_32UINTEGER_BIG

Detail slot

storage

.../base/number/integer/uinteger_big.li line #14

Section:
UINTEGER_BIG

Profile:
+ SelfSELFstorage : FAST_ARRAYUINTEGER_32)

last_modulo

.../base/number/integer/uinteger_big.li line #16

Section:
UINTEGER_BIG

Profile:
- SelfSELFlast_modulo : UINTEGER_32

count

.../base/number/integer/uinteger_big.li line #18

Section:
UINTEGER_BIG

Profile:
- SelfSELFcount : INTEGER

lower

.../base/number/integer/uinteger_big.li line #20

Section:
UINTEGER_BIG

Profile:
- SelfSELFlower : INTEGER

upper

.../base/number/integer/uinteger_big.li line #22

Section:
UINTEGER_BIG

Profile:
- SelfSELFupper : INTEGER

item

.../base/number/integer/uinteger_big.li line #24

Section:
UINTEGER_BIG

Profile:
- SelfSELFitem   idx : INTEGERUINTEGER_32

copy

.../base/number/integer/uinteger_big.li line #26

Section:
UINTEGER_BIG

Profile:
- SelfSELFcopy   other : UINTEGER_BIG

force to

.../base/number/integer/uinteger_big.li line #28

Section:
UINTEGER_BIG

Profile:
- SelfSELFforce   elt : UINTEGER_32  to   idx : INTEGER

put to

.../base/number/integer/uinteger_big.li line #30

Section:
UINTEGER_BIG

Profile:
- SelfSELFput   elt : UINTEGER_32  to   idx : INTEGER

add_last

.../base/number/integer/uinteger_big.li line #32

Section:
UINTEGER_BIG

Profile:
- SelfSELFadd_last   elt : UINTEGER_32

resize

.../base/number/integer/uinteger_big.li line #34

Section:
UINTEGER_BIG

Profile:
- SelfSELFresize   new_size : INTEGER

last

.../base/number/integer/uinteger_big.li line #40

Section:
UINTEGER_BIG

Profile:
- SelfSELFlast : UINTEGER_32

normalize

.../base/number/integer/uinteger_big.li line #42

Section:
UINTEGER_BIG

Profile:
- SelfSELFnormalize 

make

.../base/number/integer/uinteger_big.li line #59

Section:
Public

Profile:
- SelfSELFmake   init : UINTEGER_32SELF

set_with_zero

.../base/number/integer/uinteger_big.li line #499

Section:
Public

Profile:
- SelfSELFset_with_zero 

is_zero

.../base/number/integer/uinteger_big.li line #505

Section:
Public

Profile:
- SelfSELFis_zero : BOOLEAN

compare

.../base/number/integer/uinteger_big.li line #507

Section:
Public

Profile:
- SelfSELFcompare   other : SELFINTEGER

Description:
-1 if Self < other 0 if Self = other +1 if Self > other

divide_one_word

.../base/number/integer/uinteger_big.li line #541

Section:
Public

Profile:
- SelfSELFdivide_one_word   divisor : UINTEGER_32UINTEGER_32

Description:
This method is used by divide. The one word divisor is specified by divisor is saw as unsigned. Self is the dividend (saw positive) at invocation but is replaced by the quotient. The remainder is returned as unsigned INTEGER. Note: Current is modified by this method.

normalize_shift

.../base/number/integer/uinteger_big.li line #579

Section:
Public

Profile:
- SelfSELFnormalize_shift : INTEGER_8

Description:
Shift left until the most significant bit is on. Result give the number of left shift.

shift_left

.../base/number/integer/uinteger_big.li line #598

Section:
Public

Profile:
- SelfSELFshift_left   n : INTEGER

Description:
Shift bits of magnitude by n position left. (Note that no bit can be lost because the storage area is automatically extended when it is necessary.)

shift_right

.../base/number/integer/uinteger_big.li line #630

Section:
Public

Profile:
- SelfSELFshift_right   n : INTEGER

Description:
Shift bits of magnitude by n position right.

multiply_and_subtract

.../base/number/integer/uinteger_big.li line #656

Section:
Public

Profile:
- SelfSELFmultiply_and_subtract  ( u1 : INTEGER, qhat : INTEGER, d_storage : FAST_ARRAYUINTEGER_32), d_offset : INTEGER, r_storage : FAST_ARRAYUINTEGER_32), r_offset : INTEGER, length : INTEGER) : BOOLEAN

Description:
Only used by divide.

add_back

.../base/number/integer/uinteger_big.li line #731

Section:
Public

Profile:
- SelfSELFadd_back  ( old_u1 : INTEGER, d_storage : FAST_ARRAYUINTEGER_32), d_offset : INTEGER, r_storage : FAST_ARRAYUINTEGER_32), r_offset : INTEGER, length : INTEGER) : BOOLEAN

Description:
Only used by divide. old_u1 is the value of u1 before multiply_and_subtract.

is_a_good_divide

.../base/number/integer/uinteger_big.li line #764

Section:
Public

Profile:
- SelfSELFis_a_good_divide  ( other : SELF, quotient : SELF, remainder : SELF) : BOOLEAN

divide_to

.../base/number/integer/uinteger_big.li line #777

Section:
Public

Profile:
- SelfSELFdivide_to  ( other : SELF, quotient : SELF, remainder : SELF)

Description:
Euclidian division. Calculates the quotient and remainder of Current divided by other. (The contents of Current and other are not changed.) Note: Uses Algorithm D in Knuth

Conversion format with test.

to_uinteger_64

.../base/number/integer/uinteger_big.li line #73

Section:
Public

Profile:
- SelfSELFto_uinteger_64 : UINTEGER_64

to_uinteger_32

.../base/number/integer/uinteger_big.li line #84

Section:
Public

Profile:
- SelfSELFto_uinteger_32 : UINTEGER_32

to_uinteger_16

.../base/number/integer/uinteger_big.li line #90

Section:
Public

Profile:
- SelfSELFto_uinteger_16 : UINTEGER_16

to_uinteger_8

.../base/number/integer/uinteger_big.li line #96

Section:
Public

Profile:
- SelfSELFto_uinteger_8 : UINTEGER_8

to_integer_64

.../base/number/integer/uinteger_big.li line #102

Section:
Public

Profile:
- SelfSELFto_integer_64 : INTEGER_64

to_integer

.../base/number/integer/uinteger_big.li line #108

Section:
Public

Profile:
- SelfSELFto_integer : INTEGER

to_integer_16

.../base/number/integer/uinteger_big.li line #114

Section:
Public

Profile:
- SelfSELFto_integer_16 : INTEGER_16

to_integer_8

.../base/number/integer/uinteger_big.li line #120

Section:
Public

Profile:
- SelfSELFto_integer_8 : INTEGER_8

binary operator :

substract

.../base/number/integer/uinteger_big.li line #130

Section:
Public

Profile:
- SelfSELFsubstract   other : SELFSELF

substract_integer

.../base/number/integer/uinteger_big.li line #158

Section:
Public

Profile:
- SelfSELFsubstract_integer   other : INTEGERSELF

addition

.../base/number/integer/uinteger_big.li line #182

Section:
Public

Profile:
- SelfSELFaddition   other : SELFSELF

addition_integer

.../base/number/integer/uinteger_big.li line #207

Section:
Public

Profile:
- SelfSELFaddition_integer   other : INTEGERSELF

multiply

.../base/number/integer/uinteger_big.li line #228

Section:
Public

Profile:
- SelfSELFmultiply   other : SELFSELF

Infix '*#'

.../base/number/integer/uinteger_big.li line #259

Section:
Public

Profile:
- SelfSELF*# ' Left 100  other : INTEGERSELF

Infix '/'

.../base/number/integer/uinteger_big.li line #286

Section:
Public

Profile:
- SelfSELF/ ' Left 100  other : SELFSELF

Infix '/#'

.../base/number/integer/uinteger_big.li line #293

Section:
Public

Profile:
- SelfSELF/# ' Left 100  other : INTEGERSELF

and_binary

.../base/number/integer/uinteger_big.li line #323

Section:
Public

Profile:
- SelfSELFand_binary   other : SELFSELF

or_binary

.../base/number/integer/uinteger_big.li line #334

Section:
Public

Profile:
- SelfSELFor_binary   other : SELFSELF

Test binary operator :

Infix '>'

.../base/number/integer/uinteger_big.li line #348

Section:
Public

Profile:
- SelfSELF> ' Right 60  other : SELFBOOLEAN

Infix '>#'

.../base/number/integer/uinteger_big.li line #377

Section:
Public

Profile:
- SelfSELF># ' Right 60  other : INTEGERBOOLEAN

Infix '=='

.../base/number/integer/uinteger_big.li line #388

Section:
Public

Profile:
- SelfSELF== ' Right 60  other : SELFBOOLEAN

Function.

factorial_integer

.../base/number/integer/uinteger_big.li line #409

Section:
Public

Profile:
- SelfSELFfactorial_integer   n : INTEGER

conversion

append_in

.../base/number/integer/uinteger_big.li line #426

Section:
Public

Profile:
- SelfSELFappend_in   buffer : STRING

Description:
Append in the buffer the equivalent of to_string. No new STRING creation during the process.

print_positif

.../base/number/integer/uinteger_big.li line #466

Section:
Public

Profile:
- SelfSELFprint_positif