/***************************************************************************** Copyright 2018 The TensorFlow.NET Authors. All Rights Reserved. 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. ******************************************************************************/ namespace Tensorflow { public partial class tensorflow { public MathApi math { get; } = new MathApi(); public class MathApi { public Tensor log(Tensor x, string name = null) => gen_math_ops.log(x, name); /// /// Computes the Gauss error function of `x` element-wise. /// /// /// /// public Tensor erf(Tensor x, string name = null) => math_ops.erf(x, name); /// /// /// /// /// /// /// /// /// /// /// /// public Tensor bincount(Tensor arr, Tensor weights = null, Tensor minlength = null, Tensor maxlength = null, TF_DataType dtype = TF_DataType.TF_INT32, string name = null, Shape axis = null, bool binary_output = false) => math_ops.bincount(arr, weights: weights, minlength: minlength, maxlength: maxlength, dtype: dtype, name: name, axis: axis, binary_output: binary_output); } public Tensor abs(Tensor x, string name = null) => math_ops.abs(x, name); /// /// Computes acos of x element-wise. /// /// /// /// public Tensor acos(Tensor x, string name = null) => gen_math_ops.acos(x, name); /// /// Computes asin of x element-wise. /// /// /// /// public Tensor asin(Tensor x, string name = null) => gen_math_ops.asin(x, name); public Tensor add(Tensor a, Tensor b, string name = null) => gen_math_ops.add(a, b, name: name); public Tensor add(Tx a, Ty b, string name = null) => gen_math_ops.add(a, b, name: name); /// /// Adds all input tensors element-wise. /// /// /// /// A `Tensor` of same shape and type as the elements of `inputs`. public Tensor add_n(Tensor[] inputs, string name = null) => math_ops.add_n(inputs, name: name); /// /// Computes atan of x element-wise. /// /// /// /// public Tensor atan(Tensor x, string name = null) => gen_math_ops.atan(x, name); public Tensor arg_max(Tensor input, int dimension, TF_DataType output_type = TF_DataType.TF_INT64, string name = null) => gen_math_ops.arg_max(input, dimension, output_type: output_type, name: name); public Tensor arg_min(Tensor input, int dimension, TF_DataType output_type = TF_DataType.TF_INT64, string name = null) => gen_math_ops.arg_min(input, dimension, output_type: output_type, name: name); public Tensor is_finite(Tensor input, string name = null) => gen_math_ops.is_finite(input, name); public Tensor is_nan(Tensor input, string name = null) => gen_math_ops.is_nan(input, name); /// /// Returns element-wise smallest integer not less than x. /// /// /// /// public Tensor ceil(Tensor x, string name = null) => gen_math_ops.ceil(x, name); /// /// Computes sin of x element-wise. /// /// /// /// public Tensor sin(Tensor x, string name = null) => gen_math_ops.sin(x, name); /// /// Computes hyperbolic sine of x element-wise. /// /// /// /// public Tensor sinh(Tensor x, string name = null) => gen_math_ops.sinh(x, name); /// /// Computes cos of x element-wise. /// /// /// /// public Tensor cos(Tensor x, string name = null) => gen_math_ops.cos(x, name); public Tensor cos(float x, string name = null) => gen_math_ops.cos(x, name); /// /// Computes hyperbolic cosine of x element-wise. /// /// /// /// public Tensor cosh(Tensor x, string name = null) => gen_math_ops.cosh(x, name); public Tensor tan(Tensor x, string name = null) => gen_math_ops.tan(x, name); public Tensor tanh(Tensor x, string name = null) => gen_math_ops.tanh(x, name); /// /// Returns element-wise largest integer not greater than x. /// /// /// /// public Tensor floor(Tensor x, string name = null) => gen_math_ops.floor(x, name); /// /// Returns the truth value of (x > y) element-wise. /// /// /// /// /// /// /// public Tensor greater(Tx x, Ty y, string name = null) => gen_math_ops.greater(x, y, name); /// /// Returns the truth value of (x >= y) element-wise. /// /// /// /// /// /// /// public Tensor greater_equal(Tx x, Ty y, string name = null) => gen_math_ops.greater_equal(x, y, name); /// /// Returns the truth value of (x < y) element-wise. /// /// /// /// /// /// /// public Tensor less(Tx x, Ty y, string name = null) => gen_math_ops.less(x, y, name); /// /// Computes the log of the absolute value of `Gamma(x)` element-wise. /// /// A `Tensor`. Must be one of the following types: `bfloat16`, `half`, `float32`, `float64`. /// A name for the operation (optional). /// A `Tensor`. Has the same type as `x`. public Tensor lgamma(Tensor x, string name = null) => gen_math_ops.lgamma(x, name: name); /// /// Returns the truth value of (x <= y) element-wise. /// /// /// /// /// /// /// public Tensor less_equal(Tx x, Ty y, string name = null) => gen_math_ops.less_equal(x, y, name); /// /// Computes natural logarithm of (1 + x) element-wise. /// /// /// /// public Tensor log1p(Tensor x, string name = null) => gen_math_ops.log1p(x, name); public Tensor logical_and(Tensor x, Tensor y, string name = null) => gen_math_ops.logical_and(x, y, name); public Tensor logical_and(bool x, bool y, string name = null) => gen_math_ops.logical_and(x, y, name); public Tensor logical_not(Tensor x, string name = null) => gen_math_ops.logical_not(x, name); public Tensor logical_or(Tensor x, Tensor y, string name = null) => gen_math_ops.logical_or(x, y, name); public Tensor logical_xor(Tensor x, Tensor y, string name = "LogicalXor") => gen_math_ops.logical_xor(x, y, name); /// /// Clips tensor values to a specified min and max. /// /// /// /// /// /// public Tensor _clip_by_value(Tensor t, Tensor clip_value_min, Tensor clip_value_max, string name = null) => gen_math_ops._clip_by_value(t, clip_value_min, clip_value_max); /// /// Clips tensor values to a specified min and max. /// /// /// A Tensor. /// /// /// A 0-D (scalar) Tensor, or a Tensor with the same shape /// as t. The minimum value to clip by. /// /// /// A 0-D (scalar) Tensor, or a Tensor with the same shape /// as t. The maximum value to clip by. /// /// /// If specified, the created operation in the graph will be this one, otherwise it will be named 'ClipByValue'. /// /// /// A clipped Tensor with the same shape as input 't'. /// The Operation can be fetched from the resulting Tensor, by fetching the Operation property from the result. /// /// /// Given a tensor t, this operation returns a tensor of the same type and /// shape as t with its values clipped to clip_value_min and clip_value_max. /// Any values less than clip_value_min are set to clip_value_min. Any values /// greater than clip_value_max are set to clip_value_max. /// public Tensor clip_by_value(Tensor t, T1 clip_value_min, T2 clip_value_max, string name = "ClipByValue") => clip_ops.clip_by_value(t, clip_value_min, clip_value_max, name); public Tensor sub(Tx a, Ty b, string name = null) => gen_math_ops.sub(a, b, name: name); public Tensor divide(Tensor a, Tensor b) => a / b; public Tensor sqrt(Tensor a, string name = null) => gen_math_ops.sqrt(a, name); public Tensor sign(Tensor a, string name = null) => gen_math_ops.sign(a, name); public Tensor subtract(Tensor x, T[] y, string name = null) where T : struct => gen_math_ops.sub(x, ops.convert_to_tensor(y, dtype: x.dtype.as_base_dtype(), name: "y"), name); /// /// return x - y /// /// /// /// /// public Tensor subtract(Tensor x, Tensor y, string name = null) => gen_math_ops.sub(x, y, name); public Tensor log(Tensor x, string name = null) => gen_math_ops.log(x, name); public Tensor equal(Tensor x, Tensor y, string name = null) => gen_math_ops.equal(x, y, name: name); /// /// Computes arctangent of `y/x` element-wise, respecting signs of the arguments. /// /// /// /// /// public Tensor atan2(Tensor y, Tensor x, string name = null) => gen_math_ops.atan2(y, x, name); /// /// Computes the maximum of elements across dimensions of a tensor. /// /// /// /// /// /// /// /// public Tensor max(Tx input, Ty axis, bool keep_dims = false, string name = null) => gen_math_ops._max(input, axis, keep_dims: keep_dims, name: name); /// /// Computes the minimum of elements across dimensions of a tensor. /// /// /// /// /// /// /// /// public Tensor min(Tx input, Ty axis, bool keep_dims = false, string name = null) => gen_math_ops._min(input, axis, keep_dims: keep_dims, name: name); /// /// Returns the max of x and y (i.e. x > y ? x : y) element-wise. /// /// /// /// /// /// /// public Tensor maximum(T1 x, T2 y, string name = null) => gen_math_ops.maximum(x, y, name: name); /// /// Returns the min of x and y (i.e. x < y ? x : y) element-wise. /// /// /// /// /// /// /// public Tensor minimum(T1 x, T2 y, string name = null) => gen_math_ops.minimum(x, y, name: name); public Tensor multiply(Tensor x, Tensor y, string name = null) => gen_math_ops.mul(x, y, name: name); /// /// return x * y /// /// /// /// /// /// /// public Tensor multiply(Tx x, Ty y, string name = null) => gen_math_ops.mul(x, y, name: name); public Tensor negative(Tensor x, string name = null) => gen_math_ops.neg(x, name); /// /// Returns the truth value of (x != y) element-wise. /// /// /// /// /// A `Tensor` of type bool with the same size as that of x or y. public Tensor not_equal(Tx x, Ty y, string name = null) => math_ops.not_equal(x, y, name: name); /// /// Divides x / y elementwise (using Python 2 division operator semantics). /// /// /// /// /// public Tensor div(Tensor x, Tensor y, string name = null) => math_ops.div(x, y, name: name); public Tensor divide(Tensor x, T[] y, string name = null) where T : struct => x / ops.convert_to_tensor(y, dtype: x.dtype.as_base_dtype(), name: "y"); public Tensor pow(T1 x, T2 y, string name = "pow") => math_ops.pow(x, y, name: name); /// /// Divides `x / y` elementwise, rounding toward the most negative integer. /// /// /// /// /// `x / y` rounded down. public Tensor floordiv(Tensor x, Tensor y, string name = null) => math_ops.floordiv(x, y, name: name); /// /// Divides x / y elementwise (using Python 3 division operator semantics). /// /// /// /// /// `x / y` evaluated in floating point. public static Tensor truediv(Tensor x, Tensor y, string name = null) => math_ops.truediv(x, y, name: name); public Tensor range(object start, object limit = null, object delta = null, TF_DataType? dtype = null, string name = "range") => math_ops.range(start, limit: limit, delta: delta, dtype: dtype, name: name); public Tensor real(Tensor input, string name = null) => math_ops.real(input, name); /// /// Computes the "logical or" of elements across dimensions of a tensor. /// /// The boolean tensor to reduce. /// The dimensions to reduce. /// If true, retains reduced dimensions with length 1. /// /// The reduced tensor. public Tensor reduce_any(Tensor input_tensor, Axis? axis = null, bool keepdims = false, string name = null) => math_ops.reduce_any(input_tensor, axis: axis, keepdims: keepdims, name: name); /// /// Computes the "logical and" of elements across dimensions of a tensor. /// /// /// /// /// /// The reduced tensor. public Tensor reduce_all(Tensor input_tensor, Axis? axis = null, bool keepdims = false, string name = null) => math_ops.reduce_all(input_tensor, axis: axis, keepdims: keepdims, name: name); /// /// Computes the product of elements across dimensions of a tensor. /// /// /// /// /// /// public Tensor reduce_prod(Tensor input_tensor, Axis? axis = null, bool keepdims = false, string name = null) => math_ops.reduce_prod(input_tensor, axis: axis, keepdims: keepdims, name: name); /// /// Computes the sum of elements across dimensions of a tensor. /// /// /// /// /// /// public Tensor reduce_sum(Tensor[] input_tensors, int? axis = null, bool keepdims = false, string name = null) => math_ops.reduce_sum(input_tensors, axis: axis, keepdims: keepdims, name: name); /// /// Computes the sum of elements across dimensions of a tensor. /// /// /// /// public Tensor reduce_sum(Tensor input, int? axis = null, int? reduction_indices = null, bool keepdims = false, string name = null) { if (!axis.HasValue && reduction_indices.HasValue && !keepdims) return math_ops.reduce_sum(input, reduction_indices.Value); else if (axis.HasValue && !reduction_indices.HasValue && !keepdims) return math_ops.reduce_sum(input, axis.Value); else if (axis.HasValue && !reduction_indices.HasValue && keepdims) return math_ops.reduce_sum(input, keepdims: keepdims, axis: axis.Value, name: name); else return math_ops.reduce_sum(input, keepdims: keepdims, name: name); } public Tensor reduce_sum(Tensor input, Shape axis, int? reduction_indices = null, bool keepdims = false, string name = null) => math_ops.reduce_sum(input, axis, keepdims: keepdims, name: name); /// /// Computes the maximum of elements across dimensions of a tensor. /// /// /// /// /// /// public Tensor reduce_max(Tensor input_tensor, Axis? axis = null, bool keepdims = false, string name = null) => math_ops.reduce_max(input_tensor, axis, keepdims, name); public Tensor reduce_min(Tensor input_tensor, Axis? axis = null, bool keepdims = false, string name = null) => math_ops.reduce_min(input_tensor, axis, keepdims, name); public Tensor reduce_std(Tensor input_tensor, Axis? axis = null, bool keepdims = false, string name = null) => math_ops.reduce_std(input_tensor, axis, keepdims, name); public Tensor reduce_variance(Tensor input_tensor, Axis? axis = null, bool keepdims = false, string name = null) => math_ops.reduce_variance(input_tensor, axis, keepdims, name); public Tensor sigmoid(T x, string name = null) => math_ops.sigmoid(x, name: name); public Tensor sum(Tensor input, int axis, bool keep_dims = false, string name = null) => gen_math_ops._sum(input, axis, keep_dims: keep_dims, name: name); public Tensor reduce_mean(Tensor input_tensor, Axis? axis = null, bool keepdims = false, string name = null, int? reduction_indices = null) => math_ops.reduce_mean(input_tensor, axis: axis, keepdims: keepdims, name: name, reduction_indices: reduction_indices); public Tensor round(Tensor x, string name = null) => gen_math_ops.round(x, name: name); public Tensor cast(Tensor x, TF_DataType dtype = TF_DataType.DtInvalid, string name = null) => math_ops.cast(x, dtype, name); public Tensor cumsum(Tensor x, int axis = 0, bool exclusive = false, bool reverse = false, string name = null) => math_ops.cumsum(x, axis: axis, exclusive: exclusive, reverse: reverse, name: name); public Tensor argmax(Tensor input, int axis = -1, string name = null, int? dimension = null, TF_DataType output_type = TF_DataType.TF_INT64) => gen_math_ops.arg_max(input, axis, name: name, output_type: output_type); public Tensor square(Tensor x, string name = null) => gen_math_ops.square(x, name: name); public Tensor squared_difference(Tensor x, Tensor y, string name = null) => gen_math_ops.squared_difference(x: x, y: y, name: name); } }