diff --git a/c/c.go b/c/c.go index 500d29fe..fcff0826 100644 --- a/c/c.go +++ b/c/c.go @@ -33,6 +33,7 @@ type ( LongLong = int64 UlongLong = uint64 Float = float32 + Double = float64 Pointer = unsafe.Pointer FilePtr = unsafe.Pointer ) diff --git a/chore/_xtool/pydump/pydump.go b/chore/_xtool/pydump/pydump.go index bf712b0d..ec010384 100644 --- a/chore/_xtool/pydump/pydump.go +++ b/chore/_xtool/pydump/pydump.go @@ -18,9 +18,9 @@ package main import ( "github.com/goplus/llgo/c" + "github.com/goplus/llgo/c/cjson" "github.com/goplus/llgo/py" "github.com/goplus/llgo/py/inspect" - "github.com/goplus/llgo/x/cjson" ) func main() { diff --git a/chore/llpyg/llpyg.go b/chore/llpyg/llpyg.go index 259f2e67..a3f92393 100644 --- a/chore/llpyg/llpyg.go +++ b/chore/llpyg/llpyg.go @@ -38,6 +38,7 @@ type symbol struct { Type string `json:"type"` Doc string `json:"doc"` Sig string `json:"sig"` + URL string `json:"url"` } type module struct { @@ -45,6 +46,35 @@ type module struct { Items []*symbol `json:"items"` } +func pydump(pyLib string) (mod module) { + var out bytes.Buffer + cmd := exec.Command("pydump", pyLib) + cmd.Stdout = &out + cmd.Stderr = os.Stderr + err := cmd.Run() + if err != nil { + panic(err) + } + + json.Unmarshal(out.Bytes(), &mod) + return +} + +func pysigfetch(pyLib string, names []string) (mod module) { + var out bytes.Buffer + cmd := exec.Command("pysigfetch", pyLib, "-") + cmd.Stdin = strings.NewReader(strings.Join(names, " ")) + cmd.Stdout = &out + cmd.Stderr = os.Stderr + err := cmd.Run() + if err != nil { + panic(err) + } + + json.Unmarshal(out.Bytes(), &mod) + return +} + func main() { if len(os.Args) < 2 { fmt.Fprintln(os.Stderr, "Usage: llpyg ") @@ -52,25 +82,17 @@ func main() { } pyLib := os.Args[1] - var out bytes.Buffer - pydump := exec.Command("pydump", pyLib) - pydump.Stdout = &out - pydump.Run() - - var mod module - json.Unmarshal(out.Bytes(), &mod) - - modName := mod.Name - if modName == "" { + mod := pydump(pyLib) + if mod.Name != pyLib { log.Printf("import module %s failed\n", pyLib) os.Exit(1) } - pkg := gogen.NewPackage("", modName, nil) + pkg := gogen.NewPackage("", pyLib, nil) pkg.Import("unsafe").MarkForceUsed(pkg) // import _ "unsafe" py := pkg.Import("github.com/goplus/llgo/py") // import "github.com/goplus/llgo/py" f := func(cb *gogen.CodeBuilder) int { - cb.Val("py." + modName) + cb.Val("py." + mod.Name) return 1 } defs := pkg.NewConstDefs(pkg.Types.Scope()) @@ -80,21 +102,18 @@ func main() { objPtr := types.NewPointer(obj) ret := types.NewTuple(pkg.NewParam(0, "", objPtr)) - ctx := &context{pkg, obj, objPtr, ret, py} - for _, sym := range mod.Items { - switch sym.Type { - case "builtin_function_or_method", "function", "ufunc", "method-wrapper": - ctx.genFunc(pkg, sym) - case "str", "float", "bool", "type", "dict", "tuple", "list", "object", "module", - "int", "set", "frozenset", "flags", "bool_", "pybind11_type", "layout", - "memory_format", "qscheme", "dtype", "tensortype": // skip - default: - t := sym.Type - if len(t) > 0 && (t[0] >= 'a' && t[0] <= 'z') && !strings.HasSuffix(t, "_info") { - log.Panicln("unsupport type:", sym.Type) - } + ctx := &context{pkg, obj, objPtr, ret, nil, py} + ctx.genMod(pkg, &mod) + if n := len(ctx.skips); n > 0 { + log.Printf("==> There are %d signatures not found, fetch from doc site\n", n) + mod = pysigfetch(pyLib, ctx.skips) + ctx.skips = ctx.skips[:0] + ctx.genMod(pkg, &mod) + if n := len(ctx.skips); n > 0 { + log.Printf("==> Skip %d symbols:\n%v\n", n, ctx.skips) } } + pkg.WriteTo(os.Stdout) } @@ -103,17 +122,36 @@ type context struct { obj *types.Named objPtr *types.Pointer ret *types.Tuple + skips []string py gogen.PkgRef } +func (ctx *context) genMod(pkg *gogen.Package, mod *module) { + for _, sym := range mod.Items { + switch sym.Type { + case "builtin_function_or_method", "function", "ufunc", "method-wrapper": + ctx.genFunc(pkg, sym) + case "str", "float", "bool", "type", "dict", "tuple", "list", "object", "module", + "int", "set", "frozenset", "flags", "bool_", "pybind11_type", "layout", + "memory_format", "qscheme", "dtype", "tensortype": // skip + case "": // pysigfetch: page not found + ctx.skips = append(ctx.skips, sym.Name) + default: + t := sym.Type + if len(t) > 0 && (t[0] >= 'a' && t[0] <= 'z') && !strings.HasSuffix(t, "_info") { + log.Panicln("unsupport type:", sym.Type) + } + } + } +} + func (ctx *context) genFunc(pkg *gogen.Package, sym *symbol) { name, symSig := sym.Name, sym.Sig if len(name) == 0 || name[0] == '_' { return } if symSig == "" { - // TODO(xsw): don't skip any func - log.Println("skip func:", name, symSig) + ctx.skips = append(ctx.skips, name) return } params, variadic := ctx.genParams(pkg, symSig) @@ -121,7 +159,15 @@ func (ctx *context) genFunc(pkg *gogen.Package, sym *symbol) { sig := types.NewSignatureType(nil, nil, nil, params, ctx.ret, variadic) fn := pkg.NewFuncDecl(token.NoPos, name, sig) list := ctx.genDoc(sym.Doc) - list = append(list, emptyCommentLine) + if sym.URL != "" { + if len(list) > 0 { + list = append(list, emptyCommentLine) + } + list = append(list, genSee(sym.URL)) + } + if len(list) > 0 { + list = append(list, emptyCommentLine) + } list = append(list, ctx.genLinkname(name, sym)) fn.SetComments(pkg, &ast.CommentGroup{List: list}) // fn.BodyStart(pkg).End() @@ -140,7 +186,7 @@ func (ctx *context) genParams(pkg *gogen.Package, sig string) (*types.Tuple, boo if name == "/" { continue } - if name == "*" { + if name == "*" || name == "\\*" { break } if strings.HasPrefix(name, "*") { @@ -167,7 +213,7 @@ func genName(name string, idxDontTitle int) string { } name = strings.Join(parts, "") switch name { - case "default", "func", "": + case "default", "func", "var", "": name += "_" } return name @@ -178,14 +224,21 @@ func (ctx *context) genLinkname(name string, sym *symbol) *ast.Comment { } func (ctx *context) genDoc(doc string) []*ast.Comment { + if doc == "" { + return make([]*ast.Comment, 0, 4) + } lines := strings.Split(doc, "\n") - list := make([]*ast.Comment, len(lines), len(lines)+2) + list := make([]*ast.Comment, len(lines), len(lines)+4) for i, line := range lines { list[i] = &ast.Comment{Text: "// " + line} } return list } +func genSee(url string) *ast.Comment { + return &ast.Comment{Text: "// See " + url} +} + var ( emptyCommentLine = &ast.Comment{Text: "//"} ) diff --git a/py/torch/doc.txt b/py/torch/doc.txt index 7abc2472..2c2f73ac 100644 --- a/py/torch/doc.txt +++ b/py/torch/doc.txt @@ -1,667 +1,2 @@ -2024/05/17 21:44:13 skip func: classproperty -2024/05/17 21:44:13 skip func: get_file_path -2024/05/17 21:44:13 skip func: prepare_multiprocessing_environment -2024/05/17 21:44:13 skip func: get_num_threads -2024/05/17 21:44:13 skip func: set_num_threads -2024/05/17 21:44:13 skip func: get_num_interop_threads -2024/05/17 21:44:13 skip func: set_num_interop_threads -2024/05/17 21:44:13 skip func: set_flush_denormal -2024/05/17 21:44:13 skip func: get_default_dtype -2024/05/17 21:44:13 skip func: is_grad_enabled -2024/05/17 21:44:13 skip func: is_inference_mode_enabled -2024/05/17 21:44:13 skip func: set_autocast_enabled -2024/05/17 21:44:13 skip func: is_autocast_enabled -2024/05/17 21:44:13 skip func: clear_autocast_cache -2024/05/17 21:44:13 skip func: set_autocast_cpu_enabled -2024/05/17 21:44:13 skip func: is_autocast_cpu_enabled -2024/05/17 21:44:13 skip func: set_autocast_cpu_dtype -2024/05/17 21:44:13 skip func: get_autocast_cpu_dtype -2024/05/17 21:44:13 skip func: set_autocast_gpu_dtype -2024/05/17 21:44:13 skip func: get_autocast_gpu_dtype -2024/05/17 21:44:13 skip func: set_autocast_xla_enabled -2024/05/17 21:44:13 skip func: is_autocast_xla_enabled -2024/05/17 21:44:13 skip func: set_autocast_xla_dtype -2024/05/17 21:44:13 skip func: get_autocast_xla_dtype -2024/05/17 21:44:13 skip func: set_autocast_ipu_enabled -2024/05/17 21:44:13 skip func: is_autocast_ipu_enabled -2024/05/17 21:44:13 skip func: set_autocast_ipu_dtype -2024/05/17 21:44:13 skip func: get_autocast_ipu_dtype -2024/05/17 21:44:13 skip func: autocast_increment_nesting -2024/05/17 21:44:13 skip func: autocast_decrement_nesting -2024/05/17 21:44:13 skip func: is_autocast_cache_enabled -2024/05/17 21:44:13 skip func: set_autocast_cache_enabled -2024/05/17 21:44:13 skip func: set_anomaly_enabled -2024/05/17 21:44:13 skip func: is_anomaly_enabled -2024/05/17 21:44:13 skip func: is_anomaly_check_nan_enabled -2024/05/17 21:44:13 skip func: parse_ir -2024/05/17 21:44:13 skip func: parse_schema -2024/05/17 21:44:13 skip func: unify_type_list -2024/05/17 21:44:13 skip func: fork -2024/05/17 21:44:13 skip func: wait -2024/05/17 21:44:13 skip func: parse_type_comment -2024/05/17 21:44:13 skip func: merge_type_from_type_comment -2024/05/17 21:44:13 skip func: import_ir_module -2024/05/17 21:44:13 skip func: import_ir_module_from_buffer -2024/05/17 21:44:13 skip func: vitals_enabled -2024/05/17 21:44:13 skip func: set_vital -2024/05/17 21:44:13 skip func: read_vitals -2024/05/17 21:44:13 skip func: init_num_threads -2024/05/17 21:44:13 skip func: sym_sqrt -2024/05/17 21:44:13 skip func: sym_ite -2024/05/17 21:44:13 skip func: obj -2024/05/17 21:44:13 skip func: candidate -2024/05/17 21:44:13 skip func: typename -2024/05/17 21:44:13 skip func: abs -2024/05/17 21:44:13 skip func: abs_ -2024/05/17 21:44:13 skip func: absolute -2024/05/17 21:44:13 skip func: acos -2024/05/17 21:44:13 skip func: acos_ -2024/05/17 21:44:13 skip func: acosh -2024/05/17 21:44:13 skip func: acosh_ -2024/05/17 21:44:13 skip func: adaptive_avg_pool1d -2024/05/17 21:44:13 skip func: adaptive_max_pool1d -2024/05/17 21:44:13 skip func: add -2024/05/17 21:44:13 skip func: addbmm -2024/05/17 21:44:13 skip func: addcdiv -2024/05/17 21:44:13 skip func: addcmul -2024/05/17 21:44:13 skip func: addmm -2024/05/17 21:44:13 skip func: addmv -2024/05/17 21:44:13 skip func: addmv_ -2024/05/17 21:44:13 skip func: addr -2024/05/17 21:44:13 skip func: adjoint -2024/05/17 21:44:13 skip func: affine_grid_generator -2024/05/17 21:44:13 skip func: alias_copy -2024/05/17 21:44:13 skip func: align_tensors -2024/05/17 21:44:13 skip func: all -2024/05/17 21:44:13 skip func: allclose -2024/05/17 21:44:13 skip func: alpha_dropout -2024/05/17 21:44:13 skip func: alpha_dropout_ -2024/05/17 21:44:13 skip func: amax -2024/05/17 21:44:13 skip func: amin -2024/05/17 21:44:13 skip func: aminmax -2024/05/17 21:44:13 skip func: angle -2024/05/17 21:44:13 skip func: any -2024/05/17 21:44:13 skip func: arange -2024/05/17 21:44:13 skip func: arccos -2024/05/17 21:44:13 skip func: arccos_ -2024/05/17 21:44:13 skip func: arccosh -2024/05/17 21:44:13 skip func: arccosh_ -2024/05/17 21:44:13 skip func: arcsin -2024/05/17 21:44:13 skip func: arcsin_ -2024/05/17 21:44:13 skip func: arcsinh -2024/05/17 21:44:13 skip func: arcsinh_ -2024/05/17 21:44:13 skip func: arctan -2024/05/17 21:44:13 skip func: arctan2 -2024/05/17 21:44:13 skip func: arctan_ -2024/05/17 21:44:13 skip func: arctanh -2024/05/17 21:44:13 skip func: arctanh_ -2024/05/17 21:44:13 skip func: argmax -2024/05/17 21:44:13 skip func: argmin -2024/05/17 21:44:13 skip func: argsort -2024/05/17 21:44:13 skip func: argwhere -2024/05/17 21:44:13 skip func: as_strided -2024/05/17 21:44:13 skip func: as_strided_ -2024/05/17 21:44:13 skip func: as_strided_copy -2024/05/17 21:44:13 skip func: as_strided_scatter -2024/05/17 21:44:13 skip func: as_tensor -2024/05/17 21:44:13 skip func: asarray -2024/05/17 21:44:13 skip func: asin -2024/05/17 21:44:13 skip func: asin_ -2024/05/17 21:44:13 skip func: asinh -2024/05/17 21:44:13 skip func: asinh_ -2024/05/17 21:44:13 skip func: atan -2024/05/17 21:44:13 skip func: atan2 -2024/05/17 21:44:13 skip func: atan_ -2024/05/17 21:44:13 skip func: atanh -2024/05/17 21:44:13 skip func: atanh_ -2024/05/17 21:44:13 skip func: avg_pool1d -2024/05/17 21:44:13 skip func: baddbmm -2024/05/17 21:44:13 skip func: bartlett_window -2024/05/17 21:44:13 skip func: batch_norm -2024/05/17 21:44:13 skip func: batch_norm_backward_elemt -2024/05/17 21:44:13 skip func: batch_norm_backward_reduce -2024/05/17 21:44:13 skip func: batch_norm_elemt -2024/05/17 21:44:13 skip func: batch_norm_gather_stats -2024/05/17 21:44:13 skip func: batch_norm_gather_stats_with_counts -2024/05/17 21:44:13 skip func: batch_norm_stats -2024/05/17 21:44:13 skip func: batch_norm_update_stats -2024/05/17 21:44:13 skip func: bernoulli -2024/05/17 21:44:13 skip func: bilinear -2024/05/17 21:44:13 skip func: binary_cross_entropy_with_logits -2024/05/17 21:44:13 skip func: bincount -2024/05/17 21:44:13 skip func: binomial -2024/05/17 21:44:13 skip func: bitwise_and -2024/05/17 21:44:13 skip func: bitwise_left_shift -2024/05/17 21:44:13 skip func: bitwise_not -2024/05/17 21:44:13 skip func: bitwise_or -2024/05/17 21:44:13 skip func: bitwise_right_shift -2024/05/17 21:44:13 skip func: bitwise_xor -2024/05/17 21:44:13 skip func: blackman_window -2024/05/17 21:44:13 skip func: bmm -2024/05/17 21:44:13 skip func: broadcast_to -2024/05/17 21:44:13 skip func: bucketize -2024/05/17 21:44:13 skip func: can_cast -2024/05/17 21:44:13 skip func: cat -2024/05/17 21:44:13 skip func: ccol_indices_copy -2024/05/17 21:44:13 skip func: ceil -2024/05/17 21:44:13 skip func: ceil_ -2024/05/17 21:44:13 skip func: celu -2024/05/17 21:44:13 skip func: celu_ -2024/05/17 21:44:13 skip func: channel_shuffle -2024/05/17 21:44:13 skip func: cholesky -2024/05/17 21:44:13 skip func: cholesky_inverse -2024/05/17 21:44:13 skip func: cholesky_solve -2024/05/17 21:44:13 skip func: choose_qparams_optimized -2024/05/17 21:44:13 skip func: chunk -2024/05/17 21:44:13 skip func: clamp -2024/05/17 21:44:13 skip func: clamp_ -2024/05/17 21:44:13 skip func: clamp_max -2024/05/17 21:44:13 skip func: clamp_max_ -2024/05/17 21:44:13 skip func: clamp_min -2024/05/17 21:44:13 skip func: clamp_min_ -2024/05/17 21:44:13 skip func: clip -2024/05/17 21:44:13 skip func: clip_ -2024/05/17 21:44:13 skip func: clone -2024/05/17 21:44:13 skip func: col_indices_copy -2024/05/17 21:44:13 skip func: column_stack -2024/05/17 21:44:13 skip func: combinations -2024/05/17 21:44:13 skip func: complex -2024/05/17 21:44:13 skip func: concat -2024/05/17 21:44:13 skip func: concatenate -2024/05/17 21:44:13 skip func: conj -2024/05/17 21:44:13 skip func: conj_physical -2024/05/17 21:44:13 skip func: conj_physical_ -2024/05/17 21:44:13 skip func: constant_pad_nd -2024/05/17 21:44:13 skip func: conv1d -2024/05/17 21:44:13 skip func: conv2d -2024/05/17 21:44:13 skip func: conv3d -2024/05/17 21:44:13 skip func: conv_tbc -2024/05/17 21:44:13 skip func: conv_transpose1d -2024/05/17 21:44:13 skip func: conv_transpose2d -2024/05/17 21:44:13 skip func: conv_transpose3d -2024/05/17 21:44:13 skip func: convolution -2024/05/17 21:44:13 skip func: copysign -2024/05/17 21:44:13 skip func: corrcoef -2024/05/17 21:44:13 skip func: cos -2024/05/17 21:44:13 skip func: cos_ -2024/05/17 21:44:13 skip func: cosh -2024/05/17 21:44:13 skip func: cosh_ -2024/05/17 21:44:13 skip func: cosine_embedding_loss -2024/05/17 21:44:13 skip func: cosine_similarity -2024/05/17 21:44:13 skip func: count_nonzero -2024/05/17 21:44:13 skip func: cov -2024/05/17 21:44:13 skip func: cross -2024/05/17 21:44:13 skip func: crow_indices_copy -2024/05/17 21:44:13 skip func: ctc_loss -2024/05/17 21:44:13 skip func: cudnn_affine_grid_generator -2024/05/17 21:44:13 skip func: cudnn_batch_norm -2024/05/17 21:44:13 skip func: cudnn_convolution -2024/05/17 21:44:13 skip func: cudnn_convolution_add_relu -2024/05/17 21:44:13 skip func: cudnn_convolution_relu -2024/05/17 21:44:13 skip func: cudnn_convolution_transpose -2024/05/17 21:44:13 skip func: cudnn_grid_sampler -2024/05/17 21:44:13 skip func: cudnn_is_acceptable -2024/05/17 21:44:13 skip func: cummax -2024/05/17 21:44:13 skip func: cummin -2024/05/17 21:44:13 skip func: cumprod -2024/05/17 21:44:13 skip func: cumsum -2024/05/17 21:44:13 skip func: cumulative_trapezoid -2024/05/17 21:44:13 skip func: deg2rad -2024/05/17 21:44:13 skip func: deg2rad_ -2024/05/17 21:44:13 skip func: dequantize -2024/05/17 21:44:13 skip func: det -2024/05/17 21:44:13 skip func: detach -2024/05/17 21:44:13 skip func: detach_ -2024/05/17 21:44:13 skip func: detach_copy -2024/05/17 21:44:13 skip func: diag -2024/05/17 21:44:13 skip func: diag_embed -2024/05/17 21:44:13 skip func: diagflat -2024/05/17 21:44:13 skip func: diagonal -2024/05/17 21:44:13 skip func: diagonal_copy -2024/05/17 21:44:13 skip func: diagonal_scatter -2024/05/17 21:44:13 skip func: diff -2024/05/17 21:44:13 skip func: digamma -2024/05/17 21:44:13 skip func: dist -2024/05/17 21:44:13 skip func: div -2024/05/17 21:44:13 skip func: divide -2024/05/17 21:44:13 skip func: dot -2024/05/17 21:44:13 skip func: dropout -2024/05/17 21:44:13 skip func: dropout_ -2024/05/17 21:44:13 skip func: dsmm -2024/05/17 21:44:13 skip func: dsplit -2024/05/17 21:44:13 skip func: dstack -2024/05/17 21:44:13 skip func: embedding -2024/05/17 21:44:13 skip func: embedding_bag -2024/05/17 21:44:13 skip func: embedding_renorm_ -2024/05/17 21:44:13 skip func: empty -2024/05/17 21:44:13 skip func: empty_like -2024/05/17 21:44:13 skip func: empty_permuted -2024/05/17 21:44:13 skip func: empty_quantized -2024/05/17 21:44:13 skip func: empty_strided -2024/05/17 21:44:13 skip func: eq -2024/05/17 21:44:13 skip func: equal -2024/05/17 21:44:13 skip func: erf -2024/05/17 21:44:13 skip func: erf_ -2024/05/17 21:44:13 skip func: erfc -2024/05/17 21:44:13 skip func: erfc_ -2024/05/17 21:44:13 skip func: erfinv -2024/05/17 21:44:13 skip func: exp -2024/05/17 21:44:13 skip func: exp2 -2024/05/17 21:44:13 skip func: exp2_ -2024/05/17 21:44:13 skip func: exp_ -2024/05/17 21:44:13 skip func: expand_copy -2024/05/17 21:44:13 skip func: expm1 -2024/05/17 21:44:13 skip func: expm1_ -2024/05/17 21:44:13 skip func: eye -2024/05/17 21:44:13 skip func: fake_quantize_per_channel_affine -2024/05/17 21:44:13 skip func: fake_quantize_per_tensor_affine -2024/05/17 21:44:13 skip func: fbgemm_linear_fp16_weight -2024/05/17 21:44:13 skip func: fbgemm_linear_fp16_weight_fp32_activation -2024/05/17 21:44:13 skip func: fbgemm_linear_int8_weight -2024/05/17 21:44:13 skip func: fbgemm_linear_int8_weight_fp32_activation -2024/05/17 21:44:13 skip func: fbgemm_linear_quantize_weight -2024/05/17 21:44:13 skip func: fbgemm_pack_gemm_matrix_fp16 -2024/05/17 21:44:13 skip func: fbgemm_pack_quantized_matrix -2024/05/17 21:44:13 skip func: feature_alpha_dropout -2024/05/17 21:44:13 skip func: feature_alpha_dropout_ -2024/05/17 21:44:13 skip func: feature_dropout -2024/05/17 21:44:13 skip func: feature_dropout_ -2024/05/17 21:44:13 skip func: fill -2024/05/17 21:44:13 skip func: fill_ -2024/05/17 21:44:13 skip func: fix -2024/05/17 21:44:13 skip func: fix_ -2024/05/17 21:44:13 skip func: flatten -2024/05/17 21:44:13 skip func: flip -2024/05/17 21:44:13 skip func: fliplr -2024/05/17 21:44:13 skip func: flipud -2024/05/17 21:44:13 skip func: float_power -2024/05/17 21:44:13 skip func: floor -2024/05/17 21:44:13 skip func: floor_ -2024/05/17 21:44:13 skip func: floor_divide -2024/05/17 21:44:13 skip func: fmax -2024/05/17 21:44:13 skip func: fmin -2024/05/17 21:44:13 skip func: fmod -2024/05/17 21:44:13 skip func: frac -2024/05/17 21:44:13 skip func: frac_ -2024/05/17 21:44:13 skip func: frexp -2024/05/17 21:44:13 skip func: frobenius_norm -2024/05/17 21:44:13 skip func: from_file -2024/05/17 21:44:13 skip func: from_numpy -2024/05/17 21:44:13 skip func: frombuffer -2024/05/17 21:44:13 skip func: full -2024/05/17 21:44:13 skip func: full_like -2024/05/17 21:44:13 skip func: fused_moving_avg_obs_fake_quant -2024/05/17 21:44:13 skip func: gather -2024/05/17 21:44:13 skip func: gcd -2024/05/17 21:44:13 skip func: gcd_ -2024/05/17 21:44:13 skip func: ge -2024/05/17 21:44:13 skip func: geqrf -2024/05/17 21:44:13 skip func: ger -2024/05/17 21:44:13 skip func: get_device -2024/05/17 21:44:13 skip func: gradient -2024/05/17 21:44:13 skip func: greater -2024/05/17 21:44:13 skip func: greater_equal -2024/05/17 21:44:13 skip func: grid_sampler -2024/05/17 21:44:13 skip func: grid_sampler_2d -2024/05/17 21:44:13 skip func: grid_sampler_3d -2024/05/17 21:44:13 skip func: group_norm -2024/05/17 21:44:13 skip func: gru -2024/05/17 21:44:13 skip func: gru_cell -2024/05/17 21:44:13 skip func: gt -2024/05/17 21:44:13 skip func: hamming_window -2024/05/17 21:44:13 skip func: hann_window -2024/05/17 21:44:13 skip func: hardshrink -2024/05/17 21:44:13 skip func: heaviside -2024/05/17 21:44:13 skip func: hinge_embedding_loss -2024/05/17 21:44:13 skip func: histc -2024/05/17 21:44:13 skip func: histogram -2024/05/17 21:44:13 skip func: histogramdd -2024/05/17 21:44:13 skip func: hsmm -2024/05/17 21:44:13 skip func: hsplit -2024/05/17 21:44:13 skip func: hspmm -2024/05/17 21:44:13 skip func: hstack -2024/05/17 21:44:13 skip func: hypot -2024/05/17 21:44:13 skip func: i0 -2024/05/17 21:44:13 skip func: i0_ -2024/05/17 21:44:13 skip func: igamma -2024/05/17 21:44:13 skip func: igammac -2024/05/17 21:44:13 skip func: imag -2024/05/17 21:44:13 skip func: index_add -2024/05/17 21:44:13 skip func: index_copy -2024/05/17 21:44:13 skip func: index_fill -2024/05/17 21:44:13 skip func: index_put -2024/05/17 21:44:13 skip func: index_put_ -2024/05/17 21:44:13 skip func: index_reduce -2024/05/17 21:44:13 skip func: index_select -2024/05/17 21:44:13 skip func: indices_copy -2024/05/17 21:44:13 skip func: inner -2024/05/17 21:44:13 skip func: instance_norm -2024/05/17 21:44:13 skip func: int_repr -2024/05/17 21:44:13 skip func: inverse -2024/05/17 21:44:13 skip func: is_complex -2024/05/17 21:44:13 skip func: is_conj -2024/05/17 21:44:13 skip func: is_distributed -2024/05/17 21:44:13 skip func: is_floating_point -2024/05/17 21:44:13 skip func: is_inference -2024/05/17 21:44:13 skip func: is_neg -2024/05/17 21:44:13 skip func: is_nonzero -2024/05/17 21:44:13 skip func: is_same_size -2024/05/17 21:44:13 skip func: is_signed -2024/05/17 21:44:13 skip func: is_vulkan_available -2024/05/17 21:44:13 skip func: isclose -2024/05/17 21:44:13 skip func: isfinite -2024/05/17 21:44:13 skip func: isin -2024/05/17 21:44:13 skip func: isinf -2024/05/17 21:44:13 skip func: isnan -2024/05/17 21:44:13 skip func: isneginf -2024/05/17 21:44:13 skip func: isposinf -2024/05/17 21:44:13 skip func: isreal -2024/05/17 21:44:13 skip func: istft -2024/05/17 21:44:13 skip func: kaiser_window -2024/05/17 21:44:13 skip func: kl_div -2024/05/17 21:44:13 skip func: kron -2024/05/17 21:44:13 skip func: kthvalue -2024/05/17 21:44:13 skip func: layer_norm -2024/05/17 21:44:13 skip func: lcm -2024/05/17 21:44:13 skip func: lcm_ -2024/05/17 21:44:13 skip func: ldexp -2024/05/17 21:44:13 skip func: ldexp_ -2024/05/17 21:44:13 skip func: le -2024/05/17 21:44:13 skip func: lerp -2024/05/17 21:44:13 skip func: less -2024/05/17 21:44:13 skip func: less_equal -2024/05/17 21:44:13 skip func: lgamma -2024/05/17 21:44:13 skip func: linspace -2024/05/17 21:44:13 skip func: log -2024/05/17 21:44:13 skip func: log10 -2024/05/17 21:44:13 skip func: log10_ -2024/05/17 21:44:13 skip func: log1p -2024/05/17 21:44:13 skip func: log1p_ -2024/05/17 21:44:13 skip func: log2 -2024/05/17 21:44:13 skip func: log2_ -2024/05/17 21:44:13 skip func: log_ -2024/05/17 21:44:13 skip func: log_softmax -2024/05/17 21:44:13 skip func: logaddexp -2024/05/17 21:44:13 skip func: logaddexp2 -2024/05/17 21:44:13 skip func: logcumsumexp -2024/05/17 21:44:13 skip func: logdet -2024/05/17 21:44:13 skip func: logical_and -2024/05/17 21:44:13 skip func: logical_not -2024/05/17 21:44:13 skip func: logical_or -2024/05/17 21:44:13 skip func: logical_xor -2024/05/17 21:44:13 skip func: logit -2024/05/17 21:44:13 skip func: logit_ -2024/05/17 21:44:13 skip func: logspace -2024/05/17 21:44:13 skip func: logsumexp -2024/05/17 21:44:13 skip func: lstm -2024/05/17 21:44:13 skip func: lstm_cell -2024/05/17 21:44:13 skip func: lt -2024/05/17 21:44:13 skip func: lu_solve -2024/05/17 21:44:13 skip func: lu_unpack -2024/05/17 21:44:13 skip func: margin_ranking_loss -2024/05/17 21:44:13 skip func: masked_fill -2024/05/17 21:44:13 skip func: masked_scatter -2024/05/17 21:44:13 skip func: masked_select -2024/05/17 21:44:13 skip func: matmul -2024/05/17 21:44:13 skip func: matrix_exp -2024/05/17 21:44:13 skip func: matrix_power -2024/05/17 21:44:13 skip func: max -2024/05/17 21:44:13 skip func: max_pool1d -2024/05/17 21:44:13 skip func: max_pool1d_with_indices -2024/05/17 21:44:13 skip func: max_pool2d -2024/05/17 21:44:13 skip func: max_pool3d -2024/05/17 21:44:13 skip func: maximum -2024/05/17 21:44:13 skip func: mean -2024/05/17 21:44:13 skip func: median -2024/05/17 21:44:13 skip func: min -2024/05/17 21:44:13 skip func: minimum -2024/05/17 21:44:13 skip func: miopen_batch_norm -2024/05/17 21:44:13 skip func: miopen_convolution -2024/05/17 21:44:13 skip func: miopen_convolution_add_relu -2024/05/17 21:44:13 skip func: miopen_convolution_relu -2024/05/17 21:44:13 skip func: miopen_convolution_transpose -2024/05/17 21:44:13 skip func: miopen_depthwise_convolution -2024/05/17 21:44:13 skip func: miopen_rnn -2024/05/17 21:44:13 skip func: mkldnn_adaptive_avg_pool2d -2024/05/17 21:44:13 skip func: mkldnn_convolution -2024/05/17 21:44:13 skip func: mkldnn_linear_backward_weights -2024/05/17 21:44:13 skip func: mkldnn_max_pool2d -2024/05/17 21:44:13 skip func: mkldnn_max_pool3d -2024/05/17 21:44:13 skip func: mkldnn_rnn_layer -2024/05/17 21:44:13 skip func: mm -2024/05/17 21:44:13 skip func: mode -2024/05/17 21:44:13 skip func: moveaxis -2024/05/17 21:44:13 skip func: movedim -2024/05/17 21:44:13 skip func: msort -2024/05/17 21:44:13 skip func: mul -2024/05/17 21:44:13 skip func: multinomial -2024/05/17 21:44:13 skip func: multiply -2024/05/17 21:44:13 skip func: mv -2024/05/17 21:44:13 skip func: mvlgamma -2024/05/17 21:44:13 skip func: nan_to_num -2024/05/17 21:44:13 skip func: nan_to_num_ -2024/05/17 21:44:13 skip func: nanmean -2024/05/17 21:44:13 skip func: nanmedian -2024/05/17 21:44:13 skip func: nanquantile -2024/05/17 21:44:13 skip func: nansum -2024/05/17 21:44:13 skip func: narrow -2024/05/17 21:44:13 skip func: narrow_copy -2024/05/17 21:44:13 skip func: native_batch_norm -2024/05/17 21:44:13 skip func: native_channel_shuffle -2024/05/17 21:44:13 skip func: native_dropout -2024/05/17 21:44:13 skip func: native_group_norm -2024/05/17 21:44:13 skip func: native_layer_norm -2024/05/17 21:44:13 skip func: native_norm -2024/05/17 21:44:13 skip func: ne -2024/05/17 21:44:13 skip func: neg -2024/05/17 21:44:13 skip func: neg_ -2024/05/17 21:44:13 skip func: negative -2024/05/17 21:44:13 skip func: negative_ -2024/05/17 21:44:13 skip func: nextafter -2024/05/17 21:44:13 skip func: nonzero -2024/05/17 21:44:13 skip func: nonzero_static -2024/05/17 21:44:13 skip func: norm_except_dim -2024/05/17 21:44:13 skip func: normal -2024/05/17 21:44:13 skip func: not_equal -2024/05/17 21:44:13 skip func: nuclear_norm -2024/05/17 21:44:13 skip func: numel -2024/05/17 21:44:13 skip func: ones -2024/05/17 21:44:13 skip func: ones_like -2024/05/17 21:44:13 skip func: orgqr -2024/05/17 21:44:13 skip func: ormqr -2024/05/17 21:44:13 skip func: outer -2024/05/17 21:44:13 skip func: pairwise_distance -2024/05/17 21:44:13 skip func: pdist -2024/05/17 21:44:13 skip func: permute -2024/05/17 21:44:13 skip func: permute_copy -2024/05/17 21:44:13 skip func: pinverse -2024/05/17 21:44:13 skip func: pixel_shuffle -2024/05/17 21:44:13 skip func: pixel_unshuffle -2024/05/17 21:44:13 skip func: poisson -2024/05/17 21:44:13 skip func: poisson_nll_loss -2024/05/17 21:44:13 skip func: polar -2024/05/17 21:44:13 skip func: polygamma -2024/05/17 21:44:13 skip func: positive -2024/05/17 21:44:13 skip func: pow -2024/05/17 21:44:13 skip func: prelu -2024/05/17 21:44:13 skip func: prod -2024/05/17 21:44:13 skip func: promote_types -2024/05/17 21:44:13 skip func: put -2024/05/17 21:44:13 skip func: q_per_channel_axis -2024/05/17 21:44:13 skip func: q_per_channel_scales -2024/05/17 21:44:13 skip func: q_per_channel_zero_points -2024/05/17 21:44:13 skip func: q_scale -2024/05/17 21:44:13 skip func: q_zero_point -2024/05/17 21:44:13 skip func: qr -2024/05/17 21:44:13 skip func: quantile -2024/05/17 21:44:13 skip func: quantize_per_channel -2024/05/17 21:44:13 skip func: quantize_per_tensor -2024/05/17 21:44:13 skip func: quantize_per_tensor_dynamic -2024/05/17 21:44:13 skip func: quantized_batch_norm -2024/05/17 21:44:13 skip func: quantized_gru_cell -2024/05/17 21:44:13 skip func: quantized_lstm_cell -2024/05/17 21:44:13 skip func: quantized_max_pool1d -2024/05/17 21:44:13 skip func: quantized_max_pool2d -2024/05/17 21:44:13 skip func: quantized_max_pool3d -2024/05/17 21:44:13 skip func: quantized_rnn_relu_cell -2024/05/17 21:44:13 skip func: quantized_rnn_tanh_cell -2024/05/17 21:44:13 skip func: rad2deg -2024/05/17 21:44:13 skip func: rad2deg_ -2024/05/17 21:44:13 skip func: rand -2024/05/17 21:44:13 skip func: rand_like -2024/05/17 21:44:13 skip func: randint -2024/05/17 21:44:13 skip func: randint_like -2024/05/17 21:44:13 skip func: randn -2024/05/17 21:44:13 skip func: randn_like -2024/05/17 21:44:13 skip func: randperm -2024/05/17 21:44:13 skip func: range -2024/05/17 21:44:13 skip func: ravel -2024/05/17 21:44:13 skip func: real -2024/05/17 21:44:13 skip func: reciprocal -2024/05/17 21:44:13 skip func: reciprocal_ -2024/05/17 21:44:13 skip func: relu -2024/05/17 21:44:13 skip func: relu_ -2024/05/17 21:44:13 skip func: remainder -2024/05/17 21:44:13 skip func: renorm -2024/05/17 21:44:13 skip func: repeat_interleave -2024/05/17 21:44:13 skip func: reshape -2024/05/17 21:44:13 skip func: resize_as_ -2024/05/17 21:44:13 skip func: resize_as_sparse_ -2024/05/17 21:44:13 skip func: resolve_conj -2024/05/17 21:44:13 skip func: resolve_neg -2024/05/17 21:44:13 skip func: result_type -2024/05/17 21:44:13 skip func: rnn_relu -2024/05/17 21:44:13 skip func: rnn_relu_cell -2024/05/17 21:44:13 skip func: rnn_tanh -2024/05/17 21:44:13 skip func: rnn_tanh_cell -2024/05/17 21:44:13 skip func: roll -2024/05/17 21:44:13 skip func: rot90 -2024/05/17 21:44:13 skip func: round -2024/05/17 21:44:13 skip func: round_ -2024/05/17 21:44:13 skip func: row_indices_copy -2024/05/17 21:44:13 skip func: row_stack -2024/05/17 21:44:13 skip func: rrelu -2024/05/17 21:44:13 skip func: rrelu_ -2024/05/17 21:44:13 skip func: rsqrt -2024/05/17 21:44:13 skip func: rsqrt_ -2024/05/17 21:44:13 skip func: rsub -2024/05/17 21:44:13 skip func: saddmm -2024/05/17 21:44:13 skip func: scalar_tensor -2024/05/17 21:44:13 skip func: scatter -2024/05/17 21:44:13 skip func: scatter_add -2024/05/17 21:44:13 skip func: scatter_reduce -2024/05/17 21:44:13 skip func: searchsorted -2024/05/17 21:44:13 skip func: segment_reduce -2024/05/17 21:44:13 skip func: select -2024/05/17 21:44:13 skip func: select_copy -2024/05/17 21:44:13 skip func: select_scatter -2024/05/17 21:44:13 skip func: selu -2024/05/17 21:44:13 skip func: selu_ -2024/05/17 21:44:13 skip func: sgn -2024/05/17 21:44:13 skip func: sigmoid -2024/05/17 21:44:13 skip func: sigmoid_ -2024/05/17 21:44:13 skip func: sign -2024/05/17 21:44:13 skip func: signbit -2024/05/17 21:44:13 skip func: sin -2024/05/17 21:44:13 skip func: sin_ -2024/05/17 21:44:13 skip func: sinc -2024/05/17 21:44:13 skip func: sinc_ -2024/05/17 21:44:13 skip func: sinh -2024/05/17 21:44:13 skip func: sinh_ -2024/05/17 21:44:13 skip func: slice_copy -2024/05/17 21:44:13 skip func: slice_scatter -2024/05/17 21:44:13 skip func: slogdet -2024/05/17 21:44:13 skip func: smm -2024/05/17 21:44:13 skip func: softmax -2024/05/17 21:44:13 skip func: sort -2024/05/17 21:44:13 skip func: sparse_bsc_tensor -2024/05/17 21:44:13 skip func: sparse_bsr_tensor -2024/05/17 21:44:13 skip func: sparse_compressed_tensor -2024/05/17 21:44:13 skip func: sparse_coo_tensor -2024/05/17 21:44:13 skip func: sparse_csc_tensor -2024/05/17 21:44:13 skip func: sparse_csr_tensor -2024/05/17 21:44:13 skip func: split_copy -2024/05/17 21:44:13 skip func: split_with_sizes -2024/05/17 21:44:13 skip func: split_with_sizes_copy -2024/05/17 21:44:13 skip func: spmm -2024/05/17 21:44:13 skip func: sqrt -2024/05/17 21:44:13 skip func: sqrt_ -2024/05/17 21:44:13 skip func: square -2024/05/17 21:44:13 skip func: square_ -2024/05/17 21:44:13 skip func: squeeze -2024/05/17 21:44:13 skip func: squeeze_copy -2024/05/17 21:44:13 skip func: sspaddmm -2024/05/17 21:44:13 skip func: stack -2024/05/17 21:44:13 skip func: std -2024/05/17 21:44:13 skip func: std_mean -2024/05/17 21:44:13 skip func: sub -2024/05/17 21:44:13 skip func: subtract -2024/05/17 21:44:13 skip func: sum -2024/05/17 21:44:13 skip func: svd -2024/05/17 21:44:13 skip func: swapaxes -2024/05/17 21:44:13 skip func: swapdims -2024/05/17 21:44:13 skip func: sym_constrain_range -2024/05/17 21:44:13 skip func: sym_constrain_range_for_size -2024/05/17 21:44:13 skip func: t -2024/05/17 21:44:13 skip func: t_copy -2024/05/17 21:44:13 skip func: take -2024/05/17 21:44:13 skip func: take_along_dim -2024/05/17 21:44:13 skip func: tan -2024/05/17 21:44:13 skip func: tan_ -2024/05/17 21:44:13 skip func: tanh -2024/05/17 21:44:13 skip func: tanh_ -2024/05/17 21:44:13 skip func: tensor -2024/05/17 21:44:13 skip func: tensor_split -2024/05/17 21:44:13 skip func: threshold -2024/05/17 21:44:13 skip func: threshold_ -2024/05/17 21:44:13 skip func: tile -2024/05/17 21:44:13 skip func: topk -2024/05/17 21:44:13 skip func: trace -2024/05/17 21:44:13 skip func: transpose -2024/05/17 21:44:13 skip func: transpose_copy -2024/05/17 21:44:13 skip func: trapezoid -2024/05/17 21:44:13 skip func: trapz -2024/05/17 21:44:13 skip func: triangular_solve -2024/05/17 21:44:13 skip func: tril -2024/05/17 21:44:13 skip func: tril_indices -2024/05/17 21:44:13 skip func: triplet_margin_loss -2024/05/17 21:44:13 skip func: triu -2024/05/17 21:44:13 skip func: triu_indices -2024/05/17 21:44:13 skip func: true_divide -2024/05/17 21:44:13 skip func: trunc -2024/05/17 21:44:13 skip func: trunc_ -2024/05/17 21:44:13 skip func: unbind -2024/05/17 21:44:13 skip func: unbind_copy -2024/05/17 21:44:13 skip func: unflatten -2024/05/17 21:44:13 skip func: unfold_copy -2024/05/17 21:44:13 skip func: unsafe_chunk -2024/05/17 21:44:13 skip func: unsafe_split -2024/05/17 21:44:13 skip func: unsafe_split_with_sizes -2024/05/17 21:44:13 skip func: unsqueeze -2024/05/17 21:44:13 skip func: unsqueeze_copy -2024/05/17 21:44:13 skip func: values_copy -2024/05/17 21:44:13 skip func: vander -2024/05/17 21:44:13 skip func: var -2024/05/17 21:44:13 skip func: var_mean -2024/05/17 21:44:13 skip func: vdot -2024/05/17 21:44:13 skip func: view_as_complex -2024/05/17 21:44:13 skip func: view_as_complex_copy -2024/05/17 21:44:13 skip func: view_as_real -2024/05/17 21:44:13 skip func: view_as_real_copy -2024/05/17 21:44:13 skip func: view_copy -2024/05/17 21:44:13 skip func: vsplit -2024/05/17 21:44:13 skip func: vstack -2024/05/17 21:44:13 skip func: where -2024/05/17 21:44:13 skip func: xlogy -2024/05/17 21:44:13 skip func: xlogy_ -2024/05/17 21:44:13 skip func: zero_ -2024/05/17 21:44:13 skip func: zeros -2024/05/17 21:44:13 skip func: zeros_like -2024/05/17 21:44:13 skip func: to_dlpack -2024/05/17 21:44:13 skip func: matrix_rank -2024/05/17 21:44:13 skip func: eig -2024/05/17 21:44:13 skip func: solve -2024/05/17 21:44:13 skip func: lstsq -2024/05/17 21:44:13 skip func: symeig -2024/05/17 21:44:13 skip func: compile -2024/05/17 21:44:13 skip func: vmap +==> Skip 303 symbols: +[classproperty get_file_path prepare_multiprocessing_environment set_autocast_enabled is_autocast_enabled clear_autocast_cache set_autocast_cpu_enabled is_autocast_cpu_enabled set_autocast_cpu_dtype get_autocast_cpu_dtype set_autocast_gpu_dtype get_autocast_gpu_dtype set_autocast_xla_enabled is_autocast_xla_enabled set_autocast_xla_dtype get_autocast_xla_dtype set_autocast_ipu_enabled is_autocast_ipu_enabled set_autocast_ipu_dtype get_autocast_ipu_dtype autocast_increment_nesting autocast_decrement_nesting is_autocast_cache_enabled set_autocast_cache_enabled set_anomaly_enabled is_anomaly_enabled is_anomaly_check_nan_enabled parse_ir parse_schema unify_type_list fork wait parse_type_comment merge_type_from_type_comment import_ir_module import_ir_module_from_buffer vitals_enabled set_vital read_vitals init_num_threads sym_sqrt obj candidate typename abs_ acos_ acosh_ adaptive_avg_pool1d adaptive_max_pool1d addmv_ affine_grid_generator alias_copy align_tensors alpha_dropout alpha_dropout_ arccos_ arccosh_ arcsin_ arcsinh_ arctan_ arctanh_ as_strided_ as_strided_copy as_strided_scatter asin_ asinh_ atan_ atanh_ avg_pool1d batch_norm batch_norm_backward_elemt batch_norm_backward_reduce batch_norm_elemt batch_norm_gather_stats batch_norm_gather_stats_with_counts batch_norm_stats batch_norm_update_stats bilinear binary_cross_entropy_with_logits binomial ccol_indices_copy ceil_ celu celu_ channel_shuffle choose_qparams_optimized clamp_ clamp_max clamp_max_ clamp_min clamp_min_ clip_ col_indices_copy conj_physical_ constant_pad_nd conv1d conv2d conv3d conv_tbc conv_transpose1d conv_transpose2d conv_transpose3d convolution cos_ cosh_ cosine_embedding_loss cosine_similarity crow_indices_copy ctc_loss cudnn_affine_grid_generator cudnn_batch_norm cudnn_convolution cudnn_convolution_add_relu cudnn_convolution_relu cudnn_convolution_transpose cudnn_grid_sampler cudnn_is_acceptable deg2rad_ detach detach_ detach_copy diagonal_copy dropout dropout_ dsmm embedding embedding_bag embedding_renorm_ empty_permuted empty_quantized erf_ erfc_ exp2_ exp_ expand_copy expm1_ fbgemm_linear_fp16_weight fbgemm_linear_fp16_weight_fp32_activation fbgemm_linear_int8_weight fbgemm_linear_int8_weight_fp32_activation fbgemm_linear_quantize_weight fbgemm_pack_gemm_matrix_fp16 fbgemm_pack_quantized_matrix feature_alpha_dropout feature_alpha_dropout_ feature_dropout feature_dropout_ fill fill_ fix_ floor_ frac_ frobenius_norm fused_moving_avg_obs_fake_quant gcd_ get_device grid_sampler grid_sampler_2d grid_sampler_3d group_norm gru gru_cell hardshrink hinge_embedding_loss hsmm i0_ index_fill index_put index_put_ indices_copy instance_norm int_repr is_distributed is_inference is_neg is_same_size is_signed is_vulkan_available kl_div layer_norm lcm_ ldexp_ log10_ log1p_ log2_ log_ log_softmax logit_ lstm lstm_cell margin_ranking_loss masked_fill masked_scatter max_pool1d max_pool1d_with_indices max_pool2d max_pool3d miopen_batch_norm miopen_convolution miopen_convolution_add_relu miopen_convolution_relu miopen_convolution_transpose miopen_depthwise_convolution miopen_rnn mkldnn_adaptive_avg_pool2d mkldnn_convolution mkldnn_linear_backward_weights mkldnn_max_pool2d mkldnn_max_pool3d mkldnn_rnn_layer nan_to_num_ native_batch_norm native_channel_shuffle native_dropout native_group_norm native_layer_norm native_norm neg_ negative_ nonzero_static norm_except_dim nuclear_norm pairwise_distance pdist permute_copy pixel_shuffle pixel_unshuffle poisson_nll_loss prelu put q_per_channel_axis q_per_channel_scales q_per_channel_zero_points q_scale q_zero_point quantize_per_tensor_dynamic quantized_gru_cell quantized_lstm_cell quantized_max_pool3d quantized_rnn_relu_cell quantized_rnn_tanh_cell rad2deg_ reciprocal_ relu relu_ resize_as_ resize_as_sparse_ rnn_relu rnn_relu_cell rnn_tanh rnn_tanh_cell round_ row_indices_copy rrelu rrelu_ rsqrt_ rsub saddmm scalar_tensor segment_reduce select_copy selu selu_ sigmoid_ sin_ sinc_ sinh_ slice_copy split_copy split_with_sizes split_with_sizes_copy spmm sqrt_ square_ squeeze_copy sym_constrain_range sym_constrain_range_for_size t_copy tan_ tanh_ threshold threshold_ transpose_copy triplet_margin_loss trunc_ unbind_copy unfold_copy unsafe_chunk unsafe_split unsafe_split_with_sizes unsqueeze_copy values_copy view_as_complex_copy view_as_real_copy view_copy xlogy_ zero_ to_dlpack matrix_rank eig solve lstsq symeig] diff --git a/py/torch/gen.go b/py/torch/gen.go index 48501a79..160002d9 100644 --- a/py/torch/gen.go +++ b/py/torch/gen.go @@ -2172,6 +2172,89 @@ func Lobpcg(A *py.Object, k *py.Object, B *py.Object, X *py.Object, n *py.Object //go:linkname FromDlpack py.from_dlpack func FromDlpack(extTensor *py.Object) *py.Object +// Optimizes given model/function using TorchDynamo and specified backend. +// +// Concretely, for every frame executed within the compiled region, we will attempt +// to compile it and cache the compiled result on the code object for future +// use. A single frame may be compiled multiple times if previous compiled +// results are not applicable for subsequent calls (this is called a "guard +// failure), you can use TORCH_LOGS=guards to debug these situations. +// Multiple compiled results can be associated with a frame up to +// “torch._dynamo.config.cache_size_limit“, which defaults to 64; at which +// point we will fall back to eager. Note that compile caches are per +// *code object*, not frame; if you dynamically create multiple copies of a +// function, they will all share the same code cache. +// +// Args: +// +// model (Callable): Module/function to optimize +// fullgraph (bool): If False (default), torch.compile attempts to discover compileable regions +// in the function that it will optimize. If True, then we require that the entire function be +// capturable into a single graph. If this is not possible (that is, if there are graph breaks), +// then this will raise an error. +// dynamic (bool or None): Use dynamic shape tracing. When this is True, we will up-front attempt +// to generate a kernel that is as dynamic as possible to avoid recompilations when +// sizes change. This may not always work as some operations/optimizations will +// force specialization; use TORCH_LOGS=dynamic to debug overspecialization. +// When this is False, we will NEVER generate dynamic kernels, we will always specialize. +// By default (None), we automatically detect if dynamism has occurred and compile a more +// dynamic kernel upon recompile. +// backend (str or Callable): backend to be used +// +// - "inductor" is the default backend, which is a good balance between performance and overhead +// +// - Non experimental in-tree backends can be seen with `torch._dynamo.list_backends()` +// +// - Experimental or debug in-tree backends can be seen with `torch._dynamo.list_backends(None)` +// +// - To register an out-of-tree custom backend: https://pytorch.org/docs/main/compile/custom-backends.html +// mode (str): Can be either "default", "reduce-overhead", "max-autotune" or "max-autotune-no-cudagraphs" +// +// - "default" is the default mode, which is a good balance between performance and overhead +// +// - "reduce-overhead" is a mode that reduces the overhead of python with CUDA graphs, +// useful for small batches. Reduction of overhead can come at the cost of more memory +// usage, as we will cache the workspace memory required for the invocation so that we +// do not have to reallocate it on subsequent runs. Reduction of overhead is not guaranteed +// to work; today, we only reduce overhead for CUDA only graphs which do not mutate inputs. +// There are other circumstances where CUDA graphs are not applicable; use TORCH_LOG=perf_hints +// to debug. +// +// - "max-autotune" is a mode that leverages Triton based matrix multiplications and convolutions +// It enables CUDA graphs by default. +// +// - "max-autotune-no-cudagraphs" is a mode similar to "max-autotune" but without CUDA graphs +// +// - To see the exact configs that each mode sets you can call `torch._inductor.list_mode_options()` +// +// options (dict): A dictionary of options to pass to the backend. Some notable ones to try out are +// +// - `epilogue_fusion` which fuses pointwise ops into templates. Requires `max_autotune` to also be set +// +// - `max_autotune` which will profile to pick the best matmul configuration +// +// - `fallback_random` which is useful when debugging accuracy issues +// +// - `shape_padding` which pads matrix shapes to better align loads on GPUs especially for tensor cores +// +// - `triton.cudagraphs` which will reduce the overhead of python with CUDA graphs +// +// - `trace.enabled` which is the most useful debugging flag to turn on +// +// - `trace.graph_diagram` which will show you a picture of your graph after fusion +// +// - For inductor you can see the full list of configs that it supports by calling `torch._inductor.list_options()` +// disable (bool): Turn torch.compile() into a no-op for testing +// +// Example:: +// +// @torch.compile(options={"triton.cudagraphs": True}, fullgraph=True) +// def foo(x): +// return torch.sin(x) + torch.cos(x) +// +//go:linkname Compile py.compile +func Compile(model *py.Object) *py.Object + // Conditionally applies `true_fn` or `false_fn`. // // .. warning:: @@ -2244,3 +2327,1818 @@ func FromDlpack(extTensor *py.Object) *py.Object // //go:linkname Cond py.cond func Cond(pred *py.Object, trueFn *py.Object, falseFn *py.Object, operands *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.get_num_threads.html +// +//go:linkname GetNumThreads py.get_num_threads +func GetNumThreads() *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.set_num_threads.html +// +//go:linkname SetNumThreads py.set_num_threads +func SetNumThreads(int *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.get_num_interop_threads.html +// +//go:linkname GetNumInteropThreads py.get_num_interop_threads +func GetNumInteropThreads() *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.set_num_interop_threads.html +// +//go:linkname SetNumInteropThreads py.set_num_interop_threads +func SetNumInteropThreads(int *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.set_flush_denormal.html +// +//go:linkname SetFlushDenormal py.set_flush_denormal +func SetFlushDenormal(mode *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.get_default_dtype.html +// +//go:linkname GetDefaultDtype py.get_default_dtype +func GetDefaultDtype() *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.is_grad_enabled.html +// +//go:linkname IsGradEnabled py.is_grad_enabled +func IsGradEnabled() *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.is_inference_mode_enabled.html +// +//go:linkname IsInferenceModeEnabled py.is_inference_mode_enabled +func IsInferenceModeEnabled() *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.sym_ite.html +// +//go:linkname SymIte py.sym_ite +func SymIte(b *py.Object, t *py.Object, f *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.abs.html +// +//go:linkname Abs py.abs +func Abs(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.absolute.html +// +//go:linkname Absolute py.absolute +func Absolute(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.acos.html +// +//go:linkname Acos py.acos +func Acos(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.acosh.html +// +//go:linkname Acosh py.acosh +func Acosh(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.add.html +// +//go:linkname Add py.add +func Add(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.addbmm.html +// +//go:linkname Addbmm py.addbmm +func Addbmm(input *py.Object, batch1 *py.Object, batch2 *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.addcdiv.html +// +//go:linkname Addcdiv py.addcdiv +func Addcdiv(input *py.Object, tensor1 *py.Object, tensor2 *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.addcmul.html +// +//go:linkname Addcmul py.addcmul +func Addcmul(input *py.Object, tensor1 *py.Object, tensor2 *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.addmm.html +// +//go:linkname Addmm py.addmm +func Addmm(input *py.Object, mat1 *py.Object, mat2 *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.addmv.html +// +//go:linkname Addmv py.addmv +func Addmv(input *py.Object, mat *py.Object, vec *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.addr.html +// +//go:linkname Addr py.addr +func Addr(input *py.Object, vec1 *py.Object, vec2 *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.adjoint.html +// +//go:linkname Adjoint py.adjoint +func Adjoint(Tensor *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.all.html +// +//go:linkname All py.all +func All(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.allclose.html +// +//go:linkname Allclose py.allclose +func Allclose(input *py.Object, other *py.Object, rtol *py.Object, atol *py.Object, equalNan *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.amax.html +// +//go:linkname Amax py.amax +func Amax(input *py.Object, dim *py.Object, keepdim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.amin.html +// +//go:linkname Amin py.amin +func Amin(input *py.Object, dim *py.Object, keepdim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.aminmax.html +// +//go:linkname Aminmax py.aminmax +func Aminmax(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.angle.html +// +//go:linkname Angle py.angle +func Angle(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.any.html +// +//go:linkname Any py.any +func Any(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.arange.html +// +//go:linkname Arange py.arange +func Arange(start *py.Object, end *py.Object, step *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.arccos.html +// +//go:linkname Arccos py.arccos +func Arccos(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.arccosh.html +// +//go:linkname Arccosh py.arccosh +func Arccosh(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.arcsin.html +// +//go:linkname Arcsin py.arcsin +func Arcsin(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.arcsinh.html +// +//go:linkname Arcsinh py.arcsinh +func Arcsinh(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.arctan.html +// +//go:linkname Arctan py.arctan +func Arctan(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.arctan2.html +// +//go:linkname Arctan2 py.arctan2 +func Arctan2(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.arctanh.html +// +//go:linkname Arctanh py.arctanh +func Arctanh(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.argmax.html +// +//go:linkname Argmax py.argmax +func Argmax(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.argmin.html +// +//go:linkname Argmin py.argmin +func Argmin(input *py.Object, dim *py.Object, keepdim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.argsort.html +// +//go:linkname Argsort py.argsort +func Argsort(input *py.Object, dim *py.Object, descending *py.Object, stable *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.argwhere.html +// +//go:linkname Argwhere py.argwhere +func Argwhere(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.as_strided.html +// +//go:linkname AsStrided py.as_strided +func AsStrided(input *py.Object, size *py.Object, stride *py.Object, storageOffset *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.as_tensor.html +// +//go:linkname AsTensor py.as_tensor +func AsTensor(data *py.Object, dtype *py.Object, device *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.asarray.html +// +//go:linkname Asarray py.asarray +func Asarray(obj *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.asin.html +// +//go:linkname Asin py.asin +func Asin(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.asinh.html +// +//go:linkname Asinh py.asinh +func Asinh(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.atan.html +// +//go:linkname Atan py.atan +func Atan(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.atan2.html +// +//go:linkname Atan2 py.atan2 +func Atan2(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.atanh.html +// +//go:linkname Atanh py.atanh +func Atanh(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.baddbmm.html +// +//go:linkname Baddbmm py.baddbmm +func Baddbmm(input *py.Object, batch1 *py.Object, batch2 *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.bartlett_window.html +// +//go:linkname BartlettWindow py.bartlett_window +func BartlettWindow(windowLength *py.Object, periodic *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.bernoulli.html +// +//go:linkname Bernoulli py.bernoulli +func Bernoulli(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.bincount.html +// +//go:linkname Bincount py.bincount +func Bincount(input *py.Object, weights *py.Object, minlength *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.bitwise_and.html +// +//go:linkname BitwiseAnd py.bitwise_and +func BitwiseAnd(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.bitwise_left_shift.html +// +//go:linkname BitwiseLeftShift py.bitwise_left_shift +func BitwiseLeftShift(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.bitwise_not.html +// +//go:linkname BitwiseNot py.bitwise_not +func BitwiseNot(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.bitwise_or.html +// +//go:linkname BitwiseOr py.bitwise_or +func BitwiseOr(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.bitwise_right_shift.html +// +//go:linkname BitwiseRightShift py.bitwise_right_shift +func BitwiseRightShift(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.bitwise_xor.html +// +//go:linkname BitwiseXor py.bitwise_xor +func BitwiseXor(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.blackman_window.html +// +//go:linkname BlackmanWindow py.blackman_window +func BlackmanWindow(windowLength *py.Object, periodic *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.bmm.html +// +//go:linkname Bmm py.bmm +func Bmm(input *py.Object, mat2 *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.broadcast_to.html +// +//go:linkname BroadcastTo py.broadcast_to +func BroadcastTo(input *py.Object, shape *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.bucketize.html +// +//go:linkname Bucketize py.bucketize +func Bucketize(input *py.Object, boundaries *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.can_cast.html +// +//go:linkname CanCast py.can_cast +func CanCast(from *py.Object, to *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.cat.html +// +//go:linkname Cat py.cat +func Cat(tensors *py.Object, dim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.ceil.html +// +//go:linkname Ceil py.ceil +func Ceil(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.cholesky.html +// +//go:linkname Cholesky py.cholesky +func Cholesky(input *py.Object, upper *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.cholesky_inverse.html +// +//go:linkname CholeskyInverse py.cholesky_inverse +func CholeskyInverse(L *py.Object, upper *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.cholesky_solve.html +// +//go:linkname CholeskySolve py.cholesky_solve +func CholeskySolve(B *py.Object, L *py.Object, upper *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.chunk.html +// +//go:linkname Chunk py.chunk +func Chunk(input *py.Object, chunks *py.Object, dim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.clamp.html +// +//go:linkname Clamp py.clamp +func Clamp(input *py.Object, min *py.Object, max *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.clip.html +// +//go:linkname Clip py.clip +func Clip(input *py.Object, min *py.Object, max *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.clone.html +// +//go:linkname Clone py.clone +func Clone(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.column_stack.html +// +//go:linkname ColumnStack py.column_stack +func ColumnStack(tensors *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.combinations.html +// +//go:linkname Combinations py.combinations +func Combinations(input *py.Object, r *py.Object, withReplacement *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.complex.html +// +//go:linkname Complex py.complex +func Complex(real *py.Object, imag *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.concat.html +// +//go:linkname Concat py.concat +func Concat(tensors *py.Object, dim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.concatenate.html +// +//go:linkname Concatenate py.concatenate +func Concatenate(tensors *py.Object, axis *py.Object, out *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.conj.html +// +//go:linkname Conj py.conj +func Conj(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.conj_physical.html +// +//go:linkname ConjPhysical py.conj_physical +func ConjPhysical(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.copysign.html +// +//go:linkname Copysign py.copysign +func Copysign(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.corrcoef.html +// +//go:linkname Corrcoef py.corrcoef +func Corrcoef(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.cos.html +// +//go:linkname Cos py.cos +func Cos(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.cosh.html +// +//go:linkname Cosh py.cosh +func Cosh(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.count_nonzero.html +// +//go:linkname CountNonzero py.count_nonzero +func CountNonzero(input *py.Object, dim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.cov.html +// +//go:linkname Cov py.cov +func Cov(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.cross.html +// +//go:linkname Cross py.cross +func Cross(input *py.Object, other *py.Object, dim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.cummax.html +// +//go:linkname Cummax py.cummax +func Cummax(input *py.Object, dim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.cummin.html +// +//go:linkname Cummin py.cummin +func Cummin(input *py.Object, dim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.cumprod.html +// +//go:linkname Cumprod py.cumprod +func Cumprod(input *py.Object, dim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.cumsum.html +// +//go:linkname Cumsum py.cumsum +func Cumsum(input *py.Object, dim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.cumulative_trapezoid.html +// +//go:linkname CumulativeTrapezoid py.cumulative_trapezoid +func CumulativeTrapezoid(y *py.Object, x *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.deg2rad.html +// +//go:linkname Deg2rad py.deg2rad +func Deg2rad(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.dequantize.html +// +//go:linkname Dequantize py.dequantize +func Dequantize(tensor *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.det.html +// +//go:linkname Det py.det +func Det(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.diag.html +// +//go:linkname Diag py.diag +func Diag(input *py.Object, diagonal *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.diag_embed.html +// +//go:linkname DiagEmbed py.diag_embed +func DiagEmbed(input *py.Object, offset *py.Object, dim1 *py.Object, dim2 *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.diagflat.html +// +//go:linkname Diagflat py.diagflat +func Diagflat(input *py.Object, offset *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.diagonal.html +// +//go:linkname Diagonal py.diagonal +func Diagonal(input *py.Object, offset *py.Object, dim1 *py.Object, dim2 *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.diagonal_scatter.html +// +//go:linkname DiagonalScatter py.diagonal_scatter +func DiagonalScatter(input *py.Object, src *py.Object, offset *py.Object, dim1 *py.Object, dim2 *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.diff.html +// +//go:linkname Diff py.diff +func Diff(input *py.Object, n *py.Object, dim *py.Object, prepend *py.Object, append *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.digamma.html +// +//go:linkname Digamma py.digamma +func Digamma(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.dist.html +// +//go:linkname Dist py.dist +func Dist(input *py.Object, other *py.Object, p *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.div.html +// +//go:linkname Div py.div +func Div(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.divide.html +// +//go:linkname Divide py.divide +func Divide(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.dot.html +// +//go:linkname Dot py.dot +func Dot(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.dsplit.html +// +//go:linkname Dsplit py.dsplit +func Dsplit(input *py.Object, indicesOrSections *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.dstack.html +// +//go:linkname Dstack py.dstack +func Dstack(tensors *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.empty.html +// +//go:linkname Empty py.empty +func Empty(__llgo_va_list ...interface{}) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.empty_like.html +// +//go:linkname EmptyLike py.empty_like +func EmptyLike(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.empty_strided.html +// +//go:linkname EmptyStrided py.empty_strided +func EmptyStrided(size *py.Object, stride *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.eq.html +// +//go:linkname Eq py.eq +func Eq(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.equal.html +// +//go:linkname Equal py.equal +func Equal(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.erf.html +// +//go:linkname Erf py.erf +func Erf(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.erfc.html +// +//go:linkname Erfc py.erfc +func Erfc(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.erfinv.html +// +//go:linkname Erfinv py.erfinv +func Erfinv(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.exp.html +// +//go:linkname Exp py.exp +func Exp(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.exp2.html +// +//go:linkname Exp2 py.exp2 +func Exp2(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.expm1.html +// +//go:linkname Expm1 py.expm1 +func Expm1(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.eye.html +// +//go:linkname Eye py.eye +func Eye(n *py.Object, m *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.fake_quantize_per_channel_affine.html +// +//go:linkname FakeQuantizePerChannelAffine py.fake_quantize_per_channel_affine +func FakeQuantizePerChannelAffine(input *py.Object, scale *py.Object, zeroPoint *py.Object, axis *py.Object, quantMin *py.Object, quantMax *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.fake_quantize_per_tensor_affine.html +// +//go:linkname FakeQuantizePerTensorAffine py.fake_quantize_per_tensor_affine +func FakeQuantizePerTensorAffine(input *py.Object, scale *py.Object, zeroPoint *py.Object, quantMin *py.Object, quantMax *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.fix.html +// +//go:linkname Fix py.fix +func Fix(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.flatten.html +// +//go:linkname Flatten py.flatten +func Flatten(input *py.Object, startDim *py.Object, endDim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.flip.html +// +//go:linkname Flip py.flip +func Flip(input *py.Object, dims *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.fliplr.html +// +//go:linkname Fliplr py.fliplr +func Fliplr(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.flipud.html +// +//go:linkname Flipud py.flipud +func Flipud(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.float_power.html +// +//go:linkname FloatPower py.float_power +func FloatPower(input *py.Object, exponent *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.floor.html +// +//go:linkname Floor py.floor +func Floor(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.floor_divide.html +// +//go:linkname FloorDivide py.floor_divide +func FloorDivide(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.fmax.html +// +//go:linkname Fmax py.fmax +func Fmax(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.fmin.html +// +//go:linkname Fmin py.fmin +func Fmin(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.fmod.html +// +//go:linkname Fmod py.fmod +func Fmod(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.frac.html +// +//go:linkname Frac py.frac +func Frac(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.frexp.html +// +//go:linkname Frexp py.frexp +func Frexp(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.from_file.html +// +//go:linkname FromFile py.from_file +func FromFile(filename *py.Object, shared *py.Object, size *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.from_numpy.html +// +//go:linkname FromNumpy py.from_numpy +func FromNumpy(ndarray *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.frombuffer.html +// +//go:linkname Frombuffer py.frombuffer +func Frombuffer(buffer *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.full.html +// +//go:linkname Full py.full +func Full(size *py.Object, fillValue *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.full_like.html +// +//go:linkname FullLike py.full_like +func FullLike(input *py.Object, fillValue *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.gather.html +// +//go:linkname Gather py.gather +func Gather(input *py.Object, dim *py.Object, index *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.gcd.html +// +//go:linkname Gcd py.gcd +func Gcd(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.ge.html +// +//go:linkname Ge py.ge +func Ge(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.geqrf.html +// +//go:linkname Geqrf py.geqrf +func Geqrf(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.ger.html +// +//go:linkname Ger py.ger +func Ger(input *py.Object, vec2 *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.gradient.html +// +//go:linkname Gradient py.gradient +func Gradient(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.greater.html +// +//go:linkname Greater py.greater +func Greater(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.greater_equal.html +// +//go:linkname GreaterEqual py.greater_equal +func GreaterEqual(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.gt.html +// +//go:linkname Gt py.gt +func Gt(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.hamming_window.html +// +//go:linkname HammingWindow py.hamming_window +func HammingWindow(windowLength *py.Object, periodic *py.Object, alpha *py.Object, beta *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.hann_window.html +// +//go:linkname HannWindow py.hann_window +func HannWindow(windowLength *py.Object, periodic *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.heaviside.html +// +//go:linkname Heaviside py.heaviside +func Heaviside(input *py.Object, values *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.histc.html +// +//go:linkname Histc py.histc +func Histc(input *py.Object, bins *py.Object, min *py.Object, max *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.histogram.html +// +//go:linkname Histogram py.histogram +func Histogram(input *py.Object, bins *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.histogramdd.html +// +//go:linkname Histogramdd py.histogramdd +func Histogramdd(input *py.Object, bins *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.hsplit.html +// +//go:linkname Hsplit py.hsplit +func Hsplit(input *py.Object, indicesOrSections *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.hspmm.html +// +//go:linkname Hspmm py.hspmm +func Hspmm(mat1 *py.Object, mat2 *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.hstack.html +// +//go:linkname Hstack py.hstack +func Hstack(tensors *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.hypot.html +// +//go:linkname Hypot py.hypot +func Hypot(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.i0.html +// +//go:linkname I0 py.i0 +func I0(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.igamma.html +// +//go:linkname Igamma py.igamma +func Igamma(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.igammac.html +// +//go:linkname Igammac py.igammac +func Igammac(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.imag.html +// +//go:linkname Imag py.imag +func Imag(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.index_add.html +// +//go:linkname IndexAdd py.index_add +func IndexAdd(input *py.Object, dim *py.Object, index *py.Object, source *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.index_copy.html +// +//go:linkname IndexCopy py.index_copy +func IndexCopy(input *py.Object, dim *py.Object, index *py.Object, source *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.index_reduce.html +// +//go:linkname IndexReduce py.index_reduce +func IndexReduce(input *py.Object, dim *py.Object, index *py.Object, source *py.Object, reduce *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.index_select.html +// +//go:linkname IndexSelect py.index_select +func IndexSelect(input *py.Object, dim *py.Object, index *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.inner.html +// +//go:linkname Inner py.inner +func Inner(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.inverse.html +// +//go:linkname Inverse py.inverse +func Inverse(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.is_complex.html +// +//go:linkname IsComplex py.is_complex +func IsComplex(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.is_conj.html +// +//go:linkname IsConj py.is_conj +func IsConj(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.is_floating_point.html +// +//go:linkname IsFloatingPoint py.is_floating_point +func IsFloatingPoint(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.is_nonzero.html +// +//go:linkname IsNonzero py.is_nonzero +func IsNonzero(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.isclose.html +// +//go:linkname Isclose py.isclose +func Isclose(input *py.Object, other *py.Object, rtol *py.Object, atol *py.Object, equalNan *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.isfinite.html +// +//go:linkname Isfinite py.isfinite +func Isfinite(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.isin.html +// +//go:linkname Isin py.isin +func Isin(elements *py.Object, testElements *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.isinf.html +// +//go:linkname Isinf py.isinf +func Isinf(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.isnan.html +// +//go:linkname Isnan py.isnan +func Isnan(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.isneginf.html +// +//go:linkname Isneginf py.isneginf +func Isneginf(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.isposinf.html +// +//go:linkname Isposinf py.isposinf +func Isposinf(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.isreal.html +// +//go:linkname Isreal py.isreal +func Isreal(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.istft.html +// +//go:linkname Istft py.istft +func Istft(input *py.Object, nFft *py.Object, hopLength *py.Object, winLength *py.Object, window *py.Object, center *py.Object, normalized *py.Object, onesided *py.Object, length *py.Object, returnComplex *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.kaiser_window.html +// +//go:linkname KaiserWindow py.kaiser_window +func KaiserWindow(windowLength *py.Object, periodic *py.Object, beta *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.kron.html +// +//go:linkname Kron py.kron +func Kron(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.kthvalue.html +// +//go:linkname Kthvalue py.kthvalue +func Kthvalue(input *py.Object, k *py.Object, dim *py.Object, keepdim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.lcm.html +// +//go:linkname Lcm py.lcm +func Lcm(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.ldexp.html +// +//go:linkname Ldexp py.ldexp +func Ldexp(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.le.html +// +//go:linkname Le py.le +func Le(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.lerp.html +// +//go:linkname Lerp py.lerp +func Lerp(input *py.Object, end *py.Object, weight *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.less.html +// +//go:linkname Less py.less +func Less(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.less_equal.html +// +//go:linkname LessEqual py.less_equal +func LessEqual(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.lgamma.html +// +//go:linkname Lgamma py.lgamma +func Lgamma(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.linspace.html +// +//go:linkname Linspace py.linspace +func Linspace(start *py.Object, end *py.Object, steps *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.log.html +// +//go:linkname Log py.log +func Log(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.log10.html +// +//go:linkname Log10 py.log10 +func Log10(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.log1p.html +// +//go:linkname Log1p py.log1p +func Log1p(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.log2.html +// +//go:linkname Log2 py.log2 +func Log2(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.logaddexp.html +// +//go:linkname Logaddexp py.logaddexp +func Logaddexp(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.logaddexp2.html +// +//go:linkname Logaddexp2 py.logaddexp2 +func Logaddexp2(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.logcumsumexp.html +// +//go:linkname Logcumsumexp py.logcumsumexp +func Logcumsumexp(input *py.Object, dim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.logdet.html +// +//go:linkname Logdet py.logdet +func Logdet(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.logical_and.html +// +//go:linkname LogicalAnd py.logical_and +func LogicalAnd(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.logical_not.html +// +//go:linkname LogicalNot py.logical_not +func LogicalNot(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.logical_or.html +// +//go:linkname LogicalOr py.logical_or +func LogicalOr(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.logical_xor.html +// +//go:linkname LogicalXor py.logical_xor +func LogicalXor(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.logit.html +// +//go:linkname Logit py.logit +func Logit(input *py.Object, eps *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.logspace.html +// +//go:linkname Logspace py.logspace +func Logspace(start *py.Object, end *py.Object, steps *py.Object, base *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.logsumexp.html +// +//go:linkname Logsumexp py.logsumexp +func Logsumexp(input *py.Object, dim *py.Object, keepdim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.lt.html +// +//go:linkname Lt py.lt +func Lt(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.lu_solve.html +// +//go:linkname LuSolve py.lu_solve +func LuSolve(b *py.Object, LUData *py.Object, LUPivots *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.lu_unpack.html +// +//go:linkname LuUnpack py.lu_unpack +func LuUnpack(LUData *py.Object, LUPivots *py.Object, unpackData *py.Object, unpackPivots *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.masked_select.html +// +//go:linkname MaskedSelect py.masked_select +func MaskedSelect(input *py.Object, mask *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.matmul.html +// +//go:linkname Matmul py.matmul +func Matmul(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.matrix_exp.html +// +//go:linkname MatrixExp py.matrix_exp +func MatrixExp(A *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.matrix_power.html +// +//go:linkname MatrixPower py.matrix_power +func MatrixPower(input *py.Object, n *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.max.html +// +//go:linkname Max py.max +func Max(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.maximum.html +// +//go:linkname Maximum py.maximum +func Maximum(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.mean.html +// +//go:linkname Mean py.mean +func Mean(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.median.html +// +//go:linkname Median py.median +func Median(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.min.html +// +//go:linkname Min py.min +func Min(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.minimum.html +// +//go:linkname Minimum py.minimum +func Minimum(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.mm.html +// +//go:linkname Mm py.mm +func Mm(input *py.Object, mat2 *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.mode.html +// +//go:linkname Mode py.mode +func Mode(input *py.Object, dim *py.Object, keepdim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.moveaxis.html +// +//go:linkname Moveaxis py.moveaxis +func Moveaxis(input *py.Object, source *py.Object, destination *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.movedim.html +// +//go:linkname Movedim py.movedim +func Movedim(input *py.Object, source *py.Object, destination *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.msort.html +// +//go:linkname Msort py.msort +func Msort(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.mul.html +// +//go:linkname Mul py.mul +func Mul(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.multinomial.html +// +//go:linkname Multinomial py.multinomial +func Multinomial(input *py.Object, numSamples *py.Object, replacement *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.multiply.html +// +//go:linkname Multiply py.multiply +func Multiply(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.mv.html +// +//go:linkname Mv py.mv +func Mv(input *py.Object, vec *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.mvlgamma.html +// +//go:linkname Mvlgamma py.mvlgamma +func Mvlgamma(input *py.Object, p *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.nan_to_num.html +// +//go:linkname NanToNum py.nan_to_num +func NanToNum(input *py.Object, nan *py.Object, posinf *py.Object, neginf *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.nanmean.html +// +//go:linkname Nanmean py.nanmean +func Nanmean(input *py.Object, dim *py.Object, keepdim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.nanmedian.html +// +//go:linkname Nanmedian py.nanmedian +func Nanmedian(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.nanquantile.html +// +//go:linkname Nanquantile py.nanquantile +func Nanquantile(input *py.Object, q *py.Object, dim *py.Object, keepdim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.nansum.html +// +//go:linkname Nansum py.nansum +func Nansum(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.narrow.html +// +//go:linkname Narrow py.narrow +func Narrow(input *py.Object, dim *py.Object, start *py.Object, length *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.narrow_copy.html +// +//go:linkname NarrowCopy py.narrow_copy +func NarrowCopy(input *py.Object, dim *py.Object, start *py.Object, length *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.ne.html +// +//go:linkname Ne py.ne +func Ne(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.neg.html +// +//go:linkname Neg py.neg +func Neg(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.negative.html +// +//go:linkname Negative py.negative +func Negative(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.nextafter.html +// +//go:linkname Nextafter py.nextafter +func Nextafter(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.nonzero.html +// +//go:linkname Nonzero py.nonzero +func Nonzero(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.normal.html +// +//go:linkname Normal py.normal +func Normal(mean *py.Object, std *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.not_equal.html +// +//go:linkname NotEqual py.not_equal +func NotEqual(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.numel.html +// +//go:linkname Numel py.numel +func Numel(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.ones.html +// +//go:linkname Ones py.ones +func Ones(__llgo_va_list ...interface{}) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.ones_like.html +// +//go:linkname OnesLike py.ones_like +func OnesLike(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.orgqr.html +// +//go:linkname Orgqr py.orgqr +func Orgqr(input *py.Object, tau *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.ormqr.html +// +//go:linkname Ormqr py.ormqr +func Ormqr(input *py.Object, tau *py.Object, other *py.Object, left *py.Object, transpose *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.outer.html +// +//go:linkname Outer py.outer +func Outer(input *py.Object, vec2 *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.permute.html +// +//go:linkname Permute py.permute +func Permute(input *py.Object, dims *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.pinverse.html +// +//go:linkname Pinverse py.pinverse +func Pinverse(input *py.Object, rcond *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.poisson.html +// +//go:linkname Poisson py.poisson +func Poisson(input *py.Object, generator *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.polar.html +// +//go:linkname Polar py.polar +func Polar(abs *py.Object, angle *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.polygamma.html +// +//go:linkname Polygamma py.polygamma +func Polygamma(n *py.Object, input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.positive.html +// +//go:linkname Positive py.positive +func Positive(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.pow.html +// +//go:linkname Pow py.pow +func Pow(input *py.Object, exponent *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.prod.html +// +//go:linkname Prod py.prod +func Prod(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.promote_types.html +// +//go:linkname PromoteTypes py.promote_types +func PromoteTypes(type1 *py.Object, type2 *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.qr.html +// +//go:linkname Qr py.qr +func Qr(input *py.Object, some *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.quantile.html +// +//go:linkname Quantile py.quantile +func Quantile(input *py.Object, q *py.Object, dim *py.Object, keepdim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.quantize_per_channel.html +// +//go:linkname QuantizePerChannel py.quantize_per_channel +func QuantizePerChannel(input *py.Object, scales *py.Object, zeroPoints *py.Object, axis *py.Object, dtype *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.quantize_per_tensor.html +// +//go:linkname QuantizePerTensor py.quantize_per_tensor +func QuantizePerTensor(input *py.Object, scale *py.Object, zeroPoint *py.Object, dtype *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.quantized_batch_norm.html +// +//go:linkname QuantizedBatchNorm py.quantized_batch_norm +func QuantizedBatchNorm(input *py.Object, weight *py.Object, bias *py.Object, mean *py.Object, var_ *py.Object, eps *py.Object, outputScale *py.Object, outputZeroPoint *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.quantized_max_pool1d.html +// +//go:linkname QuantizedMaxPool1d py.quantized_max_pool1d +func QuantizedMaxPool1d(input *py.Object, kernelSize *py.Object, stride *py.Object, padding *py.Object, dilation *py.Object, ceilMode *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.quantized_max_pool2d.html +// +//go:linkname QuantizedMaxPool2d py.quantized_max_pool2d +func QuantizedMaxPool2d(input *py.Object, kernelSize *py.Object, stride *py.Object, padding *py.Object, dilation *py.Object, ceilMode *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.rad2deg.html +// +//go:linkname Rad2deg py.rad2deg +func Rad2deg(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.rand.html +// +//go:linkname Rand py.rand +func Rand(__llgo_va_list ...interface{}) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.rand_like.html +// +//go:linkname RandLike py.rand_like +func RandLike(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.randint.html +// +//go:linkname Randint py.randint +func Randint(low *py.Object, high *py.Object, size *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.randint_like.html +// +//go:linkname RandintLike py.randint_like +func RandintLike(input *py.Object, low *py.Object, high *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.randn.html +// +//go:linkname Randn py.randn +func Randn(__llgo_va_list ...interface{}) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.randn_like.html +// +//go:linkname RandnLike py.randn_like +func RandnLike(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.randperm.html +// +//go:linkname Randperm py.randperm +func Randperm(n *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.range.html +// +//go:linkname Range py.range +func Range(start *py.Object, end *py.Object, step *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.ravel.html +// +//go:linkname Ravel py.ravel +func Ravel(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.real.html +// +//go:linkname Real py.real +func Real(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.reciprocal.html +// +//go:linkname Reciprocal py.reciprocal +func Reciprocal(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.remainder.html +// +//go:linkname Remainder py.remainder +func Remainder(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.renorm.html +// +//go:linkname Renorm py.renorm +func Renorm(input *py.Object, p *py.Object, dim *py.Object, maxnorm *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.repeat_interleave.html +// +//go:linkname RepeatInterleave py.repeat_interleave +func RepeatInterleave(input *py.Object, repeats *py.Object, dim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.reshape.html +// +//go:linkname Reshape py.reshape +func Reshape(input *py.Object, shape *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.resolve_conj.html +// +//go:linkname ResolveConj py.resolve_conj +func ResolveConj(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.resolve_neg.html +// +//go:linkname ResolveNeg py.resolve_neg +func ResolveNeg(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.result_type.html +// +//go:linkname ResultType py.result_type +func ResultType(tensor1 *py.Object, tensor2 *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.roll.html +// +//go:linkname Roll py.roll +func Roll(input *py.Object, shifts *py.Object, dims *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.rot90.html +// +//go:linkname Rot90 py.rot90 +func Rot90(input *py.Object, k *py.Object, dims *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.round.html +// +//go:linkname Round py.round +func Round(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.row_stack.html +// +//go:linkname RowStack py.row_stack +func RowStack(tensors *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.rsqrt.html +// +//go:linkname Rsqrt py.rsqrt +func Rsqrt(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.scatter.html +// +//go:linkname Scatter py.scatter +func Scatter(input *py.Object, dim *py.Object, index *py.Object, src *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.scatter_add.html +// +//go:linkname ScatterAdd py.scatter_add +func ScatterAdd(input *py.Object, dim *py.Object, index *py.Object, src *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.scatter_reduce.html +// +//go:linkname ScatterReduce py.scatter_reduce +func ScatterReduce(input *py.Object, dim *py.Object, index *py.Object, src *py.Object, reduce *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.searchsorted.html +// +//go:linkname Searchsorted py.searchsorted +func Searchsorted(sortedSequence *py.Object, values *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.select.html +// +//go:linkname Select py.select +func Select(input *py.Object, dim *py.Object, index *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.select_scatter.html +// +//go:linkname SelectScatter py.select_scatter +func SelectScatter(input *py.Object, src *py.Object, dim *py.Object, index *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.sgn.html +// +//go:linkname Sgn py.sgn +func Sgn(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.sigmoid.html +// +//go:linkname Sigmoid py.sigmoid +func Sigmoid(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.sign.html +// +//go:linkname Sign py.sign +func Sign(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.signbit.html +// +//go:linkname Signbit py.signbit +func Signbit(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.sin.html +// +//go:linkname Sin py.sin +func Sin(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.sinc.html +// +//go:linkname Sinc py.sinc +func Sinc(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.sinh.html +// +//go:linkname Sinh py.sinh +func Sinh(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.slice_scatter.html +// +//go:linkname SliceScatter py.slice_scatter +func SliceScatter(input *py.Object, src *py.Object, dim *py.Object, start *py.Object, end *py.Object, step *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.slogdet.html +// +//go:linkname Slogdet py.slogdet +func Slogdet(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.smm.html +// +//go:linkname Smm py.smm +func Smm(input *py.Object, mat *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.softmax.html +// +//go:linkname Softmax py.softmax +func Softmax(input *py.Object, dim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.sort.html +// +//go:linkname Sort py.sort +func Sort(input *py.Object, dim *py.Object, descending *py.Object, stable *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.sparse_bsc_tensor.html +// +//go:linkname SparseBscTensor py.sparse_bsc_tensor +func SparseBscTensor(ccolIndices *py.Object, rowIndices *py.Object, values *py.Object, size *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.sparse_bsr_tensor.html +// +//go:linkname SparseBsrTensor py.sparse_bsr_tensor +func SparseBsrTensor(crowIndices *py.Object, colIndices *py.Object, values *py.Object, size *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.sparse_compressed_tensor.html +// +//go:linkname SparseCompressedTensor py.sparse_compressed_tensor +func SparseCompressedTensor(compressedIndices *py.Object, plainIndices *py.Object, values *py.Object, size *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.sparse_coo_tensor.html +// +//go:linkname SparseCooTensor py.sparse_coo_tensor +func SparseCooTensor(indices *py.Object, values *py.Object, size *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.sparse_csc_tensor.html +// +//go:linkname SparseCscTensor py.sparse_csc_tensor +func SparseCscTensor(ccolIndices *py.Object, rowIndices *py.Object, values *py.Object, size *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.sparse_csr_tensor.html +// +//go:linkname SparseCsrTensor py.sparse_csr_tensor +func SparseCsrTensor(crowIndices *py.Object, colIndices *py.Object, values *py.Object, size *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.sqrt.html +// +//go:linkname Sqrt py.sqrt +func Sqrt(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.square.html +// +//go:linkname Square py.square +func Square(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.squeeze.html +// +//go:linkname Squeeze py.squeeze +func Squeeze(input *py.Object, dim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.sspaddmm.html +// +//go:linkname Sspaddmm py.sspaddmm +func Sspaddmm(input *py.Object, mat1 *py.Object, mat2 *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.stack.html +// +//go:linkname Stack py.stack +func Stack(tensors *py.Object, dim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.std.html +// +//go:linkname Std py.std +func Std(input *py.Object, dim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.std_mean.html +// +//go:linkname StdMean py.std_mean +func StdMean(input *py.Object, dim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.sub.html +// +//go:linkname Sub py.sub +func Sub(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.subtract.html +// +//go:linkname Subtract py.subtract +func Subtract(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.sum.html +// +//go:linkname Sum py.sum +func Sum(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.svd.html +// +//go:linkname Svd py.svd +func Svd(input *py.Object, some *py.Object, computeUv *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.swapaxes.html +// +//go:linkname Swapaxes py.swapaxes +func Swapaxes(input *py.Object, axis0 *py.Object, axis1 *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.swapdims.html +// +//go:linkname Swapdims py.swapdims +func Swapdims(input *py.Object, dim0 *py.Object, dim1 *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.t.html +// +//go:linkname T py.t +func T(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.take.html +// +//go:linkname Take py.take +func Take(input *py.Object, index *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.take_along_dim.html +// +//go:linkname TakeAlongDim py.take_along_dim +func TakeAlongDim(input *py.Object, indices *py.Object, dim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.tan.html +// +//go:linkname Tan py.tan +func Tan(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.tanh.html +// +//go:linkname Tanh py.tanh +func Tanh(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.tensor.html +// +//go:linkname Tensor py.tensor +func Tensor(data *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.tensor_split.html +// +//go:linkname TensorSplit py.tensor_split +func TensorSplit(input *py.Object, indicesOrSections *py.Object, dim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.tile.html +// +//go:linkname Tile py.tile +func Tile(input *py.Object, dims *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.topk.html +// +//go:linkname Topk py.topk +func Topk(input *py.Object, k *py.Object, dim *py.Object, largest *py.Object, sorted *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.trace.html +// +//go:linkname Trace py.trace +func Trace(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.transpose.html +// +//go:linkname Transpose py.transpose +func Transpose(input *py.Object, dim0 *py.Object, dim1 *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.trapezoid.html +// +//go:linkname Trapezoid py.trapezoid +func Trapezoid(y *py.Object, x *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.trapz.html +// +//go:linkname Trapz py.trapz +func Trapz(y *py.Object, x *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.triangular_solve.html +// +//go:linkname TriangularSolve py.triangular_solve +func TriangularSolve(b *py.Object, A *py.Object, upper *py.Object, transpose *py.Object, unitriangular *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.tril.html +// +//go:linkname Tril py.tril +func Tril(input *py.Object, diagonal *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.tril_indices.html +// +//go:linkname TrilIndices py.tril_indices +func TrilIndices(row *py.Object, col *py.Object, offset *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.triu.html +// +//go:linkname Triu py.triu +func Triu(input *py.Object, diagonal *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.triu_indices.html +// +//go:linkname TriuIndices py.triu_indices +func TriuIndices(row *py.Object, col *py.Object, offset *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.true_divide.html +// +//go:linkname TrueDivide py.true_divide +func TrueDivide(dividend *py.Object, divisor *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.trunc.html +// +//go:linkname Trunc py.trunc +func Trunc(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.unbind.html +// +//go:linkname Unbind py.unbind +func Unbind(input *py.Object, dim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.unflatten.html +// +//go:linkname Unflatten py.unflatten +func Unflatten(input *py.Object, dim *py.Object, sizes *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.unsqueeze.html +// +//go:linkname Unsqueeze py.unsqueeze +func Unsqueeze(input *py.Object, dim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.vander.html +// +//go:linkname Vander py.vander +func Vander(x *py.Object, N *py.Object, increasing *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.var.html +// +//go:linkname Var py.var +func Var(input *py.Object, dim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.var_mean.html +// +//go:linkname VarMean py.var_mean +func VarMean(input *py.Object, dim *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.vdot.html +// +//go:linkname Vdot py.vdot +func Vdot(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.view_as_complex.html +// +//go:linkname ViewAsComplex py.view_as_complex +func ViewAsComplex(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.view_as_real.html +// +//go:linkname ViewAsReal py.view_as_real +func ViewAsReal(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.vsplit.html +// +//go:linkname Vsplit py.vsplit +func Vsplit(input *py.Object, indicesOrSections *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.vstack.html +// +//go:linkname Vstack py.vstack +func Vstack(tensors *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.where.html +// +//go:linkname Where py.where +func Where(condition *py.Object, input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.xlogy.html +// +//go:linkname Xlogy py.xlogy +func Xlogy(input *py.Object, other *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.zeros.html +// +//go:linkname Zeros py.zeros +func Zeros(__llgo_va_list ...interface{}) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.zeros_like.html +// +//go:linkname ZerosLike py.zeros_like +func ZerosLike(input *py.Object) *py.Object + +// See https://pytorch.org/docs/stable/generated/torch.vmap.html +// +//go:linkname Vmap py.vmap +func Vmap(func_ *py.Object, inDims *py.Object, outDims *py.Object, randomness *py.Object) *py.Object