Open Deep Learning API
Loading...
Searching...
No Matches
odla_ops_math.h
Go to the documentation of this file.
1//===- odla_ops_math.h ----------------------------------------------------===//
2//
3// Copyright (C) 2019-2020 Alibaba Group Holding Limited.
4//
5// Licensed under the Apache License, Version 2.0 (the "License");
6// you may not use this file except in compliance with the License.
7// You may obtain a copy of the License at
8//
9// http://www.apache.org/licenses/LICENSE-2.0
10//
11// Unless required by applicable law or agreed to in writing, software
12// distributed under the License is distributed on an "AS IS" BASIS,
13// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14// See the License for the specific language governing permissions and
15// limitations under the License.
16// =============================================================================
17
18#ifndef _ODLA_OPERATOR_OPS_MATH_H_
19#define _ODLA_OPERATOR_OPS_MATH_H_
20
21#include <ODLA/odla_common.h>
22#include <ODLA/odla_value.h>
23
28#ifdef __cplusplus
29extern "C" {
30#endif
31
33
41extern ODLA_API_EXPORT odla_value ODLA_API_CALL
42odla_Abs(odla_value input, const odla_value_id value_id);
43
45
54extern ODLA_API_EXPORT odla_value ODLA_API_CALL
56
58
67extern ODLA_API_EXPORT odla_value ODLA_API_CALL
69
71
81extern ODLA_API_EXPORT odla_value ODLA_API_CALL
82odla_Add(odla_value lhs, odla_value rhs, const odla_value_id value_id);
83
85
95extern ODLA_API_EXPORT odla_value ODLA_API_CALL
96odla_And(odla_value lhs, odla_value rhs, const odla_value_id value_id);
97
99
115extern ODLA_API_EXPORT odla_value ODLA_API_CALL
117 odla_bool return_last_index, odla_value_type output_value_type,
118 const odla_value_id value_id);
119
121
137extern ODLA_API_EXPORT odla_value ODLA_API_CALL
139 odla_bool return_last_index, odla_value_type output_value_type,
140 const odla_value_id value_id);
141
143
152extern ODLA_API_EXPORT odla_value ODLA_API_CALL
154
156
165extern ODLA_API_EXPORT odla_value ODLA_API_CALL
167
169
178extern ODLA_API_EXPORT odla_value ODLA_API_CALL
180
182
191extern ODLA_API_EXPORT odla_value ODLA_API_CALL
193
195
204extern ODLA_API_EXPORT odla_value ODLA_API_CALL
205odla_Ceil(odla_value input, const odla_value_id value_id);
206
208
220extern ODLA_API_EXPORT odla_value ODLA_API_CALL
222 const odla_value_id value_id);
223
225
235extern ODLA_API_EXPORT odla_value ODLA_API_CALL
237 const odla_value_id value_id);
238
239extern ODLA_API_EXPORT odla_value ODLA_API_CALL
240odla_CumSum(odla_value input, odla_value axis, odla_bool exclusion,
241 odla_bool reverse, const odla_value_id value_id);
242
244
254extern ODLA_API_EXPORT odla_value ODLA_API_CALL
255odla_Div(odla_value lhs, odla_value rhs, const odla_value_id value_id);
256
258
267extern ODLA_API_EXPORT odla_value ODLA_API_CALL
268odla_Einsum(odla_values inputs, const odla_char* equation,
269 odla_value_shape output_dims, const odla_value_id value_id);
270
272
281extern ODLA_API_EXPORT odla_value ODLA_API_CALL
282odla_Erf(odla_value input, const odla_value_id value_id);
283
285
295extern ODLA_API_EXPORT odla_value ODLA_API_CALL
297
299
307extern ODLA_API_EXPORT odla_value ODLA_API_CALL
308odla_Exp(odla_value input, const odla_value_id value_id);
309
311
320extern ODLA_API_EXPORT odla_value ODLA_API_CALL
321odla_Floor(odla_value input, const odla_value_id value_id);
322
324
338 odla_value A, odla_bool A_transpose, odla_value B, odla_bool B_transpose,
339 odla_value_shape output_dims, const odla_value_id value_id);
340
342
362 odla_value A, odla_bool A_transpose, odla_value B, odla_bool B_transpose,
363 odla_float32 alpha, odla_float32 beta, odla_value C,
364 odla_value_shape output_dims, const odla_value_id value_id);
365
367
377extern ODLA_API_EXPORT odla_value ODLA_API_CALL
379
381
392 odla_value lhs, odla_value rhs, const odla_value_id value_id);
393
395
403extern ODLA_API_EXPORT odla_value ODLA_API_CALL
404odla_Inverse(odla_value input, const odla_value_id value_id);
405
407
417extern ODLA_API_EXPORT odla_value ODLA_API_CALL
418odla_IsInf(odla_value input, odla_bool detect_pos, odla_bool detect_neg,
419 const odla_value_id value_id);
420
422
430extern ODLA_API_EXPORT odla_value ODLA_API_CALL
431odla_IsNaN(odla_value input, const odla_value_id value_id);
432
434
444extern ODLA_API_EXPORT odla_value ODLA_API_CALL
446
448
458extern ODLA_API_EXPORT odla_value ODLA_API_CALL
460
462
470extern ODLA_API_EXPORT odla_value ODLA_API_CALL
471odla_Log(odla_value input, const odla_value_id value_id);
472
474
483extern ODLA_API_EXPORT odla_value ODLA_API_CALL
484odla_Max(odla_value lhs, odla_value rhs, const odla_value_id value_id);
485
487
496extern ODLA_API_EXPORT odla_value ODLA_API_CALL
497odla_Mean(odla_values inputs, const odla_value_id value_id);
498
500
509extern ODLA_API_EXPORT odla_value ODLA_API_CALL
510odla_Min(odla_value lhs, odla_value rhs, const odla_value_id value_id);
511
513
522extern ODLA_API_EXPORT odla_value ODLA_API_CALL
524 const odla_value_id value_id);
525
527
537extern ODLA_API_EXPORT odla_value ODLA_API_CALL
538odla_Mul(odla_value lhs, odla_value rhs, const odla_value_id value_id);
539
541
549extern ODLA_API_EXPORT odla_value ODLA_API_CALL
550odla_Neg(odla_value input, const odla_value_id value_id);
551
553
561extern ODLA_API_EXPORT odla_value ODLA_API_CALL
562odla_Not(odla_value input, const odla_value_id value_id);
563
565
577
587extern ODLA_API_EXPORT odla_value ODLA_API_CALL
589
591
601extern ODLA_API_EXPORT odla_value ODLA_API_CALL
602odla_Or(odla_value lhs, odla_value rhs, const odla_value_id value_id);
603
605
615extern ODLA_API_EXPORT odla_value ODLA_API_CALL
616odla_Xor(odla_value lhs, odla_value rhs, const odla_value_id value_id);
617
619
628extern ODLA_API_EXPORT odla_value ODLA_API_CALL
629odla_Pow(odla_value base, odla_value exponent, const odla_value_id value_id);
630
632
640extern ODLA_API_EXPORT odla_value ODLA_API_CALL
642
644
658 odla_value input, odla_size_t num_of_axes, const odla_uint32* axes,
659 odla_bool keep_dims, odla_float32 epsilon, odla_value_shape output_dims,
660 const odla_value_id value_id);
661
663
677 odla_value input, odla_size_t num_of_axes, const odla_uint32* axes,
678 odla_bool keep_dims, odla_float32 epsilon, odla_value_shape output_dims,
679 const odla_value_id value_id);
680
682
694extern ODLA_API_EXPORT odla_value ODLA_API_CALL
696 const odla_uint32* axes, odla_bool keep_dims,
697 odla_value_shape output_dims, const odla_value_id value_id);
698
700
713 odla_value input, odla_size_t num_of_axes, const odla_uint32* axes,
714 odla_bool keep_dims, odla_value_shape output_dims,
715 const odla_value_id value_id);
716
718
730extern ODLA_API_EXPORT odla_value ODLA_API_CALL
732 const odla_uint32* axes, odla_bool keep_dims,
733 odla_value_shape output_dims, const odla_value_id value_id);
734
736
746extern ODLA_API_EXPORT odla_value ODLA_API_CALL
748 const odla_uint32* axes, odla_bool keep_dims,
749 odla_value_shape output_dims, const odla_value_id value_id);
750
752
762extern ODLA_API_EXPORT odla_value ODLA_API_CALL
764 const odla_uint32* axes, odla_bool keep_dims,
765 odla_value_shape output_dims, const odla_value_id value_id);
766
768
780extern ODLA_API_EXPORT odla_value ODLA_API_CALL
782 const odla_uint32* axes, odla_bool keep_dims,
783 odla_value_shape output_dims, const odla_value_id value_id);
784
786
798extern ODLA_API_EXPORT odla_value ODLA_API_CALL
800 const odla_uint32* axes, odla_bool keep_dims,
801 odla_value_shape output_dims, const odla_value_id value_id);
802
804
817 odla_value input, odla_size_t num_of_axes, const odla_uint32* axes,
818 odla_bool keep_dims, odla_value_shape output_dims,
819 const odla_value_id value_id);
820
822
831extern ODLA_API_EXPORT odla_value ODLA_API_CALL
832odla_Round(odla_value input, const odla_value_id value_id);
833
835
843extern ODLA_API_EXPORT odla_value ODLA_API_CALL
844odla_Rsqrt(odla_value input, const odla_value_id value_id);
845
847
860extern ODLA_API_EXPORT odla_value ODLA_API_CALL
862 odla_value_shape output_dims, const odla_value_id value_id);
863
865
874extern ODLA_API_EXPORT odla_value ODLA_API_CALL
875odla_Shift(odla_value input, odla_value shift_amount, odla_bool is_left_shift,
876 const odla_value_id value_id);
877
879
888extern ODLA_API_EXPORT odla_value ODLA_API_CALL
889odla_Sign(odla_value input, const odla_value_id value_id);
890
892
900extern ODLA_API_EXPORT odla_value ODLA_API_CALL
901odla_Sqrt(odla_value input, const odla_value_id value_id);
902
904
915 odla_value lhs, odla_value rhs, const odla_value_id value_id);
916
918
929extern ODLA_API_EXPORT odla_value ODLA_API_CALL
930odla_Sub(odla_value lhs, odla_value rhs, const odla_value_id value_id);
931
933
942extern ODLA_API_EXPORT odla_value ODLA_API_CALL
944
946
955extern ODLA_API_EXPORT odla_value ODLA_API_CALL
957
959
968extern ODLA_API_EXPORT odla_value ODLA_API_CALL
970
972
981extern ODLA_API_EXPORT odla_value ODLA_API_CALL
983
985
994extern ODLA_API_EXPORT odla_value ODLA_API_CALL
996
998
1007extern ODLA_API_EXPORT odla_value ODLA_API_CALL
1009
1010#ifdef __cplusplus
1011} // C extern
1012#endif
1013
1014#endif // _ODLA_OPERATOR_OPS_MATH_H_
__INT32_TYPE__ odla_int32
Definition: odla_common.h:66
#define ODLA_API_EXPORT
API export directives.
Definition: odla_common.h:172
__INT64_TYPE__ odla_int64
Definition: odla_common.h:67
__UINT32_TYPE__ odla_uint32
Definition: odla_common.h:70
char odla_char
char
Definition: odla_common.h:131
odla_uint32 odla_bool
Definition: odla_common.h:99
__SIZE_TYPE__ odla_size_t
size_t
Definition: odla_common.h:134
float odla_float32
Definition: odla_common.h:90
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Cos(odla_value x, const odla_value_id value_id)
Cos.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Neg(odla_value input, const odla_value_id value_id)
Flip the sign.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_ACosh(odla_value x, const odla_value_id value_id)
ACosh.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_ReduceSum(odla_value input, odla_size_t num_of_axes, const odla_uint32 *axes, odla_bool keep_dims, odla_value_shape output_dims, const odla_value_id value_id)
Compute the sum alone axes.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Mul(odla_value lhs, odla_value rhs, const odla_value_id value_id)
Multiplication.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_ReduceMin(odla_value input, odla_size_t num_of_axes, const odla_uint32 *axes, odla_bool keep_dims, odla_value_shape output_dims, const odla_value_id value_id)
Compute the min alone axes.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Or(odla_value lhs, odla_value rhs, const odla_value_id value_id)
Logic or test.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Sqrt(odla_value input, const odla_value_id value_id)
Square root.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Mod(odla_value lhs, odla_value rhs, odla_int64 fmod, const odla_value_id value_id)
Returns the element-wise modulus value.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Div(odla_value lhs, odla_value rhs, const odla_value_id value_id)
Division.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_ASinh(odla_value x, const odla_value_id value_id)
ASinh.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Greater(odla_value lhs, odla_value rhs, const odla_value_id value_id)
"Greater Than" test
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Round(odla_value input, const odla_value_id value_id)
Round to nearest.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_ReduceSumSquare(odla_value input, odla_size_t num_of_axes, const odla_uint32 *axes, odla_bool keep_dims, odla_value_shape output_dims, const odla_value_id value_id)
Compute the sum square alone axes.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_IsInf(odla_value input, odla_bool detect_pos, odla_bool detect_neg, const odla_value_id value_id)
Check infinity.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_ASin(odla_value x, const odla_value_id value_id)
ASin.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_SquaredDifference(odla_value lhs, odla_value rhs, const odla_value_id value_id)
Squared Difference.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_And(odla_value lhs, odla_value rhs, const odla_value_id value_id)
Logical and.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Exp(odla_value input, const odla_value_id value_id)
Compute exponential function.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Add(odla_value lhs, odla_value rhs, const odla_value_id value_id)
Addition.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Erf(odla_value input, const odla_value_id value_id)
Compute guass error of the given input.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Not(odla_value input, const odla_value_id value_id)
Logical negation.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_ATan(odla_value x, const odla_value_id value_id)
ATan.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Floor(odla_value input, const odla_value_id value_id)
Round down a value.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Sign(odla_value input, const odla_value_id value_id)
Sign of input.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Inverse(odla_value input, const odla_value_id value_id)
Inverse of a square matrix.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_ReduceLogSum(odla_value input, odla_size_t num_of_axes, const odla_uint32 *axes, odla_bool keep_dims, odla_value_shape output_dims, const odla_value_id value_id)
Compute the log sum alone axes.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Clamp(odla_value input, odla_float32 lo, odla_float32 hi, const odla_value_id value_id)
Clamp a value to a given range.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Ceil(odla_value input, const odla_value_id value_id)
Round up a value.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Max(odla_value lhs, odla_value rhs, const odla_value_id value_id)
Return the element-wise largest value.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_ReduceMean(odla_value input, odla_size_t num_of_axes, const odla_uint32 *axes, odla_bool keep_dims, odla_value_shape output_dims, const odla_value_id value_id)
Compute the mean alone axes.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Einsum(odla_values inputs, const odla_char *equation, odla_value_shape output_dims, const odla_value_id value_id)
Compute Einstein summation.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_BatchMatMul(odla_value A, odla_bool A_transpose, odla_value B, odla_bool B_transpose, odla_value_shape output_dims, const odla_value_id value_id)
General Batch Matrix Multiplication.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Shift(odla_value input, odla_value shift_amount, odla_bool is_left_shift, const odla_value_id value_id)
bit shift
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Sinh(odla_value x, const odla_value_id value_id)
Sinh.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Tanh(odla_value x, const odla_value_id value_id)
Tanh.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Mean(odla_values inputs, const odla_value_id value_id)
Compute the element-wise mean value of inputs.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Det(odla_value input, odla_value_shape output_shape, const odla_value_id value_id)
Compute the determinant of a square matrix.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Tan(odla_value x, const odla_value_id value_id)
Tan.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_ReduceProd(odla_value input, odla_size_t num_of_axes, const odla_uint32 *axes, odla_bool keep_dims, odla_value_shape output_dims, const odla_value_id value_id)
Compute the production alone axes.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Min(odla_value lhs, odla_value rhs, const odla_value_id value_id)
Returns the element-wise smallest value.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Pow(odla_value base, odla_value exponent, const odla_value_id value_id)
Raise to power.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_GreaterOrEqual(odla_value lhs, odla_value rhs, const odla_value_id value_id)
"Greater Than Or Equal" test
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Sin(odla_value x, const odla_value_id value_id)
Sin.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_LessOrEqual(odla_value lhs, odla_value rhs, const odla_value_id value_id)
"Less Than Or Equal" test
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Abs(odla_value input, const odla_value_id value_id)
Absolute value.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Gemm(odla_value A, odla_bool A_transpose, odla_value B, odla_bool B_transpose, odla_float32 alpha, odla_float32 beta, odla_value C, odla_value_shape output_dims, const odla_value_id value_id)
General Matrix Multiplication.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_IsNaN(odla_value input, const odla_value_id value_id)
Check whether element of input is a number.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Less(odla_value lhs, odla_value rhs, const odla_value_id value_id)
"Less Than" test
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_ReduceL1(odla_value input, odla_size_t num_of_axes, const odla_uint32 *axes, odla_bool keep_dims, odla_float32 epsilon, odla_value_shape output_dims, const odla_value_id value_id)
Compute the L1 norm alone axes.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_ACos(odla_value x, const odla_value_id value_id)
ACos.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Select(odla_value condition, odla_value a, odla_value b, odla_value_shape output_dims, const odla_value_id value_id)
conditional (ternary) operator
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Equal(odla_value lhs, odla_value rhs, const odla_value_id value_id)
Equality test.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_ATanh(odla_value x, const odla_value_id value_id)
ATanh.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_ArgMin(odla_value input, odla_int32 axis, odla_bool keep_dims, odla_bool return_last_index, odla_value_type output_value_type, const odla_value_id value_id)
Find the indices of the smallest elements.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_ReduceL2(odla_value input, odla_size_t num_of_axes, const odla_uint32 *axes, odla_bool keep_dims, odla_float32 epsilon, odla_value_shape output_dims, const odla_value_id value_id)
Compute the L2 norm alone axes.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Xor(odla_value lhs, odla_value rhs, const odla_value_id value_id)
Logic xor test.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_NotEqual(odla_value lhs, odla_value rhs, const odla_value_id value_id)
Logical or.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_ArgMax(odla_value input, odla_int32 axis, odla_bool keep_dims, odla_bool return_last_index, odla_value_type output_value_type, const odla_value_id value_id)
Find the indices of the largest elements.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Rsqrt(odla_value input, const odla_value_id value_id)
reciprocal square root
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Log(odla_value input, const odla_value_id value_id)
Compute the natural logrithm.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Reciprocal(odla_value input, const odla_value_id value_id)
Compute reciprocal.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Cosh(odla_value x, const odla_value_id value_id)
Cosh.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_Sub(odla_value lhs, odla_value rhs, const odla_value_id value_id)
Subtraction.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_ReduceMax(odla_value input, odla_size_t num_of_axes, const odla_uint32 *axes, odla_bool keep_dims, odla_value_shape output_dims, const odla_value_id value_id)
Compute the max alone axes.
ODLA_API_EXPORT odla_value ODLA_API_CALL odla_ReduceLogSumExp(odla_value input, odla_size_t num_of_axes, const odla_uint32 *axes, odla_bool keep_dims, odla_value_shape output_dims, const odla_value_id value_id)
Compute the log sum exponent alone axes.
struct _odla_value_id * odla_value_id
Unique id of each value.
Definition: odla_value.h:74
struct _odla_value * odla_value
Value definition.
Definition: odla_value.h:65
Shape of value.
Definition: odla_value.h:51
Type of value.
Definition: odla_value.h:59
Multiple values.
Definition: odla_value.h:68