interval.h
Go to the documentation of this file.00001 #ifndef INTERVALH
00002 #define INTERVALH
00003
00004 #include "boolean.h"
00005
00006 #include <stdio.h>
00007
00033 typedef struct
00034 {
00035 double lower_limit;
00036 double upper_limit;
00037 } Tinterval;
00038
00048 void NewInterval(double lower,double upper,Tinterval *i);
00049
00058 void CopyInterval(Tinterval *i_dst,Tinterval *i_org);
00059
00070 boolean CmpIntervals(Tinterval *i1,Tinterval *i2);
00071
00081 double LowerLimit(Tinterval *i);
00082
00092 double UpperLimit(Tinterval *i);
00093
00103 double IntervalSize(Tinterval *i);
00104
00115 boolean IsInside(double p,Tinterval *i);
00116
00127 double IntervalCenter(Tinterval *i);
00128
00137 void SetLowerLimit(double c,Tinterval *i);
00138
00147 void SetUpperLimit(double c,Tinterval *i);
00148
00159 boolean IntervalInclusion(Tinterval *i1,Tinterval *i2);
00160
00171 boolean Intersect(Tinterval *i1,Tinterval *i2);
00172
00184 boolean Intersection(Tinterval *i1,Tinterval *i2,Tinterval *i_out);
00185
00198 boolean Union(Tinterval *i1,Tinterval *i2,Tinterval *i_out);
00199
00209 boolean EmptyInterval(Tinterval *i);
00210
00220 void IntervalScale(Tinterval *i1,double e,Tinterval *i_out);
00221
00231 void IntervalProduct(Tinterval *i1,Tinterval *i2,Tinterval *i_out);
00232
00242 void IntervalAdd(Tinterval *i1,Tinterval *i2,Tinterval *i_out);
00243
00253 void IntervalSubstract(Tinterval *i1,Tinterval *i2,Tinterval *i_out);
00254
00264 void IntervalInvert(Tinterval *i,Tinterval *i_out);
00265
00276 void IntervalPow(Tinterval *i,unsigned int p,Tinterval *i_out);
00277
00290 boolean IntervalSqrt(Tinterval *i,Tinterval *i_out);
00291
00302 void IntervalDivision(Tinterval *num,Tinterval *den,Tinterval *i_out);
00303
00313 void IntervalOffset(Tinterval *i,double offset,Tinterval *i_out);
00314
00323 void IntervalSinus(Tinterval *i,Tinterval *i_out);
00324
00333 void IntervalCosinus(Tinterval *i,Tinterval *i_out);
00334
00352 void IntervalAtan2(Tinterval *is,Tinterval *ic,Tinterval *i_out);
00353
00362 void PrintInterval(FILE *f,Tinterval *i);
00363
00371 void DeleteInterval(Tinterval *i);
00372
00373 #endif