![]() |
GNU PROLOG with UTF8 support
|

Go to the source code of this file.
Macros | |
| #define | FD_VARIABLE_FRAME_SIZE (OFFSET_RANGE + RANGE_SIZE + CHAINS_SIZE) |
| #define | FD_INT_VARIABLE_FRAME_SIZE (OFFSET_RANGE + RANGE_SIZE) |
| #define | OFFSET_RANGE 4 |
| #define | RANGE_SIZE (2 + (sizeof(Range) / sizeof(WamWord))) |
| #define | OFFSET_CHAINS (OFFSET_RANGE + RANGE_SIZE) |
| #define | CHAINS_SIZE 8 |
| #define | FD_Tag_Value(fdv_adr) (((WamWord *) fdv_adr)[0]) |
| #define | FD_INT_Date(fdv_adr) (((PlULong *) fdv_adr)[1]) |
| #define | Queue_Propag_Mask(fdv_adr) (((WamWord *) fdv_adr)[2]) |
| #define | Queue_Next_Fdv_Adr(fdv_adr) (((WamWord **) fdv_adr)[3]) |
| #define | Range_Stamp(fdv_adr) (((WamWord *) fdv_adr)[OFFSET_RANGE]) |
| #define | Nb_Elem(fdv_adr) (((WamWord *) fdv_adr)[OFFSET_RANGE + 1]) |
| #define | Range(fdv_adr) ((Range *) ((WamWord *) fdv_adr+OFFSET_RANGE + 2)) |
| #define | Chains_Stamp(fdv_adr) (((WamWord *) fdv_adr)[OFFSET_CHAINS]) |
| #define | Nb_Cstr(fdv_adr) (((WamWord *) fdv_adr)[OFFSET_CHAINS + 1]) |
| #define | Chains_Mask(fdv_adr) (((WamWord *) fdv_adr)[OFFSET_CHAINS + 2]) |
| #define | Chain_Min(fdv_adr) (((WamWord **) fdv_adr)[OFFSET_CHAINS + 3]) |
| #define | Chain_Max(fdv_adr) (((WamWord **) fdv_adr)[OFFSET_CHAINS + 4]) |
| #define | Chain_Min_Max(fdv_adr) (((WamWord **) fdv_adr)[OFFSET_CHAINS + 5]) |
| #define | Chain_Dom(fdv_adr) (((WamWord **) fdv_adr)[OFFSET_CHAINS + 6]) |
| #define | Chain_Val(fdv_adr) (((WamWord **) fdv_adr)[OFFSET_CHAINS + 7]) |
| #define | MASK_TO_KEEP_IN_QUEUE (1 << 8) /* only 5 chains */ |
| #define | Is_Var_In_Queue(fdv_adr) (Queue_Propag_Mask(fdv_adr) != 0) /* mask = 0 <=> not in the queue */ |
| #define | Del_Var_From_Queue(fdv_adr) (Queue_Propag_Mask(fdv_adr) = 0) |
| #define | Extra_Cstr(fdv_adr) (Range(fdv_adr)->extra_cstr) |
| #define | Min(fdv_adr) (Range(fdv_adr)->min) |
| #define | Max(fdv_adr) (Range(fdv_adr)->max) |
| #define | Vec(fdv_adr) (Range(fdv_adr)->vec) |
| #define | CHAIN_NB_MIN 0 |
| #define | CHAIN_NB_MAX 1 |
| #define | CHAIN_NB_MIN_MAX 2 |
| #define | CHAIN_NB_DOM 3 |
| #define | CHAIN_NB_VAL 4 |
| #define | MASK_EMPTY 0 |
| #define | MASK_MIN 1 |
| #define | MASK_MAX 2 |
| #define | MASK_MIN_MAX 4 |
| #define | MASK_DOM 8 |
| #define | MASK_VAL 16 |
| #define | Has_Min_Mask(mask) ((mask) & MASK_MIN) |
| #define | Has_Max_Mask(mask) ((mask) & MASK_MAX) |
| #define | Has_Min_Max_Mask(mask) ((mask) & MASK_MIN_MAX) |
| #define | Has_Dom_Mask(mask) ((mask) & MASK_DOM) |
| #define | Has_Val_Mask(mask) ((mask) & MASK_VAL) |
| #define | Set_Min_Mask(mask) ((mask) |= MASK_MIN) |
| #define | Set_Max_Mask(mask) ((mask) |= MASK_MAX) |
| #define | Set_Min_Max_Mask(mask) ((mask) |= MASK_MIN_MAX) |
| #define | Set_Dom_Mask(mask) ((mask) |= MASK_DOM) |
| #define | Set_Val_Mask(mask) ((mask) |= MASK_VAL) |
| #define | CHAIN_RECORD_FRAME_SIZE 2 |
| #define | CF_Pointer(rec_adr) (*(WamWord **) &(rec_adr[0])) |
| #define | Next_Chain(rec_adr) (*(WamWord **) &(rec_adr[1])) |
| #define | CONSTRAINT_FRAME_SIZE 3 |
| #define | OFFSET_OF_OPTIM_POINTER 1 /* this offset must correspond to >>> */ |
| #define | AF_Pointer(cf) (*(WamWord **) &(cf[0])) |
| #define | Optim_Pointer(cf) (*(PlULong **) &(cf[1])) /* >>> this cell */ |
| #define | Cstr_Address(cf) (*(PlLong (**)()) &(cf[2])) |
| #define | ENV_VAR_VECTOR_MAX "VECTORMAX" |
| #define | DEFAULT_VECTOR_MAX 127 |
| #define | Fd_Variable_Is_Ground(fdv_adr) (Tag_Of(FD_Tag_Value(fdv_adr)) == INT) |
| #define | math_min(x, y) ((x) <= (y) ? (x) : (y)) |
| #define | math_max(x, y) ((x) >= (y) ? (x) : (y)) |
| #define | Pl_Fd_Assign_Value(fdv, n) Pl_Fd_Unify_With_Integer0(fdv, n) |
| #define | Pl_Fd_New_Bool_Variable() Pl_Fd_New_Variable_Interval(0, 1) |
| #define | Fd_Deref_Check_Fd_Var(fdv_word, word, tag_mask) |
Variables | |
| WamWord | pl_vec_size |
| WamWord | pl_vec_max_integer |
| #define AF_Pointer | ( | cf | ) | (*(WamWord **) &(cf[0])) |
| #define CF_Pointer | ( | rec_adr | ) | (*(WamWord **) &(rec_adr[0])) |
| #define Chain_Dom | ( | fdv_adr | ) | (((WamWord **) fdv_adr)[OFFSET_CHAINS + 6]) |
| #define Chain_Max | ( | fdv_adr | ) | (((WamWord **) fdv_adr)[OFFSET_CHAINS + 4]) |
| #define Chain_Min | ( | fdv_adr | ) | (((WamWord **) fdv_adr)[OFFSET_CHAINS + 3]) |
| #define Chain_Min_Max | ( | fdv_adr | ) | (((WamWord **) fdv_adr)[OFFSET_CHAINS + 5]) |
| #define CHAIN_NB_DOM 3 |
| #define CHAIN_NB_MAX 1 |
| #define CHAIN_NB_MIN 0 |
| #define CHAIN_NB_MIN_MAX 2 |
| #define CHAIN_NB_VAL 4 |
| #define CHAIN_RECORD_FRAME_SIZE 2 |
| #define Chain_Val | ( | fdv_adr | ) | (((WamWord **) fdv_adr)[OFFSET_CHAINS + 7]) |
| #define Chains_Mask | ( | fdv_adr | ) | (((WamWord *) fdv_adr)[OFFSET_CHAINS + 2]) |
| #define CHAINS_SIZE 8 |
| #define Chains_Stamp | ( | fdv_adr | ) | (((WamWord *) fdv_adr)[OFFSET_CHAINS]) |
| #define CONSTRAINT_FRAME_SIZE 3 |
| #define Cstr_Address | ( | cf | ) | (*(PlLong (**)()) &(cf[2])) |
| #define DEFAULT_VECTOR_MAX 127 |
| #define Del_Var_From_Queue | ( | fdv_adr | ) | (Queue_Propag_Mask(fdv_adr) = 0) |
| #define ENV_VAR_VECTOR_MAX "VECTORMAX" |
| #define Extra_Cstr | ( | fdv_adr | ) | (Range(fdv_adr)->extra_cstr) |
| #define Fd_Deref_Check_Fd_Var | ( | fdv_word, | |
| word, | |||
| tag_mask | |||
| ) |
| #define FD_INT_Date | ( | fdv_adr | ) | (((PlULong *) fdv_adr)[1]) |
| #define FD_INT_VARIABLE_FRAME_SIZE (OFFSET_RANGE + RANGE_SIZE) |
| #define FD_Tag_Value | ( | fdv_adr | ) | (((WamWord *) fdv_adr)[0]) |
| #define FD_VARIABLE_FRAME_SIZE (OFFSET_RANGE + RANGE_SIZE + CHAINS_SIZE) |
| #define Fd_Variable_Is_Ground | ( | fdv_adr | ) | (Tag_Of(FD_Tag_Value(fdv_adr)) == INT) |
| #define Has_Min_Max_Mask | ( | mask | ) | ((mask) & MASK_MIN_MAX) |
| #define Is_Var_In_Queue | ( | fdv_adr | ) | (Queue_Propag_Mask(fdv_adr) != 0) /* mask = 0 <=> not in the queue */ |
| #define MASK_DOM 8 |
| #define MASK_EMPTY 0 |
| #define MASK_MAX 2 |
| #define MASK_MIN 1 |
| #define MASK_MIN_MAX 4 |
| #define MASK_TO_KEEP_IN_QUEUE (1 << 8) /* only 5 chains */ |
| #define MASK_VAL 16 |
| #define Max | ( | fdv_adr | ) | (Range(fdv_adr)->max) |
| #define Min | ( | fdv_adr | ) | (Range(fdv_adr)->min) |
| #define Nb_Cstr | ( | fdv_adr | ) | (((WamWord *) fdv_adr)[OFFSET_CHAINS + 1]) |
| #define Nb_Elem | ( | fdv_adr | ) | (((WamWord *) fdv_adr)[OFFSET_RANGE + 1]) |
| #define Next_Chain | ( | rec_adr | ) | (*(WamWord **) &(rec_adr[1])) |
| #define OFFSET_CHAINS (OFFSET_RANGE + RANGE_SIZE) |
| #define OFFSET_OF_OPTIM_POINTER 1 /* this offset must correspond to >>> */ |
| #define OFFSET_RANGE 4 |
| #define Optim_Pointer | ( | cf | ) | (*(PlULong **) &(cf[1])) /* >>> this cell */ |
| #define Pl_Fd_Assign_Value | ( | fdv, | |
| n | |||
| ) | Pl_Fd_Unify_With_Integer0(fdv, n) |
| #define Pl_Fd_New_Bool_Variable | ( | ) | Pl_Fd_New_Variable_Interval(0, 1) |
| #define Queue_Next_Fdv_Adr | ( | fdv_adr | ) | (((WamWord **) fdv_adr)[3]) |
| #define Queue_Propag_Mask | ( | fdv_adr | ) | (((WamWord *) fdv_adr)[2]) |
| #define Range | ( | fdv_adr | ) | ((Range *) ((WamWord *) fdv_adr+OFFSET_RANGE + 2)) |
| #define Range_Stamp | ( | fdv_adr | ) | (((WamWord *) fdv_adr)[OFFSET_RANGE]) |
| #define Set_Min_Max_Mask | ( | mask | ) | ((mask) |= MASK_MIN_MAX) |
| #define Vec | ( | fdv_adr | ) | (Range(fdv_adr)->vec) |






| void Pl_Fd_Before_Add_Cstr | ( | void | ) |





| WamWord* Pl_Fd_Create_C_Frame | ( | PlLong(*)() | cstr_fct, |
| WamWord * | AF, | ||
| WamWord * | fdv_adr, | ||
| Bool | optim2 | ||
| ) |
| void Pl_Fd_Display_Extra_Cstr | ( | WamWord * | fdv_adr | ) |




| void Pl_Fd_Init_Solver0 | ( | void | ) |




| WamWord* Pl_Fd_New_Int_Variable | ( | int | n | ) |

| WamWord* Pl_Fd_New_Variable | ( | void | ) |


| WamWord* Pl_Fd_New_Variable_Interval | ( | int | min, |
| int | max | ||
| ) |




| int Pl_Fd_Prolog_To_Value | ( | WamWord | arg_word | ) |




| void Pl_Fd_Reset_Solver0 | ( | void | ) |

| void Pl_Fd_Stop_Constraint | ( | WamWord * | CF | ) |




















| int Pl_Fd_Variable_Size0 | ( | WamWord * | fdv_adr | ) |

| char* Pl_Fd_Variable_To_String0 | ( | WamWord * | fdv_adr | ) |


| WamWord pl_vec_max_integer |
| WamWord pl_vec_size |
1.8.11