#define YSTRUE    1
#define YSFALSE   0
#define YSON      1
#define YSOFF     0
#define YSYES     1
#define YSNO      0

#define YSPI            3.1415927


/* #define MALLOCFUNC TL_malloc */
/* #define FREEFUNC TL_free */

/* 実行マクロ */
#define YsErrFclose(fp) {if(fp)fclose(fp);}
#define YsErrFree(mem) {if(mem)FREEFUNC(mem);}
#define YsContIf(x) {if(x)continue;}
#define YsReturnIf(x) {if(x)return;}

/* 条件マクロ */
#define YsIsBound(a,b,c) ((b)<=(a) && (a)<=(c))

/* 数値変換/計算マクロ */
#define YsSmaller(a,b) ((a)<(b) ? (a) : (b))
#define YsLarger(a,b) ((a)>(b) ? (a) : (b))
#define YsSgn(a) ((a)==0 ? 0 : ((a)>0 ? 1 : -1) )
#define YsSqr(a) (a)*(a)
#define YsAbs(a) ((a)>=0 ? (a) : -(a))



/* 旧バージョン互換用マクロ */
#define small(a,b) ((a)<(b) ? (a) : (b))
#define large(a,b) ((a)>(b) ? (a) : (b))
#define toggle(a) ((a)==0 ? 1 : 0)
#define cutoff(a,b,c) ( (a)<(b) ? (b) : ((a)>(c) ? (c) : (a)) )
#define contif(a) if(a)continue
#define breakif(a) if(a)break
#define returnif(a) if(a)return
#define returnifv(a,b) if(a)return (b)
#define setif(a,b,c) if(a){(b)=(c);}
#define PassedTime(pre) (Yabs((clock()-(pre))*1000)/CLOCKS_PER_SEC)
#define capital(a) ( ('a'<=(a) && (a)<='z') ? (a)+'A'-'a' : (a) )
