[PPL-devel] [GIT] ppl/ppl(master): Simplified C interface to Artificial_Parameter.

Enea Zaffanella zaffanella at cs.unipr.it
Thu Feb 18 22:17:20 CET 2010


Module: ppl/ppl
Branch: master
Commit: e0bd48ed51aee3986fe5c9dc43a903f07bea3be7
URL:    http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=e0bd48ed51aee3986fe5c9dc43a903f07bea3be7

Author: Enea Zaffanella <zaffanella at cs.unipr.it>
Date:   Thu Feb 18 22:15:57 2010 +0100

Simplified C interface to Artificial_Parameter.

---

 interfaces/C/ppl_c_header.h                 |   12 ++++++------
 interfaces/C/ppl_c_implementation_common.cc |   27 ++++++++++++---------------
 2 files changed, 18 insertions(+), 21 deletions(-)

diff --git a/interfaces/C/ppl_c_header.h b/interfaces/C/ppl_c_header.h
index 7ba3a38..f026e8f 100644
--- a/interfaces/C/ppl_c_header.h
+++ b/interfaces/C/ppl_c_header.h
@@ -3034,26 +3034,26 @@ PPL_PROTO((ppl_const_PIP_Decision_Node_t pip_dec,
 int
 ppl_Artificial_Parameter_get_Linear_Expression
 PPL_PROTO((ppl_const_Artificial_Parameter_t ap,
-           ppl_const_Linear_Expression_t* le));
+           ppl_Linear_Expression_t le));
 
 /*! \relates ppl_Artificial_Parameter_tag \brief
-  Copies into \p coef the coefficient of variable \p var in
+  Copies into \p n the coefficient of variable \p var in
   the artificial parameter \p ap.
 */
 int
-ppl_Artificial_Parameter_get_coefficient
+ppl_Artificial_Parameter_coefficient
 PPL_PROTO((ppl_const_Artificial_Parameter_t ap,
            ppl_dimension_type var,
-           ppl_const_Coefficient_t* coef));
+           ppl_Coefficient_t n));
 
 /*! \relates ppl_Artificial_Parameter_tag \brief
-  Copies into \p coef the inhomogeneous term of the artificial
+  Copies into \p n the inhomogeneous term of the artificial
   parameter \p ap.
 */
 int
 ppl_Artificial_Parameter_get_inhomogeneous_term
 PPL_PROTO((ppl_const_Artificial_Parameter_t ap,
-           ppl_const_Coefficient_t* coef));
+           ppl_Coefficient_t n));
 
 /*! \relates ppl_Artificial_Parameter_tag \brief
   Writes to \p coeff the denominator in artificial parameter \p ap.
diff --git a/interfaces/C/ppl_c_implementation_common.cc b/interfaces/C/ppl_c_implementation_common.cc
index 6a03cc4..f4d0859 100644
--- a/interfaces/C/ppl_c_implementation_common.cc
+++ b/interfaces/C/ppl_c_implementation_common.cc
@@ -2472,34 +2472,31 @@ CATCH_ALL
 int
 ppl_Artificial_Parameter_get_Linear_Expression
 (ppl_const_Artificial_Parameter_t ap,
- ppl_const_Linear_Expression_t* le) try {
+ ppl_Linear_Expression_t le) try {
   const Artificial_Parameter& sap = *to_const(ap);
-  const Linear_Expression& lle = static_cast<const Linear_Expression&>(sap);
-  *le = to_const(&lle);
+  Linear_Expression& lle = *to_nonconst(le);
+  lle = sap;
   return 0;
 }
 CATCH_ALL
 
 int
-ppl_Artificial_Parameter_get_coefficient(ppl_const_Artificial_Parameter_t ap,
-                                         ppl_dimension_type var,
-                                         ppl_const_Coefficient_t* coef) try {
+ppl_Artificial_Parameter_coefficient(ppl_const_Artificial_Parameter_t ap,
+                                     ppl_dimension_type var,
+                                     ppl_Coefficient_t n) try {
   const Artificial_Parameter& sap = *to_const(ap);
-  const Linear_Expression& lle = static_cast<const Linear_Expression&>(sap);
-  const Coefficient& ncoef = lle.coefficient(Variable(var));
-  *coef = to_const(&ncoef);
+  Coefficient& nn = *to_nonconst(n);
+  nn = sap.coefficient(Variable(var));
   return 0;
 }
 CATCH_ALL
 
 int
-ppl_Artificial_Parameter_get_inhomogeneous_term
-(ppl_const_Artificial_Parameter_t ap,
- ppl_const_Coefficient_t* coef) try {
+ppl_Artificial_Parameter_inhomogeneous_term
+(ppl_const_Artificial_Parameter_t ap, ppl_Coefficient_t n) try {
   const Artificial_Parameter& sap = *to_const(ap);
-  const Linear_Expression& lle = static_cast<const Linear_Expression&>(sap);
-  const Coefficient& icoef = lle.inhomogeneous_term();
-  *coef = to_const(&icoef);
+  Coefficient& nn = *to_nonconst(n);
+  nn = sap.inhomogeneous_term();
   return 0;
 }
 CATCH_ALL




More information about the PPL-devel mailing list