#ifndef __P
# if defined(__STDC__) ||  defined(__GNUC__)
#  define __P(x) x
# else
#  define __P(x) ()
# endif
#endif


/* Prototypes from fpt_befig.c */

  extern            int  loadfptbefig __P((struct befig **ptbefig, char *InputFileName, char **FigureName));
  extern            int  FptBehStatistics __P((befig_list *BehFigure));
  extern    bddcircuit * createfptcircuit __P((befig_list *BehFigure1, befig_list *BehFigure2, bddsystem *BddSystem));
  extern           long  fptRenameRegisterintelligent __P((befig_list *BehFigure1, befig_list *BehFigure2));
  extern           long  renamefptregister __P((befig_list *BehFigure1, befig_list *BehFigure2));


/* Prototypes from fpt_debug.c */

  extern           void  FptAff __P((struct befig *ptbefig));
  extern           void  fptViewBddNode __P((bddnode *BddNode));
  extern           void  viewfpttransfunc __P((fpttransfunc *TransFunc));


/* Prototypes from fpt_error.c */

  extern           void  setfptverboseflag __P(());
  extern           void  clearfptverboseflag __P(());
  extern           void  setfptdebugflag __P(());
  extern           void  clearfptdebugflag __P(());
  extern            int  getfptverboseflag __P(());
  extern            int  getfptdebugflag __P(());
  extern            int  getfptwarnings __P(());
  extern           void  FptDisplayDebugSource __P((char *File, int Line));
  extern           void  FptDisplayDebug __P(());
  extern           void  FptDisplayVerbose __P(());
  extern           void  FptDisplayWarning __P(());
  extern           void  FptDisplayError __P(());


/* Prototypes from fpt_pattern.c */

  extern       bddnode * FptGetReset __P((bddsystem *BddSystem, bddcircuit *BddCircuit, befig_list *BehFigure1, char *ResetName, int ResetHI));
  extern       bddnode * getfptinitstatebyname __P((bddsystem *BddSystem, bddcircuit *BddCircuit, befig_list *BehFigure1, befig_list *BehFigure2, char *ResetName, int ResetMode));
  extern       bddnode * FptGetPatReset __P((bddsystem *BddSystem, bddcircuit *BddCircuit, befig_list *BehFigure1, char *patfile1, int rename_regs));
  extern       bddnode * getfptinitstatebypat __P((bddsystem *BddSystem, bddcircuit *BddCircuit, befig_list *BehFigure1, befig_list *BehFigure2, char *patfile1, char *patfile2));
  extern           void  FptPrintValue __P((bddnode *BddNode, bddindex index));
  extern           void  FptGetFirstPat __P(());
  extern           void  FptGetOnePat __P((bddnode *BddNode));
  extern    chain_list * FptGetPatList __P((befig_list *ptbefig1, befig_list *ptbefig2, bddnode *BddFautif, chain_list *Reached_aller, fpttransfunc *MP_Transfunc, bddnode *BddReset, char *patvide));
  extern           void  createfptpattern __P((befig_list *ptbefig1, befig_list *ptbefig2, bddnode *BddFautif, beout_list *BeoutFautif, chain_list *Reached_aller, fpttransfunc *MP_Transfunc, bddnode *BddReset, char *ClockName, char *VddName, char *inputfilename1, char *inputfilename2, char *fname_sext, char *file2load1, char *file2load2, char *fig1name, char *fig2name));


/* Prototypes from fpt_transfunc.c */

  extern       bddnode * unionfptstate __P((bddnode *Bdd1, bddnode *Bdd2));
  extern       bddnode * removefptstate __P((bddnode *Bdd1, bddnode *Bdd2));
  extern       bddnode * intersectfptstate __P((bddnode *Bdd1, bddnode *Bdd2));
  extern  fpttransfunc * allocfpttransfunc __P(());
  extern    fptvarfunc * allocfptvarfunc __P((long Number));
  extern           void  freefpttransfunc __P((fpttransfunc *TransFunc));
  extern           void  freefptvarfunc __P((fptvarfunc *VarFunc));
  extern    fptvarfunc * resizefptvarfunc __P((fptvarfunc *VarFunc, long OldNum, long NewNum));
  extern       bddnode * loc_preimagefpttransfunc __P((bddnode *StateSet));
  extern       bddnode * preimagefpttransfunc __P((fpttransfunc *TransFunc, bddnode *StateSet));
  extern       bddnode * loc_imagefpttransfunc __P((bddnode *StateSet));
  extern       bddnode * imagefpttransfunc __P((fpttransfunc *TransFunc, bddnode *StateSet));
  extern  fpttransfunc * createfpttransfunc __P((bddsystem *BddSystem, bddvar MaxVar));
  extern           void  addfpttransfunc __P((fpttransfunc *TransFunc, bddnode *VarNode, bddnode *FuncNode));
  extern           void  destroyfpttransfunc __P((fpttransfunc *TransFunc));
  extern           void  fptViewBddState __P((bddnode *BddNode));
  extern  fpttransfunc * createfptproductmachinetransfunc __P((befig_list *ptbefig1, befig_list *ptbefig2, long NumberReg));
  extern    beout_list * prooffptsequential __P((befig_list *ptbefig1, befig_list *ptbefig2, bddnode *BddInitialState, chain_list **ListOfReached, bddnode **BddFautifaRenvoyer, fpttransfunc *TransFunc, int flagCreatePat));
  extern    beout_list * prooffptcombinatory __P((befig_list *ptbefig1, befig_list *ptbefig2));


/* Prototypes from fpt_verify.c */

  extern            int  verifyfptdelayed __P((befig_list *BehFigure1, befig_list *BehFigure2));
  extern            int  verifyfptcondition __P((befig_list *BehFigure1, befig_list *BehFigure2));
  extern           void  FptVerifyInOut __P((befig_list *BehFigure, bepor_list *BehPort));
  extern            int  verifyfptport __P((befig_list *BehFigure1, befig_list *BehFigure2));
  extern            int  FptVerifyRegister __P((befig_list *BehFigure1, befig_list *BehFigure2));
  extern           void  FptCompareIO __P((struct befig *ptbefig1, struct befig *ptbefig2));
  extern            int  FptCompareBdd __P((struct befig *ptbefig1, struct befig *ptbefig2));


/* Prototypes from yeap_main.c */

  extern           void  Yeap_FastUsage __P(());
  extern           void  Yeap_Usage __P(());
  extern           void  print_elapsed_time __P((struct timeval clock_start, struct timeval clock_end));
  extern            int  main __P((int argc, char *argv[]));
