• Main Page
  • Related Pages
  • Modules
  • Data Structures
  • Files
  • File List
  • Globals

sst/core/techModels/libHotSpot/npe.h

00001 #ifndef __NPE_H_
00002 #define __NPE_H_
00003 
00004 #include "flp.h"
00005 
00006 /* normalized polish expression */
00007 typedef struct NPE_t_st
00008 {
00009         int *elements;
00010         int size;
00011 
00012         /* positions of the units       */
00013         int *unit_pos;
00014         int n_units;
00015 
00016         /* 
00017          * flipping positions  - where 
00018          * a unit is immediately adjacent 
00019          * to a cut_type and vice-versa
00020          */
00021         int *flip_pos;
00022         int n_flips;
00023 
00024         /* positions of the chains      */
00025         int *chain_pos;
00026         int n_chains;
00027 
00028         /* no. of units till this position      */
00029         int *ballot_count;
00030 }NPE_t;
00031 
00032 /* NPE routines */
00033 
00034 /* the starting solution for simulated annealing        */
00035 NPE_t *NPE_get_initial(flp_desc_t *flp_desc);
00036 /* uninitialization     */
00037 void free_NPE(NPE_t *expr);
00038 /* debug print  */
00039 void print_NPE(NPE_t *expr, flp_desc_t *flp_desc);
00040 /* 
00041  * move M1 of the floorplan paper 
00042  * swap two units adjacent in the NPE   
00043  */
00044 void NPE_swap_units(NPE_t *expr, int pos);
00045 /* move M2 - invert a chain of cut_types in the NPE     */
00046 void NPE_invert_chain(NPE_t *expr, int pos);
00047 /* move M3 - swap adjacent cut_type and unit in the NPE */
00048 int NPE_swap_cut_unit(NPE_t *expr, int pos);
00049 /* make a random move out of the above  */
00050 NPE_t *make_random_move(NPE_t *expr);
00051 /* make a copy of this NPE      */
00052 NPE_t *NPE_duplicate(NPE_t *expr);
00053 
00054 #endif

Generated on Fri Oct 22 2010 11:02:14 for SST by  doxygen 1.7.1