Package evaluation to load TensorDecompositions on Julia 1.14.0-DEV.2373 (cf67ecc88f*) started at 2026-06-13T15:53:05.561 ################################################################################ # Set-up # Set-up completed after 0.15s ################################################################################ # Installation # Installing TensorDecompositions... Resolving package versions... Installed Rmath_jll ─────────────── v0.5.1+0 Installed OrderedCollections ────── v1.8.2 Installed DataAPI ───────────────── v1.16.0 Installed AliasTables ───────────── v1.1.3 Installed FillArrays ────────────── v1.16.0 Installed StatsBase ─────────────── v0.34.11 Installed HypergeometricFunctions ─ v0.3.28 Installed DataStructures ────────── v0.19.5 Installed OpenSpecFun_jll ───────── v0.5.6+0 Installed Statistics ────────────── v1.11.1 Installed StatsAPI ──────────────── v1.8.0 Installed TupleTools ────────────── v1.6.0 Installed IntegerMathUtils ──────── v0.1.3 Installed LogExpFunctions ───────── v1.0.1 Installed IrrationalConstants ───── v0.2.6 Installed ProgressMeter ─────────── v1.11.0 Installed QuadGK ────────────────── v2.11.3 Installed Reexport ──────────────── v1.2.2 Installed Rmath ─────────────────── v0.9.0 Installed PtrArrays ─────────────── v1.4.0 Installed SpecialFunctions ──────── v2.8.0 Installed StatsFuns ─────────────── v2.1.0 Installed Missings ──────────────── v1.2.0 Installed Preferences ───────────── v1.5.2 Installed SortingAlgorithms ─────── v1.2.2 Installed JLLWrappers ───────────── v1.8.0 Installed TensorOperations ──────── v1.3.1 Installed Primes ────────────────── v0.5.7 Installed TensorDecompositions ──── v1.2.4 Installed PDMats ────────────────── v0.11.37 Installed DistributedArrays ─────── v0.6.9 Installed LRUCache ──────────────── v1.6.2 Installed Distributions ─────────── v0.25.126 Installed DocStringExtensions ───── v0.9.5 Installed Strided ───────────────── v1.2.3 Installing 2 artifacts Installed artifact OpenSpecFun 194.9 KiB Installed artifact Rmath 121.9 KiB Updating `~/.julia/environments/v1.14/Project.toml` [04ed911b] + TensorDecompositions v1.2.4 Updating `~/.julia/environments/v1.14/Manifest.toml` [66dad0bd] + AliasTables v1.1.3 [9a962f9c] + DataAPI v1.16.0 [864edb3b] + DataStructures v0.19.5 [aaf54ef3] + DistributedArrays v0.6.9 [31c24e10] + Distributions v0.25.126 [ffbed154] + DocStringExtensions v0.9.5 [1a297f60] + FillArrays v1.16.0 [34004b35] + HypergeometricFunctions v0.3.28 [18e54dd8] + IntegerMathUtils v0.1.3 [92d709cd] + IrrationalConstants v0.2.6 [692b3bcd] + JLLWrappers v1.8.0 [8ac3fa9e] + LRUCache v1.6.2 [2ab3a3ac] + LogExpFunctions v1.0.1 [e1d29d7a] + Missings v1.2.0 ⌅ [bac558e1] + OrderedCollections v1.8.2 [90014a1f] + PDMats v0.11.37 [21216c6a] + Preferences v1.5.2 [27ebfcd6] + Primes v0.5.7 [92933f4c] + ProgressMeter v1.11.0 [43287f4e] + PtrArrays v1.4.0 [1fd47b50] + QuadGK v2.11.3 [189a3867] + Reexport v1.2.2 [79098fc4] + Rmath v0.9.0 [a2af1166] + SortingAlgorithms v1.2.2 [276daf66] + SpecialFunctions v2.8.0 [10745b16] + Statistics v1.11.1 [82ae8749] + StatsAPI v1.8.0 [2913bbd2] + StatsBase v0.34.11 [4c63d2b9] + StatsFuns v2.1.0 ⌅ [5e0ebb24] + Strided v1.2.3 [04ed911b] + TensorDecompositions v1.2.4 ⌅ [6aa20fa7] + TensorOperations v1.3.1 [9d95972d] + TupleTools v1.6.0 [efe28fd5] + OpenSpecFun_jll v0.5.6+0 [f50d1b31] + Rmath_jll v0.5.1+0 [56f22d72] + Artifacts v1.11.0 [ade2ca70] + Dates v1.11.0 [8ba89e20] + Distributed v1.11.0 [8f399da3] + Libdl v1.11.0 [37e2e46d] + LinearAlgebra v1.14.0 [de0858da] + Printf v1.11.0 [9a3f8284] + Random v1.11.0 [ea8e919c] + SHA v1.13.0 [9e88b42a] + Serialization v1.11.0 [6462fe0b] + Sockets v1.11.0 [2f01184e] + SparseArrays v1.13.0 [4607b0f0] + SuiteSparse [fa267f1f] + TOML v1.0.3 [4ec0a83e] + Unicode v1.11.0 [e66e0078] + CompilerSupportLibraries_jll v1.5.2+0 [4536629a] + OpenBLAS_jll v0.3.33+0 [05823500] + OpenLibm_jll v0.8.7+0 [bea87d4a] + SuiteSparse_jll v7.10.1+0 [8e850b90] + libblastrampoline_jll v5.15.0+0 Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m` Installation completed after 12.63s ################################################################################ # Precompilation # Precompiling PkgEval dependencies... Project No packages added to or removed from `~/.julia/environments/pkgeval/Project.toml` Manifest No packages added to or removed from `~/.julia/environments/pkgeval/Manifest.toml` Precompiling package dependencies... Precompiling project... 0.6 s ✓ Reexport 1.1 s ✓ Statistics 1.1 s ✓ DataAPI 2.3 s ✓ IrrationalConstants 0.6 s ✓ StatsAPI 129.4 s ✓ OrderedCollections 1.2 s ✓ DocStringExtensions 103.0 s ✓ FillArrays 1.1 s ✓ IntegerMathUtils 81.0 s ✓ LRUCache 33.0 s ✓ PtrArrays 1.0 s ✓ TupleTools 38.3 s ✓ PDMats 51.2 s ✓ ProgressMeter 2.5 s ✓ Preferences 36.0 s ✓ Statistics → SparseArraysExt 48.9 s ✓ Missings 143.9 s ✓ DataStructures 1.5 s ✓ LogExpFunctions 65.2 s ✓ FillArrays → FillArraysSparseArraysExt 34.8 s ✓ FillArrays → FillArraysStatisticsExt 47.0 s ✓ Primes 32.0 s ✓ LRUCache → SerializationExt 35.1 s ✓ AliasTables 38.8 s ✓ Strided 66.1 s ✓ FillArrays → FillArraysPDMatsExt 3.0 s ✓ JLLWrappers 34.1 s ✓ SortingAlgorithms 35.6 s ✓ QuadGK 52.5 s ✓ DistributedArrays 53.3 s ✓ TensorOperations 2.9 s ✓ Rmath_jll 3.0 s ✓ OpenSpecFun_jll 148.3 s ✓ StatsBase 54.3 s ✓ DistributedArrays → SparseArraysExt 19.6 s ✓ DistributedArrays → StatisticsExt 2.7 s ✓ Rmath 70.0 s ✓ SpecialFunctions 64.7 s ✓ PDMats → StatsBaseExt 35.4 s ✓ HypergeometricFunctions 35.5 s ✓ StatsFuns 80.6 s ✓ Distributions ┌ Info: JuliaLowering threw given input: │ code = │ :(#= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:1 =# Core.@doc "Non-negative CANDECOMP tensor decomposition.\n" function nncp(tnsr::AbstractArray{T, N}, r::Integer; tol::Float64 = 0.0001, maxiter::Integer = 100, compute_error::Bool = false, verbose::Bool = true) where {T <: Number, N} │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:4 =# │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:11 =# │ all((x->begin │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:11 =# │ x >= 0 │ end), tnsr) || throw(ArgumentError("Input tensor must be nonnegative.")) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:12 =# │ num_modes = _check_tensor(tnsr, r) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:13 =# │ T_norm = norm(tnsr) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:15 =# │ factors = [abs.(F) .* (T_norm ^ (1 / num_modes) / norm(F)) for F::Matrix{T} = _random_factors(size(tnsr), r)] │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:16 =# │ factors_old = deepcopy(factors) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:17 =# │ factors_exp = deepcopy(factors) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:18 =# │ gram = [F' * F for F = factors] │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:20 =# │ niters = 0 │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:21 =# │ converged = false │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:22 =# │ obj_old = 0.0 │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:23 =# │ t = 1.0 │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:24 =# │ t_old = 1.0 │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:26 =# │ LB = fill!(similar(tnsr, num_modes), 1.0) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:27 =# │ LB_old = fill!(similar(tnsr, num_modes), 1.0) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:29 =# │ U = similar(tnsr, r, r) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:31 =# │ pb = Progress(maxiter, "NNCP iterations ") │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:32 =# │ while !converged && niters < maxiter │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:33 =# │ update!(pb, niters) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:34 =# │ LB_old .= LB │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:35 =# │ local M::typeof(U) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:36 =# │ for i = 1:num_modes │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:37 =# │ idx = [num_modes:-1:i + 1; i - 1:-1:1] │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:38 =# │ U .= reduce(((x, y)->begin │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:38 =# │ x .* y │ end), gram[idx]) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:39 =# │ LB[i] = norm(U) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:40 =# │ M = _row_unfold(tnsr, i) * khatrirao(factors[idx]) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:41 =# │ factors[i] = max.(0, factors_exp[i] .- (factors_exp[i] * U .- M) .* (1 / LB[i])) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:42 =# │ mul!(gram[i], (factors[i])', factors[i]) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:43 =# │ end │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:45 =# │ obj = dot(gram[num_modes], U) - 4 * dot(factors[num_modes], M) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:46 =# │ if obj > obj_old │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:47 =# │ for i = eachindex(factors_old) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:48 =# │ copyto!(factors_exp[i], factors_old[i]) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:49 =# │ end │ else │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:51 =# │ t = 1 + sqrt(1 + 4 * t_old ^ 2) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:52 =# │ min_w = (t_old - 2) / t │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:53 =# │ for i = eachindex(factors) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:54 =# │ w = min(min_w, sqrt(LB_old[i] / LB[i])) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:55 =# │ factors_exp[i] .= factors[i] .+ w .* (factors[i] .- factors_old[i]) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:56 =# │ copyto!(factors_old[i], factors[i]) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:57 =# │ end │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:58 =# │ converged = abs(obj_old - obj) < tol * abs(obj_old) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:59 =# │ t_old = t │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:60 =# │ obj_old = obj │ end │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:62 =# │ niters += 1 │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:63 =# │ end │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:64 =# │ finish!(pb) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:65 =# │ verbose && _iter_status(converged, niters, maxiter) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:67 =# │ res = CANDECOMP(tuple(factors...), fill!(similar(tnsr, r), 1.0)) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:68 =# │ compute_error && _set_rel_residue(res, tnsr) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:69 =# │ return res │ end) │ st0 = │ SyntaxTree with attributes mod,kind,var_id,toplevel_pure,scope_type,macro_source,name_val,syntax_flags,meta,scope_layer,value,jl_source,is_toplevel_thunk,source,__macro_ctx__ │ [macrocall] │ │ @doc :: Identifier │ mod │ :(#= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:1 =#) :: Value │ │ "Non-negative CANDECOMP tensor decomposition.\n" :: Value │ │ [function] │ │ [where] │ │ [call] │ │ nncp :: Identifier │ │ [parameters] │ │ [kw] │ │ [::] │ │ tol :: Identifier │ │ Float64 :: Identifier │ │ 0.0001 :: Value │ │ [kw] │ │ [::] │ │ maxiter :: Identifier │ │ Integer :: Identifier │ │ 100 :: Value │ │ [kw] │ │ [::] │ │ compute_error :: Identifier │ │ Bool :: Identifier │ │ false :: Value │ │ [kw] │ │ [::] │ │ verbose :: Identifier │ │ Bool :: Identifier │ │ true :: Value │ │ [::] │ │ tnsr :: Identifier │ │ [curly] │ │ AbstractArray :: Identifier │ │ T :: Identifier │ │ N :: Identifier │ │ [::] │ │ r :: Identifier │ │ Integer :: Identifier │ │ [<:] │ │ T :: Identifier │ │ Number :: Identifier │ │ N :: Identifier │ │ [block] │ │ [||] │ │ [call] │ │ all :: Identifier │ │ [->] │ │ x :: Identifier │ │ [block] │ │ [call] │ │ >= :: Identifier │ │ x :: Identifier │ │ 0 :: Value │ │ tnsr :: Identifier │ │ [call] │ │ throw :: Identifier │ │ [call] │ │ ArgumentError :: Identifier │ │ "Input tensor must be nonnegative." :: Value │ │ [=] │ │ num_modes :: Identifier │ │ [call] │ │ _check_tensor :: Identifier │ │ tnsr :: Identifier │ │ r :: Identifier │ │ [=] │ │ T_norm :: Identifier │ │ [call] │ │ norm :: Identifier │ │ tnsr :: Identifier │ │ [=] │ │ factors :: Identifier │ │ [comprehension] │ │ [generator] │ │ [call] │ │ .* :: Identifier │ │ [.] │ │ abs :: Identifier │ │ [tuple] │ │ F :: Identifier │ │ [call] │ │ / :: Identifier │ │ [call] │ │ ^ :: Identifier │ │ T_norm :: Identifier │ │ [call] │ │ / :: Identifier │ │ 1 :: Value │ │ num_modes :: Identifier │ │ [call] │ │ norm :: Identifier │ │ F :: Identifier │ │ [=] │ │ [::] │ │ F :: Identifier │ │ [curly] │ │ Matrix :: Identifier │ │ T :: Identifier │ │ [call] │ │ _random_factors :: Identifier │ │ [call] │ │ size :: Identifier │ │ tnsr :: Identifier │ │ r :: Identifier │ │ [=] │ │ factors_old :: Identifier │ │ [call] │ │ deepcopy :: Identifier │ │ factors :: Identifier │ │ [=] │ │ factors_exp :: Identifier │ │ [call] │ │ deepcopy :: Identifier │ │ factors :: Identifier │ │ [=] │ │ gram :: Identifier │ │ [comprehension] │ │ [generator] │ │ [call] │ │ * :: Identifier │ │ ['] │ │ F :: Identifier │ │ F :: Identifier │ │ [=] │ │ F :: Identifier │ │ factors :: Identifier │ │ [=] │ │ niters :: Identifier │ │ 0 :: Value │ │ [=] │ │ converged :: Identifier │ │ false :: Value │ │ [=] │ │ obj_old :: Identifier │ │ 0.0 :: Value │ │ [=] │ │ t :: Identifier │ │ 1.0 :: Value │ │ [=] │ │ t_old :: Identifier │ │ 1.0 :: Value │ │ [=] │ │ LB :: Identifier │ │ [call] │ │ fill! :: Identifier │ │ [call] │ │ similar :: Identifier │ │ tnsr :: Identifier │ │ num_modes :: Identifier │ │ 1.0 :: Value │ │ [=] │ │ LB_old :: Identifier │ │ [call] │ │ fill! :: Identifier │ │ [call] │ │ similar :: Identifier │ │ tnsr :: Identifier │ │ num_modes :: Identifier │ │ 1.0 :: Value │ │ [=] │ │ U :: Identifier │ │ [call] │ │ similar :: Identifier │ │ tnsr :: Identifier │ │ r :: Identifier │ │ r :: Identifier │ │ [=] │ │ pb :: Identifier │ │ [call] │ │ Progress :: Identifier │ │ maxiter :: Identifier │ │ "NNCP iterations " :: Value │ │ [while] │ │ [&&] │ │ [call] │ │ ! :: Identifier │ │ converged :: Identifier │ │ [call] │ │ < :: Identifier │ │ niters :: Identifier │ │ maxiter :: Identifier │ │ [block] │ │ [call] │ │ update! :: Identifier │ │ pb :: Identifier │ │ niters :: Identifier │ │ [.=] │ │ LB_old :: Identifier │ │ LB :: Identifier │ │ [local] │ │ [::] │ │ M :: Identifier │ │ [call] │ │ typeof :: Identifier │ │ U :: Identifier │ │ [for] │ │ [=] │ │ i :: Identifier │ │ [call] │ │ : :: Identifier │ │ 1 :: Value │ │ num_modes :: Identifier │ │ [block] │ │ [=] │ │ idx :: Identifier │ │ [vcat] │ │ [call] │ │ : :: Identifier │ │ num_modes :: Identifier │ │ -1 :: Value │ │ [call] │ │ + :: Identifier │ │ i :: Identifier │ │ 1 :: Value │ │ [call] │ │ : :: Identifier │ │ [call] │ │ - :: Identifier │ │ i :: Identifier │ │ 1 :: Value │ │ -1 :: Value │ │ 1 :: Value │ │ [.=] │ │ U :: Identifier │ │ [call] │ │ reduce :: Identifier │ │ [->] │ │ [tuple] │ │ x :: Identifier │ │ y :: Identifier │ │ [block] │ │ [call] │ │ .* :: Identifier │ │ x :: Identifier │ │ y :: Identifier │ │ [ref] │ │ gram :: Identifier │ │ idx :: Identifier │ │ [=] │ │ [ref] │ │ LB :: Identifier │ │ i :: Identifier │ │ [call] │ │ norm :: Identifier │ │ U :: Identifier │ │ [=] │ │ M :: Identifier │ │ [call] │ │ * :: Identifier │ │ [call] │ │ _row_unfold :: Identifier │ │ tnsr :: Identifier │ │ i :: Identifier │ │ [call] │ │ khatrirao :: Identifier │ │ [ref] │ │ factors :: Identifier │ │ idx :: Identifier │ │ [=] │ │ [ref] │ │ factors :: Identifier │ │ i :: Identifier │ │ [.] │ │ max :: Identifier │ │ [tuple] │ │ 0 :: Value │ │ [call] │ │ .- :: Identifier │ │ [ref] │ │ factors_exp :: Identifier │ │ i :: Identifier │ │ [call] │ │ .* :: Identifier │ │ [call] │ │ .- :: Identifier │ │ [call] │ │ * :: Identifier │ │ [ref] │ │ factors_exp :: Identifier │ │ i :: Identifier │ │ U :: Identifier │ │ M :: Identifier │ │ [call] │ │ / :: Identifier │ │ 1 :: Value │ │ [ref] │ │ LB :: Identifier │ │ i :: Identifier │ │ [call] │ │ mul! :: Identifier │ │ [ref] │ │ gram :: Identifier │ │ i :: Identifier │ │ ['] │ │ [ref] │ │ factors :: Identifier │ │ i :: Identifier │ │ [ref] │ │ factors :: Identifier │ │ i :: Identifier │ │ [=] │ │ obj :: Identifier │ │ [call] │ │ - :: Identifier │ │ [call] │ │ dot :: Identifier │ │ [ref] │ │ gram :: Identifier │ │ num_modes :: Identifier │ │ U :: Identifier │ │ [call] │ │ * :: Identifier │ │ 4 :: Value │ │ [call] │ │ dot :: Identifier │ │ [ref] │ │ factors :: Identifier │ │ num_modes :: Identifier │ │ M :: Identifier │ │ [if] │ │ [call] │ │ > :: Identifier │ │ obj :: Identifier │ │ obj_old :: Identifier │ │ [block] │ │ [for] │ │ [=] │ │ i :: Identifier │ │ [call] │ │ eachindex :: Identifier │ │ factors_old :: Identifier │ │ [block] │ │ [call] │ │ copyto! :: Identifier │ │ [ref] │ │ factors_exp :: Identifier │ │ i :: Identifier │ │ [ref] │ │ factors_old :: Identifier │ │ i :: Identifier │ │ [block] │ │ [=] │ │ t :: Identifier │ │ [call] │ │ + :: Identifier │ │ 1 :: Value │ │ [call] │ │ sqrt :: Identifier │ │ [call] │ │ + :: Identifier │ │ 1 :: Value │ │ [call] │ │ * :: Identifier │ │ 4 :: Value │ │ [call] │ │ ^ :: Identifier │ │ t_old :: Identifier │ │ 2 :: Value │ │ [=] │ │ min_w :: Identifier │ │ [call] │ │ / :: Identifier │ │ [call] │ │ - :: Identifier │ │ t_old :: Identifier │ │ 2 :: Value │ │ t :: Identifier │ │ [for] │ │ [=] │ │ i :: Identifier │ │ [call] │ │ eachindex :: Identifier │ │ factors :: Identifier │ │ [block] │ │ [=] │ │ w :: Identifier │ │ [call] │ │ min :: Identifier │ │ min_w :: Identifier │ │ [call] │ │ sqrt :: Identifier │ │ [call] │ │ / :: Identifier │ │ [ref] │ │ LB_old :: Identifier │ │ i :: Identifier │ │ [ref] │ │ LB :: Identifier │ │ i :: Identifier │ │ [.=] │ │ [ref] │ │ factors_exp :: Identifier │ │ i :: Identifier │ │ [call] │ │ .+ :: Identifier │ │ [ref] │ │ factors :: Identifier │ │ i :: Identifier │ │ [call] │ │ .* :: Identifier │ │ w :: Identifier │ │ [call] │ │ .- :: Identifier │ │ [ref] │ │ factors :: Identifier │ │ i :: Identifier │ │ [ref] │ │ factors_old :: Identifier │ │ i :: Identifier │ │ [call] │ │ copyto! :: Identifier │ │ [ref] │ │ factors_old :: Identifier │ │ i :: Identifier │ │ [ref] │ │ factors :: Identifier │ │ i :: Identifier │ │ [=] │ │ converged :: Identifier │ │ [call] │ │ < :: Identifier │ │ [call] │ │ abs :: Identifier │ │ [call] │ │ - :: Identifier │ │ obj_old :: Identifier │ │ obj :: Identifier │ │ [call] │ │ * :: Identifier │ │ tol :: Identifier │ │ [call] │ │ abs :: Identifier │ │ obj_old :: Identifier │ │ [=] │ │ t_old :: Identifier │ │ t :: Identifier │ │ [=] │ │ obj_old :: Identifier │ │ obj :: Identifier │ │ [unknown_head] │ │ niters :: Identifier │ │ 1 :: Value │ │ [call] │ │ finish! :: Identifier │ │ pb :: Identifier │ │ [&&] │ │ verbose :: Identifier │ │ [call] │ │ _iter_status :: Identifier │ │ converged :: Identifier │ │ niters :: Identifier │ │ maxiter :: Identifier │ │ [=] │ │ res :: Identifier │ │ [call] │ │ CANDECOMP :: Identifier │ │ [call] │ │ tuple :: Identifier │ │ [...] │ │ factors :: Identifier │ │ [call] │ │ fill! :: Identifier │ │ [call] │ │ similar :: Identifier │ │ tnsr :: Identifier │ │ r :: Identifier │ │ 1.0 :: Value │ │ [&&] │ │ compute_error :: Identifier │ │ [call] │ │ _set_rel_residue :: Identifier │ │ res :: Identifier │ │ tnsr :: Identifier │ │ [return] │ │ res :: Identifier │ │ │ st1 = │ SyntaxTree with attributes mod,kind,var_id,toplevel_pure,scope_type,macro_source,name_val,syntax_flags,meta,scope_layer,value,jl_source,is_toplevel_thunk,source │ [block] │ │ [=] │ │ val :: Identifier │ scope_layer=3 │ [function] │ │ [where] │ │ [call] │ │ nncp :: Identifier │ scope_layer=1 │ [parameters] │ │ [kw] │ │ [::] │ │ tol :: Identifier │ scope_layer=1 │ Float64 :: Identifier │ scope_layer=1 │ 0.0001 :: Value │ macro_source=475 │ [kw] │ │ [::] │ │ maxiter :: Identifier │ scope_layer=1 │ Integer :: Identifier │ scope_layer=1 │ 100 :: Value │ macro_source=475 │ [kw] │ │ [::] │ │ compute_error :: Identifier │ scope_layer=1 │ Bool :: Identifier │ scope_layer=1 │ false :: Value │ macro_source=475 │ [kw] │ │ [::] │ │ verbose :: Identifier │ scope_layer=1 │ Bool :: Identifier │ scope_layer=1 │ true :: Value │ macro_source=475 │ [::] │ │ tnsr :: Identifier │ scope_layer=1 │ [curly] │ │ AbstractArray :: Identifier │ scope_layer=1 │ T :: Identifier │ scope_layer=1 │ N :: Identifier │ scope_layer=1 │ [::] │ │ r :: Identifier │ scope_layer=1 │ Integer :: Identifier │ scope_layer=1 │ [<:] │ scope_layer=1 │ T :: Identifier │ scope_layer=1 │ Number :: Identifier │ scope_layer=1 │ N :: Identifier │ scope_layer=1 │ [block] │ │ [||] │ │ [call] │ │ all :: Identifier │ scope_layer=1 │ [->] │ │ x :: Identifier │ scope_layer=1 │ [block] │ │ [call] │ │ >= :: Identifier │ scope_layer=1 │ x :: Identifier │ scope_layer=1 │ 0 :: Value │ macro_source=475 │ tnsr :: Identifier │ scope_layer=1 │ [call] │ │ throw :: Identifier │ scope_layer=1 │ [call] │ │ ArgumentError :: Identifier │ scope_layer=1 │ "Input tensor must be nonnegative." :: Value │ macro_source=475 │ [=] │ │ num_modes :: Identifier │ scope_layer=1 │ [call] │ │ _check_tensor :: Identifier │ scope_layer=1 │ tnsr :: Identifier │ scope_layer=1 │ r :: Identifier │ scope_layer=1 │ [=] │ │ T_norm :: Identifier │ scope_layer=1 │ [call] │ │ norm :: Identifier │ scope_layer=1 │ tnsr :: Identifier │ scope_layer=1 │ [=] │ │ factors :: Identifier │ scope_layer=1 │ [comprehension] │ │ [generator] │ │ [call] │ │ .* :: Identifier │ scope_layer=1 │ [.] │ │ abs :: Identifier │ scope_layer=1 │ [tuple] │ │ F :: Identifier │ scope_layer=1 │ [call] │ │ / :: Identifier │ scope_layer=1 │ [call] │ │ ^ :: Identifier │ scope_layer=1 │ T_norm :: Identifier │ scope_layer=1 │ [call] │ │ / :: Identifier │ scope_layer=1 │ 1 :: Value │ macro_source=475 │ num_modes :: Identifier │ scope_layer=1 │ [call] │ │ norm :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [=] │ │ [::] │ │ F :: Identifier │ scope_layer=1 │ [curly] │ │ Matrix :: Identifier │ scope_layer=1 │ T :: Identifier │ scope_layer=1 │ [call] │ │ _random_factors :: Identifier │ scope_layer=1 │ [call] │ │ size :: Identifier │ scope_layer=1 │ tnsr :: Identifier │ scope_layer=1 │ r :: Identifier │ scope_layer=1 │ [=] │ │ factors_old :: Identifier │ scope_layer=1 │ [call] │ │ deepcopy :: Identifier │ scope_layer=1 │ factors :: Identifier │ scope_layer=1 │ [=] │ │ factors_exp :: Identifier │ scope_layer=1 │ [call] │ │ deepcopy :: Identifier │ scope_layer=1 │ factors :: Identifier │ scope_layer=1 │ [=] │ │ gram :: Identifier │ scope_layer=1 │ [comprehension] │ │ [generator] │ │ [call] │ │ * :: Identifier │ scope_layer=1 │ ['] │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [=] │ │ F :: Identifier │ scope_layer=1 │ factors :: Identifier │ scope_layer=1 │ [=] │ │ niters :: Identifier │ scope_layer=1 │ 0 :: Value │ macro_source=475 │ [=] │ │ converged :: Identifier │ scope_layer=1 │ false :: Value │ macro_source=475 │ [=] │ │ obj_old :: Identifier │ scope_layer=1 │ 0.0 :: Value │ macro_source=475 │ [=] │ │ t :: Identifier │ scope_layer=1 │ 1.0 :: Value │ macro_source=475 │ [=] │ │ t_old :: Identifier │ scope_layer=1 │ 1.0 :: Value │ macro_source=475 │ [=] │ │ LB :: Identifier │ scope_layer=1 │ [call] │ │ fill! :: Identifier │ scope_layer=1 │ [call] │ │ similar :: Identifier │ scope_layer=1 │ tnsr :: Identifier │ scope_layer=1 │ num_modes :: Identifier │ scope_layer=1 │ 1.0 :: Value │ macro_source=475 │ [=] │ │ LB_old :: Identifier │ scope_layer=1 │ [call] │ │ fill! :: Identifier │ scope_layer=1 │ [call] │ │ similar :: Identifier │ scope_layer=1 │ tnsr :: Identifier │ scope_layer=1 │ num_modes :: Identifier │ scope_layer=1 │ 1.0 :: Value │ macro_source=475 │ [=] │ │ U :: Identifier │ scope_layer=1 │ [call] │ │ similar :: Identifier │ scope_layer=1 │ tnsr :: Identifier │ scope_layer=1 │ r :: Identifier │ scope_layer=1 │ r :: Identifier │ scope_layer=1 │ [=] │ │ pb :: Identifier │ scope_layer=1 │ [call] │ │ Progress :: Identifier │ scope_layer=1 │ maxiter :: Identifier │ scope_layer=1 │ "NNCP iterations " :: Value │ macro_source=475 │ [while] │ │ [&&] │ │ [call] │ │ ! :: Identifier │ scope_layer=1 │ converged :: Identifier │ scope_layer=1 │ [call] │ │ < :: Identifier │ scope_layer=1 │ niters :: Identifier │ scope_layer=1 │ maxiter :: Identifier │ scope_layer=1 │ [block] │ │ [call] │ │ update! :: Identifier │ scope_layer=1 │ pb :: Identifier │ scope_layer=1 │ niters :: Identifier │ scope_layer=1 │ [.=] │ │ LB_old :: Identifier │ scope_layer=1 │ LB :: Identifier │ scope_layer=1 │ [local] │ │ [::] │ │ M :: Identifier │ scope_layer=1 │ [call] │ │ typeof :: Identifier │ scope_layer=1 │ U :: Identifier │ scope_layer=1 │ [for] │ │ [=] │ │ i :: Identifier │ scope_layer=1 │ [call] │ │ : :: Identifier │ scope_layer=1 │ 1 :: Value │ macro_source=475 │ num_modes :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ idx :: Identifier │ scope_layer=1 │ [vcat] │ │ [call] │ │ : :: Identifier │ scope_layer=1 │ num_modes :: Identifier │ scope_layer=1 │ -1 :: Value │ macro_source=475 │ [call] │ │ + :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ 1 :: Value │ macro_source=475 │ [call] │ │ : :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ 1 :: Value │ macro_source=475 │ -1 :: Value │ macro_source=475 │ 1 :: Value │ macro_source=475 │ [.=] │ │ U :: Identifier │ scope_layer=1 │ [call] │ │ reduce :: Identifier │ scope_layer=1 │ [->] │ │ [tuple] │ │ x :: Identifier │ scope_layer=1 │ y :: Identifier │ scope_layer=1 │ [block] │ │ [call] │ │ .* :: Identifier │ scope_layer=1 │ x :: Identifier │ scope_layer=1 │ y :: Identifier │ scope_layer=1 │ [ref] │ │ gram :: Identifier │ scope_layer=1 │ idx :: Identifier │ scope_layer=1 │ [=] │ │ [ref] │ │ LB :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [call] │ │ norm :: Identifier │ scope_layer=1 │ U :: Identifier │ scope_layer=1 │ [=] │ │ M :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ [call] │ │ _row_unfold :: Identifier │ scope_layer=1 │ tnsr :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [call] │ │ khatrirao :: Identifier │ scope_layer=1 │ [ref] │ │ factors :: Identifier │ scope_layer=1 │ idx :: Identifier │ scope_layer=1 │ [=] │ │ [ref] │ │ factors :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [.] │ │ max :: Identifier │ scope_layer=1 │ [tuple] │ │ 0 :: Value │ macro_source=475 │ [call] │ │ .- :: Identifier │ scope_layer=1 │ [ref] │ │ factors_exp :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [call] │ │ .* :: Identifier │ scope_layer=1 │ [call] │ │ .- :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ [ref] │ │ factors_exp :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ U :: Identifier │ scope_layer=1 │ M :: Identifier │ scope_layer=1 │ [call] │ │ / :: Identifier │ scope_layer=1 │ 1 :: Value │ macro_source=475 │ [ref] │ │ LB :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [call] │ │ mul! :: Identifier │ scope_layer=1 │ [ref] │ │ gram :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ ['] │ scope_layer=1 │ [ref] │ │ factors :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [ref] │ │ factors :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [=] │ │ obj :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ [call] │ │ dot :: Identifier │ scope_layer=1 │ [ref] │ │ gram :: Identifier │ scope_layer=1 │ num_modes :: Identifier │ scope_layer=1 │ U :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ 4 :: Value │ macro_source=475 │ [call] │ │ dot :: Identifier │ scope_layer=1 │ [ref] │ │ factors :: Identifier │ scope_layer=1 │ num_modes :: Identifier │ scope_layer=1 │ M :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ > :: Identifier │ scope_layer=1 │ obj :: Identifier │ scope_layer=1 │ obj_old :: Identifier │ scope_layer=1 │ [block] │ │ [for] │ │ [=] │ │ i :: Identifier │ scope_layer=1 │ [call] │ │ eachindex :: Identifier │ scope_layer=1 │ factors_old :: Identifier │ scope_layer=1 │ [block] │ │ [call] │ │ copyto! :: Identifier │ scope_layer=1 │ [ref] │ │ factors_exp :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [ref] │ │ factors_old :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ t :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ 1 :: Value │ macro_source=475 │ [call] │ │ sqrt :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ 1 :: Value │ macro_source=475 │ [call] │ │ * :: Identifier │ scope_layer=1 │ 4 :: Value │ macro_source=475 │ [call] │ │ ^ :: Identifier │ scope_layer=1 │ t_old :: Identifier │ scope_layer=1 │ 2 :: Value │ macro_source=475 │ [=] │ │ min_w :: Identifier │ scope_layer=1 │ [call] │ │ / :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ t_old :: Identifier │ scope_layer=1 │ 2 :: Value │ macro_source=475 │ t :: Identifier │ scope_layer=1 │ [for] │ │ [=] │ │ i :: Identifier │ scope_layer=1 │ [call] │ │ eachindex :: Identifier │ scope_layer=1 │ factors :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ w :: Identifier │ scope_layer=1 │ [call] │ │ min :: Identifier │ scope_layer=1 │ min_w :: Identifier │ scope_layer=1 │ [call] │ │ sqrt :: Identifier │ scope_layer=1 │ [call] │ │ / :: Identifier │ scope_layer=1 │ [ref] │ │ LB_old :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [ref] │ │ LB :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [.=] │ │ [ref] │ │ factors_exp :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [call] │ │ .+ :: Identifier │ scope_layer=1 │ [ref] │ │ factors :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [call] │ │ .* :: Identifier │ scope_layer=1 │ w :: Identifier │ scope_layer=1 │ [call] │ │ .- :: Identifier │ scope_layer=1 │ [ref] │ │ factors :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [ref] │ │ factors_old :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [call] │ │ copyto! :: Identifier │ scope_layer=1 │ [ref] │ │ factors_old :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [ref] │ │ factors :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [=] │ │ converged :: Identifier │ scope_layer=1 │ [call] │ │ < :: Identifier │ scope_layer=1 │ [call] │ │ abs :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ obj_old :: Identifier │ scope_layer=1 │ obj :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ tol :: Identifier │ scope_layer=1 │ [call] │ │ abs :: Identifier │ scope_layer=1 │ obj_old :: Identifier │ scope_layer=1 │ [=] │ │ t_old :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ [=] │ │ obj_old :: Identifier │ scope_layer=1 │ obj :: Identifier │ scope_layer=1 │ [unknown_head] │ scope_layer=1 │ niters :: Identifier │ scope_layer=1 │ 1 :: Value │ macro_source=475 │ [call] │ │ finish! :: Identifier │ scope_layer=1 │ pb :: Identifier │ scope_layer=1 │ [&&] │ │ verbose :: Identifier │ scope_layer=1 │ [call] │ │ _iter_status :: Identifier │ scope_layer=1 │ converged :: Identifier │ scope_layer=1 │ niters :: Identifier │ scope_layer=1 │ maxiter :: Identifier │ scope_layer=1 │ [=] │ │ res :: Identifier │ scope_layer=1 │ [call] │ │ CANDECOMP :: Identifier │ scope_layer=1 │ [call] │ │ tuple :: Identifier │ scope_layer=1 │ [...] │ │ factors :: Identifier │ scope_layer=1 │ [call] │ │ fill! :: Identifier │ scope_layer=1 │ [call] │ │ similar :: Identifier │ scope_layer=1 │ tnsr :: Identifier │ scope_layer=1 │ r :: Identifier │ scope_layer=1 │ 1.0 :: Value │ macro_source=475 │ [&&] │ │ compute_error :: Identifier │ scope_layer=1 │ [call] │ │ _set_rel_residue :: Identifier │ scope_layer=1 │ res :: Identifier │ scope_layer=1 │ tnsr :: Identifier │ scope_layer=1 │ [return] │ │ res :: Identifier │ scope_layer=1 │ [call] │ │ Base.Docs.doc! :: Value │ macro_source=475 │ TensorDecompositions :: Value │ macro_source=475 │ [call] │ │ Base.Docs.Binding :: Value │ macro_source=475 │ TensorDecompositions :: Value │ │ [inert] │ jl_source=L65 │ nncp :: Identifier │ │ [call] │ macro_source=475 │ Base.Docs.docstr :: Value │ macro_source=475 │ [call] │ macro_source=475 │ Core.svec :: Value │ macro_source=475 │ "Non-negative CANDECOMP tensor decomposition.\n" :: Value │ macro_source=475 │ [call] │ macro_source=475 │ Dict{Symbol, Any} :: Value │ macro_source=475 │ :path => "/home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl" :: Value │ macro_source=475 │ :linenumber => 1 :: Value │ macro_source=475 │ :module => TensorDecompositions :: Value │ macro_source=475 │ [where] │ │ [where] │ │ [curly] │ │ Union :: Identifier │ scope_layer=1 │ [curly] │ │ Tuple :: Identifier │ scope_layer=1 │ [curly] │ │ AbstractArray :: Identifier │ scope_layer=1 │ T :: Identifier │ scope_layer=1 │ N :: Identifier │ scope_layer=1 │ Integer :: Identifier │ scope_layer=1 │ [curly] │ │ Tuple :: Identifier │ scope_layer=1 │ N :: Identifier │ scope_layer=1 │ [curly] │ │ Tuple :: Identifier │ scope_layer=1 │ T :: Identifier │ scope_layer=1 │ [<:] │ scope_layer=1 │ N :: Identifier │ scope_layer=1 │ Any :: Identifier │ scope_layer=1 │ [<:] │ scope_layer=1 │ T :: Identifier │ scope_layer=1 │ Number :: Identifier │ scope_layer=1 │ val :: Identifier │ scope_layer=3 │ │ file = "/home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl" │ line = 1 └ mod = TensorDecompositions ERROR: LoadError: LoweringError: #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:15 =# - Found unexpected binding of kind static_parameter Expression:  #₅₁/T Containing expressions:  (= #₁₈₃/T #₅₁/T)  (call core.svec (call core.svec #₁₅₉/##kw_body#nncp#0##->###1 (call core.apply_type #₈₀/Matrix #₅₁/T)) (call core.svec) SourceLocation:/home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:15:0)  (call core.svec (call core.svec (function_type #₅₄/#->#) (call core.apply_type #₈₀/Matrix #₅₁/T)) (call core.svec) SourceLocation:/home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:15:0)  Detailed provenance:  #₅₁/T  └─ T  └─ T  ├─ @ /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:15  └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:1 =#) "Non-negative CANDECOMP tensor decomposition.\n" (function (where (call nncp (parameters (kw (:: tol Float64) 0.0001) (kw (:: maxiter Integer) 100) (kw (:: compute_error Bool) false) (kw (:: verbose Bool) true)) (:: tnsr (curly AbstractArray T N)) (:: r Integer)) (<: T Number) N) (block (|| (call all (-> x (block (call >= x 0))) tnsr) (call throw (call ArgumentError "Input tensor must be nonnegative."))) (= num_modes (call _check_tensor tnsr r)) (= T_norm (call norm tnsr)) (= factors (comprehension (generator (call .* (. abs (tuple F)) (call / (call ^ T_norm (call / 1 num_modes)) (call norm F))) (= (:: F (curly Matrix T)) (call _random_factors (call size tnsr) r))))) (= factors_old (call deepcopy factors)) (= factors_exp (call deepcopy factors)) (= gram (comprehension (generator (call * (' F) F) (= F factors)))) (= niters 0) (= converged false) (= obj_old 0.0) (= t 1.0) (= t_old 1.0) (= LB (call fill! (call similar tnsr num_modes) 1.0)) (= LB_old (call fill! (call similar tnsr num_modes) 1.0)) (= U (call similar tnsr r r)) (= pb (call Progress maxiter "NNCP iterations ")) (while (&& (call ! converged) (call < niters maxiter)) (block (call update! pb niters) (.= LB_old LB) (local (:: M (call typeof U))) (for (= i (call : 1 num_modes)) (block (= idx (vcat (call : num_modes -1 (call + i 1)) (call : (call - i 1) -1 1))) (.= U (call reduce (-> (tuple x y) (block (call .* x y))) (ref gram idx))) (= (ref LB i) (call norm U)) (= M (call * (call _row_unfold tnsr i) (call khatrirao (ref factors idx)))) (= (ref factors i) (. max (tuple 0 (call .- (ref factors_exp i) (call .* (call .- (call * (ref factors_exp i) U) M) (call / 1 (ref LB i))))))) (call mul! (ref gram i) (' (ref factors i)) (ref factors i)))) (= obj (call - (call dot (ref gram num_modes) U) (call * 4 (call dot (ref factors num_modes) M)))) (if (call > obj obj_old) (block (for (= i (call eachindex factors_old)) (block (call copyto! (ref factors_exp i) (ref factors_old i))))) (block (= t (call + 1 (call sqrt (call + 1 (call * 4 (call ^ t_old 2)))))) (= min_w (call / (call - t_old 2) t)) (for (= i (call eachindex factors)) (block (= w (call min min_w (call sqrt (call / (ref LB_old i) (ref LB i))))) (.= (ref factors_exp i) (call .+ (ref factors i) (call .* w (call .- (ref factors i) (ref factors_old i))))) (call copyto! (ref factors_old i) (ref factors i)))) (= converged (call < (call abs (call - obj_old obj)) (call * tol (call abs obj_old)))) (= t_old t) (= obj_old obj))) (unknown_head niters 1))) (call finish! pb) (&& verbose (call _iter_status converged niters maxiter)) (= res (call CANDECOMP (call tuple (... factors)) (call fill! (call similar tnsr r) 1.0))) (&& compute_error (call _set_rel_residue res tnsr)) (return res))))  └─ @ /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:1  Stacktrace:  [1] _renumber(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ssa_rewrites::Dict{Int64, Int64}, slot_rewrites::Dict{Int64, Int64}, label_table::Dict{Int64, Int64}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1097  [2] renumber_body(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, input_code::Base.JuliaSyntax.SyntaxList{Dict{Symbol, Dict{Int64, Any}}, Vector{Int64}}, slot_rewrites::Dict{Int64, Int64})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1162  [3] compile_lambda(outer_ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1257  [4] linearize_ir(ctx::Base.JuliaLowering.ClosureConversionCtx{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1287  [5] core_lowering_hook(code::Any, mod::Module, file::String, line::UInt64, world::UInt64, _warn::Bool)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/hooks.jl:33  [6] include(mapexpr::Function, mod::Module, _path::String)  @ Base Base.jl:326  [7] top-level scope  @ ~/.julia/packages/TensorDecompositions/3BVk2/src/TensorDecompositions.jl:38  [8] include(mod::Module, _path::String)  @ Base Base.jl:325  [9] include_package_for_output(pkg::Base.PkgId, input::String, syntax_version::VersionNumber, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)  @ Base loading.jl:3296  [10] top-level scope  @ stdin:5  [11] eval(m::Module, e::Any)  @ Core boot.jl:522  [12] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)  @ Base loading.jl:3132  [13] include_string(m::Module, txt::String, fname::String)  @ Base loading.jl:3142 [inlined]  [14] exec_options(opts::Base.JLOptions)  @ Base client.jl:353  [15] _start()  @ Base client.jl:596 in expression starting at /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:1 in expression starting at /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/TensorDecompositions.jl:1 in expression starting at stdin:5 ✗ TensorDecompositions 42 dependencies successfully precompiled in 1806 seconds. 10 already precompiled. Precompilation completed after 1824.44s ################################################################################ # Loading # Loading TensorDecompositions... ┌ Info: JuliaLowering threw given input: │ code = │ :(#= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:1 =# Core.@doc "Non-negative CANDECOMP tensor decomposition.\n" function nncp(tnsr::AbstractArray{T, N}, r::Integer; tol::Float64 = 0.0001, maxiter::Integer = 100, compute_error::Bool = false, verbose::Bool = true) where {T <: Number, N} │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:4 =# │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:11 =# │ all((x->begin │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:11 =# │ x >= 0 │ end), tnsr) || throw(ArgumentError("Input tensor must be nonnegative.")) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:12 =# │ num_modes = _check_tensor(tnsr, r) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:13 =# │ T_norm = norm(tnsr) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:15 =# │ factors = [abs.(F) .* (T_norm ^ (1 / num_modes) / norm(F)) for F::Matrix{T} = _random_factors(size(tnsr), r)] │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:16 =# │ factors_old = deepcopy(factors) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:17 =# │ factors_exp = deepcopy(factors) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:18 =# │ gram = [F' * F for F = factors] │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:20 =# │ niters = 0 │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:21 =# │ converged = false │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:22 =# │ obj_old = 0.0 │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:23 =# │ t = 1.0 │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:24 =# │ t_old = 1.0 │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:26 =# │ LB = fill!(similar(tnsr, num_modes), 1.0) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:27 =# │ LB_old = fill!(similar(tnsr, num_modes), 1.0) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:29 =# │ U = similar(tnsr, r, r) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:31 =# │ pb = Progress(maxiter, "NNCP iterations ") │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:32 =# │ while !converged && niters < maxiter │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:33 =# │ update!(pb, niters) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:34 =# │ LB_old .= LB │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:35 =# │ local M::typeof(U) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:36 =# │ for i = 1:num_modes │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:37 =# │ idx = [num_modes:-1:i + 1; i - 1:-1:1] │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:38 =# │ U .= reduce(((x, y)->begin │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:38 =# │ x .* y │ end), gram[idx]) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:39 =# │ LB[i] = norm(U) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:40 =# │ M = _row_unfold(tnsr, i) * khatrirao(factors[idx]) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:41 =# │ factors[i] = max.(0, factors_exp[i] .- (factors_exp[i] * U .- M) .* (1 / LB[i])) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:42 =# │ mul!(gram[i], (factors[i])', factors[i]) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:43 =# │ end │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:45 =# │ obj = dot(gram[num_modes], U) - 4 * dot(factors[num_modes], M) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:46 =# │ if obj > obj_old │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:47 =# │ for i = eachindex(factors_old) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:48 =# │ copyto!(factors_exp[i], factors_old[i]) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:49 =# │ end │ else │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:51 =# │ t = 1 + sqrt(1 + 4 * t_old ^ 2) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:52 =# │ min_w = (t_old - 2) / t │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:53 =# │ for i = eachindex(factors) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:54 =# │ w = min(min_w, sqrt(LB_old[i] / LB[i])) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:55 =# │ factors_exp[i] .= factors[i] .+ w .* (factors[i] .- factors_old[i]) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:56 =# │ copyto!(factors_old[i], factors[i]) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:57 =# │ end │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:58 =# │ converged = abs(obj_old - obj) < tol * abs(obj_old) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:59 =# │ t_old = t │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:60 =# │ obj_old = obj │ end │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:62 =# │ niters += 1 │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:63 =# │ end │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:64 =# │ finish!(pb) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:65 =# │ verbose && _iter_status(converged, niters, maxiter) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:67 =# │ res = CANDECOMP(tuple(factors...), fill!(similar(tnsr, r), 1.0)) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:68 =# │ compute_error && _set_rel_residue(res, tnsr) │ #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:69 =# │ return res │ end) │ st0 = │ SyntaxTree with attributes mod,kind,var_id,toplevel_pure,scope_type,macro_source,name_val,syntax_flags,meta,scope_layer,value,jl_source,is_toplevel_thunk,source,__macro_ctx__ │ [macrocall] │ │ @doc :: Identifier │ mod │ :(#= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:1 =#) :: Value │ │ "Non-negative CANDECOMP tensor decomposition.\n" :: Value │ │ [function] │ │ [where] │ │ [call] │ │ nncp :: Identifier │ │ [parameters] │ │ [kw] │ │ [::] │ │ tol :: Identifier │ │ Float64 :: Identifier │ │ 0.0001 :: Value │ │ [kw] │ │ [::] │ │ maxiter :: Identifier │ │ Integer :: Identifier │ │ 100 :: Value │ │ [kw] │ │ [::] │ │ compute_error :: Identifier │ │ Bool :: Identifier │ │ false :: Value │ │ [kw] │ │ [::] │ │ verbose :: Identifier │ │ Bool :: Identifier │ │ true :: Value │ │ [::] │ │ tnsr :: Identifier │ │ [curly] │ │ AbstractArray :: Identifier │ │ T :: Identifier │ │ N :: Identifier │ │ [::] │ │ r :: Identifier │ │ Integer :: Identifier │ │ [<:] │ │ T :: Identifier │ │ Number :: Identifier │ │ N :: Identifier │ │ [block] │ │ [||] │ │ [call] │ │ all :: Identifier │ │ [->] │ │ x :: Identifier │ │ [block] │ │ [call] │ │ >= :: Identifier │ │ x :: Identifier │ │ 0 :: Value │ │ tnsr :: Identifier │ │ [call] │ │ throw :: Identifier │ │ [call] │ │ ArgumentError :: Identifier │ │ "Input tensor must be nonnegative." :: Value │ │ [=] │ │ num_modes :: Identifier │ │ [call] │ │ _check_tensor :: Identifier │ │ tnsr :: Identifier │ │ r :: Identifier │ │ [=] │ │ T_norm :: Identifier │ │ [call] │ │ norm :: Identifier │ │ tnsr :: Identifier │ │ [=] │ │ factors :: Identifier │ │ [comprehension] │ │ [generator] │ │ [call] │ │ .* :: Identifier │ │ [.] │ │ abs :: Identifier │ │ [tuple] │ │ F :: Identifier │ │ [call] │ │ / :: Identifier │ │ [call] │ │ ^ :: Identifier │ │ T_norm :: Identifier │ │ [call] │ │ / :: Identifier │ │ 1 :: Value │ │ num_modes :: Identifier │ │ [call] │ │ norm :: Identifier │ │ F :: Identifier │ │ [=] │ │ [::] │ │ F :: Identifier │ │ [curly] │ │ Matrix :: Identifier │ │ T :: Identifier │ │ [call] │ │ _random_factors :: Identifier │ │ [call] │ │ size :: Identifier │ │ tnsr :: Identifier │ │ r :: Identifier │ │ [=] │ │ factors_old :: Identifier │ │ [call] │ │ deepcopy :: Identifier │ │ factors :: Identifier │ │ [=] │ │ factors_exp :: Identifier │ │ [call] │ │ deepcopy :: Identifier │ │ factors :: Identifier │ │ [=] │ │ gram :: Identifier │ │ [comprehension] │ │ [generator] │ │ [call] │ │ * :: Identifier │ │ ['] │ │ F :: Identifier │ │ F :: Identifier │ │ [=] │ │ F :: Identifier │ │ factors :: Identifier │ │ [=] │ │ niters :: Identifier │ │ 0 :: Value │ │ [=] │ │ converged :: Identifier │ │ false :: Value │ │ [=] │ │ obj_old :: Identifier │ │ 0.0 :: Value │ │ [=] │ │ t :: Identifier │ │ 1.0 :: Value │ │ [=] │ │ t_old :: Identifier │ │ 1.0 :: Value │ │ [=] │ │ LB :: Identifier │ │ [call] │ │ fill! :: Identifier │ │ [call] │ │ similar :: Identifier │ │ tnsr :: Identifier │ │ num_modes :: Identifier │ │ 1.0 :: Value │ │ [=] │ │ LB_old :: Identifier │ │ [call] │ │ fill! :: Identifier │ │ [call] │ │ similar :: Identifier │ │ tnsr :: Identifier │ │ num_modes :: Identifier │ │ 1.0 :: Value │ │ [=] │ │ U :: Identifier │ │ [call] │ │ similar :: Identifier │ │ tnsr :: Identifier │ │ r :: Identifier │ │ r :: Identifier │ │ [=] │ │ pb :: Identifier │ │ [call] │ │ Progress :: Identifier │ │ maxiter :: Identifier │ │ "NNCP iterations " :: Value │ │ [while] │ │ [&&] │ │ [call] │ │ ! :: Identifier │ │ converged :: Identifier │ │ [call] │ │ < :: Identifier │ │ niters :: Identifier │ │ maxiter :: Identifier │ │ [block] │ │ [call] │ │ update! :: Identifier │ │ pb :: Identifier │ │ niters :: Identifier │ │ [.=] │ │ LB_old :: Identifier │ │ LB :: Identifier │ │ [local] │ │ [::] │ │ M :: Identifier │ │ [call] │ │ typeof :: Identifier │ │ U :: Identifier │ │ [for] │ │ [=] │ │ i :: Identifier │ │ [call] │ │ : :: Identifier │ │ 1 :: Value │ │ num_modes :: Identifier │ │ [block] │ │ [=] │ │ idx :: Identifier │ │ [vcat] │ │ [call] │ │ : :: Identifier │ │ num_modes :: Identifier │ │ -1 :: Value │ │ [call] │ │ + :: Identifier │ │ i :: Identifier │ │ 1 :: Value │ │ [call] │ │ : :: Identifier │ │ [call] │ │ - :: Identifier │ │ i :: Identifier │ │ 1 :: Value │ │ -1 :: Value │ │ 1 :: Value │ │ [.=] │ │ U :: Identifier │ │ [call] │ │ reduce :: Identifier │ │ [->] │ │ [tuple] │ │ x :: Identifier │ │ y :: Identifier │ │ [block] │ │ [call] │ │ .* :: Identifier │ │ x :: Identifier │ │ y :: Identifier │ │ [ref] │ │ gram :: Identifier │ │ idx :: Identifier │ │ [=] │ │ [ref] │ │ LB :: Identifier │ │ i :: Identifier │ │ [call] │ │ norm :: Identifier │ │ U :: Identifier │ │ [=] │ │ M :: Identifier │ │ [call] │ │ * :: Identifier │ │ [call] │ │ _row_unfold :: Identifier │ │ tnsr :: Identifier │ │ i :: Identifier │ │ [call] │ │ khatrirao :: Identifier │ │ [ref] │ │ factors :: Identifier │ │ idx :: Identifier │ │ [=] │ │ [ref] │ │ factors :: Identifier │ │ i :: Identifier │ │ [.] │ │ max :: Identifier │ │ [tuple] │ │ 0 :: Value │ │ [call] │ │ .- :: Identifier │ │ [ref] │ │ factors_exp :: Identifier │ │ i :: Identifier │ │ [call] │ │ .* :: Identifier │ │ [call] │ │ .- :: Identifier │ │ [call] │ │ * :: Identifier │ │ [ref] │ │ factors_exp :: Identifier │ │ i :: Identifier │ │ U :: Identifier │ │ M :: Identifier │ │ [call] │ │ / :: Identifier │ │ 1 :: Value │ │ [ref] │ │ LB :: Identifier │ │ i :: Identifier │ │ [call] │ │ mul! :: Identifier │ │ [ref] │ │ gram :: Identifier │ │ i :: Identifier │ │ ['] │ │ [ref] │ │ factors :: Identifier │ │ i :: Identifier │ │ [ref] │ │ factors :: Identifier │ │ i :: Identifier │ │ [=] │ │ obj :: Identifier │ │ [call] │ │ - :: Identifier │ │ [call] │ │ dot :: Identifier │ │ [ref] │ │ gram :: Identifier │ │ num_modes :: Identifier │ │ U :: Identifier │ │ [call] │ │ * :: Identifier │ │ 4 :: Value │ │ [call] │ │ dot :: Identifier │ │ [ref] │ │ factors :: Identifier │ │ num_modes :: Identifier │ │ M :: Identifier │ │ [if] │ │ [call] │ │ > :: Identifier │ │ obj :: Identifier │ │ obj_old :: Identifier │ │ [block] │ │ [for] │ │ [=] │ │ i :: Identifier │ │ [call] │ │ eachindex :: Identifier │ │ factors_old :: Identifier │ │ [block] │ │ [call] │ │ copyto! :: Identifier │ │ [ref] │ │ factors_exp :: Identifier │ │ i :: Identifier │ │ [ref] │ │ factors_old :: Identifier │ │ i :: Identifier │ │ [block] │ │ [=] │ │ t :: Identifier │ │ [call] │ │ + :: Identifier │ │ 1 :: Value │ │ [call] │ │ sqrt :: Identifier │ │ [call] │ │ + :: Identifier │ │ 1 :: Value │ │ [call] │ │ * :: Identifier │ │ 4 :: Value │ │ [call] │ │ ^ :: Identifier │ │ t_old :: Identifier │ │ 2 :: Value │ │ [=] │ │ min_w :: Identifier │ │ [call] │ │ / :: Identifier │ │ [call] │ │ - :: Identifier │ │ t_old :: Identifier │ │ 2 :: Value │ │ t :: Identifier │ │ [for] │ │ [=] │ │ i :: Identifier │ │ [call] │ │ eachindex :: Identifier │ │ factors :: Identifier │ │ [block] │ │ [=] │ │ w :: Identifier │ │ [call] │ │ min :: Identifier │ │ min_w :: Identifier │ │ [call] │ │ sqrt :: Identifier │ │ [call] │ │ / :: Identifier │ │ [ref] │ │ LB_old :: Identifier │ │ i :: Identifier │ │ [ref] │ │ LB :: Identifier │ │ i :: Identifier │ │ [.=] │ │ [ref] │ │ factors_exp :: Identifier │ │ i :: Identifier │ │ [call] │ │ .+ :: Identifier │ │ [ref] │ │ factors :: Identifier │ │ i :: Identifier │ │ [call] │ │ .* :: Identifier │ │ w :: Identifier │ │ [call] │ │ .- :: Identifier │ │ [ref] │ │ factors :: Identifier │ │ i :: Identifier │ │ [ref] │ │ factors_old :: Identifier │ │ i :: Identifier │ │ [call] │ │ copyto! :: Identifier │ │ [ref] │ │ factors_old :: Identifier │ │ i :: Identifier │ │ [ref] │ │ factors :: Identifier │ │ i :: Identifier │ │ [=] │ │ converged :: Identifier │ │ [call] │ │ < :: Identifier │ │ [call] │ │ abs :: Identifier │ │ [call] │ │ - :: Identifier │ │ obj_old :: Identifier │ │ obj :: Identifier │ │ [call] │ │ * :: Identifier │ │ tol :: Identifier │ │ [call] │ │ abs :: Identifier │ │ obj_old :: Identifier │ │ [=] │ │ t_old :: Identifier │ │ t :: Identifier │ │ [=] │ │ obj_old :: Identifier │ │ obj :: Identifier │ │ [unknown_head] │ │ niters :: Identifier │ │ 1 :: Value │ │ [call] │ │ finish! :: Identifier │ │ pb :: Identifier │ │ [&&] │ │ verbose :: Identifier │ │ [call] │ │ _iter_status :: Identifier │ │ converged :: Identifier │ │ niters :: Identifier │ │ maxiter :: Identifier │ │ [=] │ │ res :: Identifier │ │ [call] │ │ CANDECOMP :: Identifier │ │ [call] │ │ tuple :: Identifier │ │ [...] │ │ factors :: Identifier │ │ [call] │ │ fill! :: Identifier │ │ [call] │ │ similar :: Identifier │ │ tnsr :: Identifier │ │ r :: Identifier │ │ 1.0 :: Value │ │ [&&] │ │ compute_error :: Identifier │ │ [call] │ │ _set_rel_residue :: Identifier │ │ res :: Identifier │ │ tnsr :: Identifier │ │ [return] │ │ res :: Identifier │ │ │ st1 = │ SyntaxTree with attributes mod,kind,var_id,toplevel_pure,scope_type,macro_source,name_val,syntax_flags,meta,scope_layer,value,jl_source,is_toplevel_thunk,source │ [block] │ │ [=] │ │ val :: Identifier │ scope_layer=3 │ [function] │ │ [where] │ │ [call] │ │ nncp :: Identifier │ scope_layer=1 │ [parameters] │ │ [kw] │ │ [::] │ │ tol :: Identifier │ scope_layer=1 │ Float64 :: Identifier │ scope_layer=1 │ 0.0001 :: Value │ macro_source=475 │ [kw] │ │ [::] │ │ maxiter :: Identifier │ scope_layer=1 │ Integer :: Identifier │ scope_layer=1 │ 100 :: Value │ macro_source=475 │ [kw] │ │ [::] │ │ compute_error :: Identifier │ scope_layer=1 │ Bool :: Identifier │ scope_layer=1 │ false :: Value │ macro_source=475 │ [kw] │ │ [::] │ │ verbose :: Identifier │ scope_layer=1 │ Bool :: Identifier │ scope_layer=1 │ true :: Value │ macro_source=475 │ [::] │ │ tnsr :: Identifier │ scope_layer=1 │ [curly] │ │ AbstractArray :: Identifier │ scope_layer=1 │ T :: Identifier │ scope_layer=1 │ N :: Identifier │ scope_layer=1 │ [::] │ │ r :: Identifier │ scope_layer=1 │ Integer :: Identifier │ scope_layer=1 │ [<:] │ scope_layer=1 │ T :: Identifier │ scope_layer=1 │ Number :: Identifier │ scope_layer=1 │ N :: Identifier │ scope_layer=1 │ [block] │ │ [||] │ │ [call] │ │ all :: Identifier │ scope_layer=1 │ [->] │ │ x :: Identifier │ scope_layer=1 │ [block] │ │ [call] │ │ >= :: Identifier │ scope_layer=1 │ x :: Identifier │ scope_layer=1 │ 0 :: Value │ macro_source=475 │ tnsr :: Identifier │ scope_layer=1 │ [call] │ │ throw :: Identifier │ scope_layer=1 │ [call] │ │ ArgumentError :: Identifier │ scope_layer=1 │ "Input tensor must be nonnegative." :: Value │ macro_source=475 │ [=] │ │ num_modes :: Identifier │ scope_layer=1 │ [call] │ │ _check_tensor :: Identifier │ scope_layer=1 │ tnsr :: Identifier │ scope_layer=1 │ r :: Identifier │ scope_layer=1 │ [=] │ │ T_norm :: Identifier │ scope_layer=1 │ [call] │ │ norm :: Identifier │ scope_layer=1 │ tnsr :: Identifier │ scope_layer=1 │ [=] │ │ factors :: Identifier │ scope_layer=1 │ [comprehension] │ │ [generator] │ │ [call] │ │ .* :: Identifier │ scope_layer=1 │ [.] │ │ abs :: Identifier │ scope_layer=1 │ [tuple] │ │ F :: Identifier │ scope_layer=1 │ [call] │ │ / :: Identifier │ scope_layer=1 │ [call] │ │ ^ :: Identifier │ scope_layer=1 │ T_norm :: Identifier │ scope_layer=1 │ [call] │ │ / :: Identifier │ scope_layer=1 │ 1 :: Value │ macro_source=475 │ num_modes :: Identifier │ scope_layer=1 │ [call] │ │ norm :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [=] │ │ [::] │ │ F :: Identifier │ scope_layer=1 │ [curly] │ │ Matrix :: Identifier │ scope_layer=1 │ T :: Identifier │ scope_layer=1 │ [call] │ │ _random_factors :: Identifier │ scope_layer=1 │ [call] │ │ size :: Identifier │ scope_layer=1 │ tnsr :: Identifier │ scope_layer=1 │ r :: Identifier │ scope_layer=1 │ [=] │ │ factors_old :: Identifier │ scope_layer=1 │ [call] │ │ deepcopy :: Identifier │ scope_layer=1 │ factors :: Identifier │ scope_layer=1 │ [=] │ │ factors_exp :: Identifier │ scope_layer=1 │ [call] │ │ deepcopy :: Identifier │ scope_layer=1 │ factors :: Identifier │ scope_layer=1 │ [=] │ │ gram :: Identifier │ scope_layer=1 │ [comprehension] │ │ [generator] │ │ [call] │ │ * :: Identifier │ scope_layer=1 │ ['] │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ F :: Identifier │ scope_layer=1 │ [=] │ │ F :: Identifier │ scope_layer=1 │ factors :: Identifier │ scope_layer=1 │ [=] │ │ niters :: Identifier │ scope_layer=1 │ 0 :: Value │ macro_source=475 │ [=] │ │ converged :: Identifier │ scope_layer=1 │ false :: Value │ macro_source=475 │ [=] │ │ obj_old :: Identifier │ scope_layer=1 │ 0.0 :: Value │ macro_source=475 │ [=] │ │ t :: Identifier │ scope_layer=1 │ 1.0 :: Value │ macro_source=475 │ [=] │ │ t_old :: Identifier │ scope_layer=1 │ 1.0 :: Value │ macro_source=475 │ [=] │ │ LB :: Identifier │ scope_layer=1 │ [call] │ │ fill! :: Identifier │ scope_layer=1 │ [call] │ │ similar :: Identifier │ scope_layer=1 │ tnsr :: Identifier │ scope_layer=1 │ num_modes :: Identifier │ scope_layer=1 │ 1.0 :: Value │ macro_source=475 │ [=] │ │ LB_old :: Identifier │ scope_layer=1 │ [call] │ │ fill! :: Identifier │ scope_layer=1 │ [call] │ │ similar :: Identifier │ scope_layer=1 │ tnsr :: Identifier │ scope_layer=1 │ num_modes :: Identifier │ scope_layer=1 │ 1.0 :: Value │ macro_source=475 │ [=] │ │ U :: Identifier │ scope_layer=1 │ [call] │ │ similar :: Identifier │ scope_layer=1 │ tnsr :: Identifier │ scope_layer=1 │ r :: Identifier │ scope_layer=1 │ r :: Identifier │ scope_layer=1 │ [=] │ │ pb :: Identifier │ scope_layer=1 │ [call] │ │ Progress :: Identifier │ scope_layer=1 │ maxiter :: Identifier │ scope_layer=1 │ "NNCP iterations " :: Value │ macro_source=475 │ [while] │ │ [&&] │ │ [call] │ │ ! :: Identifier │ scope_layer=1 │ converged :: Identifier │ scope_layer=1 │ [call] │ │ < :: Identifier │ scope_layer=1 │ niters :: Identifier │ scope_layer=1 │ maxiter :: Identifier │ scope_layer=1 │ [block] │ │ [call] │ │ update! :: Identifier │ scope_layer=1 │ pb :: Identifier │ scope_layer=1 │ niters :: Identifier │ scope_layer=1 │ [.=] │ │ LB_old :: Identifier │ scope_layer=1 │ LB :: Identifier │ scope_layer=1 │ [local] │ │ [::] │ │ M :: Identifier │ scope_layer=1 │ [call] │ │ typeof :: Identifier │ scope_layer=1 │ U :: Identifier │ scope_layer=1 │ [for] │ │ [=] │ │ i :: Identifier │ scope_layer=1 │ [call] │ │ : :: Identifier │ scope_layer=1 │ 1 :: Value │ macro_source=475 │ num_modes :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ idx :: Identifier │ scope_layer=1 │ [vcat] │ │ [call] │ │ : :: Identifier │ scope_layer=1 │ num_modes :: Identifier │ scope_layer=1 │ -1 :: Value │ macro_source=475 │ [call] │ │ + :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ 1 :: Value │ macro_source=475 │ [call] │ │ : :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ 1 :: Value │ macro_source=475 │ -1 :: Value │ macro_source=475 │ 1 :: Value │ macro_source=475 │ [.=] │ │ U :: Identifier │ scope_layer=1 │ [call] │ │ reduce :: Identifier │ scope_layer=1 │ [->] │ │ [tuple] │ │ x :: Identifier │ scope_layer=1 │ y :: Identifier │ scope_layer=1 │ [block] │ │ [call] │ │ .* :: Identifier │ scope_layer=1 │ x :: Identifier │ scope_layer=1 │ y :: Identifier │ scope_layer=1 │ [ref] │ │ gram :: Identifier │ scope_layer=1 │ idx :: Identifier │ scope_layer=1 │ [=] │ │ [ref] │ │ LB :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [call] │ │ norm :: Identifier │ scope_layer=1 │ U :: Identifier │ scope_layer=1 │ [=] │ │ M :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ [call] │ │ _row_unfold :: Identifier │ scope_layer=1 │ tnsr :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [call] │ │ khatrirao :: Identifier │ scope_layer=1 │ [ref] │ │ factors :: Identifier │ scope_layer=1 │ idx :: Identifier │ scope_layer=1 │ [=] │ │ [ref] │ │ factors :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [.] │ │ max :: Identifier │ scope_layer=1 │ [tuple] │ │ 0 :: Value │ macro_source=475 │ [call] │ │ .- :: Identifier │ scope_layer=1 │ [ref] │ │ factors_exp :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [call] │ │ .* :: Identifier │ scope_layer=1 │ [call] │ │ .- :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ [ref] │ │ factors_exp :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ U :: Identifier │ scope_layer=1 │ M :: Identifier │ scope_layer=1 │ [call] │ │ / :: Identifier │ scope_layer=1 │ 1 :: Value │ macro_source=475 │ [ref] │ │ LB :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [call] │ │ mul! :: Identifier │ scope_layer=1 │ [ref] │ │ gram :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ ['] │ scope_layer=1 │ [ref] │ │ factors :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [ref] │ │ factors :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [=] │ │ obj :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ [call] │ │ dot :: Identifier │ scope_layer=1 │ [ref] │ │ gram :: Identifier │ scope_layer=1 │ num_modes :: Identifier │ scope_layer=1 │ U :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ 4 :: Value │ macro_source=475 │ [call] │ │ dot :: Identifier │ scope_layer=1 │ [ref] │ │ factors :: Identifier │ scope_layer=1 │ num_modes :: Identifier │ scope_layer=1 │ M :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ > :: Identifier │ scope_layer=1 │ obj :: Identifier │ scope_layer=1 │ obj_old :: Identifier │ scope_layer=1 │ [block] │ │ [for] │ │ [=] │ │ i :: Identifier │ scope_layer=1 │ [call] │ │ eachindex :: Identifier │ scope_layer=1 │ factors_old :: Identifier │ scope_layer=1 │ [block] │ │ [call] │ │ copyto! :: Identifier │ scope_layer=1 │ [ref] │ │ factors_exp :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [ref] │ │ factors_old :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ t :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ 1 :: Value │ macro_source=475 │ [call] │ │ sqrt :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ 1 :: Value │ macro_source=475 │ [call] │ │ * :: Identifier │ scope_layer=1 │ 4 :: Value │ macro_source=475 │ [call] │ │ ^ :: Identifier │ scope_layer=1 │ t_old :: Identifier │ scope_layer=1 │ 2 :: Value │ macro_source=475 │ [=] │ │ min_w :: Identifier │ scope_layer=1 │ [call] │ │ / :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ t_old :: Identifier │ scope_layer=1 │ 2 :: Value │ macro_source=475 │ t :: Identifier │ scope_layer=1 │ [for] │ │ [=] │ │ i :: Identifier │ scope_layer=1 │ [call] │ │ eachindex :: Identifier │ scope_layer=1 │ factors :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ w :: Identifier │ scope_layer=1 │ [call] │ │ min :: Identifier │ scope_layer=1 │ min_w :: Identifier │ scope_layer=1 │ [call] │ │ sqrt :: Identifier │ scope_layer=1 │ [call] │ │ / :: Identifier │ scope_layer=1 │ [ref] │ │ LB_old :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [ref] │ │ LB :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [.=] │ │ [ref] │ │ factors_exp :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [call] │ │ .+ :: Identifier │ scope_layer=1 │ [ref] │ │ factors :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [call] │ │ .* :: Identifier │ scope_layer=1 │ w :: Identifier │ scope_layer=1 │ [call] │ │ .- :: Identifier │ scope_layer=1 │ [ref] │ │ factors :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [ref] │ │ factors_old :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [call] │ │ copyto! :: Identifier │ scope_layer=1 │ [ref] │ │ factors_old :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [ref] │ │ factors :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [=] │ │ converged :: Identifier │ scope_layer=1 │ [call] │ │ < :: Identifier │ scope_layer=1 │ [call] │ │ abs :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ obj_old :: Identifier │ scope_layer=1 │ obj :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ tol :: Identifier │ scope_layer=1 │ [call] │ │ abs :: Identifier │ scope_layer=1 │ obj_old :: Identifier │ scope_layer=1 │ [=] │ │ t_old :: Identifier │ scope_layer=1 │ t :: Identifier │ scope_layer=1 │ [=] │ │ obj_old :: Identifier │ scope_layer=1 │ obj :: Identifier │ scope_layer=1 │ [unknown_head] │ scope_layer=1 │ niters :: Identifier │ scope_layer=1 │ 1 :: Value │ macro_source=475 │ [call] │ │ finish! :: Identifier │ scope_layer=1 │ pb :: Identifier │ scope_layer=1 │ [&&] │ │ verbose :: Identifier │ scope_layer=1 │ [call] │ │ _iter_status :: Identifier │ scope_layer=1 │ converged :: Identifier │ scope_layer=1 │ niters :: Identifier │ scope_layer=1 │ maxiter :: Identifier │ scope_layer=1 │ [=] │ │ res :: Identifier │ scope_layer=1 │ [call] │ │ CANDECOMP :: Identifier │ scope_layer=1 │ [call] │ │ tuple :: Identifier │ scope_layer=1 │ [...] │ │ factors :: Identifier │ scope_layer=1 │ [call] │ │ fill! :: Identifier │ scope_layer=1 │ [call] │ │ similar :: Identifier │ scope_layer=1 │ tnsr :: Identifier │ scope_layer=1 │ r :: Identifier │ scope_layer=1 │ 1.0 :: Value │ macro_source=475 │ [&&] │ │ compute_error :: Identifier │ scope_layer=1 │ [call] │ │ _set_rel_residue :: Identifier │ scope_layer=1 │ res :: Identifier │ scope_layer=1 │ tnsr :: Identifier │ scope_layer=1 │ [return] │ │ res :: Identifier │ scope_layer=1 │ [call] │ │ Base.Docs.doc! :: Value │ macro_source=475 │ TensorDecompositions :: Value │ macro_source=475 │ [call] │ │ Base.Docs.Binding :: Value │ macro_source=475 │ TensorDecompositions :: Value │ │ [inert] │ jl_source=L65 │ nncp :: Identifier │ │ [call] │ macro_source=475 │ Base.Docs.docstr :: Value │ macro_source=475 │ [call] │ macro_source=475 │ Core.svec :: Value │ macro_source=475 │ "Non-negative CANDECOMP tensor decomposition.\n" :: Value │ macro_source=475 │ [call] │ macro_source=475 │ Dict{Symbol, Any} :: Value │ macro_source=475 │ :path => "/home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl" :: Value │ macro_source=475 │ :linenumber => 1 :: Value │ macro_source=475 │ :module => TensorDecompositions :: Value │ macro_source=475 │ [where] │ │ [where] │ │ [curly] │ │ Union :: Identifier │ scope_layer=1 │ [curly] │ │ Tuple :: Identifier │ scope_layer=1 │ [curly] │ │ AbstractArray :: Identifier │ scope_layer=1 │ T :: Identifier │ scope_layer=1 │ N :: Identifier │ scope_layer=1 │ Integer :: Identifier │ scope_layer=1 │ [curly] │ │ Tuple :: Identifier │ scope_layer=1 │ N :: Identifier │ scope_layer=1 │ [curly] │ │ Tuple :: Identifier │ scope_layer=1 │ T :: Identifier │ scope_layer=1 │ [<:] │ scope_layer=1 │ N :: Identifier │ scope_layer=1 │ Any :: Identifier │ scope_layer=1 │ [<:] │ scope_layer=1 │ T :: Identifier │ scope_layer=1 │ Number :: Identifier │ scope_layer=1 │ val :: Identifier │ scope_layer=3 │ │ file = "/home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl" │ line = 1 └ mod = TensorDecompositions ERROR: LoadError: LoweringError: #= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:15 =# - Found unexpected binding of kind static_parameter Expression:  #₅₁/T Containing expressions:  (= #₁₈₃/T #₅₁/T)  (call core.svec (call core.svec #₁₅₉/##kw_body#nncp#0##->###1 (call core.apply_type #₈₀/Matrix #₅₁/T)) (call core.svec) SourceLocation:/home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:15:0)  (call core.svec (call core.svec (function_type #₅₄/#->#) (call core.apply_type #₈₀/Matrix #₅₁/T)) (call core.svec) SourceLocation:/home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:15:0)  Detailed provenance:  #₅₁/T  └─ T  └─ T  ├─ @ /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:15  └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:1 =#) "Non-negative CANDECOMP tensor decomposition.\n" (function (where (call nncp (parameters (kw (:: tol Float64) 0.0001) (kw (:: maxiter Integer) 100) (kw (:: compute_error Bool) false) (kw (:: verbose Bool) true)) (:: tnsr (curly AbstractArray T N)) (:: r Integer)) (<: T Number) N) (block (|| (call all (-> x (block (call >= x 0))) tnsr) (call throw (call ArgumentError "Input tensor must be nonnegative."))) (= num_modes (call _check_tensor tnsr r)) (= T_norm (call norm tnsr)) (= factors (comprehension (generator (call .* (. abs (tuple F)) (call / (call ^ T_norm (call / 1 num_modes)) (call norm F))) (= (:: F (curly Matrix T)) (call _random_factors (call size tnsr) r))))) (= factors_old (call deepcopy factors)) (= factors_exp (call deepcopy factors)) (= gram (comprehension (generator (call * (' F) F) (= F factors)))) (= niters 0) (= converged false) (= obj_old 0.0) (= t 1.0) (= t_old 1.0) (= LB (call fill! (call similar tnsr num_modes) 1.0)) (= LB_old (call fill! (call similar tnsr num_modes) 1.0)) (= U (call similar tnsr r r)) (= pb (call Progress maxiter "NNCP iterations ")) (while (&& (call ! converged) (call < niters maxiter)) (block (call update! pb niters) (.= LB_old LB) (local (:: M (call typeof U))) (for (= i (call : 1 num_modes)) (block (= idx (vcat (call : num_modes -1 (call + i 1)) (call : (call - i 1) -1 1))) (.= U (call reduce (-> (tuple x y) (block (call .* x y))) (ref gram idx))) (= (ref LB i) (call norm U)) (= M (call * (call _row_unfold tnsr i) (call khatrirao (ref factors idx)))) (= (ref factors i) (. max (tuple 0 (call .- (ref factors_exp i) (call .* (call .- (call * (ref factors_exp i) U) M) (call / 1 (ref LB i))))))) (call mul! (ref gram i) (' (ref factors i)) (ref factors i)))) (= obj (call - (call dot (ref gram num_modes) U) (call * 4 (call dot (ref factors num_modes) M)))) (if (call > obj obj_old) (block (for (= i (call eachindex factors_old)) (block (call copyto! (ref factors_exp i) (ref factors_old i))))) (block (= t (call + 1 (call sqrt (call + 1 (call * 4 (call ^ t_old 2)))))) (= min_w (call / (call - t_old 2) t)) (for (= i (call eachindex factors)) (block (= w (call min min_w (call sqrt (call / (ref LB_old i) (ref LB i))))) (.= (ref factors_exp i) (call .+ (ref factors i) (call .* w (call .- (ref factors i) (ref factors_old i))))) (call copyto! (ref factors_old i) (ref factors i)))) (= converged (call < (call abs (call - obj_old obj)) (call * tol (call abs obj_old)))) (= t_old t) (= obj_old obj))) (unknown_head niters 1))) (call finish! pb) (&& verbose (call _iter_status converged niters maxiter)) (= res (call CANDECOMP (call tuple (... factors)) (call fill! (call similar tnsr r) 1.0))) (&& compute_error (call _set_rel_residue res tnsr)) (return res))))  └─ @ /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:1  Stacktrace:  [1] _renumber(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ssa_rewrites::Dict{Int64, Int64}, slot_rewrites::Dict{Int64, Int64}, label_table::Dict{Int64, Int64}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1097  [2] renumber_body(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, input_code::Base.JuliaSyntax.SyntaxList{Dict{Symbol, Dict{Int64, Any}}, Vector{Int64}}, slot_rewrites::Dict{Int64, Int64})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1162  [3] compile_lambda(outer_ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1257  [4] linearize_ir(ctx::Base.JuliaLowering.ClosureConversionCtx{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1287  [5] core_lowering_hook(code::Any, mod::Module, file::String, line::UInt64, world::UInt64, _warn::Bool)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/hooks.jl:33  [6] include(mapexpr::Function, mod::Module, _path::String)  @ Base Base.jl:326  [7] top-level scope  @ ~/.julia/packages/TensorDecompositions/3BVk2/src/TensorDecompositions.jl:38  [8] include(mod::Module, _path::String)  @ Base Base.jl:325  [9] include_package_for_output(pkg::Base.PkgId, input::String, syntax_version::VersionNumber, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)  @ Base loading.jl:3296  [10] top-level scope  @ stdin:5  [11] eval(m::Module, e::Any)  @ Core boot.jl:522  [12] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)  @ Base loading.jl:3132  [13] include_string(m::Module, txt::String, fname::String)  @ Base loading.jl:3142 [inlined]  [14] exec_options(opts::Base.JLOptions)  @ Base client.jl:353  [15] _start()  @ Base client.jl:596 in expression starting at /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/nncp.jl:1 in expression starting at /home/pkgeval/.julia/packages/TensorDecompositions/3BVk2/src/TensorDecompositions.jl:1 in expression starting at stdin:5 1 dependency had output during precompilation: ┌ TensorDecompositions │ [Output was shown above] └ ERROR: The following 1 package failed to precompile: TensorDecompositions Failed to precompile TensorDecompositions [04ed911b-6d5f-4088-a74e-60d2d5028204] to "/home/pkgeval/.julia/compiled/v1.14/TensorDecompositions/jl_Nk5RWw" (ProcessExited(1)). Loading failed after 118.01s ERROR: LoadError: failed process: Process(`/opt/julia/bin/julia -C native -J/opt/julia/lib/julia/sys.so -g1 --check-bounds=yes --inline=yes --check-bounds=yes --pkgimages=existing -e 'using TensorDecompositions'`, ProcessExited(1)) [1] Stacktrace: [1] pipeline_error(proc::Base.Process) @ Base process.jl:612 [inlined] [2] run(::Cmd; wait::Bool) @ Base process.jl:525 [3] run(::Cmd) @ Base process.jl:522 [4] top-level scope @ /PkgEval.jl/scripts/evaluate.jl:197 [5] include(mod::Module, _path::String) @ Base Base.jl:325 [6] exec_options(opts::Base.JLOptions) @ Base client.jl:355 [7] _start() @ Base client.jl:596 in expression starting at /PkgEval.jl/scripts/evaluate.jl:188 PkgEval failed after 1976.09s: package fails to precompile