Ejemplo n.º 1
0
  @Override
  public O compute(I1 z1, I2 z2, O output) {
    /*
      optimized version (fewer multiplies) : from mathworld.com
        seems to exhibit some rounding differences from textbook algorithm

    double a = z1.getRealDouble();
    double b = z1.getImaginaryDouble();
    double c = z2.getRealDouble();
    double d = z2.getImaginaryDouble();

    double ac = a*c;
    double bd = b*d;

    double x = ac - bd;
    double y = (a + b)*(c + d) - ac - bd;
    */

    // textbook version : works
    double x =
        z1.getRealDouble() * z2.getRealDouble() - z1.getImaginaryDouble() * z2.getImaginaryDouble();
    double y =
        z1.getImaginaryDouble() * z2.getRealDouble() + z1.getRealDouble() * z2.getImaginaryDouble();

    output.setComplexNumber(x, y);
    return output;
  }
Ejemplo n.º 2
0
 public static void main(String[] args) {
   I2 obj = new I2();
   obj.getDescription();
   obj = new J2();
   obj.getDescription();
   obj = new K2();
   obj.getDescription();
 }
Ejemplo n.º 3
0
  @Override
  public O compute(I1 x1, I2 x2, O output) {
    output.setReal(x1.getRealDouble() - x2.getRealDouble());

    return output;
  }
Ejemplo n.º 4
0
 @Override
 public O compute(I1 x1, I2 x2, O output) {
   double value = (long) x1.getRealDouble() & (long) x2.getRealDouble();
   output.setReal(value);
   return output;
 }