5 const float *input,
size_t input_elements,
size_t input_stride,
6 float *output,
size_t output_elements,
size_t output_stride,
7 size_t rows,
size_t columns) {
11 input_elements < ni || output_elements < no)
15 for (
size_t row = 0; row < rows; ++row)
17 for (
size_t row = 0; row < rows; ++row)
18 for (
size_t column = 0; column < columns; ++column)
19 output[column * output_stride + row] = input[row * input_stride + column];
24 const float *input,
size_t input_elements,
size_t input_stride,
25 float *output,
size_t output_elements,
size_t output_stride,
26 size_t rows,
size_t columns,
float negative_slope) {
30 input_elements < ni || output_elements < no)
32 if (!isfinite(negative_slope) || negative_slope < 0 ||
35 for (
size_t row = 0; row < rows; ++row)
36 for (
size_t column = 0; column < columns; ++column) {
37 float value = input[row * input_stride + column];
38 if (!isfinite(value) || (value < 0 && !isfinite(value * negative_slope)))
41 for (
size_t row = 0; row < rows; ++row)
42 for (
size_t column = 0; column < columns; ++column) {
43 float value = input[row * input_stride + column];
44 output[row * output_stride + column] =
45 value >= 0 ? value : value * negative_slope;
51 const float *input,
size_t input_elements,
size_t input_stride,
52 float *output,
size_t output_elements,
size_t output_stride,
53 size_t rows,
size_t columns) {
57 input_elements < ni || output_elements < no)
61 for (
size_t row = 0; row < rows; ++row)
63 for (
size_t row = 0; row < rows; ++row)
64 for (
size_t column = 0; column < columns; ++column)
65 output[row * output_stride + column] =
66 tanhf(input[row * input_stride + column]);
static int ck_checked_finite(const float *ptr, size_t n)
static int ck_checked_span(size_t rows, size_t width, size_t stride, size_t *span)
static int ck_checked_region(const float *ptr, size_t n)
static int ck_checked_overlap(const float *a, size_t na, const float *b, size_t nb)
int leaky_relu_strided_f32_checked(const float *input, size_t input_elements, size_t input_stride, float *output, size_t output_elements, size_t output_stride, size_t rows, size_t columns, float negative_slope)
int transpose_strided_f32_checked(const float *input, size_t input_elements, size_t input_stride, float *output, size_t output_elements, size_t output_stride, size_t rows, size_t columns)
int tanh_strided_f32_checked(const float *input, size_t input_elements, size_t input_stride, float *output, size_t output_elements, size_t output_stride, size_t rows, size_t columns)