URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 305 |
Rev 338 |
// { dg-do run }
|
// { dg-do run }
|
extern "C" int printf (const char *, ...);
|
extern "C" int printf (const char *, ...);
|
template T max (const T&x, const T&y)
|
template T max (const T&x, const T&y)
|
{
|
{
|
return (x>y)?x:y;
|
return (x>y)?x:y;
|
}
|
}
|
|
|
class complex
|
class complex
|
{
|
{
|
double re, im;
|
double re, im;
|
public:
|
public:
|
complex (double r, double i=0) { re = r; im = i; }
|
complex (double r, double i=0) { re = r; im = i; }
|
friend int operator > (const complex& x, const complex &y);
|
friend int operator > (const complex& x, const complex &y);
|
void print () { printf ("re = %g; im = %g;\n", re, im); }
|
void print () { printf ("re = %g; im = %g;\n", re, im); }
|
};
|
};
|
int operator >(const complex& x, const complex &y)
|
int operator >(const complex& x, const complex &y)
|
{
|
{
|
double c1 = x.re * x.re + x.im * x.im;
|
double c1 = x.re * x.re + x.im * x.im;
|
double c2 = y.re * y.re + y.im * y.im;
|
double c2 = y.re * y.re + y.im * y.im;
|
return c1 > c2;
|
return c1 > c2;
|
}
|
}
|
|
|
int main ()
|
int main ()
|
{
|
{
|
complex c1 (1, 0);
|
complex c1 (1, 0);
|
complex c2 (2, 0);
|
complex c2 (2, 0);
|
complex c3 (2, 3);
|
complex c3 (2, 3);
|
complex c4 (2, 1);
|
complex c4 (2, 1);
|
|
|
complex m1 = max (c1, c2);
|
complex m1 = max (c1, c2);
|
complex m2 = max (c3, c4);
|
complex m2 = max (c3, c4);
|
m1.print ();
|
m1.print ();
|
m2.print ();
|
m2.print ();
|
return 0;
|
return 0;
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.