summaryrefslogtreecommitdiff
path: root/runtimes/nn/common/operations/internal/tensor_utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'runtimes/nn/common/operations/internal/tensor_utils.h')
-rw-r--r--runtimes/nn/common/operations/internal/tensor_utils.h123
1 files changed, 0 insertions, 123 deletions
diff --git a/runtimes/nn/common/operations/internal/tensor_utils.h b/runtimes/nn/common/operations/internal/tensor_utils.h
deleted file mode 100644
index df3d4e27b..000000000
--- a/runtimes/nn/common/operations/internal/tensor_utils.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
- * Copyright 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __NNFW_RT_TENSOR_UTILS_H__
-#define __NNFW_RT_TENSOR_UTILS_H__
-
-#include "ActivationFunctor.h"
-
-namespace nnfw {
-namespace rt {
-namespace tensor_utils {
-
-// Limit a float input f betweeen +abs_limit and -abs_limit.
-float Clip(float f, float abs_limit);
-
-// Multiply a matrix by a batch vector, and store results in a batch-size
-// vector using a stride value provided in result_stride. 'result_stride' shows
-// how the number of elements between consecutive result values. For example
-// result_stride = 1, will cause the output to look like this:
-// [O_1, 0_2, ... O_rows] in memory, but result_stride = 3, will cause it to be
-// arranged like this in memory: [O_1, x, x, 0_2, x, x, ..., O_rows]
-void MatrixBatchVectorMultiplyAccumulate(const float* matrix, int m_rows,
- int m_cols, const float* vector,
- int n_batch, float* result,
- int result_stride);
-
-// Cwise product of two vectors.
-void VectorVectorCwiseProduct(const float* vector1, const float* vector2,
- int v_size, float* result);
-
-// Cwise product and accumulate of two vectors. Since it's a MAC opertation, the
-// assumption here is that result array is initialized to valid values.
-void VectorVectorCwiseProductAccumulate(const float* vector1,
- const float* vector2, int v_size,
- float* result);
-
-// Dot product of two vectors.
-float VectorVectorDotProduct(const float* vector1, const float* vector2,
- int v_size);
-
-// Dot product of two batch vectors of size n_batch * v_size:
-// vector1 = [x_1_1, x_1_2, ..., x_1_vsize,
-// x_2_1, x_2_2, ..., x_2_vsize,
-// ...
-// x_nbatch_1,..., x_nbatch_vsize]
-// vector2 = [y_1_1, y_1_2, ..., y_1_vsize,
-// y_2_1, y_2_2, ..., y_2_vsize,
-// ...
-// y_nbatch_1,..., y_nbatch_vsize]
-// Then result will be a vector of n_batch size which will be saved with a
-// stride of result_stride in memory starting from 'result':
-// [x_1_1 * y_1_1 + x_1_2 * y_1_2 + ... + x_1_vsize * y_1_vsize,
-// x_2_1 * y_2_1 + x_2_2 * y_2_2 + ... + x_2_vsize * y_2_vsize,
-// ...
-// x_nbatch_1 * y_nbatch_1 + ... + x_nbatch_vsize * y_nbatch_vsize]
-void BatchVectorBatchVectorDotProduct(const float* vector1,
- const float* vector2, int v_size,
- int n_batch, float* result,
- int result_stride);
-
-// Cwise product and accumulate of a vector and a batch-vector. Since it's a MAC
-// operation, the assumption here is that result array is initialized to valid
-// values.
-void VectorBatchVectorCwiseProductAccumulate(const float* vector, int v_size,
- const float* batch_vector,
- int n_batch, float* result);
-
-// Batch vector initialization with another vector.
-void VectorBatchVectorAssign(const float* vector, int v_size, int n_batch,
- float* batch_vector);
-
-// Apply sigmoid to elements of a vector.
-void ApplySigmoidToVector(const float* vector, int v_size, float* result);
-
-// Apply activation function to elements of a vector.
-void ApplyActivationToVector(const float* vector, int v_size,
- ActivationFn activation, float* result);
-
-// Copy vector to another vector.
-void CopyVector(const float* vector, int v_size, float* result);
-
-// Compute "1.0f - elements of vector" (used in CIFG).
-void Sub1Vector(const float* vector, int v_size, float* result);
-
-// Fill vector with 0.f.
-void ZeroVector(float* vector, int v_size);
-
-// Clip elements of a vector using a abs_limit value.
-void ClipVector(const float* vector, int v_size, float abs_limit,
- float* result);
-
-// Shift left a vector in place with v_size size.
-void VectorShiftLeft(float* vector, int v_size, float shift_value);
-
-// Reduce-sum on a float input vector:
-// input_vector: float pointer to input vector.
-// input_stride: input vector stride.
-// output_vector: float pointer to vector.
-// output_size: output vector size.
-// reduction_size: number of consecutive elements from input vector which are
-// added to get one element of output.
-void ReductionSumVector(const float* input_vector, int input_stride,
- float* output_vector, int output_size,
- int reduction_size);
-} // namespace tensor_utils
-} // namespace rt
-} // namespace nnfw
-
-#endif // __NNFW_RT_TENSOR_UTILS_H__