#include <math.h>
#include <iostream>
Go to the source code of this file.
Classes | |
struct | interval |
Functions | |
ostream & | operator<< (ostream &dst, const interval &i) |
double | min (double x, double y) |
double | max (double x, double y) |
double | min4 (double a, double b, double c, double d) |
double | max4 (double a, double b, double c, double d) |
interval | reunion (const interval &x, const interval &y) |
interval | operator+ (const interval &x, const interval &y) |
interval | operator- (const interval &x, const interval &y) |
interval | operator* (const interval &x, const interval &y) |
interval | operator/ (const interval &x, const interval &y) |
interval | operator% (const interval &x, const interval &y) |
int | bitmask (double x) |
interval | operator& (const interval &x, const interval &y) |
interval | operator| (const interval &x, const interval &y) |
interval | operator^ (const interval &, const interval &) |
interval | operator<< (const interval &, const interval &) |
interval | operator>> (const interval &, const interval &) |
interval | operator< (const interval &, const interval &) |
interval | operator<= (const interval &, const interval &) |
interval | operator> (const interval &, const interval &) |
interval | operator>= (const interval &, const interval &) |
interval | operator== (const interval &, const interval &) |
interval | operator!= (const interval &, const interval &) |
interval | min (const interval &x, const interval &y) |
interval | max (const interval &x, const interval &y) |
interval | abs (const interval &x) |
Definition at line 206 of file interval.hh.
References interval::hi, interval::lo, max(), and interval::valid.
Referenced by mterm::complexity().
00207 { 00208 if (x.valid) { 00209 if (x.lo >= 0) { 00210 return x; 00211 } else if (x.hi < 0) { 00212 return interval(fabs(x.hi), fabs(x.lo)); 00213 } else { 00214 return interval(0, max(fabs(x.lo), x.hi)); 00215 } 00216 } else { 00217 return x; 00218 } 00219 }
int bitmask | ( | double | x | ) | [inline] |
Definition at line 111 of file interval.hh.
Referenced by operator&(), and operator|().
Definition at line 201 of file interval.hh.
References interval::hi, interval::lo, and max().
double max | ( | double | x, | |
double | y | |||
) | [inline] |
Definition at line 60 of file interval.hh.
Referenced by abs(), common(), computeBoxComplexity(), computeHorzGap(), MaxPrim::computeSigOutput(), infereBoxType(), infereSigOrder(), RemainderPrim::infereSigOrder(), PowPrim::infereSigOrder(), MinPrim::infereSigOrder(), MaxPrim::infereSigOrder(), FmodPrim::infereSigOrder(), Atan2Prim::infereSigOrder(), infereSigType(), MaxPrim::infereSigType(), isBoxHBargraph(), isBoxVBargraph(), isSigHBargraph(), isSigVBargraph(), makeBlockSchema(), makeRecSchema(), max(), max4(), mergeinterval(), splitSchema::place(), seqSchema::place(), mergeSchema::place(), DocCompiler::prepareIntervallicUI(), boxpp::print(), propagate(), reunion(), sigvisitor::visit(), and writeIdentValue().
double max4 | ( | double | a, | |
double | b, | |||
double | c, | |||
double | d | |||
) | [inline] |
Definition at line 62 of file interval.hh.
References max().
Referenced by operator*().
Definition at line 196 of file interval.hh.
References interval::hi, interval::lo, and min().
double min | ( | double | x, | |
double | y | |||
) | [inline] |
Definition at line 59 of file interval.hh.
Referenced by common(), computeBoxComplexity(), MinPrim::computeSigOutput(), decorateSchema::draw(), ScalarCompiler::generateSelect2(), ScalarCompiler::generateSelect3(), infereSigType(), MinPrim::infereSigType(), isBoxHBargraph(), isBoxVBargraph(), isSigHBargraph(), isSigVBargraph(), mergeinterval(), min(), min4(), operator|(), DocCompiler::prepareIntervallicUI(), boxpp::print(), propagate(), reunion(), sigvisitor::visit(), writeIdentValue(), and xVariability().
double min4 | ( | double | a, | |
double | b, | |||
double | c, | |||
double | d | |||
) | [inline] |
Definition at line 61 of file interval.hh.
References min().
Referenced by operator*().
Definition at line 189 of file interval.hh.
00190 { 00191 return interval(0,1); 00192 }
Definition at line 104 of file interval.hh.
References interval::hi, interval::lo, and interval::valid.
Definition at line 115 of file interval.hh.
References bitmask(), interval::hi, interval::lo, and interval::valid.
00116 { 00117 if (x.valid && y.valid) { 00118 if (x.lo >= 0 & y.lo >= 0) { 00119 return interval(0, bitmask(x.hi) & bitmask(y.hi)); 00120 } else if (y.lo >= 0) { 00121 return interval(0, bitmask(y.hi)); 00122 } else if (x.lo >= 0) { 00123 return interval(0, bitmask(y.hi)); 00124 } else { 00125 return interval(); 00126 } 00127 } else if (x.valid & x.lo >= 0) { 00128 return interval(0, bitmask(x.hi)); 00129 } else if (y.valid & y.lo >= 0) { 00130 return interval(0, bitmask(y.hi)); 00131 } else { 00132 return interval(); 00133 } 00134 }
Definition at line 84 of file interval.hh.
References interval::hi, interval::lo, max4(), min4(), and interval::valid.
00085 { 00086 if (x.valid&y.valid) { 00087 double a=x.lo*y.lo; 00088 double b=x.lo*y.hi; 00089 double c=x.hi*y.lo; 00090 double d=x.hi*y.hi; 00091 return interval(min4(a,b,c,d), max4(a,b,c,d)); 00092 } else { 00093 return interval(); 00094 } 00095 }
Definition at line 74 of file interval.hh.
References interval::hi, interval::lo, and interval::valid.
Definition at line 79 of file interval.hh.
References interval::hi, interval::lo, and interval::valid.
Definition at line 97 of file interval.hh.
References interval::hi, interval::lo, and interval::valid.
Definition at line 164 of file interval.hh.
00165 { 00166 return interval(0,1); 00167 }
Definition at line 150 of file interval.hh.
00151 { 00152 return interval(); 00153 }
ostream& operator<< | ( | ostream & | dst, | |
const interval & | i | |||
) | [inline] |
Definition at line 50 of file interval.hh.
References interval::hi, interval::lo, and interval::valid.
Definition at line 169 of file interval.hh.
00170 { 00171 return interval(0,1); 00172 }
Definition at line 184 of file interval.hh.
00185 { 00186 return interval(0,1); 00187 }
Definition at line 174 of file interval.hh.
00175 { 00176 return interval(0,1); 00177 }
Definition at line 179 of file interval.hh.
00180 { 00181 return interval(0,1); 00182 }
Definition at line 155 of file interval.hh.
00156 { 00157 return interval(); 00158 }
Definition at line 145 of file interval.hh.
00146 { 00147 return interval(); 00148 }
Definition at line 136 of file interval.hh.
References bitmask(), interval::hi, interval::lo, and interval::valid.
00137 { 00138 if (x.valid && y.valid && x.lo >= 0 && y.lo >= 0) { 00139 return interval(0, bitmask(x.hi) | bitmask(y.hi)); 00140 } else { 00141 return interval(); 00142 } 00143 }
Definition at line 64 of file interval.hh.
References interval::hi, interval::lo, max(), min(), and interval::valid.
Referenced by infereSigType().
00065 { 00066 if (x.valid & y.valid) { 00067 return interval(min(x.lo,y.lo), max(x.hi,y.hi)); 00068 } else { 00069 return interval(); 00070 } 00071 }