LisaacTM Platform

COLLECTION3


Abstract definition of a 3 dimensional collection of elements of type E.
The Lisaac standard library provides two implementations of COLLECTION3: ARRAY3 and FAST_ARRAY3. All implementations have exactly the same behavior. Switching from one implementation to another only change the memory used and the execution time.
Inherit/Insert Summary
parent_safe_equal No developed.
 
Slot Summary
lower1
Lower index bound for dimension 1.
lower2
Lower index bound for dimension 2.
lower3
Lower index bound for dimension 3.
line_minimum
Equivalent of lower1.
column_minimum
Equivalent of lower2.
depth_minimum
Equivalent of lower3.
upper1
Upper index bound for dimension 1.
upper2
Upper index bound for dimension 2.
upper3
Upper index bound for dimension 3.
line_maximum
Equivalent of upper1.
column_maximum
Equivalent of upper2.
depth_maximum
Equivalent of upper3.
 
Reading:
item
 
Writing:
put to
force to
Put element at position (line,column,depth). Collection is resized first when (line,column,depth) is not inside current bounds. New bounds are initialized with default values.
 
Index validity:
valid_line
valid_index1
valid_column
valid_index2
valid_depth
valid_index3
valid_index
 
Counting:
count1
Size of the first dimension.
line_count
Equivalent of count1.
count2
Size of the second dimension.
column_count
Equivalent of count2.
count3
Size of the third dimension.
depth_count
Equivalent of count3.
count
Total number of elements.
swap with
Swap the element at index (line1,column1,depth1) with the element at index (line2,column2,depth2).
set_all_with
Set all item with value v.
clear_all
Set all items to default values.
 
Creating or initializing:
from_collection3
Uses model to initialize self.
from_model
The model is used to fill line by line self. Assume all sub-collections have the same dimension.
 
Looking and comparison:
all_default
Do all items have their type's default value?
Infix '=='
Do both collections have the same lower1, lower2, lower3, upper1, upper2 and upper3, and items? The basic = is used for comparison of items.
See also is_equal_map.
is_equal_map
Do both collections have the same lower1, lower2, lower3, upper1, upper2 and upper3, and items?
See also ==.
 
Printing:
fill_tagged_out_memory
 
Miscellaneous features:
occurrences
Number of occurrences using equal.
See also fast_occurrences to choose the apropriate one.
fast_occurrences
Number of occurrences using =.
See also occurrences to choose the apropriate one.
has
Search if a element x is in the array using equal.
See also fast_has to choose the apropriate one.
fast_has
Search if a element x is in the array using =.
replace_all with
Replace all occurences of the element old_value by new_value using equal for comparison.
See also fast_replace_all to choose the apropriate one.
fast_replace_all with
Replace all occurences of the element old_value by new_value using operator = for comparison.
See also replace_all to choose the apropriate one.
sub_collection3 to
Create a new object using selected area of self.
set_area to with
Set all the elements of the selected area rectangle with element.
 

Inherit/Insert Detail

parent_safe_equal

.../base/collection/low_level/collection3.li line #17

Section:
Inherit

Profile:
- SelfSELFparent_safe_equal : SAFE_EQUALV)

Detail slot

lower1

.../base/collection/low_level/collection3.li line #21

Section:
Public

Profile:
- SelfSELFlower1 : INTEGER

Description:
Lower index bound for dimension 1.

lower2

.../base/collection/low_level/collection3.li line #28

Section:
Public

Profile:
- SelfSELFlower2 : INTEGER

Description:
Lower index bound for dimension 2.

lower3

.../base/collection/low_level/collection3.li line #35

Section:
Public

Profile:
- SelfSELFlower3 : INTEGER

Description:
Lower index bound for dimension 3.

line_minimum

.../base/collection/low_level/collection3.li line #42

Section:
Public

Profile:
- SelfSELFline_minimum : INTEGER

Description:
Equivalent of lower1.

column_minimum

.../base/collection/low_level/collection3.li line #45

Section:
Public

Profile:
- SelfSELFcolumn_minimum : INTEGER

Description:
Equivalent of lower2.

depth_minimum

.../base/collection/low_level/collection3.li line #48

Section:
Public

Profile:
- SelfSELFdepth_minimum : INTEGER

Description:
Equivalent of lower3.

upper1

.../base/collection/low_level/collection3.li line #51

Section:
Public

Profile:
- SelfSELFupper1 : INTEGER

Description:
Upper index bound for dimension 1.

upper2

.../base/collection/low_level/collection3.li line #58

Section:
Public

Profile:
- SelfSELFupper2 : INTEGER

Description:
Upper index bound for dimension 2.

upper3

.../base/collection/low_level/collection3.li line #65

Section:
Public

Profile:
- SelfSELFupper3 : INTEGER

Description:
Upper index bound for dimension 3.

line_maximum

.../base/collection/low_level/collection3.li line #72

Section:
Public

Profile:
- SelfSELFline_maximum : INTEGER

Description:
Equivalent of upper1.

column_maximum

.../base/collection/low_level/collection3.li line #75

Section:
Public

Profile:
- SelfSELFcolumn_maximum : INTEGER

Description:
Equivalent of upper2.

depth_maximum

.../base/collection/low_level/collection3.li line #78

Section:
Public

Profile:
- SelfSELFdepth_maximum : INTEGER

Description:
Equivalent of upper3.

Reading:

item

.../base/collection/low_level/collection3.li line #85

Section:
Public

Profile:
- SelfSELFitem  ( line : INTEGER, column : INTEGER, depth : INTEGER) : V

Writing:

put to

.../base/collection/low_level/collection3.li line #97

Section:
Public

Profile:
- SelfSELFput   element : V  to  ( line : INTEGER, column : INTEGER, depth : INTEGER)

force to

.../base/collection/low_level/collection3.li line #104

Section:
Public

Profile:
- SelfSELFforce   element : V  to  ( line : INTEGER, column : INTEGER, depth : INTEGER)

Description:
Put element at position (line,column,depth). Collection is resized first when (line,column,depth) is not inside current bounds. New bounds are initialized with default values.

Index validity:

valid_line

.../base/collection/low_level/collection3.li line #126

Section:
Public

Profile:
- SelfSELFvalid_line   line : INTEGERBOOLEAN

valid_index1

.../base/collection/low_level/collection3.li line #132

Section:
Public

Profile:
- SelfSELFvalid_index1   line : INTEGERBOOLEAN

valid_column

.../base/collection/low_level/collection3.li line #134

Section:
Public

Profile:
- SelfSELFvalid_column   column : INTEGERBOOLEAN

valid_index2

.../base/collection/low_level/collection3.li line #140

Section:
Public

Profile:
- SelfSELFvalid_index2   column : INTEGERBOOLEAN

valid_depth

.../base/collection/low_level/collection3.li line #142

Section:
Public

Profile:
- SelfSELFvalid_depth   depth : INTEGERBOOLEAN

valid_index3

.../base/collection/low_level/collection3.li line #148

Section:
Public

Profile:
- SelfSELFvalid_index3   depth : INTEGERBOOLEAN

valid_index

.../base/collection/low_level/collection3.li line #150

Section:
Public

Profile:
- SelfSELFvalid_index  ( line : INTEGER, column : INTEGER, depth : INTEGER) : BOOLEAN

Counting:

count1

.../base/collection/low_level/collection3.li line #161

Section:
Public

Profile:
- SelfSELFcount1 : INTEGER

Description:
Size of the first dimension.

line_count

.../base/collection/low_level/collection3.li line #169

Section:
Public

Profile:
- SelfSELFline_count : INTEGER

Description:
Equivalent of count1.

count2

.../base/collection/low_level/collection3.li line #172

Section:
Public

Profile:
- SelfSELFcount2 : INTEGER

Description:
Size of the second dimension.

column_count

.../base/collection/low_level/collection3.li line #180

Section:
Public

Profile:
- SelfSELFcolumn_count : INTEGER

Description:
Equivalent of count2.

count3

.../base/collection/low_level/collection3.li line #183

Section:
Public

Profile:
- SelfSELFcount3 : INTEGER

Description:
Size of the third dimension.

depth_count

.../base/collection/low_level/collection3.li line #191

Section:
Public

Profile:
- SelfSELFdepth_count : INTEGER

Description:
Equivalent of count3.

count

.../base/collection/low_level/collection3.li line #194

Section:
Public

Profile:
- SelfSELFcount : INTEGER

Description:
Total number of elements.

swap with

.../base/collection/low_level/collection3.li line #202

Section:
Public

Profile:
- SelfSELFswap  ( line1 : INTEGER, column1 : INTEGER, depth1 : INTEGER)  with  ( line2 : INTEGER, column2 : INTEGER, depth2 : INTEGER)

Description:
Swap the element at index (line1,column1,depth1) with the element at index (line2,column2,depth2).

set_all_with

.../base/collection/low_level/collection3.li line #218

Section:
Public

Profile:
- SelfSELFset_all_with   v : V

Description:
Set all item with value v.

clear_all

.../base/collection/low_level/collection3.li line #225

Section:
Public

Profile:
- SelfSELFclear_all 

Description:
Set all items to default values.

Creating or initializing:

from_collection3

.../base/collection/low_level/collection3.li line #240

Section:
Public

Profile:
- SelfSELFfrom_collection3   model : COLLECTION3V)

Description:
Uses model to initialize self.

from_model

.../base/collection/low_level/collection3.li line #252

Section:
Public

Profile:
- SelfSELFfrom_model   model : COLLECTIONCOLLECTIONCOLLECTIONV)))

Description:
The model is used to fill line by line self. Assume all sub-collections have the same dimension.

Looking and comparison:

all_default

.../base/collection/low_level/collection3.li line #270

Section:
Public

Profile:
- SelfSELFall_default : BOOLEAN

Description:
Do all items have their type's default value?

Infix '=='

.../base/collection/low_level/collection3.li line #276

Section:
Public

Profile:
- SelfSELF== '  other : COLLECTION3V) : BOOLEAN

Description:
Do both collections have the same lower1, lower2, lower3, upper1, upper2 and upper3, and items? The basic = is used for comparison of items.
See also is_equal_map.

is_equal_map

.../base/collection/low_level/collection3.li line #311

Section:
Public

Profile:
- SelfSELFis_equal_map   other : COLLECTION3V) : BOOLEAN

Description:
Do both collections have the same lower1, lower2, lower3, upper1, upper2 and upper3, and items?
See also ==.

Printing:

fill_tagged_out_memory

.../base/collection/low_level/collection3.li line #349

Section:
Public

Profile:
- SelfSELFfill_tagged_out_memory 

Miscellaneous features:

occurrences

.../base/collection/low_level/collection3.li line #407

Section:
Public

Profile:
- SelfSELFoccurrences   elt : VINTEGER

Description:
Number of occurrences using equal.
See also fast_occurrences to choose the apropriate one.

fast_occurrences

.../base/collection/low_level/collection3.li line #417

Section:
Public

Profile:
- SelfSELFfast_occurrences   elt : VINTEGER

Description:
Number of occurrences using =.
See also occurrences to choose the apropriate one.

has

.../base/collection/low_level/collection3.li line #427

Section:
Public

Profile:
- SelfSELFhas   x : VBOOLEAN

Description:
Search if a element x is in the array using equal.
See also fast_has to choose the apropriate one.

fast_has

.../base/collection/low_level/collection3.li line #436

Section:
Public

Profile:
- SelfSELFfast_has   x : VBOOLEAN

Description:
Search if a element x is in the array using =.

replace_all with

.../base/collection/low_level/collection3.li line #443

Section:
Public

Profile:
- SelfSELFreplace_all   old_value : V  with   new_value : V

Description:
Replace all occurences of the element old_value by new_value using equal for comparison.
See also fast_replace_all to choose the apropriate one.

fast_replace_all with

.../base/collection/low_level/collection3.li line #456

Section:
Public

Profile:
- SelfSELFfast_replace_all   old_value : V  with   new_value : V

Description:
Replace all occurences of the element old_value by new_value using operator = for comparison.
See also replace_all to choose the apropriate one.

sub_collection3 to

.../base/collection/low_level/collection3.li line #470

Section:
Public

Profile:
- SelfSELFsub_collection3  ( line_min : INTEGER, column_min : INTEGER, depth_min : INTEGER)  to  ( line_max : INTEGER, column_max : INTEGER, depth_max : INTEGER) : SELF

Description:
Create a new object using selected area of self.

set_area to with

.../base/collection/low_level/collection3.li line #482

Section:
Public

Profile:
- SelfSELFset_area  ( line_min : INTEGER, column_min : INTEGER, depth_min : INTEGER)  to  ( line_max : INTEGER, column_max : INTEGER, depth_max : INTEGER)  with   element : V

Description:
Set all the elements of the selected area rectangle with element.