ScalarLog10.java

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

  2. import neureka.backend.main.implementations.fun.api.CPUFun;
  3. import neureka.backend.main.implementations.fun.api.ScalarFun;

  4. public class ScalarLog10 implements ScalarFun
  5. {
  6.     @Override public String id() { return "log10"; }

  7.     @Override
  8.     public String activationCode() {
  9.         return "output = log10( input );\n";
  10.     }

  11.     @Override
  12.     public String derivationCode() {
  13.         return "output = 1.0f / ( input * log( 10.0f ) );\n";
  14.     }

  15.     @Override
  16.     public CPUFun getActivation() {
  17.         return new CPUFun() {
  18.             @Override public double invoke( double x ) { return Math.log10( x ); }
  19.             @Override public float invoke( float x ) { return (float) Math.log10( x ); }
  20.         };
  21.     }

  22.     @Override
  23.     public CPUFun getDerivative() {
  24.         return new CPUFun() {
  25.             @Override public double invoke( double x ) { return 1 / ( x * Math.log( 10 ) ); }
  26.             @Override public float invoke( float x ) { return 1 / ( x * (float) Math.log( 10 ) ); }
  27.         };
  28.     }

  29. }