1. -- 
  2. -- Jan & Uwe R. Zimmer, Australia, September 2019 
  3. -- 
  4.  
  5. with Vectors_xD; pragma Elaborate_All (Vectors_xD); 
  6.  
  7. package Vectors_3D_LF is 
  8.  
  9.    type Coordinates is (x, y, z); 
  10.  
  11.    package Vectors_3Di is new Vectors_xD (Long_Float, Coordinates); 
  12.  
  13.    subtype Vector_3D_LF is Vectors_3Di.Vector_xD; 
  14.  
  15.    Zero_Vector_3D_LF : constant Vector_3D_LF := Vectors_3Di.Zero_Vector_xD; 
  16.  
  17.    function Image (V : Vector_3D_LF) return String renames Vectors_3Di.Image; 
  18.  
  19.    function Norm (V : Vector_3D_LF) return Vector_3D_LF renames Vectors_3Di.Norm; 
  20.  
  21.    function "*" (Scalar : Long_Float; V : Vector_3D_LF) return Vector_3D_LF renames Vectors_3Di."*"; 
  22.    function "*" (V : Vector_3D_LF; Scalar : Long_Float) return Vector_3D_LF renames Vectors_3Di."*"; 
  23.  
  24.    function "*" (V_Left, V_Right : Vector_3D_LF) return Long_Float renames Vectors_3Di."*"; 
  25.    function "*" (V_Left, V_Right : Vector_3D_LF) return Vector_3D_LF; 
  26.  
  27.    function Angle_Between (V_Left, V_Right : Vector_3D_LF) return Long_Float renames Vectors_3Di.Angle_Between; 
  28.  
  29.    function "+" (V_Left, V_Right : Vector_3D_LF) return Vector_3D_LF renames Vectors_3Di."+"; 
  30.    function "-" (V_Left, V_Right : Vector_3D_LF) return Vector_3D_LF renames Vectors_3Di."-"; 
  31.    function "-" (V : Vector_3D_LF)               return Vector_3D_LF renames Vectors_3Di."-"; 
  32.  
  33.    function "abs" (V : Vector_3D_LF) return Long_Float renames Vectors_3Di."abs"; 
  34.  
  35. end Vectors_3D_LF;