Subversion Repositories wimsdev

Rev

Rev 8160 | Rev 8862 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 8160 Rev 8171
Line 141... Line 141...
141
}
141
}
142
 
142
 
143
/* max and min */
143
/* max and min */
144
double max(double d1, double d2)
144
double max(double d1, double d2)
145
{
145
{
146
    if(!finite(d1) || !finite(d2)) return NAN;
146
    if(!isfinite(d1) || !isfinite(d2)) return NAN;
147
    if(d1<d2) return d2; else return d1;
147
    if(d1<d2) return d2; else return d1;
148
}
148
}
149
double min(double d1, double d2)
149
double min(double d1, double d2)
150
{
150
{
151
    if(!finite(d1) || !finite(d2)) return NAN;
151
    if(!isfinite(d1) || !isfinite(d2)) return NAN;
152
    if(d1<d2) return d1; else return d2;
152
    if(d1<d2) return d1; else return d2;
153
}
153
}
154
 
154
 
155
/* gcd and lcm, not really checking errors. */
155
/* gcd and lcm, not really checking errors. */
156
double gcd(double n1, double n2)
156
double gcd(double n1, double n2)
157
{
157
{
158
    unsigned long long int l1, l2, ll;
158
    unsigned long long int l1, l2, ll;
159
    n1=abs(n1); n2=abs(n2);
159
    n1=abs(n1); n2=abs(n2);
160
    if(!finite(n1) || !finite(n2) || n1<0 || n2<0 ||
160
    if(!isfinite(n1) || !isfinite(n2) || n1<0 || n2<0 ||
161
       n1>1E18 || n2>1E18) return NAN;
161
       n1>1E18 || n2>1E18) return NAN;
162
    l1=n1; l2=n2;
162
    l1=n1; l2=n2;
163
    if(l1<l2) {
163
    if(l1<l2) {
164
      ll=l1;l1=l2;l2=ll;
164
      ll=l1;l1=l2;l2=ll;
165
    }
165
    }