aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJedidiah Barber <contact@jedbarber.id.au>2026-01-06 23:42:58 +1300
committerJedidiah Barber <contact@jedbarber.id.au>2026-01-06 23:42:58 +1300
commita30301abbf136396a7d40880313a1b507aded4ab (patch)
tree3aeb8ac5603c41a3a9e0e813e18cbdbc86e16a6c /src
parent009dd1f9cbbd024f8bfd925989e2482f48abe71d (diff)
Slight efficiency improvements to comparison subprograms
Diffstat (limited to 'src')
-rw-r--r--src/kompsos-math.adb32
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;