CPUBroadcastModulo.java

  1. package neureka.backend.main.implementations.broadcast;

  2. import neureka.backend.main.implementations.fun.api.CPUBiFun;

  3. public class CPUBroadcastModulo extends CPUBroadcast
  4. {
  5.     public CPUBroadcastModulo() {}

  6.     @Override
  7.     protected CPUBiFun _getFun() {
  8.         return new CPUBiFun() {
  9.             @Override public double invoke(double a, double b) { return a % b; }
  10.             @Override public float invoke(float a, float b) { return a % b; }
  11.         };
  12.     }

  13.     @Override
  14.     protected CPUBiFun _getDeriveAt0() {
  15.         return new CPUBiFun() {
  16.             @Override public double invoke(double a, double b) { return 1 / b; }
  17.             @Override public float invoke(float a, float b) { return 1 / b; }
  18.         };
  19.     }

  20.     @Override
  21.     protected CPUBiFun _getDeriveAt1() {
  22.         return new CPUBiFun() {
  23.             @Override public double invoke(double a, double b) { return -(a / Math.pow(b, 2)); }
  24.             @Override public float invoke(float a, float b) { return (float) -(a / Math.pow(b, 2)); }
  25.         };
  26.     }
  27. }