SignedWordArray.st
author Claus Gittinger <cg@exept.de>
Sat, 31 Aug 2019 16:46:12 +0200
changeset 24714 18271a7f7022
parent 24673 cfda9779f930
child 24715 7fb0e4787436
permissions -rw-r--r--
#DOCUMENTATION by exept initial checkin class: SignedWordArray class added: #documentation
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
20649
772b93b7f97a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:libbasic' }"
772b93b7f97a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
772b93b7f97a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ NameSpace: Smalltalk }"
772b93b7f97a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
772b93b7f97a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
UnboxedIntegerArray variableSignedWordSubclass:#SignedWordArray
772b93b7f97a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:''
772b93b7f97a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
772b93b7f97a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
772b93b7f97a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
	category:'Collections-Arrayed'
772b93b7f97a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
772b93b7f97a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
24714
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    12
!SignedWordArray class methodsFor:'documentation'!
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    13
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    14
documentation
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    15
"
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    16
    SignedWordArrays store 16bit signed integers in the range 16r-8000..16r7FFF.
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    17
    They are much like WordArrays, but the values stored are signed.
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    18
    In contrast to normal arrays (which store pointers to their elements),
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    19
    signedWordArrays store the values in a dense & compact way. 
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    20
    Since the representation fits the underlying C-language systems representation
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    21
    of signed int16's, this is also useful to pass bulk data to c primitive code.
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    22
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    23
    Therefore, SignedWordArrays can be used to hold bulk data in a more compact way.
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    24
        For example:
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    25
            Array new:100000 withAll:1
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    26
        requires 400k of object memory;
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    27
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    28
        in contrast,
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    29
            SignedWordArray new:100000 withAll:1
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    30
        only requires half of it.
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    31
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    32
    [memory requirements:]
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    33
        OBJ-HEADER + (size * 2)
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    34
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    35
    [see also:]
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    36
        ByteArray WordArray BooleanArray FloatArray DoubleArray Array
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    37
        IntegerArray LongIntegerArray SignedLongIntegerArray
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    38
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    39
    [caveat:]
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    40
        should probably be renamed to SignedInt16Array or Int16Array
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    41
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    42
    [author:]
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    43
        Claus Gittinger
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    44
"
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    45
! !
20649
772b93b7f97a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
772b93b7f97a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
772b93b7f97a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
772b93b7f97a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
24714
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    50
!SignedWordArray class methodsFor:'documentation'!
22272
ac4a1dcf494c #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 20649
diff changeset
    51
24714
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    52
version_CVS
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    53
    ^ '$Header$'
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    54
! !
18271a7f7022 #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24673
diff changeset
    55