public NDArray Norm(NDArray result, NDArray src, int dimension, float value) { if (value == 0) { return(ReductionOp.Invoke(cudaReduceKernels, "e0_norm", 0.0f, ReduceInitType.GivenValue, result, src, dimension)); } else if (value == 1) { return(ReductionOp.Invoke(cudaReduceKernels, "e1_norm", 0.0f, ReduceInitType.GivenValue, result, src, dimension)); } else if (value == 2) { var writeTarget = ReductionOp.Invoke(cudaReduceKernels, "e2_norm", 0.0f, ReduceInitType.GivenValue, result, src, dimension); Pow(writeTarget, writeTarget, 0.5f); return(writeTarget); } else { var writeTarget = ReductionOp.Invoke(cudaReduceKernels, "en_norm", 0.0f, ReduceInitType.GivenValue, result, src, dimension, value); Pow(writeTarget, writeTarget, 1.0f / value); return(writeTarget); } }
public NDArray Max(NDArray result, NDArray src, int dimension) { return(ReductionOp.Invoke(cudaReduceKernels, "max", 0.0f, ReduceInitType.MinValue, result, src, dimension)); }
public NDArray Prod(NDArray result, NDArray src, int dimension) { return(ReductionOp.Invoke(cudaReduceKernels, "prod", 1.0f, ReduceInitType.GivenValue, result, src, dimension)); }
public Tensor Max(Tensor result, Tensor src, int dimension) { return(ReductionOp.Invoke(cudaReduceKernels, "max", 0.0f, ReduceInitType.MinValue, result, src, dimension)); }
public Tensor Prod(Tensor result, Tensor src, int dimension) { return(ReductionOp.Invoke(cudaReduceKernels, "prod", 1.0f, ReduceInitType.GivenValue, result, src, dimension)); }