Package evaluation of AlgebraicDecisionDiagrams on Julia 1.11.4 (a71dd056e0*) started at 2025-04-08T06:59:57.622 ################################################################################ # Set-up # Installing PkgEval dependencies (TestEnv)... Set-up completed after 8.88s ################################################################################ # Installation # Installing AlgebraicDecisionDiagrams... Resolving package versions... Updating `~/.julia/environments/v1.11/Project.toml` [fda02c4b] + AlgebraicDecisionDiagrams v0.1.0 Updating `~/.julia/environments/v1.11/Manifest.toml` [fda02c4b] + AlgebraicDecisionDiagrams v0.1.0 Installation completed after 1.08s ################################################################################ # Precompilation # Precompiling PkgEval dependencies... Precompiling package dependencies... Precompilation completed after 11.87s ################################################################################ # Testing # Testing AlgebraicDecisionDiagrams Status `/tmp/jl_oXflkQ/Project.toml` [fda02c4b] AlgebraicDecisionDiagrams v0.1.0 [8dfed614] Test v1.11.0 Status `/tmp/jl_oXflkQ/Manifest.toml` [fda02c4b] AlgebraicDecisionDiagrams v0.1.0 [2a0f44e3] Base64 v1.11.0 [b77e0a4c] InteractiveUtils v1.11.0 [56ddb016] Logging v1.11.0 [d6f4376e] Markdown v1.11.0 [9a3f8284] Random v1.11.0 [ea8e919c] SHA v0.7.0 [9e88b42a] Serialization v1.11.0 [8dfed614] Test v1.11.0 Testing Running tests... l1 = @╮ V1 [3] ├─⊂−⊃─(false) [1] ╰─⊂+⊃─(true) [2] ¬l1 = @╮ V1 [6] ├─⊂−⊃─(true) [4] ╰─⊂+⊃─(false) [5] apply(~, l1) = @╮ V1 [3] ├─⊂−⊃─(true) [7] ╰─⊂+⊃─(false) [8] nliteral(1) = @╮ V1 [11] ├─⊂−⊃─(true) [9] ╰─⊂+⊃─(false) [10] l1 ∧ ¬l1 = (false) [15] l1 ∨ ¬l1 = (true) [25] [ Info: Fig. 7 in Bryant's paper ¬(l1 ∧ l3) ∨ l2 ∧ l3 = @╮ V1 [62] ├─⊂−⊃─(true) [55] ╰─⊂+⊃─╮ V2 [61] ├─⊂−⊃─╮ V3 [59] │ ├─⊂−⊃─(true) [55] │ ╰─⊂+⊃─(false) [58] ╰─⊂+⊃─(true) [55] Test Summary: | Pass Total Time Boolean Decision Diagrams | 2 2 4.5s [ Info: ADD x1 = indicator(Int, 1) = @╮ V1 [65] ├─⊂−⊃─(0) [63] ╰─⊂+⊃─(1) [64] one(x1) - x1 = @╮ V1 [69] ├─⊂−⊃─(1) [67] ╰─⊂+⊃─(0) [68] ¬x1 = @╮ V1 [72] ├─⊂−⊃─(1) [70] ╰─⊂+⊃─(0) [71] apply((x->begin #= /home/pkgeval/.julia/packages/AlgebraicDecisionDiagrams/R2zvO/test/add.jl:8 =# 1 - x end), x1) = @╮ V1 [65] ├─⊂−⊃─(1) [73] ╰─⊂+⊃─(0) [74] x1 + ¬x1 = (1) [78] x1 * ¬x1 = (0) [83] x2 = indicator(Int, 2) = @╮ V2 [87] ├─⊂−⊃─(0) [85] ╰─⊂+⊃─(1) [86] x1 + x2 = @╮ V1 [94] ├─⊂−⊃─╮ V2 [90] │ ├─⊂−⊃─(0) [88] │ ╰─⊂+⊃─(1) [89] ╰─⊂+⊃─╮ V2 [93] ├─⊂−⊃─(1) [89] ╰─⊂+⊃─(2) [92] x1 * x2 = @╮ V1 [100] ├─⊂−⊃─(0) [95] ╰─⊂+⊃─╮ V2 [99] ├─⊂−⊃─(0) [95] ╰─⊂+⊃─(1) [98] apply((x->begin #= /home/pkgeval/.julia/packages/AlgebraicDecisionDiagrams/R2zvO/test/add.jl:14 =# x ^ 2 end), x1 + x2) = @╮ V1 [107] ├─⊂−⊃─╮ V2 [103] │ ├─⊂−⊃─(0) [108] │ ╰─⊂+⊃─(1) [109] ╰─⊂+⊃─╮ V2 [106] ├─⊂−⊃─(1) [109] ╰─⊂+⊃─(4) [111] x ⊕ y = begin #= /home/pkgeval/.julia/packages/AlgebraicDecisionDiagrams/R2zvO/test/add.jl:15 =# (x + y) % 2 end = var"#⊕#6"() apply(⊕, x1, x2) = @╮ V1 [118] ├─⊂−⊃─╮ V2 [114] │ ├─⊂−⊃─(0) [112] │ ╰─⊂+⊃─(1) [113] ╰─⊂+⊃─╮ V2 [117] ├─⊂−⊃─(1) [113] ╰─⊂+⊃─(0) [112] x3 = indicator(Int, 3) = @╮ V3 [121] ├─⊂−⊃─(0) [119] ╰─⊂+⊃─(1) [120] [ Info: Odd Parity Function apply(⊕, x1, apply(⊕, x2, x3)) = @╮ V1 [137] ├─⊂−⊃─╮ V2 [133] │ ├─⊂−⊃─╮ V3 [131] │ │ ├─⊂−⊃─(0) [129] │ │ ╰─⊂+⊃─(1) [130] │ ╰─⊂+⊃─╮ V3 [132] │ ├─⊂−⊃─(1) [130] │ ╰─⊂+⊃─(0) [129] ╰─⊂+⊃─╮ V2 [136] ├─⊂−⊃─╮ V3 [132] │ ├─⊂−⊃─(1) [130] │ ╰─⊂+⊃─(0) [129] ╰─⊂+⊃─╮ V3 [131] ├─⊂−⊃─(0) [129] ╰─⊂+⊃─(1) [130] apply(max, x1 * x2, x3) = @╮ V1 [150] ├─⊂−⊃─╮ V3 [146] │ ├─⊂−⊃─(0) [144] │ ╰─⊂+⊃─(1) [145] ╰─⊂+⊃─╮ V2 [149] ├─⊂−⊃─╮ V3 [146] │ ├─⊂−⊃─(0) [144] │ ╰─⊂+⊃─(1) [145] ╰─⊂+⊃─(1) [145] [ Info: Example from Fig. 1 in Bryant's paper apply(max, ¬x1 * x2, x1 * x3) = @╮ V1 [171] ├─⊂−⊃─╮ V2 [168] │ ├─⊂−⊃─(0) [166] │ ╰─⊂+⊃─(1) [167] ╰─⊂+⊃─╮ V3 [170] ├─⊂−⊃─(0) [166] ╰─⊂+⊃─(1) [167] [ Info: Example in Fig. 5 of Bryant's paper A4 = ADD.reduce(Node(1, Node(2, zero(Int), A3), Node(2, A3, A3))) = @╮ V1 [178] ├─⊂−⊃─╮ V2 [176] │ ├─⊂−⊃─(0) [175] │ ╰─⊂+⊃─╮ V3 [174] │ ├─⊂−⊃─(0) [175] │ ╰─⊂+⊃─(1) [173] ╰─⊂+⊃─╮ V3 [174] ├─⊂−⊃─(0) [175] ╰─⊂+⊃─(1) [173] [ Info: Directed Graph ADD [ Info: Example in Fig 1. in Bahar et al. 1997's paper graph = Terminal(2) * nx0 * nx1 * ny0 * y1 + Terminal(2) * nx0 * nx1 * y0 * ny1 + Terminal(2) * nx0 * x1 * ny0 * y1 + Terminal(2) * nx0 * x1 * y0 * ny1 + Terminal(4) * x0 * nx1 * y0 * y1 + Terminal(4) * x0 * x1 * ny0 * y1 = @╮ V0 [398] ├─⊂−⊃─╮ V1 [391] │ ├─⊂−⊃─╮ V3 [389] │ │ ├─⊂−⊃─(0) [387] │ │ ╰─⊂+⊃─(2) [388] │ ╰─⊂+⊃─╮ V3 [390] │ ├─⊂−⊃─(2) [388] │ ╰─⊂+⊃─(0) [387] ╰─⊂+⊃─╮ V1 [397] ├─⊂−⊃─╮ V2 [394] │ ├─⊂−⊃─(0) [387] │ ╰─⊂+⊃─╮ V3 [393] │ ├─⊂−⊃─(0) [387] │ ╰─⊂+⊃─(4) [392] ╰─⊂+⊃─╮ V2 [396] ├─⊂−⊃─╮ V3 [393] │ ├─⊂−⊃─(0) [387] │ ╰─⊂+⊃─(4) [392] ╰─⊂+⊃─(0) [387] [ Info: Get scope scope = mapreduce(index, union, nt) = [0, 1, 2, 3] [ Info: Matrix examples in page 9 of Bryant's paper f = ¬x0 * ¬y0 + x0 * y0 = @╮ V0 [422] ├─⊂−⊃─╮ V1 [419] │ ├─⊂−⊃─(1) [417] │ ╰─⊂+⊃─(0) [418] ╰─⊂+⊃─╮ V1 [421] ├─⊂−⊃─(0) [418] ╰─⊂+⊃─(1) [417] g = Terminal(4) * nx0 + Terminal(2) * x0 = @╮ V0 [433] ├─⊂−⊃─(4) [431] ╰─⊂+⊃─(2) [432] h = f + g = @╮ V0 [440] ├─⊂−⊃─╮ V1 [436] │ ├─⊂−⊃─(5) [434] │ ╰─⊂+⊃─(4) [435] ╰─⊂+⊃─╮ V1 [439] ├─⊂−⊃─(2) [437] ╰─⊂+⊃─(3) [438] [ Info: Restriction restrict(h, 0, false) = @╮ V1 [441] ├─⊂−⊃─(5) [434] ╰─⊂+⊃─(4) [435] h | (1 => true) = @╮ V0 [442] ├─⊂−⊃─(4) [435] ╰─⊂+⊃─(3) [438] (h | (index(x0) => true)) + (h | (index(x0) => false)) = (7) [445] (h | (index(y0) => true)) + (h | (index(y0) => false)) = @╮ V0 [455] ├─⊂−⊃─(9) [453] ╰─⊂+⊃─(5) [454] [ Info: marginalization marginalize(h, index(x0)) = (7) [458] marginalize(h, index(y0)) = @╮ V0 [464] ├─⊂−⊃─(9) [462] ╰─⊂+⊃─(5) [463] A4 = @╮ V1 [178] ├─⊂−⊃─╮ V2 [176] │ ├─⊂−⊃─(0) [175] │ ╰─⊂+⊃─╮ V3 [174] │ ├─⊂−⊃─(0) [175] │ ╰─⊂+⊃─(1) [173] ╰─⊂+⊃─╮ V3 [174] ├─⊂−⊃─(0) [175] ╰─⊂+⊃─(1) [173] (A4 | (2 => true)) + (A4 | (2 => false)) = @╮ V1 [475] ├─⊂−⊃─╮ V3 [472] │ ├─⊂−⊃─(0) [470] │ ╰─⊂+⊃─(1) [471] ╰─⊂+⊃─╮ V3 [474] ├─⊂−⊃─(0) [470] ╰─⊂+⊃─(2) [473] A5 = marginalize(A4, 2) = @╮ V1 [486] ├─⊂−⊃─╮ V3 [483] │ ├─⊂−⊃─(0) [481] │ ╰─⊂+⊃─(1) [482] ╰─⊂+⊃─╮ V3 [485] ├─⊂−⊃─(0) [481] ╰─⊂+⊃─(2) [484] Test Summary: | Pass Total Time Algebraic Decision Diagrams | 2 2 5.3s x1 = indicator(MLE, 1) = @╮ V1 [489] ├─⊂−⊃─(0) [487] ╰─⊂+⊃─(1) [488] x2 = indicator(MLE, 2) = @╮ V2 [492] ├─⊂−⊃─(0) [490] ╰─⊂+⊃─(1) [491] x3 = x1 + x2 = @╮ V1 [499] ├─⊂−⊃─╮ V2 [495] │ ├─⊂−⊃─(0) [493] │ ╰─⊂+⊃─(1) [494] ╰─⊂+⊃─╮ V2 [498] ├─⊂−⊃─(1) [494] ╰─⊂+⊃─(2) [497] d1 = Node(1, 1 + MLE(-1.0, 1), MLE(1, 1)) = @╮ V1 [502] ├─⊂−⊃─(1 + -1χ1) [500] ╰─⊂+⊃─(1χ1) [501] m1 = x1 + d1 = @╮ V1 [505] ├─⊂−⊃─(1 + -1χ1) [503] ╰─⊂+⊃─(1 + 1χ1) [504] d2 = Node(2, 1 + MLE(-1.0, 2), MLE(1, 2)) = @╮ V2 [508] ├─⊂−⊃─(1 + -1χ2) [506] ╰─⊂+⊃─(1χ2) [507] m2 = x2 + d2 = @╮ V2 [511] ├─⊂−⊃─(1 + -1χ2) [509] ╰─⊂+⊃─(1 + 1χ2) [510] m3 = d1 * d2 = @╮ V1 [518] ├─⊂−⊃─╮ V2 [514] │ ├─⊂−⊃─(1 + 1χ1χ2 + -1χ2 + -1χ1) [512] │ ╰─⊂+⊃─(-1χ1χ2 + 1χ2) [513] ╰─⊂+⊃─╮ V2 [517] ├─⊂−⊃─(-1χ1χ2 + 1χ1) [515] ╰─⊂+⊃─(1χ1χ2) [516] convert(MLE, 1) = 1 promote(MLE(1.0, 2), 2) = (1.0χ2, 2) [ Info: Example from the paper v = Dict("a" => -1, "b" => -2) = Dict("b" => -2, "a" => -1) ϕA = ADD.reduce(Node(0, Node(5, 1 + MLE(-1.0, v["a"]), MLE(1.0, v["a"])), Node(1, Node(5, 1 + MLE(-1.0, v["a"]), MLE(1.0, v["a"])), Node(6, 1 + MLE(-1.0, v["a"]), MLE(1.0, v["a"]))))) = @╮ V0 [529] ├─⊂−⊃─╮ V5 [521] │ ├─⊂−⊃─(1 + -1χ-1) [519] │ ╰─⊂+⊃─(1.0χ-1) [520] ╰─⊂+⊃─╮ V1 [528] ├─⊂−⊃─╮ V5 [521] │ ├─⊂−⊃─(1 + -1χ-1) [519] │ ╰─⊂+⊃─(1.0χ-1) [520] ╰─⊂+⊃─╮ V6 [527] ├─⊂−⊃─(1 + -1χ-1) [519] ╰─⊂+⊃─(1.0χ-1) [520] ϕ5 = Node(5, MLE(0.6), MLE(0.4)) = @╮ V5 [532] ├─⊂−⊃─(0.6) [530] ╰─⊂+⊃─(0.4) [531] μ1 = marginalize(ϕA * ϕ5, 5) = @╮ V0 [554] ├─⊂−⊃─(0.6 + -0.19999999999999996χ-1) [549] ╰─⊂+⊃─╮ V1 [553] ├─⊂−⊃─(0.6 + -0.19999999999999996χ-1) [549] ╰─⊂+⊃─╮ V6 [552] ├─⊂−⊃─(1.0 + -1.0χ-1) [550] ╰─⊂+⊃─(1.0χ-1) [551] μ1p = apply(new_monomial, μ1) = @╮ V0 [554] ├─⊂−⊃─(1.0χ1) [555] ╰─⊂+⊃─╮ V1 [553] ├─⊂−⊃─(1.0χ1) [555] ╰─⊂+⊃─╮ V6 [552] ├─⊂−⊃─(1.0χ2) [557] ╰─⊂+⊃─(1.0χ3) [558] ϕ6 = Node(6, MLE(0.1), MLE(0.9)) = @╮ V6 [561] ├─⊂−⊃─(0.1) [559] ╰─⊂+⊃─(0.9) [560] μ2 = marginalize(μ1p * ϕ6, 6) = @╮ V0 [577] ├─⊂−⊃─(1.0χ1) [574] ╰─⊂+⊃─╮ V1 [576] ├─⊂−⊃─(1.0χ1) [574] ╰─⊂+⊃─(0.1χ2 + 0.9χ3) [575] μ2p = apply(new_monomial, μ2) = @╮ V0 [577] ├─⊂−⊃─(1.0χ4) [578] ╰─⊂+⊃─╮ V1 [576] ├─⊂−⊃─(1.0χ4) [578] ╰─⊂+⊃─(1.0χ5) [580] ϕ1 = Node(1, MLE(0.625), MLE(0.375)) = @╮ V1 [583] ├─⊂−⊃─(0.625) [581] ╰─⊂+⊃─(0.375) [582] μ3 = marginalize(μ2p * ϕ1, 1) = @╮ V0 [594] ├─⊂−⊃─(1.0χ4) [592] ╰─⊂+⊃─(0.375χ5 + 0.625χ4) [593] μ3p = apply(new_monomial, μ3) = @╮ V0 [594] ├─⊂−⊃─(1.0χ6) [595] ╰─⊂+⊃─(1.0χ7) [596] ϕB = ADD.reduce(Node(0, Node(7, 1 + MLE(-1.0, v["b"]), MLE(1.0, v["b"])), Node(8, 1 + MLE(-1.0, v["b"]), MLE(1.0, v["b"])))) = @╮ V0 [603] ├─⊂−⊃─╮ V7 [599] │ ├─⊂−⊃─(1 + -1χ-2) [597] │ ╰─⊂+⊃─(1.0χ-2) [598] ╰─⊂+⊃─╮ V8 [602] ├─⊂−⊃─(1 + -1χ-2) [597] ╰─⊂+⊃─(1.0χ-2) [598] ϕ8 = Node(8, MLE(0.8), MLE(0.2)) = @╮ V8 [606] ├─⊂−⊃─(0.8) [604] ╰─⊂+⊃─(0.2) [605] μ4 = marginalize(μ3p * ϕB * ϕ8, 8) = @╮ V0 [633] ├─⊂−⊃─╮ V7 [631] │ ├─⊂−⊃─(1.0χ6 + -1.0χ-2χ6) [629] │ ╰─⊂+⊃─(1.0χ-2χ6) [630] ╰─⊂+⊃─(-0.6000000000000001χ-2χ7 + 0.8χ7) [632] μ4p = apply(new_monomial, μ4) = @╮ V0 [633] ├─⊂−⊃─╮ V7 [631] │ ├─⊂−⊃─(1.0χ8) [634] │ ╰─⊂+⊃─(1.0χ9) [635] ╰─⊂+⊃─(1.0χ10) [636] ϕ0 = Node(0, MLE(0.2), MLE(0.8)) = @╮ V0 [639] ├─⊂−⊃─(0.2) [637] ╰─⊂+⊃─(0.8) [638] μ5 = marginalize(μ4p * ϕ0, 0) = @╮ V7 [648] ├─⊂−⊃─(0.8χ10 + 0.2χ8) [646] ╰─⊂+⊃─(0.8χ10 + 0.2χ9) [647] μ5p = apply(new_monomial, μ5) = @╮ V7 [648] ├─⊂−⊃─(1.0χ11) [649] ╰─⊂+⊃─(1.0χ12) [650] ϕ7 = Node(7, MLE(0.3), MLE(0.7)) = @╮ V7 [653] ├─⊂−⊃─(0.3) [651] ╰─⊂+⊃─(0.7) [652] μ6 = marginalize(μ5p * ϕ7, 7) = (0.3χ11 + 0.7χ12) [657] [ Info: Bilinear program Maximize: 0.3χ11 + 0.7χ12 Subject to: 1.0χ1 = 0.6 + -0.19999999999999996χ-1 1.0χ2 = 1.0 + -1.0χ-1 1.0χ3 = 1.0χ-1 1.0χ4 = 1.0χ1 1.0χ5 = 0.1χ2 + 0.9χ3 1.0χ6 = 1.0χ4 1.0χ7 = 0.375χ5 + 0.625χ4 1.0χ8 = 1.0χ6 + -1.0χ-2χ6 1.0χ9 = 1.0χ-2χ6 1.0χ10 = -0.6000000000000001χ-2χ7 + 0.8χ7 1.0χ11 = 0.8χ10 + 0.2χ8 1.0χ12 = 0.8χ10 + 0.2χ9 Test Summary: | Pass Total Time Parametrized Algebraic Decision Diagrams | 1 1 8.2s Testing AlgebraicDecisionDiagrams tests passed Testing completed after 22.56s PkgEval succeeded after 50.79s