Skip to content

Infinite loop in SemiclassicalJacobi(t, a, b, c, P) constructor #116

Open
@DanielVandH

Description

@DanielVandH
julia> SemiclassicalJacobi(2.0, 3/2, 2.0, 1.0, SemiclassicalJacobi(2.0, -1/2, 1.0, -1/2))
ERROR: InterruptException:
Stacktrace:
    [1] __broadcastarray2broadcasted(a::SubArray{…}, b::SubArray{…})
      @ LazyArrays C:\Users\danjv\.julia\packages\LazyArrays\jaUBE\src\lazybroadcasting.jl:72
    [2] _broadcastarray2broadcasted
      @ C:\Users\danjv\.julia\packages\LazyArrays\jaUBE\src\lazybroadcasting.jl:73 [inlined]
    [3] _broadcastarray2broadcasted
      @ C:\Users\danjv\.julia\packages\LazyArrays\jaUBE\src\lazybroadcasting.jl:79 [inlined]
--- the last 3 lines are repeated 1 more time ---
    [7] _broadcasted
      @ C:\Users\danjv\.julia\packages\LazyArrays\jaUBE\src\lazybroadcasting.jl:80 [inlined]
    [8] sub_materialize(::LazyArrays.BroadcastLayout{…}, A::SubArray{…})
      @ LazyArrays C:\Users\danjv\.julia\packages\LazyArrays\jaUBE\src\lazybroadcasting.jl:97
    [9] sub_materialize
      @ C:\Users\danjv\.julia\packages\ArrayLayouts\31idh\src\ArrayLayouts.jl:132 [inlined]
   [10] layout_getindex
      @ C:\Users\danjv\.julia\packages\ArrayLayouts\31idh\src\ArrayLayouts.jl:138 [inlined]
   [11] getindex
      @ C:\Users\danjv\.julia\packages\ArrayLayouts\31idh\src\ArrayLayouts.jl:198 [inlined]
   [12] _tritrunc(::ArrayLayouts.SymTridiagonalLayout{…}, X::LazyBandedMatrices.SymTridiagonal{…}, n::Int64)
      @ ClassicalOrthogonalPolynomials C:\Users\danjv\.julia\packages\ClassicalOrthogonalPolynomials\3YYrU\src\ClassicalOrthogonalPolynomials.jl:160
   [13] _tritrunc(X::LazyBandedMatrices.SymTridiagonal{…}, n::Int64)
      @ ClassicalOrthogonalPolynomials C:\Users\danjv\.julia\packages\ClassicalOrthogonalPolynomials\3YYrU\src\ClassicalOrthogonalPolynomials.jl:163
   [14] jacobimatrix_layout(lay::ClassicalOrthogonalPolynomials.NormalizedOPLayout{…}, P::Normalized{…}, n::Int64)
      @ ClassicalOrthogonalPolynomials C:\Users\danjv\.julia\packages\ClassicalOrthogonalPolynomials\3YYrU\src\ClassicalOrthogonalPolynomials.jl:165
   [15] jacobimatrix
      @ C:\Users\danjv\.julia\packages\ClassicalOrthogonalPolynomials\3YYrU\src\ClassicalOrthogonalPolynomials.jl:143 [inlined]
   [16] grid_layout(::ClassicalOrthogonalPolynomials.NormalizedOPLayout{…}, P::Normalized{…}, n::Int64)
      @ ClassicalOrthogonalPolynomials C:\Users\danjv\.julia\packages\ClassicalOrthogonalPolynomials\3YYrU\src\ClassicalOrthogonalPolynomials.jl:292
   [17] grid
      @ C:\Users\danjv\.julia\packages\ContinuumArrays\Py5Q6\src\bases\bases.jl:178 [inlined]
   [18] plan_grid_transform
      @ C:\Users\danjv\.julia\packages\ContinuumArrays\Py5Q6\src\bases\bases.jl:213 [inlined]
   [19] _sub_factorize(::Tuple{…}, ::Tuple{…}, ::QuasiArrays.SubQuasiArray{…}; kws::@Kwargs{})
      @ ContinuumArrays C:\Users\danjv\.julia\packages\ContinuumArrays\Py5Q6\src\bases\bases.jl:241
   [20] _sub_factorize
      @ C:\Users\danjv\.julia\packages\ContinuumArrays\Py5Q6\src\bases\bases.jl:241 [inlined]
   [21] _factorize
      @ C:\Users\danjv\.julia\packages\ContinuumArrays\Py5Q6\src\bases\bases.jl:248 [inlined]
   [22] factorize
      @ C:\Users\danjv\.julia\packages\QuasiArrays\nTH6k\src\inv.jl:57 [inlined]
   [23] _factorize(::ContinuumArrays.WeightedBasisLayout{…}, ::QuasiArrays.SubQuasiArray{…}; kws::@Kwargs{})
      @ ContinuumArrays C:\Users\danjv\.julia\packages\ContinuumArrays\Py5Q6\src\bases\bases.jl:350
   [24] _factorize
      @ C:\Users\danjv\.julia\packages\ContinuumArrays\Py5Q6\src\bases\bases.jl:350 [inlined]
   [25] factorize
      @ C:\Users\danjv\.julia\packages\QuasiArrays\nTH6k\src\inv.jl:57 [inlined]
   [26] plan_ldiv
      @ C:\Users\danjv\.julia\packages\ContinuumArrays\Py5Q6\src\bases\bases.jl:279 [inlined]
   [27] transform_ldiv_size(::Tuple{…}, A::QuasiArrays.SubQuasiArray{…}, B::QuasiArrays.BroadcastQuasiVector{…})
      @ ContinuumArrays C:\Users\danjv\.julia\packages\ContinuumArrays\Py5Q6\src\bases\bases.jl:282
   [28] transform_ldiv
      @ C:\Users\danjv\.julia\packages\ContinuumArrays\Py5Q6\src\bases\bases.jl:283 [inlined]
   [29] adaptivetransform_ldiv(A::ClassicalOrthogonalPolynomials.Weighted{…}, f::QuasiArrays.BroadcastQuasiVector{…})
      @ ClassicalOrthogonalPolynomials C:\Users\danjv\.julia\packages\ClassicalOrthogonalPolynomials\3YYrU\src\adaptivetransform.jl:34
   [30] transform_ldiv_size
      @ C:\Users\danjv\.julia\packages\ClassicalOrthogonalPolynomials\3YYrU\src\adaptivetransform.jl:2 [inlined]
   [31] transform_ldiv
      @ C:\Users\danjv\.julia\packages\ContinuumArrays\Py5Q6\src\bases\bases.jl:283 [inlined]
   [32] basis_ldiv_size
      @ C:\Users\danjv\.julia\packages\ContinuumArrays\Py5Q6\src\bases\bases.jl:332 [inlined]
   [33] copy
      @ C:\Users\danjv\.julia\packages\ContinuumArrays\Py5Q6\src\bases\bases.jl:323 [inlined]
   [34] _broadcast_mul_ldiv
      @ C:\Users\danjv\.julia\packages\ContinuumArrays\Py5Q6\src\bases\bases.jl:150 [inlined]
   [35] copy
      @ C:\Users\danjv\.julia\packages\ContinuumArrays\Py5Q6\src\bases\bases.jl:152 [inlined]
   [36] materialize
      @ C:\Users\danjv\.julia\packages\ArrayLayouts\31idh\src\ldiv.jl:22 [inlined]
   [37] ldiv
      @ C:\Users\danjv\.julia\packages\ArrayLayouts\31idh\src\ldiv.jl:98 [inlined]
   [38] \
      @ C:\Users\danjv\.julia\packages\QuasiArrays\nTH6k\src\matmul.jl:34 [inlined]
   [39] LanczosPolynomial(w_in::QuasiArrays.BroadcastQuasiVector{…}, P::QuasiArrays.SubQuasiArray{…})
      @ ClassicalOrthogonalPolynomials C:\Users\danjv\.julia\packages\ClassicalOrthogonalPolynomials\3YYrU\src\lanczos.jl:162
   [40] semiclassical_jacobimatrix(t::Float64, a::Float64, b::Float64, c::Float64)
      @ SemiclassicalOrthogonalPolynomials C:\Users\danjv\.julia\packages\SemiclassicalOrthogonalPolynomials\GAsGB\src\SemiclassicalOrthogonalPolynomials.jl:161
   [41] semiclassical_jacobimatrix(Q::SemiclassicalJacobi{Float64}, a::Float64, b::Float64, c::Float64)
      @ SemiclassicalOrthogonalPolynomials C:\Users\danjv\.julia\packages\SemiclassicalOrthogonalPolynomials\GAsGB\src\SemiclassicalOrthogonalPolynomials.jl:205
   [42] SemiclassicalJacobi(t::Float64, a::Float64, b::Float64, c::Float64, P::SemiclassicalJacobi{Float64})
      @ SemiclassicalOrthogonalPolynomials C:\Users\danjv\.julia\packages\SemiclassicalOrthogonalPolynomials\GAsGB\src\SemiclassicalOrthogonalPolynomials.jl:127
   [43] semiclassical_jacobimatrix(Q::SemiclassicalJacobi{Float64}, a::Float64, b::Float64, c::Float64)
      @ SemiclassicalOrthogonalPolynomials C:\Users\danjv\.julia\packages\SemiclassicalOrthogonalPolynomials\GAsGB\src\SemiclassicalOrthogonalPolynomials.jl:217
   [44] semiclassical_jacobimatrix(Q::SemiclassicalJacobi{Float64}, a::Float64, b::Float64, c::Float64)
      @ SemiclassicalOrthogonalPolynomials C:\Users\danjv\.julia\packages\SemiclassicalOrthogonalPolynomials\GAsGB\src\SemiclassicalOrthogonalPolynomials.jl:211
--- the last 2 lines are repeated 1488 more times ---
 [3021] semiclassical_jacobimatrix(Q::SemiclassicalJacobi{Float64}, a::Float64, b::Float64, c::Float64)
      @ SemiclassicalOrthogonalPolynomials C:\Users\danjv\.julia\packages\SemiclassicalOrthogonalPolynomials\GAsGB\src\SemiclassicalOrthogonalPolynomials.jl:217
 [3022] semiclassical_jacobimatrix(Q::SemiclassicalJacobi{Float64}, a::Float64, b::Float64, c::Float64) (repeats 2 times)
      @ SemiclassicalOrthogonalPolynomials C:\Users\danjv\.julia\packages\SemiclassicalOrthogonalPolynomials\GAsGB\src\SemiclassicalOrthogonalPolynomials.jl:211
 [3023] semiclassical_jacobimatrix(Q::SemiclassicalJacobi{Float64}, a::Float64, b::Float64, c::Float64)
      @ SemiclassicalOrthogonalPolynomials C:\Users\danjv\.julia\packages\SemiclassicalOrthogonalPolynomials\GAsGB\src\SemiclassicalOrthogonalPolynomials.jl:209
 [3024] semiclassical_jacobimatrix(Q::SemiclassicalJacobi{Float64}, a::Float64, b::Float64, c::Float64) (repeats 2 times)
      @ SemiclassicalOrthogonalPolynomials C:\Users\danjv\.julia\packages\SemiclassicalOrthogonalPolynomials\GAsGB\src\SemiclassicalOrthogonalPolynomials.jl:207
 [3025] SemiclassicalJacobi(t::Float64, a::Float64, b::Float64, c::Float64, P::SemiclassicalJacobi{Float64})
      @ SemiclassicalOrthogonalPolynomials C:\Users\danjv\.julia\packages\SemiclassicalOrthogonalPolynomials\GAsGB\src\SemiclassicalOrthogonalPolynomials.jl:127
Some type information was truncated. Use `show(err)` to see complete types.

Is there something obviously wrong with SemiclassicalJacobi(2.0, 3/2, 2.0, 1.0, SemiclassicalJacobi(2.0, -1/2, 1.0, -1/2))? Print shows it's going back and forth between c values

Q = SemiclassicalJacobi with weight x^1.5 * (1-x)^2.0 * (2.0-x)^0.5 on 0..1
Q = SemiclassicalJacobi with weight x^1.5 * (1-x)^2.0 * (2.0-x)^0.5 on 0..1
Q = SemiclassicalJacobi with weight x^1.5 * (1-x)^2.0 * (2.0-x)^1.5 on 0..1
Q = SemiclassicalJacobi with weight x^1.5 * (1-x)^2.0 * (2.0-x)^1.5 on 0..1
Q = SemiclassicalJacobi with weight x^1.5 * (1-x)^2.0 * (2.0-x)^0.5 on 0..1
Q = SemiclassicalJacobi with weight x^1.5 * (1-x)^2.0 * (2.0-x)^0.5 on 0..1
Q = SemiclassicalJacobi with weight x^1.5 * (1-x)^2.0 * (2.0-x)^1.5 on 0..1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions