removing SATPlan and adding conda and sypet
[Benchmarks_CSolver.git] / satPlan2006 / include / memory.c
diff --git a/satPlan2006/include/memory.c b/satPlan2006/include/memory.c
deleted file mode 100644 (file)
index 67fad7f..0000000
+++ /dev/null
@@ -1,700 +0,0 @@
-\r
-\r
-\r
-/*********************************************************************\r
- * (C) Copyright 1999 Albert Ludwigs University Freiburg\r
- *     Institute of Computer Science\r
- *\r
- * All rights reserved. Use of this software is permitted for \r
- * non-commercial research purposes, and it may be copied only \r
- * for that use.  All copies must include this copyright message.\r
- * This software is made available AS IS, and neither the authors\r
- * nor the  Albert Ludwigs University Freiburg make any warranty\r
- * about the software or its performance. \r
- *********************************************************************/\r
-\r
-\r
-/*********************************************************************\r
- * File: memory.c\r
- * Description: Creation and Deletion functions for all data structures.\r
- *\r
- * Author: Joerg Hoffmann\r
- *\r
- *********************************************************************/ \r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-#include <string.h>\r
-#include "bb.h"\r
-#include "memory.h"\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-/**********************\r
- * CREATION FUNCTIONS *\r
- **********************/\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-/* parsing\r
- */\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-char *new_Token( int len )\r
-\r
-{\r
-\r
-  char *tok = ( char * ) calloc( len, sizeof( char ) );\r
-  CHECK_PTR(tok);\r
-\r
-  return tok;\r
-\r
-}\r
-\r
-\r
-\r
-TokenList *new_TokenList( void )\r
-\r
-{\r
-\r
-  TokenList *result = ( TokenList * ) calloc( 1, sizeof( TokenList ) );\r
-  CHECK_PTR(result);\r
-\r
-  result->item = NULL; \r
-  result->next = NULL;\r
-\r
-  return result;\r
-\r
-}\r
-\r
-\r
-\r
-FactList *new_FactList( void )\r
-\r
-{\r
-\r
-  FactList *result = ( FactList * ) calloc( 1, sizeof( FactList ) );\r
-  CHECK_PTR(result);\r
-\r
-  result->item = NULL; \r
-  result->next = NULL;\r
-\r
-  return result;\r
-\r
-}\r
-\r
-\r
-\r
-PlNode *new_PlNode( Connective c )\r
-\r
-{\r
-\r
-  PlNode *result = ( PlNode * ) calloc( 1, sizeof( PlNode ) );\r
-  CHECK_PTR(result);\r
-\r
-  result->connective = c;\r
-  result->atom = NULL;\r
-  result->sons = NULL;\r
-  result->next = NULL;\r
-\r
-  return result;\r
-\r
-}\r
-\r
-\r
-\r
-PlOperator *new_PlOperator( char *name )\r
-\r
-{\r
-\r
-  PlOperator *result = ( PlOperator * ) calloc( 1, sizeof( PlOperator ) );\r
-  CHECK_PTR(result);\r
-\r
-  if ( name ) {\r
-    result->name = new_Token(strlen(name)+1);\r
-    CHECK_PTR(result->name);\r
-    strcpy(result->name, name);\r
-  } else {\r
-    result->name = NULL;\r
-  }\r
-\r
-  result->params = NULL;\r
-  result->preconds = NULL;\r
-  result->effects = NULL;\r
-  result->number_of_real_params = 0;\r
-  result->next = NULL;\r
-\r
-  return result;\r
-\r
-}\r
-\r
-\r
-\r
-PlOperator *new_axiom_op_list( void )\r
-\r
-{\r
-\r
-  static int count;\r
-  char *name;\r
-  PlOperator *ret;\r
-\r
-  /* WARNING: count should not exceed 999 \r
-   */\r
-  count++;\r
-  if ( count == 10000 ) {\r
-    printf("\ntoo many axioms! look into memory.c, line 157\n\n");\r
-    exit( 1 );\r
-  }\r
-  name = new_Token(strlen(HIDDEN_STR)+strlen(AXIOM_STR)+4+1);\r
-  sprintf(name, "%s%s%4d", HIDDEN_STR, AXIOM_STR, count);\r
-\r
-  ret = new_PlOperator(name);\r
-  free(name);\r
-\r
-  return ret;\r
-\r
-}\r
-\r
-\r
-\r
-type_tree new_type_tree( char *name )\r
-\r
-{\r
-\r
-  type_tree act_type;\r
-  \r
-  if (!name) {\r
-    return NULL;\r
-  }\r
-\r
-  act_type = ( type_tree ) calloc( 1, sizeof( type_tree_elt ) );\r
-  CHECK_PTR(act_type);\r
-\r
-  act_type->name = new_Token( strlen( name ) + 1 );\r
-  strcpy( act_type->name, name );\r
-  act_type->sub_types = NULL;\r
-\r
-  return act_type;\r
-\r
-}\r
-\r
-\r
-\r
-type_tree_list new_type_tree_list( char *name )\r
-\r
-{\r
-\r
-  type_tree_list act_type_list;\r
-  \r
-  act_type_list = ( type_tree_list ) calloc( 1, sizeof( type_tree_list_elt ) );\r
-  CHECK_PTR(act_type_list);\r
-\r
-  if ( name ) {\r
-    act_type_list->item = new_type_tree( name );\r
-  } else {\r
-    act_type_list->item = NULL;\r
-  }\r
-\r
-  act_type_list->next = NULL;\r
-  \r
-  return act_type_list;\r
-\r
-}\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-/* instantiation\r
- */\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-Operator *new_Operator( char *name, int norp )\r
-\r
-{\r
-\r
-  int i;\r
-\r
-  Operator *result = ( Operator * ) calloc( 1, sizeof( Operator ) );\r
-  CHECK_PTR(result);\r
-\r
-  if ( name ) {\r
-    result->name = new_Token( strlen( name ) + 1 );\r
-    CHECK_PTR( result->name );\r
-    strcpy( result->name, name );\r
-  } else {\r
-    result->name = NULL;\r
-  }\r
-\r
-  result->num_vars = 0;\r
-  result->number_of_real_params = norp;\r
-\r
-  for ( i = 0; i < MAX_VARS; i++ ) {\r
-    result->inst_table[i] = -1;\r
-  }\r
-\r
-  result->num_preconds = 0;\r
-  result->num_adds = 0;\r
-  result->num_dels = 0;\r
-\r
-  result->out = FALSE;\r
-\r
-  return result;\r
-\r
-}\r
-\r
-\r
-\r
-ActionTemplate *new_ActionTemplate( int op )\r
-\r
-{\r
-\r
-  ActionTemplate *result = ( ActionTemplate * ) calloc( 1, sizeof( ActionTemplate ) );\r
-  CHECK_PTR(result);\r
-\r
-  result->op = op;\r
-\r
-  result->next = NULL;\r
-\r
-  return result;\r
-\r
-}\r
-\r
\r
-\r
-Action *new_Action( int op )\r
-\r
-{\r
-\r
-  Action *result = ( Action * ) calloc( 1, sizeof( Action ) );\r
-  CHECK_PTR(result);\r
-\r
-  result->op = op;\r
-\r
-  result->num_preconds = 0;\r
-  result->num_adds = 0;\r
-  result->num_dels = 0;\r
-\r
-  result->next = NULL;\r
-\r
-  return result;\r
-\r
-}\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-/* graph\r
- */\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-BitVector *new_BitVector( int length )\r
-\r
-{\r
-\r
-  BitVector *result = ( BitVector * ) calloc( length, sizeof( BitVector ) );\r
-  CHECK_PTR(result);\r
-\r
-  memset(result, 0, length);\r
-\r
-  return result;\r
-\r
-}\r
-\r
-\r
-\r
-IntList *new_IntList( int i1 )\r
-\r
-{\r
-\r
-  IntList *res = ( IntList * ) calloc( 1, sizeof( IntList ) );\r
-  CHECK_PTR(res);\r
-  \r
-  res->i1 = i1;\r
-  res->prev = NULL;\r
-  res->next = NULL;\r
-\r
-  return res;\r
-\r
-}\r
-\r
-\r
-\r
-IntPair *new_IntPair( int i1, int i2 )\r
-\r
-{\r
-\r
-  IntPair *res = ( IntPair * ) calloc( 1, sizeof( IntPair ) );\r
-  CHECK_PTR(res);\r
-  \r
-  res->i1 = i1;\r
-  res->i2 = i2;\r
-  res->prev = NULL;\r
-  res->next = NULL;\r
-\r
-  return res;\r
-\r
-}\r
-\r
-\r
-\r
-IntBitVectorList *new_IntBitVectorList( int i1, BitVector *bv, int num_bit )\r
-\r
-{\r
-\r
-  int i;\r
-\r
-  IntBitVectorList *res = ( IntBitVectorList * ) calloc( 1, sizeof( IntBitVectorList ) );\r
-  CHECK_PTR(res);\r
-  \r
-  res->i1 = i1;\r
-\r
-  res->bv = new_BitVector( num_bit );\r
-  for ( i = 0; i < num_bit; i++ ) {\r
-    res->bv[i] = bv[i];\r
-  }\r
-\r
-  res->next = NULL;\r
-\r
-  return res;\r
-\r
-}\r
-\r
-\r
-\r
-FtLevelInfo *new_FtLevelInfo( void )\r
-\r
-{\r
-\r
-  FtLevelInfo *tmp = ( FtLevelInfo * ) calloc ( 1, sizeof( FtLevelInfo ) );\r
-  CHECK_PTR( tmp );\r
-\r
-  /* adders stored as list to facilitate dynamic growth\r
-   */\r
-  tmp->A = NULL;\r
-  tmp->end_A = NULL;\r
-\r
-  /* op bit vectors:\r
-   *\r
-   * bit_A,\r
-   * bit_A_exclusives\r
-   *\r
-   * allocated in main code for better readability\r
-   */\r
-\r
-  /* it is precond of these at this point\r
-   */\r
-  tmp->P = NULL;\r
-\r
-  tmp->bit_exclusives = new_BitVector( gnum_ft_bit );\r
-\r
-  tmp->status = 0;\r
-\r
-  tmp->is_goal = FALSE;\r
-  tmp->num_A = 0;\r
-\r
-  tmp->rplan_frac = 0;\r
-\r
-  return tmp;\r
-\r
-}\r
-\r
-\r
-\r
-OpLevelInfo *new_OpLevelInfo( void )\r
-\r
-{\r
-\r
-  OpLevelInfo *tmp = ( OpLevelInfo * ) calloc ( 1, sizeof( OpLevelInfo ) );\r
-  CHECK_PTR( tmp );\r
-\r
-  tmp->bit_P_exclusives = new_BitVector( gnum_ft_bit );\r
-  /* op bit vector:\r
-   *\r
-   * exclusives\r
-   *\r
-   * allocated in main code as size not known at time of \r
-   * info allocation\r
-   */\r
-\r
-  tmp->status = 0;\r
-\r
-  tmp->is_in_rplan = FALSE;\r
-\r
-  tmp->losspos = -1;\r
-  tmp->lossneg = -1;\r
-\r
-  tmp->rplan_frac = 0;\r
-  tmp->forced_in = FALSE;\r
-\r
-  return tmp;\r
-\r
-}\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-StateHashEntry *new_StateHashEntry( void )\r
-\r
-{\r
-\r
-  StateHashEntry *result = ( StateHashEntry * ) calloc( 1, sizeof( StateHashEntry ) );\r
-  CHECK_PTR(result);\r
-\r
-  result->next = NULL;\r
-\r
-  return result;\r
-\r
-}\r
-\r
-  \r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-/**********************\r
- * DELETION FUNCTIONS *\r
- **********************/\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-void free_TokenList( TokenList *source )\r
-\r
-{\r
-\r
-  if ( source ) {\r
-    free_TokenList( source->next );\r
-    if ( source->item ) {\r
-      free( source->item );\r
-    }\r
-    free( source );\r
-  }\r
-\r
-}\r
-\r
-\r
-\r
-void free_FactList( FactList *source )\r
-\r
-{\r
-\r
-  if ( source ) {\r
-    free_FactList( source->next );\r
-    free_TokenList( source->item );\r
-    free( source );\r
-  }\r
-\r
-}\r
-\r
-\r
-\r
-void free_PlNode( PlNode *node )\r
-\r
-{\r
-  \r
-  if ( node ) {\r
-    free_PlNode( node->sons );\r
-    free_PlNode( node->next );\r
-    free_TokenList( node->atom );\r
-    free( node );\r
-  }\r
-\r
-}\r
-\r
-\r
-\r
-void free_PlOperator( PlOperator *o )\r
-\r
-{\r
-\r
-  if ( o ) {\r
-    free_PlOperator( o->next );\r
-\r
-    if ( o->name ) {\r
-      free( o->name );\r
-    }\r
-    \r
-    free_FactList( o->params );\r
-    free_PlNode( o->preconds );\r
-    free_PlNode( o->effects );\r
-\r
-    free( o );\r
-  }\r
-\r
-}\r
-\r
-\r
-\r
-void free_Operator( Operator *o )\r
-\r
-{\r
-\r
-  if ( o ) {\r
-\r
-    if ( o->name ) {\r
-      free( o->name );\r
-    }\r
-\r
-    free( o );\r
-  } \r
-\r
-}\r
-\r
-\r
-\r
-void free_single_ActionTemplate( ActionTemplate *t )\r
-\r
-{\r
-\r
-  if ( t ) {\r
-    free( t );\r
-  }\r
-\r
-}\r
-\r
-\r
-\r
-void free_IntList( IntList *il )\r
-\r
-{\r
-\r
-  if ( il ) {\r
-    free_IntList( il->next );\r
-    free( il );\r
-  }\r
-\r
-}\r
-\r
-\r
-\r
-void free_IntPair( IntPair *ip )\r
-\r
-{\r
-\r
-  if ( ip ) {\r
-    free_IntPair( ip->next );\r
-    free( ip );\r
-  }\r
-\r
-}\r
-\r
-\r
-\r
-void free_IntBitVectorList( IntBitVectorList *ibvl )\r
-\r
-{\r
-\r
-  if ( ibvl ) {\r
-    free_IntBitVectorList( ibvl->next );\r
-    if ( !ibvl->bv ) {\r
-      /* REMOVE THIS, LATER, FOR EFFICIENCY (HA HA) -- bet my arse it won't happen anyway.\r
-       */\r
-      printf("\ntrying to free an ibvl with empty bv??\n\n");\r
-      exit( 1 );\r
-    }\r
-    free( ibvl->bv );\r
-    free( ibvl );\r
-  }\r
-\r
-}\r