Index

Package: Geometric_Algebra_Generic (generic)

Description

generic
   Dimension : Natural := 3;
package Geometric_Algebra_Generic is

Packages

Real_Arrays (new Generic_Real_Arrays)

package Real_Arrays is new Ada.Numerics.Generic_Real_Arrays (Float);

Types

Signature_Type

type Signature_Type is array (1 .. Dimension) of Integer with
        Default_Component_Value => 1;

References:

geometric_algebra_generic.ads:9:9 (declaration)

Vector_Type

subtype Vector_Type is Real_Arrays.Real_Vector (1 .. Get_Dimension);

Multi_Vector_Type

type Multi_Vector_Type is private;

References:

geometric_algebra_generic.adb:123:40 (reference)
geometric_algebra_generic.adb:124:26 (reference)
geometric_algebra_generic.adb:224:44 (reference)
geometric_algebra_generic.adb:225:26 (reference)
geometric_algebra_generic.adb:234:40 (reference)
geometric_algebra_generic.adb:257:49 (reference)
geometric_algebra_generic.adb:264:32 (reference)
geometric_algebra_generic.adb:276:24 (reference)
geometric_algebra_generic.adb:296:28 (reference)
geometric_algebra_generic.adb:634:25 (reference)
geometric_algebra_generic.adb:634:52 (reference)
geometric_algebra_generic.adb:634:78 (reference)
geometric_algebra_generic.adb:635:13 (reference)
geometric_algebra_generic.adb:645:25 (reference)
geometric_algebra_generic.adb:645:52 (reference)
geometric_algebra_generic.adb:645:78 (reference)
geometric_algebra_generic.adb:646:14 (reference)
geometric_algebra_generic.adb:656:40 (reference)
geometric_algebra_generic.adb:656:66 (reference)
geometric_algebra_generic.adb:657:17 (reference)
geometric_algebra_generic.adb:667:25 (reference)
geometric_algebra_generic.adb:667:66 (reference)
geometric_algebra_generic.adb:668:17 (reference)
geometric_algebra_generic.adb:726:25 (reference)
geometric_algebra_generic.adb:726:52 (reference)
geometric_algebra_generic.adb:726:78 (reference)
geometric_algebra_generic.adb:727:17 (reference)
geometric_algebra_generic.adb:741:25 (reference)
geometric_algebra_generic.adb:741:52 (reference)
geometric_algebra_generic.adb:741:78 (reference)
geometric_algebra_generic.adb:742:18 (reference)
geometric_algebra_generic.ads:23:9 (declaration)
geometric_algebra_generic.ads:25:28 (reference)
geometric_algebra_generic.ads:26:32 (reference)
geometric_algebra_generic.ads:27:19 (reference)
geometric_algebra_generic.ads:31:32 (reference)
geometric_algebra_generic.ads:32:40 (reference)
geometric_algebra_generic.ads:34:25 (reference)
geometric_algebra_generic.ads:34:52 (reference)
geometric_algebra_generic.ads:34:78 (reference)
geometric_algebra_generic.ads:35:25 (reference)
geometric_algebra_generic.ads:35:52 (reference)
geometric_algebra_generic.ads:35:78 (reference)
geometric_algebra_generic.ads:37:40 (reference)
geometric_algebra_generic.ads:37:66 (reference)
geometric_algebra_generic.ads:38:25 (reference)
geometric_algebra_generic.ads:38:66 (reference)
geometric_algebra_generic.ads:40:25 (reference)
geometric_algebra_generic.ads:40:52 (reference)
geometric_algebra_generic.ads:40:78 (reference)
geometric_algebra_generic.ads:41:25 (reference)
geometric_algebra_generic.ads:41:52 (reference)
geometric_algebra_generic.ads:41:78 (reference)
geometric_algebra_generic.ads:43:49 (reference)
geometric_algebra_generic.ads:76:40 (reference)
geometric_algebra_generic.ads:77:44 (reference)
geometric_algebra_generic.ads:90:9 (full declaration)
geometric_algebra_generic.ads:92:32 (reference)
geometric_algebra_generic.ads:93:32 (reference)
geometric_algebra_generic.ads:94:32 (reference)
test_geometric_algebra.adb:99:32 (reference)

Bit_Type

type Bit_Type is range 0 .. 1 with
        Default_Value => 0;

Canonic_Base_Element_Type (private)

type Canonic_Base_Element_Type is record
      Value      : Float            := 0.0;
      Base       : Bit_Array_Type;
      Name       : Unbounded_String := Null_Unbounded_String;
      HTML_Name  : Unbounded_String := Null_Unbounded_String;
      Short_Name : Unbounded_String := Null_Unbounded_String;
      Latex_Name : Unbounded_String := Null_Unbounded_String;
      Grade      : Natural          := 0;
   end record;

Multi_Vector_Type (private)

type Multi_Vector_Type is array (0 .. Base_Dimension - 1) of Canonic_Base_Element_Type;

References:

geometric_algebra_generic.adb:123:40 (reference)
geometric_algebra_generic.adb:124:26 (reference)
geometric_algebra_generic.adb:224:44 (reference)
geometric_algebra_generic.adb:225:26 (reference)
geometric_algebra_generic.adb:234:40 (reference)
geometric_algebra_generic.adb:257:49 (reference)
geometric_algebra_generic.adb:264:32 (reference)
geometric_algebra_generic.adb:276:24 (reference)
geometric_algebra_generic.adb:296:28 (reference)
geometric_algebra_generic.adb:634:25 (reference)
geometric_algebra_generic.adb:634:52 (reference)
geometric_algebra_generic.adb:634:78 (reference)
geometric_algebra_generic.adb:635:13 (reference)
geometric_algebra_generic.adb:645:25 (reference)
geometric_algebra_generic.adb:645:52 (reference)
geometric_algebra_generic.adb:645:78 (reference)
geometric_algebra_generic.adb:646:14 (reference)
geometric_algebra_generic.adb:656:40 (reference)
geometric_algebra_generic.adb:656:66 (reference)
geometric_algebra_generic.adb:657:17 (reference)
geometric_algebra_generic.adb:667:25 (reference)
geometric_algebra_generic.adb:667:66 (reference)
geometric_algebra_generic.adb:668:17 (reference)
geometric_algebra_generic.adb:726:25 (reference)
geometric_algebra_generic.adb:726:52 (reference)
geometric_algebra_generic.adb:726:78 (reference)
geometric_algebra_generic.adb:727:17 (reference)
geometric_algebra_generic.adb:741:25 (reference)
geometric_algebra_generic.adb:741:52 (reference)
geometric_algebra_generic.adb:741:78 (reference)
geometric_algebra_generic.adb:742:18 (reference)
geometric_algebra_generic.ads:23:9 (declaration)
geometric_algebra_generic.ads:25:28 (reference)
geometric_algebra_generic.ads:26:32 (reference)
geometric_algebra_generic.ads:27:19 (reference)
geometric_algebra_generic.ads:31:32 (reference)
geometric_algebra_generic.ads:32:40 (reference)
geometric_algebra_generic.ads:34:25 (reference)
geometric_algebra_generic.ads:34:52 (reference)
geometric_algebra_generic.ads:34:78 (reference)
geometric_algebra_generic.ads:35:25 (reference)
geometric_algebra_generic.ads:35:52 (reference)
geometric_algebra_generic.ads:35:78 (reference)
geometric_algebra_generic.ads:37:40 (reference)
geometric_algebra_generic.ads:37:66 (reference)
geometric_algebra_generic.ads:38:25 (reference)
geometric_algebra_generic.ads:38:66 (reference)
geometric_algebra_generic.ads:40:25 (reference)
geometric_algebra_generic.ads:40:52 (reference)
geometric_algebra_generic.ads:40:78 (reference)
geometric_algebra_generic.ads:41:25 (reference)
geometric_algebra_generic.ads:41:52 (reference)
geometric_algebra_generic.ads:41:78 (reference)
geometric_algebra_generic.ads:43:49 (reference)
geometric_algebra_generic.ads:76:40 (reference)
geometric_algebra_generic.ads:77:44 (reference)
geometric_algebra_generic.ads:90:9 (full declaration)
geometric_algebra_generic.ads:92:32 (reference)
geometric_algebra_generic.ads:93:32 (reference)
geometric_algebra_generic.ads:94:32 (reference)
test_geometric_algebra.adb:99:32 (reference)

Constants & Global variables

Base_Dimension (Natural)

Base_Dimension : constant Natural := 2**Dimension;
Number of base vectors for the construction of a multivector

Multi_Vector_not_Inizialised

Multi_Vector_not_Inizialised : exception;

References:

geometric_algebra_generic.ads:29:4 (declaration)

Max_Blade_Length (private) (Natural)

Max_Blade_Length : constant Natural           := Get_Max_Blade_Length;

Subprograms & Entries

Scalar_Product

function Scalar_Product 
(Left, Right: Vector_Type) return Float;

"*" (abstract) (generic)

function "*" 
(Left: Float;
Right: Multi_Vector_Type) return Multi_Vector_Type;

"*" (abstract) (generic)

function "*" 
(Left: Multi_Vector_Type;
Right: Float) return Multi_Vector_Type;

Get_Base_of_Same_Grad

function Get_Base_of_Same_Grad 
(Grade: Natural) return Unbounded_String;

Calls:

Create_Canonic_Base defined at geometric_algebra_generic.ads:76:13
Unbounded_String.& defined at a-strunb.ads:127:14
Unbounded_String.Append defined at a-strunb.ads:107:14
This function creates an Unbounded_String containing the names of the base vectors which have the same grade

Prepare_Base_Name_Table_ASCII

function Prepare_Base_Name_Table_ASCII return String_Matrix_Type;

Calls:

Basic_Io.New_Line defined at basic_io.ads:14:14
Basic_Io.Put_Line defined at basic_io.ads:17:14
Geometric_Algebra_Generic.Number_of_Elements defined at geometric_algebra_generic.adb:294:13
Unbounded_String.Append defined at a-strunb.ads:111:14
Unbounded_String.To_String defined at a-strunb.ads:100:13
Unbounded_String.To_Unbounded_String defined at a-strunb.ads:94:13
These function creates a matrix that contains the names of the base vectors of a multivector in different format.

Prepare_Base_Name_Table_HTML

function Prepare_Base_Name_Table_HTML return String_Matrix_Type;

Calls:

Geometric_Algebra_Generic.Number_of_Elements defined at geometric_algebra_generic.adb:294:13
Unbounded_String.Append defined at a-strunb.ads:111:14
Unbounded_String.To_Unbounded_String defined at a-strunb.ads:94:13

Prepare_Base_Name_Table_LaTex

function Prepare_Base_Name_Table_LaTex return String_Matrix_Type;

Calls:

Geometric_Algebra_Generic.Number_of_Elements defined at geometric_algebra_generic.adb:294:13
Unbounded_String.Append defined at a-strunb.ads:111:14
Unbounded_String.To_Unbounded_String defined at a-strunb.ads:94:13

Create_Base_Vector_Table_HTML

procedure Create_Base_Vector_Table_HTML 
(File_Name: String := "base_vectors_table.html");

Calls:

Basic_Io.Close defined at basic_io.ads:60:14
Basic_Io.Create defined at basic_io.ads:53:14
Basic_Io.Put_Line defined at basic_io.ads:17:14
Basic_Io.Put_Line defined at basic_io.ads:62:14
Exceptions.Exception_Information defined at a-except.ads:103:13
HTML.HTML_Document defined at html.ads:8:13
HTML.Table defined at html.ads:27:13
Prepare_Base_Name_Table_HTML defined at geometric_algebra_generic.ads:52:13
Unbounded_String.To_String defined at a-strunb.ads:100:13
Unbounded_String.To_Unbounded_String defined at a-strunb.ads:94:13
This procedure creates a base vector table as HTML-table and writes this table in an external HTML-file.

Create_Multipikation_Table_HTML

procedure Create_Multipikation_Table_HTML 
(File_Name: String := "multiplication_table.html");

Calls:

Basic_Io.Close defined at basic_io.ads:60:14
Basic_Io.Create defined at basic_io.ads:53:14
Basic_Io.Put defined at basic_io.ads:63:14
Basic_Io.Put_Line defined at basic_io.ads:17:14
Exceptions.Exception_Information defined at a-except.ads:103:13
Geometric_Algebra_Generic.Create_Multiplikation_Table defined at geometric_algebra_generic.adb:407:13
HTML.HTML_Document defined at html.ads:8:13
HTML.Table defined at html.ads:27:13
Unbounded_String.To_String defined at a-strunb.ads:100:13

Create_Multipikation_Table_HTML_Short_Form

procedure Create_Multipikation_Table_HTML_Short_Form 
(File_Name: String := "multiplication_table_short.html");

Calls:

Basic_Io.Close defined at basic_io.ads:60:14
Basic_Io.Create defined at basic_io.ads:53:14
Basic_Io.Put defined at basic_io.ads:63:14
Basic_Io.Put_Line defined at basic_io.ads:17:14
Exceptions.Exception_Information defined at a-except.ads:103:13
Geometric_Algebra_Generic.Prepare_Multiplikation_Table_Short_Form_HTML defined at geometric_algebra_generic.adb:434:13
HTML.HTML_Document defined at html.ads:8:13
HTML.Table defined at html.ads:27:13
Unbounded_String.To_String defined at a-strunb.ads:100:13

Create_Base_Vector_Table_LaTex

procedure Create_Base_Vector_Table_LaTex 
(File_Name: String := "base_vectors_table.lat";
Formular_Elements: Boolean := true);

Calls:

Basic_Io.Close defined at basic_io.ads:60:14
Basic_Io.Create defined at basic_io.ads:53:14
Basic_Io.Put_Line defined at basic_io.ads:62:14
Basic_Io.Put_Line defined at basic_io.ads:17:14
Exceptions.Exception_Information defined at a-except.ads:103:13
LaTex.Table defined at latex.ads:10:13
Prepare_Base_Name_Table_LaTex defined at geometric_algebra_generic.ads:53:13
Unbounded_String.To_String defined at a-strunb.ads:100:13

Create_Multiplication_Table_Latex

procedure Create_Multiplication_Table_Latex 
(File_Name: String := "multiplication_table.lat");

Calls:

Basic_Io.Close defined at basic_io.ads:60:14
Basic_Io.Create defined at basic_io.ads:53:14
Basic_Io.Put_Line defined at basic_io.ads:62:14
Basic_Io.Put_Line defined at basic_io.ads:17:14
Exceptions.Exception_Information defined at a-except.ads:103:13
Geometric_Algebra_Generic.Create_Multiplikation_Table defined at geometric_algebra_generic.adb:407:13
LaTex.Table defined at latex.ads:10:13
Unbounded_String.To_String defined at a-strunb.ads:100:13

Create_Multiplication_Table_Latex_Short_Form

procedure Create_Multiplication_Table_Latex_Short_Form 
(File_Name: String := "multiplication_table.lat");

Calls:

Basic_Io.Close defined at basic_io.ads:60:14
Basic_Io.Create defined at basic_io.ads:53:14
Basic_Io.Put_Line defined at basic_io.ads:62:14
Basic_Io.Put_Line defined at basic_io.ads:17:14
Exceptions.Exception_Information defined at a-except.ads:103:13
Geometric_Algebra_Generic.Prepare_Multiplikation_Table_Short_Form_HTML defined at geometric_algebra_generic.adb:434:13
LaTex.Table_Short_Form defined at latex.ads:12:13
Unbounded_String.To_String defined at a-strunb.ads:100:13

Signum

function Signum 
(Left: Bit_Array_Type;
Right: Bit_Array_Type) return Integer;

Calls:

Basic_Io.Put_Line defined at basic_io.ads:17:14
Exceptions.Exception_Information defined at a-except.ads:103:13

Create_Canonic_Base (private)

function Create_Canonic_Base return Multi_Vector_Type;

Calls:

Basic_Io.Put_Line defined at basic_io.ads:17:14
Exceptions.Exception_Information defined at a-except.ads:103:13
Unbounded_String.& defined at a-strunb.ads:123:14
Unbounded_String.& defined at a-strunb.ads:127:14
Unbounded_String.Append defined at a-strunb.ads:107:14
Unbounded_String.Append defined at a-strunb.ads:111:14
Unbounded_String.To_Unbounded_String defined at a-strunb.ads:94:13
Unbounded_String.Trim defined at a-strunb.ads:378:13

Get_Max_Blade_Length (private)

function Get_Max_Blade_Length return Natural;