diff options
| author | Jedidiah Barber <contact@jedbarber.id.au> | 2026-01-06 23:42:58 +1300 |
|---|---|---|
| committer | Jedidiah Barber <contact@jedbarber.id.au> | 2026-01-06 23:42:58 +1300 |
| commit | a30301abbf136396a7d40880313a1b507aded4ab (patch) | |
| tree | 3aeb8ac5603c41a3a9e0e813e18cbdbc86e16a6c /src/kompsos-math.adb | |
| parent | 009dd1f9cbbd024f8bfd925989e2482f48abe71d (diff) | |
Slight efficiency improvements to comparison subprograms
Diffstat (limited to 'src/kompsos-math.adb')
| -rw-r--r-- | src/kompsos-math.adb | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/src/kompsos-math.adb b/src/kompsos-math.adb index e74ff60..e4022cf 100644 --- a/src/kompsos-math.adb +++ b/src/kompsos-math.adb @@ -191,7 +191,6 @@ package body Kompsos.Math is One, Two, Three : Goal := This; X_Var : constant Term := Three.Fresh; - Y_Var : constant Term := Three.Fresh; begin One.Unify (N_Term, Zero_Term); GT_Zero (One, M_Term); @@ -201,9 +200,13 @@ package body Kompsos.Math is Three.Unify (N_Term, T (Three.Fresh, X_Var)); GT_Zero (Three, X_Var); - Three.Unify (M_Term, T (Three.Fresh, Y_Var)); - GT_Zero (Three, Y_Var); - Three.Conjunct (LT_Length_Access, X_Var & Y_Var); + declare + Y_Var : constant Term := Three.Fresh; + begin + Three.Unify (M_Term, T (Three.Fresh, Y_Var)); + GT_Zero (Three, Y_Var); + Three.Conjunct (LT_Length_Access, X_Var & Y_Var); + end; return Disjunct (One & Two & Three); end LT_Length; @@ -253,7 +256,6 @@ package body Kompsos.Math is One, Two, Three : Goal := This; X_Var : constant Term := Three.Fresh; - Y_Var : constant Term := Three.Fresh; begin One.Unify (N_Term, Zero_Term); One.Unify (M_Term, Zero_Term); @@ -263,9 +265,13 @@ package body Kompsos.Math is Three.Unify (N_Term, T (Three.Fresh, X_Var)); GT_Zero (Three, X_Var); - Three.Unify (M_Term, T (Three.Fresh, Y_Var)); - GT_Zero (Three, Y_Var); - Three.Conjunct (EQ_Length_Access, X_Var & Y_Var); + declare + Y_Var : constant Term := Three.Fresh; + begin + Three.Unify (M_Term, T (Three.Fresh, Y_Var)); + GT_Zero (Three, Y_Var); + Three.Conjunct (EQ_Length_Access, X_Var & Y_Var); + end; return Disjunct (One & Two & Three); end EQ_Length; @@ -331,14 +337,16 @@ package body Kompsos.Math is M_Term : Term renames Inputs (2); One, Two : Goal := This; - - X_Var : constant Term := Two.Fresh; begin LT_Length (One, Inputs); EQ_Length (Two, Inputs); - GT_Zero (Two, X_Var); - Add (Two, N_Term & X_Var & M_Term); + declare + X_Var : constant Term := Two.Fresh; + begin + GT_Zero (Two, X_Var); + Add (Two, N_Term & X_Var & M_Term); + end; return Disjunct (One, Two); end LT; |
