aboutsummaryrefslogtreecommitdiff
path: root/src/lib/src/activation.h
blob: b56a69e9de7b264eac875b393f245641365db7b7 (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 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)