Home | Back
The new polylib library combines both the Strasbourg version and IRISA version
and includes option to support 32 bit or 64 bit or GNU muti-precision integers.
It also includes the recent (April 2001) changes suggested by Doran Wilde and
the changes made by Vincent Loechner in polylib4.20. A new feature: computati-
ons on Z-polyhedron has been added into the new polylib version.  
The new version has following changes compared to the polylib version at
Strassbourg:-

*******************************************************************************

Directory: ./include/polylib

(1) Arithmetique.h

* Included "GMP" value-type.
  eg:   #else  /* If defined(GNUMP) */
#define LINEAR_VALUE_GMP "gmp"
typedef mpz_t Value;

* Added macros corresponding to "GMP" value-type :-
  eg:- ! Basic Macros :- value_init(val), etc..
       ! Boolean operators on 'Value' :- value_eq(v1,v2), etc...
       ! Trian operators on 'Value' :- value_sign(val),etc..
       ! Binary operations on 'Value' :- value_addto(ref,val)
       ! Conditional operations on 'Value' :- value_pos_p(val), etc...

* A few macros are not defined for "GMP" value-types compared to other
          defined value-types, as there is no way to do so in "GMP".
  eg:- (i) VALUE_CONST, VALUE_NAN, VALUE_MAX, VALUE_MIN, etc...
       (ii) ! Cast to value macros :- int_to_value(i), etc....
       (iii)! Binary operators on 'Value' :- value_plus(v1,v2), etc..
       (iV) ! Unary operators on 'Value'  :- value_not(val), etc...

* A few macros not defined for "GMP" value-types compared to other
  defined value-types, as they seemed redundant in "GMP".
  eg:- (i) value_direct_product(ref,val) /* No overflow check reqd. */
       (ii) ! Various macros for protected multiplication :-
      value_protected_multiply(v,w)
       
        * A new set of macro defintions included in every value-type to handle
  initialization and clear operations in "GMP".
  eg:- value_init(val), value_assign(v1,v2),value_clear(val), etc ..

* A few macro definitions changed.
  eg:- value_addto(ref,val) -> value_addto(ref,val1,val2)
       value_increment(ref) -> value_increment(ref,val). etc...

* A few function prototype definitions removed as they were redundant.
  eg:- extern Value abs_ofl_ctrl(...): abs.c
       extern Value divide_fast(....): divide.c
       extern Value pgcd_slow(......): pgcd.c

* Comments added and modified wherever seemed appropriate.

(2)  arithmetic_errors.h

* added a test on the cygwin flag for CATCH and THROW macros

(3) eval_ehrhart.h

* Changes in function prototype definitions to match with the changes
  made in the file 'eval_ehrhart.c'.

(4) matrix.h

* Changes in function prototype definitions to match with the changes
  made in the file 'matrix.c'.

(5) polyhedron.h

* Added Statement :
  extern Polyhedron *Stras_DomainSimplify(Polyhedron *Pol1, Polyhedron
  *Pol2, unsigned NbMaxRays);

* Changes in function prototype definitions to match with the changes
  made in the file 'polyhedron.c'.

(6) polylib.h

* Added statement: && !defined(GNUMP)

* Removed few statements.
  eg:- #include <polylib/types_mp.h>
       #include <polylib/matrix_mp.h>
       #include <polylib/ehrhart_mp.h>

(7) polyparam.h

* Changes in function prototype definitions to match with the changes
  made in the file 'polyparam.c'.
    
(8) types.h

* Added macro: #ifdef DGNUMP
       #include <gmp.h>
       #endif
       
       $define MAXNOOFRAYS 200
        
* Added statement: #else /* Default : GNUMP */
           #define P_VALUE_FMT "%4s"
   #endif

* Added Data-structures to represent Z-Polyhedron
  eg: Lattice, LatticeUnion, ZPolyhedron

* Deleted a few redundant macros:
          eg:  (1) Vector_Copy
       (2) Vector_Init
       (3) Vector_Exchange

* Deleted file "types_mp.h", as it is not required now.

* Comments added and modified wherever seemed appropriate.

(9) vector.h

* Changes in function prototype definitions to match with the changes
  made in the file 'vector.c'.

(10) Addition of new header files
eg: Solvedio.h, Lattice.h, Matop.h, NormalForms.h and Zpolyhedron.h   

(11) Makefile

* Changes in Makefile to match with the changes made in the library.

*******************************************************************************

Directory: ./ArithLib

(1) arithmetic_errors.h (copied from ./include/polylib/arithmetic_errors.h)

(2) arithmetique.h (copied from ./include/polylib/arithmetique.h)

(3) Deleted redundant files "arithmetique-local.h", "abs.c", "divide.c",
    "doc.h", "exp.c", "io.c", "linear.h" "modulo.c", "pgcd.c", "pgcm.c".

*******************************************************************************

Directory: ./source

(1) count.c

* Changes in local variable names in function declarations
             eg:
(1) main : Value k -> int k
           str (added)

(2) ehrhart.c
     
* Programming code changed from K&R C to ANSI C.

* Changes in parameter names or return type in function declarations
     eg:
        (1) Scan_Vertices : returned type changed to (Value*) from
    Value

* Changes in local variable names in function declarations
             eg:
(1) cherche_min : j (added)
        (2) Polyhedron_Preprocess : tmp, size_copy (added)
(3) Polyhedron_Preprocess2 : tmp1, tmp2 (added)
(4) old_Polyhedron_Preprocess : temp (deleted)
        abs_a, abs_b, size_copy (added)
(5) count_points : result (added)
        (5) P_Enum : temp (deleted)
     tmp, lcm_copy (added)
(6) Enumerate_NoParametres : j, tmp (added)
(7) Polyhedron_Enumerate : i (added)
(8) main : i,str (added)
   
* Comments added wherever seemed appropriate.

* Changes in almost all the functions in order to make it generic and
  allow handling of all the 'Value' types including GMP.

* Deleted file "ehrhart_mp.c" as it is not required now.

(3) eval_ehrhart.c

* Changes in parameter names or return type in function declarations
     eg:
(1) compute_poly : return type changed to (Value *) from Value
      
* Changes in local variable names in function declarations
             eg:
(1) in_domain : tmp (added)
        (2) compute_poly : tmp (added)

* Changes in almost all the functions in order to make it generic and
  allow handling of all the 'Value' types including GMP.

(4) example.c :

* Added file "example.c" in ./source directory.

* A few macro definitions removed:
eg:  #include "types.h"
      #include "ztypes.h"
      #include "vector.h", etc....

* A few macro definitions added:
  eg: #include "polylib/polylib.h"

(5) Lattice.c

* Added file "Lattice.c" in ./source directory.

* Removed macro header definitions
  eg: #include "types.h"
      #include "ztypes.h" etc..

* Added macro header definitions
  eg: #include <polylib/polylib.h>

* Changes in parameter names or return type in function declarations
     eg:

* Changes in local variable names in function declarations
             eg:

(1) AffineSmith : sum, quo, rem (added)
(2) LatticeDifference : int k -> Value k
        (3) AddLattice : tmp (added)
        (4) FindHermiteBasisofDomain : fact(added)
       int lcm -> Value lcm
(5) LatticePreimage : tmp (added)
      int divisor -> Value divisor
(6) Simplify : aux,k,fac, num, tmp, foobar (added)
int cnt -> Value cnt
(7) AffinePartSimplify : aux (added)

* Comments added wherever seemed appropriate.

* Changes in almost all the functions in order to make it generic and
  allow handling of all the 'Value' types including GMP.

(6) Matop.c

* Added file "Matop.c" in ./source directory.

* Removed macro header definitions
  eg: #include "types.h"
      #include "ztypes.h" etc..

* Added macro header definitions
  eg: #include <polylib/polylib.h>

* Changes in parameter names or return type in function declarations
     eg:
(1) Lcm : return type changed to (Value *) from (int)  
  int i -> Value i
  int j -> Value j

* Changes in local variable names in function declarations
             eg:
(1) Lcm : tmp, aux (added)
(2) ExchangeRows : int *temp -> Value *temp
(3) ExchangeColumns : int *temp -> Value *temp;
(4) isIntegral : int divisor -> Value divisor
tmp (added)
(5) isinHnf : int rem -> Value rem
(6) PutRowLast : int *vector -> Value *vector
(7) PutRowFirst : int *vector -> Value *vector
(8) PutColumnFirst : int *vector -> Value *vector
(9) PutColumnLast : int *vector -> Value *vector

* Comments added wherever seemed appropriate.

* Changes in almost all the functions in order to make it generic and
  allow handling of all the 'Value' types including GMP.


(7) matrix.c

* Programming code changed from K&R C to ANSI C.

* A few functions added:
eg: int Matrix_Inverse(Matrix *Mat, Matrix *MatInv)

* Changes in parameter names or return type in function declarations
     eg:
(1) MatInverse : M -> Mat
MInv -> MatInv
(2) Matrix_Vector_Product : mat -> Mat
(3) Vector_Matrix_Product : mat -> Mat
(4) Matrix_Product : mat1 -> Mat1
     mat2 -> Mat2
     mat3 -> Mat3

* Changes in local variable names in function declarations
             eg:
(1) Matrix_Alloc : j (added)
(2) Matrix_Free : (i,j,p) (added)
(3) Matrix_Read_Input : str (added)
(4) hermite : aux (added)
      tmp  -> temp1
      tmp2 -> temp2
(5) MatInverse : g  -> gcd
p  -> i
li -> j, tmp (deleted)
(6) rat_prodmat : denom  -> last column_index
     dcom   -> lcm
  old_dc -> old_lcm
  g -> gcd
  d -> last_column_entry
  s -> s1, s2(added), tmp (deleted)
(7) Matrix_Vector_Product : s (added)
(8) Vector_Matrix_Product : s (added)
(9) Matrix_Product : s (added)

* Error correction in code
  eg:
     (1) rat_prodmat :
            if (value_zero_p(dcom)) -> if (value_one_p(dcom))

* Deleted file "matrix_mp.c", as it is not required now.

* Comments added wherever seemed appropriate.

* Changes in almost all the functions in order to make it generic and
  allow handling of all the 'Value' types including GMP.

(8) NormalForms.c

* Added file "NormalForms.c" in ./source directory.

* Programming code changed from K&R C to ANSI C.

* Removed macro header definitions
  eg: #include "types.h"
      #include "ztypes.h" etc..

* Added macro header definitions
  eg: #include <polylib/polylib.h>

* Removed function: static int abs(int x)

* Changes in parameter names or return type in function declarations
     eg:
(1)  moins_l : int *a -> Value *a
(2)  moins_c : int *a -> Value *a
(3)  echange_l : int *a -> Value *a
(4)  echange_c : int *a -> Value *a
(5)  ligne : int *a -> Value *a
     int x -> Value x
(6)  colonne  : int *a -> Value *a
        int x -> Value x
(7)  petit_l  : int *a -> Value *a
(8)  petit_c  : int *a -> Value *a
(9)  identite : int *a -> Value *a
(10) transpose: int *a -> Value *a
(11) encore : int *a -> Value *a
      int val -> Value val
(12) smith : int *a -> Value *a
     int *b -> Value *b
     int *c -> Value *c
     int *b_inverse -> Value *b_inverse
     int *c_inverse -> Value *c_inverse
(13) hermite : int *a, -> Value *a
       int *b -> Value *b
       int *d -> Value *d
(14) ConvertpolMattoDarMat : return type changed to (Value *)
                     from (int *)     
(15) ConvertDarMattoPolMat : int *A -> Value *A


* Changes in local variable names in function declarations
             eg:  
(1) moins_l : int *c -> Value *c
(2) moins_c : int *c -> Value *c
(3) echange_l : int s -> Value s
        int *c1, *c2 -> Value *c1, *c2
(4) echange_c : int s -> Value s
        int *c1, *c2 -> Value *c1, *c2
(5) ligne : int *c1, *c2 :-> Value *c1, *c2
    tmp (added)
(6) colonne : int *c1, *c2 -> Value *c1, *c2
      tmp (added)
(7) petit_l : int *c -> Value *c
      int minus, comp -> Value minus, comp
(8) petit_c : int *c -> Value *c
      int minus, comp -> Value minus, comp
(9) identite : int *b -> Value *b
(10) transpose : int *b, *c -> Value *b, *c
int val -> Value val
(11) encore : int *c -> Value *c
      int comp -> Vale comp
      tmp (added)
(12) smith : int *f -> Value *f
     int x, pivot -> Value x, pivot
     tmp, x_inv (added)
(13) hermite : int *c1 -> Value *c1
       int x, pivot -> Value x, pivot
       tmp, x_inv (added)
(14) ConvertPolMattoDarMat : int *result -> Value *result  
(15) Smith : int *a, *u, *v, *u_inv, *v_inv ->
    Value *a, *u, *v, *u_inv, *v_inv
    i (added)
(16) Hermite : int *darte_matA -> Value *darte_matA
       int *darte_identite -> Value *darte_identite
       int *darte_id_inv -> Value *darte_id_inv
       i (added)

* Comments added wherever seemed appropriate.

* Changes in almost all the functions in order to make it generic and
  allow handling of all the 'Value' types including GMP.

(9) polyhedron.c

        * Programming code changed from K&R C to ANSI C.

* A few function declarations removed.
             eg: VVPd,IVPd,MPd (functions)
       
   * A few function names changed.
     eg: SMPd -> SMPrint
                 SatVector_Or -> SatVector_OR
PPd -> PolyPrint

* A few functions added  
     eg:
(1) Stras_DomainSimplify(Pol1, Pol2, NbMaxRays)  
(2) SimplifyEqualities(Pol1, Pol2, Filter)

* Changes in Macro definition
     eg: bexchange(a,b,t,l) -> bexchange(a,b,l)

        * Changes in parameter names in function declarations
            eg:
(1)  Combine : temp (deleted)
(2)  RaySort : Temp1 (deleted), Temp2 (deleted)
(3)  Gauss : temp (deleted)
(4)  Rays2Polyhedron : NbMaxRays -> NbMaxConstrs
(5)  BuildSat : NbCon -> NbConstraints
(6)  AddConstraints : Con2 -> Con
      NbCon2 -> NbConstraints
      Pol1 -> Pol
(7)  AddPolyToDomain : p3 -> Pol
       p3beg -> PolDomain
(8)  SubConstraint :   Con2 -> Con
       Pol1 -> Pol
(9)  AddRays : Ray2   ->AddedRays
       NbRay2 -> NbAddedRays
       Pol1   -> Pol
       NbMaxRays -> NbMaxConstrs
(10) DomainAddRays : Pol1 -> Pol
     Mat2 -> Ray
     NbMaxRays -> NbMaxConstrs
(11) DomainConvex : Pol1 -> Pol
    NbMaxRays -> NbMaxConstrs
(12) align_context : D -> Pol
             n -> align_dimension
     MAXRAYS -> NbMaxRays
(13) Polyhedron_Scan : MAXRAYS -> NbMaxRays
(14) Polyhedron_Preimage : Pol1 -> Pol
(15) DomainPreimage : Pol1 -> Pol
        (16) Polyhedron_Image : Pol1 -> Pol
        NbMaxrays -> NbMaxConstrs
(17) DomainImage : Pol1 -> Pol
   NbMaxRays -> NbMaxConstrs
(18) DomainCost : Pol1 -> Pol
(19) DomainAddConstraints : Pol1 -> Pol
    Mat2 -> Mat
   
* Changes in local variable names in function declarations
             eg:   
(1)  Combine : a -> gcd
abs_a1,abs_a2,neg_a1 (added)
         (2)  TransformSat : nc2  -> sat_nbcolumns
     Sat2 -> result
(3)  Chernikova : nc -> sat_nbcolumns
   Temp1 (deleted)
   Temp2 -> Temp
(4)  Gauss      : col_of_rank -> column_index
   tmp (added)
   RowSize (deleted)
(5)  Remove_Redundants : nc  -> sat_nbcolumns
  Dim -> Dim_RaySpace
  tmp1,tmp2,tmp3 (added)

(6)  Polyhedron_Alloc : j (added)
(7)  Polyhedron_Free  : size,p,NbRows,NbColumns (added)
(8)  Domain_Free : size,p,NbRows,NbColumns (added)
         (9)  Constraints2Polyhedron : nc -> nbcolumns
(10) Rays2Polyhedron: Sat  -> SatTranspose
       Sat2 -> Sat
       nc   -> nbcolumns
(11) BuildSat : nc -> nbcolumns
         tmp (added)
(12) AddConstraints : Pol -> NewPol
       NbCon1, NbEle1 (deleted)
(13) PolyhedronIncludes : tmp (added)        
(14) AddPolyToDomain : p3end -> p_domain_end
(15) SubConstraint   : Pol -> NewPol
        NbCon1 -> NbCon
NbCon (deleted)
(16) AddRays : Pol  -> NewPol
        Sat  -> SatTranspose
Sat2 -> Sat
NbRay1 -> NbRay
NbRay (deleted)
(17) FindSimple : tmp (added)
(18) SimplifyConstraints : notvid ->notempty
(19) SimplifyEqualities : temp (deleted)
(20) DomainSimplify : nc -> nbentries
       NbCon2 -> NbCon
       vid -> empty
       RowSize (deleted)
(21) DomainConvex : Pol -> NewPol
     PolNew -> q
(22) align_context : p1 -> q
              M -> Mat
(23) Polyhedron_Scan : dim2 (deleted)
numP (deleted)
M -> Mat
(24) lower_upper_bounds : tmp (added)
(25) Polyhedron_Preimage : Pol2 -> NewPol
            tmp (added)
(26) DomainPreimage : p1 -> q
(27) Polyhedron_Image : Pol2 -> NewPol
tmp (added)
(28) DomainImage : p1 -> q
(29) DomainCost : tmp1,tmp2,tmp3 (added)

* Error correction in code
      eg:
  (1) Gauss:
column_index = (int *)malloc(Dimension*sizeof(Value)) ->
        column_index = (int *)malloc(Dimension*sizeof(int))

  (2) DomainAddRays:
      if (PolyhedronIncludes(p2,p1)) -> if (PolyhedronIncludes(p2,p3))
             
  (3) DomainAddConstraints:
      if (PolyhedronIncludes(p2,p1)) -> if (PolyhedronIncludes(p2,p3))

* Comments added wherever seemed appropriate.

* Changes in almost all the functions in order to make it generic and
  allow handling of all the 'Value' types including GMP.

(10) polyparam.c :->

* Programming code changed from K&R C to ANSI C.

* A few macro definitions removed.
  eg: Vector_Init (deleted)

        * A few function declarations removed.
          eg: TestRank_mp

* Changes in parametres names in function declarations
  eg:
     (1) TestRank : M -> Mat
    gcd,tmp (added)
     (2) SMaAlloc : m -> matrix
     (3) Poly2Sat : P -> Pol   
     (4) GenParamPolyhedron : poly -> Pol
     (5) Param_Domain_Free : PP -> PD

* Changes in local variable names in function declarations
          eg:
     (1)  TestRank : gcd (added)
     (2)  Poly2Sat : Tmp -> Temp
     tmp (added)
     (3)  Elim_Columns : tmp1, tmp2 (added)
     (4)  Polyhedron2Param_Vertices : res -> result
     (5)  Param_Vertices_Free : n -> next_pv
     (6)  Print_Vertex : t (deleted), tmp (added)
         g -> gcd
     (7)  Param_Vertices_Print : a -> poly
     (8)  Polyhedron2Param_Domain : res -> result
     (9)  Polyhedron2Param_SimplifiedDomain : res ->result
     (10) Param_Domain_Free : n -> next_pd

* Error correction in code:
      eg:
(1) PDomainIntersection :
Uncommented statement - Polyhedron_Free(p3);

* Comments added wherever seemed appropriate.   

* Changes in almost all the functions in order to make it generic and
  allow handling of all the 'Value' types including GMP.

(11) polytest.c

* Programming code changed from K&R C to ANSI C.

* Changes in Macro definition
     eg: bexchange(a,b,t,l) (deleted)

* Changes in parameter names or return type in function declarations
     eg:
(1) exist_points : P -> Pol
(2) PolyhedronLTQ : P1 -> Pol1
    P2 -> Pol2
    MAXRAYS -> NbMaxConstrs
(3) GaussSimplify : M  -> Mat1
    M2 -> Mat2

* Changes in local variable names or types in function declarations
             eg:
        (1) exist_points : tmp (added)
(2) Polyhedron_Not_Empty : i (added)
(3) PolyhedronLTQ : M -> Mat
(4) GaussSimplify : col_of_rank :-> column_index
    tmp  (added)
    temp,RowSize (deleted)

* Error correction in code:
      eg:
(1) GaussSimplify :
    if(value_gt(gcd,int_to_value(2))) -> if(value_ge(...))

* Comments added wherever seemed appropriate.

* Changes in almost all the functions in order to make it generic and
  allow handling of all the 'Value' types including GMP.

(12) SolveDio.c

* Added file "SolveDio.c" in ./source directory.

* Removed macro header definitions
  eg: #include "types.h"
      #include "ztypes.h" etc..

* Added macro header definitions
  eg: #include <polylib/polylib.h>

* Changes in local variable names or types in function declarations
             eg:
(1) SolveDiophantine : int *C -> Value *C
       int *T -> Value *T
       int sum -> Value sum
       k1, k2, tmp (added)

* Comments added wherever seemed appropriate.

* Changes in almost all the functions in order to make it generic and
  allow handling of all the 'Value' types including GMP.

(13) vector.c

* Programming code changed from K&R C to ANSI C.

* Functions added
  eg:   void Vector_Copy(Value *,Value *,unsigned)
void Vector_Exchange(Value *,Value *,unsigned)

* Changes in parameter names or return type in function declarations
     eg:
(1)  Factorial : return type changed to (Value *) from (Value)
(2)  Binomial  : return type changed to (Value *) from (Value)
(3)  CNP : return type changed to (Value *) from (Value)
(4)  GCD : return type changed to (Value *) from (Value)
(5)  Vector_Free : vec -> vector
(6)  Vector_Print : vec -> vector
(7)  Vector_Set : Value n -> int n
(8)  Inner_Product : return type changed to (Value *) from
     (Value)
(9)  Vector_Max : return type changed to (Value *) from (Value)
(10) Vector_Min : return type changed to (Value *) from (Value)
(11) Vector_Min_Not_Zero : return type changed to (Value *)
    from (Value)
(12) Vector_Gcd : return type changed to (Value *) from (Value)
  q (deleted)
(13) Vector_Map : Value (*f)() -> Value *(*f)()
(14) Vector_Normalize : q (deleted)
(15) Vector_Normalize_Positive : tmp (deleted)
(16) Vector_Reduce : return type changed to (Value *) from
     (Value)
     Value (*f)() -> Value *(*f)()
(17) Vector_Sort : Vecv -> vector

* Changes in local variable names or types in function declarations
             eg:
(1)  Factorial : Value fact -> Value *fact
         tmp (added)
(2)  Binomial :  Value prod -> Value *result
         f (deleted), tmp (added)
(3)  CNP : Value c -> Value *result
   tmp (added)
(4)  GCD : Value aux -> Value *result
   acopy,bcopy (added)
(5)  Vector_Alloc : vec -> vector
            i (added)
(6)  Vector_Free : i (added)
(7)  Vector_Read : vec -> vector
           str (added)
(8)  Inner_Product : Value ip -> Value *ip
     tmp (added)
(9)  Vector_Max : Value max -> Value *max
(10) Vector_Min : Value min -> Value *min
(11) Vector_Min_Not_Zero : Value min -> Value *min
   j (added)
(12) Vector_Gcd : Value min -> Value *min
  q (added)
(13) Vector_Normalize : Value gcd -> Value *gcd
        tmp (added)
(14) Vector_Normalize_positive : Value g -> Value *gcd
(15) Vector_Reduce : Value r -> Value *r

* Comments added wherever seemed appropriate.

* Changes in almost all the functions in order to make it generic and
  allow handling of all the 'Value' types including GMP.

(14) verif_ehrhart.c

* Changes in local variable names or types in function declarations
             eg:
(1) check_poly : Value k -> int k
tmp (added)
(2) main : tmp (added)

* Changes in almost all the functions in order to make it generic and
  allow handling of all the 'Value' types including GMP.

(15) Zpolyhedron.c ->

* Added file "Zpolyhderon.c" in ./source directory.

* A few macro definitions removed:
  eg: #include "types.h"
      #include "ztypes.h"
      #include "vector.h", etc....

* A few macro definitions added:
  eg: #include "polylib/polylib.h"

* Changes in local variable names or types in function declarations
             eg:
(1) CanonicalForm : tmp (added)

* Comments added wherever seemed appropriate.

* Changes in almost all the functions in order to make it generic and
  allow handling of all the 'Value' types including GMP.

(16) Zpolytest.c

* Added file "Zpolytest.c" in ./source directory.

* A few macro definitions removed:
eg:  #include "types.h"
      #include "ztypes.h"
      #include "vector.h", etc....

* A few macro definitions added:
  eg: #include "polylib/polylib.h"

*******************************************************************************