#ifndef __ACE_ACE_H__
#define __ACE_ACE_H__

#include <math.h>

#include "base/abc/abc.h"

#define bool	int
#define TRUE 1
#define FALSE 0

#define EPSILON 0.00001

#ifndef MIN
#define MIN(a,b) 				(a < b ? a : b)
#endif

#ifndef MAX
#define MAX(a,b) 				(a > b ? a : b)
#endif

#define ACE_P0TO1(P1,PS)		((P1)==0.0)?0.0:(((P1)==1.0)?1.0:0.5*PS/(1.0-(P1)))
#define ACE_P1TO0(P1,PS)		((P1)==0.0)?1.0:(((P1)==0.0)?0.0:0.5*PS/(P1))

#define ACE_ERROR 1

#define ACE_OPEN				-1.0
#define ACE_PI_STATIC_PROB		0.5	/* Assumed probability of the primary inputs */
#define ACE_PI_SWITCH_PROB		0.2	/* Assumed switching probability of the PIs */
#define ACE_PI_SWITCH_ACT		0.2	/* Assumed tx activity of the primary inputs */

#define ACE_CHAR_BUFFER_SIZE 	4096
#define ACE_NUM_VECTORS			5000

typedef enum {
	ACE_VEC, ACE_ACT, ACE_PD, ACE_CODED
} ace_pi_format_t;
typedef enum {
	ACE_UNDEF, ACE_DEF, ACE_SIM, ACE_NEW, ACE_OLD
} ace_status_t;

void prob_epsilon_fix(double * d);

typedef struct {
	ace_status_t status;
	int value;
	int flag;
	int depth;

	int num_ones;
	int num_toggles;
	int num_valid;

	int * values;

	double static_prob;
	double switch_prob;
	double switch_act;
	double prob0to1;
	double prob1to0;
} Ace_Obj_Info_t; /* Activity info for each node */

extern st__table * ace_info_hash_table;

Ace_Obj_Info_t * Ace_ObjInfo(Abc_Obj_t * obj);
//static inline void 				Ace_InfoPtrSet(Abc_Obj_t * obj_ptr, Ace_Obj_Info_t* info_ptr)	{obj_ptr->pTemp = info_ptr;					}

#endif
