Example #1
0
 /**
  * Multiply two complex numbers, inplace
  *
  * @param c
  * @param result
  */
 @Override
 public IComplexNumber muli(IComplexNumber c, IComplexNumber result) {
   float newR =
       realComponent() * c.realComponent().floatValue()
           - imaginaryComponent() * c.imaginaryComponent().floatValue();
   float newI =
       realComponent() * c.imaginaryComponent().floatValue()
           + imaginaryComponent() * c.realComponent().floatValue();
   return result.set(newR, newI);
 }
Example #2
0
 @Override
 public IComplexNumber lt(IComplexNumber num) {
   double val = num.realComponent().doubleValue();
   double imag = num.imaginaryComponent().doubleValue();
   double otherVal = num.realComponent().doubleValue();
   double otherImag = num.imaginaryComponent().doubleValue();
   if (val < otherVal) return Nd4j.createComplexNumber(1, 0);
   else if (val > otherVal) return Nd4j.createComplexNumber(0, 0);
   else if (imag < otherImag) return Nd4j.createComplexNumber(1, 0);
   else return Nd4j.createComplexNumber(0, 0);
 }
Example #3
0
 @Override
 public IComplexNumber rdivi(Number v, IComplexNumber result) {
   float d =
       realComponent().floatValue() * realComponent().floatValue()
           + imaginaryComponent().floatValue() * imaginaryComponent().floatValue();
   return result.set(
       v.floatValue() * realComponent().floatValue() / d,
       -v.floatValue() * imaginaryComponent().floatValue() / d);
 }
Example #4
0
 /**
  * Divide two complex numbers, in-place
  *
  * @param c
  * @param result
  */
 @Override
 public IComplexNumber divi(IComplexNumber c, IComplexNumber result) {
   float d =
       c.realComponent().floatValue() * c.realComponent().floatValue()
           + c.imaginaryComponent().floatValue() * c.imaginaryComponent().floatValue();
   float newR =
       (realComponent() * c.realComponent().floatValue()
               + imaginaryComponent() * c.imaginaryComponent().floatValue())
           / d;
   float newI =
       (imaginaryComponent() * c.realComponent().floatValue()
               - realComponent() * c.imaginaryComponent().floatValue())
           / d;
   return result.set(newR, newI);
 }
Example #5
0
 @Override
 public IComplexNumber divi(Number v, IComplexNumber result) {
   return result.set(
       result.realComponent().floatValue() / v.floatValue(),
       result.imaginaryComponent().floatValue() / v.floatValue());
 }
Example #6
0
 @Override
 public IComplexNumber subi(Number a, IComplexNumber result) {
   return result.set(result.realComponent().floatValue() - a.floatValue(), imaginaryComponent());
 }
Example #7
0
 /**
  * Add two complex numbers in-place
  *
  * @param c
  * @param result
  */
 @Override
 public IComplexNumber addi(IComplexNumber c, IComplexNumber result) {
   return result.set(
       result.realComponent().floatValue() + c.realComponent().floatValue(),
       result.imaginaryComponent().floatValue() + c.imaginaryComponent().floatValue());
 }
Example #8
0
 @Override
 public IComplexNumber copy(IComplexNumber other) {
   return Nd4j.createFloat(
       other.realComponent().floatValue(), other.imaginaryComponent().floatValue());
 }
Example #9
0
 @Override
 public IComplexNumber rdivi(IComplexNumber c, IComplexNumber result) {
   return result.set(c.div(this));
 }
Example #10
0
 @Override
 public IComplexNumber rsubi(Number a, IComplexNumber result) {
   return result.set(a.doubleValue() - realComponent().doubleValue(), imaginaryComponent());
 }
Example #11
0
 @Override
 public IComplexNumber rsubi(IComplexNumber a, IComplexNumber result) {
   return result.set(a.sub(this));
 }
Example #12
0
 @Override
 public IComplexNumber muli(Number v, IComplexNumber result) {
   return result.set(
       realComponent().floatValue() * v.floatValue(),
       imaginaryComponent().floatValue() * v.floatValue());
 }