Integer Overview

Analytic supports the Integer data type for representing 32 bit Integer values. The Integer Native Data Type are containers for whole numbers only. Although a subtype of the Number data type, there are some functions that return only Integer and not Number.

When to Use

The Integer Native data type is a suitable container for numeric values. Several mathematical functions are provided by Analytic Information Server that perform several common computations.

Constant Form

Integers are represented by the constant form:

34 -34

Other examples of the Integer data type in its constant format are:

25 -1 10392756 -10392756 -10392756 -103 2756

Native Data Type

The Integer Data Type is an example of an AIS Native Data Type.

Analytic Information Server stores all of its Native Data Types in Virtual Machine Containers. All containers are stored in memory. Containers provide the basic storage mechanism for modeling data of all types. Containers provide these fundamental characteristics:

Ability to hold any type of data (including code) at any time.

Ability to know what type of data is contained.

Ability to be stored, retrieved and evaluated by the system.

Ability to handle type conversion, and memory management automatically.

Containers come in two sizes, Large and Small. Small containers are six bytes in length, and large containers are ten bytes in length. Large containers can store larger amounts of data immediately and place less of a burden on the Heap manager. Small containers require less immediate space, but place more of a burden on the Heap manager.

Large containers can store the following data types immediately and does not require the services of the Heap manager:

Small containers can store the following data types immediately without placing additional burden on the Heap manager:

Analytic Information Server containers can be saved and loaded to and from persistent (database) storage at any time. Containers with immediate data are saved on disk in fixed length records equal to the size of the container. Containers with Heap object references are saved in fixed length records, which are automatically expanded to include the contents of the Heap object, and any objects referenced by the Heap object, etc. This feature is called Object Closure Management and is automatic with every Analytic Information Server container database save. Analytic Information Server containers may be loaded from any database repository record at any time. If the data in the record is immediate, the database load fills the container with the immediate data. If the data in the record is an object closure, the database load fills the container with a Heap object reference, and all of the objects in the record are loaded back into the Heap with the same referential relationships they had when they were saved.


Data Type Functions

The Integer object can be demonstrated by the following functions.

binaryNand binaryNor binaryNot binaryNxor
bitwiseAnd bitwiseNand bitwiseNor bitwiseNot
bitwiseNxor bitwiseOr bitwiseShiftLeft bitwiseShiftRight
bitwiseXor fact gcd iadd
icompareEQ icompareGE icompareGT icompareLE
icompareLT icompareNE idiv imod
integer isInteger isub lcm


Data Type Examples

The Integer object can be demonstrated by the following examples.

Example_Integer_binaryNand_001 Example_Integer_binaryNor_001 Example_Integer_binaryNot_001 Example_Integer_binaryNxor_001
Example_Integer_bitwiseAnd_001 Example_Integer_bitwiseNand_001 Example_Integer_bitwiseNor_001 Example_Integer_bitwiseNot_001
Example_Integer_bitwiseNxor_001 Example_Integer_bitwiseOr_001 Example_Integer_bitwiseShiftLeft_001 Example_Integer_bitwiseShiftRight_001
Example_Integer_bitwiseXor_001 Example_Integer_fact_001 Example_Integer_gcd_001 Example_Integer_iadd_001
Example_Integer_icompareEQ_001 Example_Integer_icompareGE_001 Example_Integer_icompareGT_001 Example_Integer_icompareLE_001
Example_Integer_icompareLT_001 Example_Integer_icompareNE_001 Example_Integer_idiv_001 Example_Integer_imod_001
Example_Integer_imul_001 Example_Integer_integer_001 Example_Integer_isInteger_001 Example_Integer_isub_001