aboutsummaryrefslogtreecommitdiff
path: root/src/lib/src/activation.h
blob: 42ab73f9f1b11a967fb247c6fcb4b5e537d47950 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#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 i = 0; i < size; ++i) { \
    out[i] = f(in[i]); \
  }

#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)