aboutsummaryrefslogtreecommitdiff
path: root/src/lib/src/activation.h
blob: 4c8a9e4512d60cff40c51a0b8145bafa6d0ab994 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#pragma once

#include <neuralnet/types.h>

#include <math.h>

static inline R sigmoid(R x) { return 1. / (1. + exp(-x)); }

static inline R relu(R x) { return fmax(0, x); }

#define NN_MAP_ARRAY(f, in, out, size) \
  for (int ii = 0; ii < size; ++ii) {  \
    out[ii] = f(in[ii]);               \
  }

#define sigmoid_array(in, out, size) NN_MAP_ARRAY(sigmoid, in, out, size)
#define relu_array(in, out, size)    NN_MAP_ARRAY(relu, in, out, size)