help-glpk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Is this code correct in the GMPL implementation ?


From: Domingo Alvarez Duarte
Subject: Is this code correct in the GMPL implementation ?
Date: Sat, 25 Jul 2020 13:35:23 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0

Hello !

Trying to change the actual TUPLE structure by:

====

#ifndef TUPLE_SIZE_T
#define TUPLE_SIZE_T int
#endif
struct TUPLE
{
      TUPLE_SIZE_T size;
      TUPLE_SIZE_T refcount;
      SYMBOL sym[1];
      /* symbol, which the component refers to; cannot be NULL */
};

====

I found the code bellow (in src/mpl/mpl3.c) that I'm not sure I understand it,

it seems that it's only testing the last tuple against "code->arg.arg.y", shouldn't it be testing inside the loop for every tuple ?

I would appreciate someone could help understand this code !

====

int is_member(MPL *mpl, CODE *code, const TUPLE *tuple)
{     int value;
...

         case O_CROSS:
            {  int j;
               value = is_member(mpl, code->arg.arg.x, tuple);
               if (value)
               {  for (j = 1; j <= code->arg.arg.x->dim; j++)
                  {  xassert(tuple != NULL);
                     tuple = tuple->next;
                  }
                  value = is_member(mpl, code->arg.arg.y, tuple);
               }
            }
            break;

====

Cheers !




reply via email to

[Prev in Thread] Current Thread [Next in Thread]