[BACK]Return to interval.h CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / include

Diff for /OpenXM_contrib2/asir2000/include/interval.h between version 1.4 and 1.5

version 1.4, 2002/01/04 17:01:40 version 1.5, 2002/01/08 04:14:38
Line 1 
Line 1 
 /*  /*
  * $OpenXM: OpenXM_contrib2/asir2000/include/interval.h,v 1.3 2001/03/19 01:13:50 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/include/interval.h,v 1.4 2002/01/04 17:01:40 saito Exp $
 */  */
 #ifndef _INTERVAL_H  #ifndef _INTERVAL_H
 #define _INTERVAL_H  #define _INTERVAL_H
Line 99  static char *Interval_dummy;
Line 99  static char *Interval_dummy;
 #undef  N_GFPN  #undef  N_GFPN
 #undef  N_GFS  #undef  N_GFS
 #undef  N_GFSN  #undef  N_GFSN
 #define N_IP    (N_B+1)  #define N_NEXT_B                (N_B+1)
 #define N_ID    (N_B+2)  #define N_Quad                  (N_NEXT_B)
 #define N_IT    (N_B+3)  #define N_IP                    (N_NEXT_B+1)
 #define N_IF    (N_B+4)  #define N_IntervalDouble        (N_NEXT_B+2)
 #define N_PRE_C N_IF  #define N_IntervalQuad          (N_NEXT_B+3)
 #define N_C     (N_B+5)  #define N_IntervalBigFloat      (N_NEXT_B+4)
 #define N_M     (N_B+6)  #define N_PRE_C N_IntervalBigFloat
 #define N_LM    (N_B+7)  #define N_C     (N_NEXT_B+5)
 #define N_GF2N  (N_B+8)  #define N_M     (N_NEXT_B+6)
 #define N_GFPN  (N_B+9)  #define N_LM    (N_NEXT_B+7)
 #define N_GFS   (N_B+10)  #define N_GF2N  (N_NEXT_B+8)
 #define N_GFSN (N_B+11)  #define N_GFPN  (N_NEXT_B+9)
   #define N_GFS   (N_NEXT_B+10)
   #define N_GFSN  (N_NEXT_B+11)
   
 /* data structures */  /* data structures */
 struct oItv {  struct oItv {
Line 123  struct oItv {
Line 125  struct oItv {
   
 typedef struct oItv *Itv;  typedef struct oItv *Itv;
   
 struct oItvD {  struct oIntervalDouble {
         short   id;          short   id;
         char    nid;          char    nid;
         char    pad;          char    pad;
Line 131  struct oItvD {
Line 133  struct oItvD {
         double  sup;          double  sup;
 };  };
   
 typedef struct oItvD *ItvD;  typedef struct oIntervalDouble *IntervalDouble;
   
 struct oforth {  struct oforth {
         short   sign;          short   sign;
Line 142  struct oforth {
Line 144  struct oforth {
   
 typedef struct oforth *forth;  typedef struct oforth *forth;
   
 struct oItvT {  struct oIntervalQuad {
         short   id;          short   id;
         char    nid;          char    nid;
         char    pad;          char    pad;
Line 150  struct oItvT {
Line 152  struct oItvT {
         forth   sup;          forth   sup;
 };  };
   
 typedef struct oItvT *ItvT;  typedef struct oIntervalQuad *IntervalQuad;
   
 struct oItvF {  struct oIntervalBigFloat {
         short   id;          short   id;
         char    nid;          char    nid;
         char    pad;          char    pad;
Line 160  struct oItvF {
Line 162  struct oItvF {
         BF      sup;          BF      sup;
 };  };
   
 typedef struct oItvF *ItvF;  typedef struct oIntervalBigFloat *IntervalBigFloat;
   
 extern int zerorewrite;  extern int zerorewrite;
   
Line 170  extern int zerorewrite;
Line 172  extern int zerorewrite;
   
 #define NEWItvP(q)      ((q)=(Itv)MALLOC(sizeof(struct oItv)),\  #define NEWItvP(q)      ((q)=(Itv)MALLOC(sizeof(struct oItv)),\
                                         OID(q)=O_N,NID(q)=N_IP)                                          OID(q)=O_N,NID(q)=N_IP)
 #define NEWItvD(q)      ((q)=(ItvD)MALLOC(sizeof(struct oItvD)),\  #define NEWIntervalDouble(q)    ((q)=(IntervalDouble)MALLOC(sizeof(struct oIntervalDouble)),\
                                         OID(q)=O_N,NID(q)=N_ID)                                          OID(q)=O_N,NID(q)=N_IntervalDouble)
 #define NEWItvT(q)      ((q)=(ItvD)MALLOC(sizeof(struct oItvT)),\  #define NEWIntervalQuad(q)      ((q)=(IntervalDouble)MALLOC(sizeof(struct oIntervalQuad)),\
                                         OID(q)=O_N,NID(q)=N_IT)                                          OID(q)=O_N,NID(q)=N_IntervalQuad)
 #define NEWItvF(q)      ((q)=(ItvF)MALLOC(sizeof(struct oItvF)),\  #define NEWIntervalBigFloat(q)  ((q)=(IntervalBigFloat)MALLOC(sizeof(struct oIntervalBigFloat)),\
                                         OID(q)=O_N,NID(q)=N_IF)                                          OID(q)=O_N,NID(q)=N_IntervalBigFloat)
 #define MKItvP(a,b,c)   (NEWItvP(c),(INF(c)=(a),SUP(c)=(b)))  #define MKItvP(a,b,c)   (NEWItvP(c),(INF(c)=(a),SUP(c)=(b)))
 #define MKItvD(a,b,c)   if((zerorewrite) && ((a)<=0.0) && ((b)>=0.0)) (c)=0;\  #define MKIntervalDouble(a,b,c) if((zerorewrite) && ((a)<=0.0) && ((b)>=0.0)) (c)=0;\
                         else (NEWItvD(c),(INF(c)=(a),SUP(c)=(b)))                          else (NEWIntervalDouble(c),(INF(c)=(a),SUP(c)=(b)))
 #define MKItvT(a,b,c)   (NEWItvT(c),(INF(c)=(a),SUP(c)=(b)))  #define MKIntervalQuad(a,b,c)   (NEWIntervalQuad(c),(INF(c)=(a),SUP(c)=(b)))
 #define MKItvF(a,b,c)   (NEWItvF(c),(INF(c)=(a),SUP(c)=(b)))  #define MKIntervalBigFloat(a,b,c)       (NEWIntervalBigFloat(c),(INF(c)=(a),SUP(c)=(b)))
   
 #define ToItvP(a,c)     (NEWItvP(c),INF(c)=(a),SUP(c)=(a))  #define ToItvP(a,c)     (NEWItvP(c),INF(c)=(a),SUP(c)=(a))
 #define ToItvD(a,c)     (NEWItvD(c),INF(c)=(ToReal(a)),SUP(c)=(ToReal(a)))  #define ToIntervalDouble(a,c)   (NEWIntervalDouble(c),INF(c)=(ToReal(a)),SUP(c)=(ToReal(a)))
 #define ToItvF(a,c)     (NEWItvF(c),INF(c)=(a),SUP(c)=(a))  #define ToIntervalBigFloat(a,c) (NEWIntervalBigFloat(c),INF(c)=(a),SUP(c)=(a))
   
 #define ITVP(a) (NID(a)==N_IP)  #define ITVP(a) (NID(a)==N_IP)
 #define ITVD(a) (NID(a)==N_ID)  #define ITVD(a) (NID(a)==N_IntervalDouble)
 #define ITVT(a) (NID(a)==N_IT)  #define ITVQ(a) (NID(a)==N_IntervalQuad)
 #define ITVF(a) (NID(a)==N_IF)  #define ITVF(a) (NID(a)==N_IntervalBigFloat)
   
 /***    engine/itv.c    ***/  /***    engine/itv.c    ***/
 double  ToRealSup(Num);  double  ToRealSup(Num);
Line 238  void    distanceitvp(Itv, Itv, Num *);
Line 240  void    distanceitvp(Itv, Itv, Num *);
 void    ToBf(Num, BF *);  void    ToBf(Num, BF *);
 void    double2bf(double, BF *);  void    double2bf(double, BF *);
 double  bf2double(BF);  double  bf2double(BF);
 void    addulp(ItvF, ItvF *);  void    addulp(IntervalBigFloat, IntervalBigFloat *);
 void    getulp(BF, BF *);  void    getulp(BF, BF *);
   
 void    additvf(ItvF, ItvF, ItvF *);  void    additvf(IntervalBigFloat, IntervalBigFloat, IntervalBigFloat *);
 void    subitvf(ItvF, ItvF, ItvF *);  void    subitvf(IntervalBigFloat, IntervalBigFloat, IntervalBigFloat *);
 void    mulitvf(ItvF, ItvF, ItvF *);  void    mulitvf(IntervalBigFloat, IntervalBigFloat, IntervalBigFloat *);
 void    divitvf(ItvF, ItvF, ItvF *);  void    divitvf(IntervalBigFloat, IntervalBigFloat, IntervalBigFloat *);
 void    chsgnitvf(Itv, Itv *);  void    chsgnitvf(Itv, Itv *);
 int     cmpitvf(Itv, Itv);  int     cmpitvf(Itv, Itv);
 void    pwritvf(Itv, Num, Itv *);  void    pwritvf(Itv, Num, Itv *);
Line 255  double ToRealDown(Num);
Line 257  double ToRealDown(Num);
 double  ToRealUp(Num);  double  ToRealUp(Num);
 void    Num2double(Num, double *, double *);  void    Num2double(Num, double *, double *);
   
 void    additvd(Num, Num, ItvD *);  void    additvd(Num, Num, IntervalDouble *);
 void    subitvd(Num, Num, ItvD *);  void    subitvd(Num, Num, IntervalDouble *);
 void    mulitvd(Num, Num, ItvD *);  void    mulitvd(Num, Num, IntervalDouble *);
 void    divitvd(Num, Num, ItvD *);  void    divitvd(Num, Num, IntervalDouble *);
 void    chsgnitvd(ItvD, ItvD *);  void    chsgnitvd(IntervalDouble, IntervalDouble *);
 int     cmpitvd(ItvD, ItvD);  int     cmpitvd(IntervalDouble, IntervalDouble);
 void    pwritvd(Num, Num, ItvD *);  void    pwritvd(Num, Num, IntervalDouble *);
 void    pwritv0d(ItvD, int, ItvD *);  void    pwritv0d(IntervalDouble, int, IntervalDouble *);
 void    miditvd(ItvD, Num *);  void    miditvd(IntervalDouble, Num *);
 void    cupitvd(ItvD, ItvD, ItvD *);  void    cupitvd(IntervalDouble, IntervalDouble, IntervalDouble *);
 void    capitvd(ItvD, ItvD, ItvD *);  void    capitvd(IntervalDouble, IntervalDouble, IntervalDouble *);
 void    widthitvd(ItvD, Num *);  void    widthitvd(IntervalDouble, Num *);
 void    absitvd(ItvD, Num *);  void    absitvd(IntervalDouble, Num *);
 void    distanceitvd(ItvD, ItvD, Num *);  void    distanceitvd(IntervalDouble, IntervalDouble, Num *);
   
 #endif /* end of INTERVAL */  #endif /* end of INTERVAL */
 #endif /* end of _INTERVAL_H */  #endif /* end of _INTERVAL_H */

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>