00001 /* -*-C-*- 00002 ******************************************************************************** 00003 * 00004 * File: closed.h (Formerly closed.h) 00005 * Description: Hash table for closed search states. 00006 * Author: Mark Seaman, SW Productivity 00007 * Created: Fri Oct 16 14:37:00 1987 00008 * Modified: Fri May 25 11:27:11 1990 (Mark Seaman) marks@hpgrlt 00009 * Language: C 00010 * Package: N/A 00011 * Status: Reusable Software Component 00012 * 00013 * (c) Copyright 1987, Hewlett-Packard Company. 00014 ** Licensed under the Apache License, Version 2.0 (the "License"); 00015 ** you may not use this file except in compliance with the License. 00016 ** You may obtain a copy of the License at 00017 ** http://www.apache.org/licenses/LICENSE-2.0 00018 ** Unless required by applicable law or agreed to in writing, software 00019 ** distributed under the License is distributed on an "AS IS" BASIS, 00020 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00021 ** See the License for the specific language governing permissions and 00022 ** limitations under the License. 00023 * 00024 *********************************************************************************/ 00025 00026 #ifndef CLOSED_H 00027 #define CLOSED_H 00028 00029 /*---------------------------------------------------------------------- 00030 I n c l u d e s 00031 ----------------------------------------------------------------------*/ 00032 #include <math.h> 00033 #include "states.h" 00034 00035 /*---------------------------------------------------------------------- 00036 T y p e s 00037 ----------------------------------------------------------------------*/ 00038 typedef STATE *HASH_TABLE; 00039 #define NO_STATE ~0 00040 00041 /*---------------------------------------------------------------------- 00042 V a r i a b l e s 00043 ----------------------------------------------------------------------*/ 00044 extern HASH_TABLE global_hash; 00045 00046 /*---------------------------------------------------------------------- 00047 M a c r o s 00048 ----------------------------------------------------------------------*/ 00054 #define free_hash_table(table) \ 00055 global_hash = table 00056 00057 /*--------------------------------------------------------------------- 00058 F u n c t i o n s 00059 ----------------------------------------------------------------------*/ 00060 int hash_add(HASH_TABLE state_table, STATE *state); 00061 00062 int hash_lookup(HASH_TABLE state_table, STATE *state); 00063 00064 HASH_TABLE new_hash_table(); 00065 #endif