I’ve narrowed the bug a bit further.  But it still doesn’t make any sense.   
The offending function is actually

        adaptiveqr{T<:Operator}(B::Vector{T},v::Array,tol::Real,N) = 
adaptiveqr!(AlmostBandedOperator(B),convertvec(B[end],v),tol,N)  #May need to 
copy v in the future

But calling the line itself doesn’t help.  I can’t even @code_typed the 
function call!




julia> using ApproxFun

julia> d=Interval(-10.,5.);

julia> Bm=Evaluation(d,d.a);

julia> Bp=Evaluation(d,d.b);

julia> B=[Bm;Bp];

julia> D2=Derivative(d,2);

julia> X=Multiplication(Fun(x->x,d));

julia> A=[B;D2-X];b=[airyai(d.a),airyai(d.b),0.]
3-element Array{Float64,1}:
 0.0402412  
 0.000108344
 0.0        

julia> methods(ApproxFun.adaptiveqr)
# 4 methods for generic function "adaptiveqr":
adaptiveqr(B::ApproxFun.Operator{T},v::Array{T,N},tol::Real,N) at 
/Users/solver/.julia/v0.4/ApproxFun/src/Operators/adaptiveqr.jl:170
adaptiveqr{T<:ApproxFun.Operator{T}}(B::Array{T<:ApproxFun.Operator{T},1},v::Array{T,N},tol::Real,N)
 at /Users/solver/.julia/v0.4/ApproxFun/src/Operators/adaptiveqr.jl:171
adaptiveqr(M,b) at 
/Users/solver/.julia/v0.4/ApproxFun/src/Operators/adaptiveqr.jl:135
adaptiveqr(M,b,tol) at 
/Users/solver/.julia/v0.4/ApproxFun/src/Operators/adaptiveqr.jl:136

julia> @code_typed ApproxFun.adaptiveqr(A,b)
ERROR: TypeError: subtype: expected Type{T}, got Tuple{TypeVar,TypeVar}
 in abstract_call_gf at ./inference.jl:586
 in abstract_call at ./inference.jl:857
 in abstract_eval_call at ./inference.jl:904
 in abstract_eval at ./inference.jl:931
 in abstract_eval_call at ./inference.jl:881
 in abstract_eval at ./inference.jl:931
 in abstract_eval_call at ./inference.jl:881






> On 15 May 2015, at 1:09 am, Yichao Yu <[email protected]> wrote:
> 
> On Thu, May 14, 2015 at 11:02 AM, David P. Sanders <[email protected]> 
> wrote:
>> 
>> 
>> El miércoles, 13 de mayo de 2015, 23:51:33 (UTC-5), Sheehan Olver escribió:
>>> 
>>> This is for latest build of 0.4 on Mac OS X Yosemite
>>> 
>>> On Thursday, May 14, 2015 at 2:51:07 PM UTC+10, Sheehan Olver wrote:
>>>> 
>>>> 
>>>> I get the error message below, and cannot find any sign of the cause.
>>>> With debug statements, I found that its dying trying to call a function 
>>>> with
>>>> the signature
>>>> 
>>>> function
>>>> linsolve{T<:Operator,N<:Number}(A::Vector{T},b::Array{N};tolerance=0.01,maxlength=1000000)
>> 
>> 
>> Here, `Array{N}` is a strange type. Do you mean `Array{T, N}`? Or what kind
>> of object should `b` be?
> 
> The `N` here should be fine since `N<:Number`. It is indeed a little
> bit confusing given `N` is often used as the name of a number
> parameter but it shouldn't cause any issue.
> 
> I guess it will probably help to see the code that is calling this
> function to tell what exactly is wrong.
> 
>> 
>> David.
>> 
>> 
>>>> 
>>>> ...
>>>> end
>>>> 
>>>> Any thoughts?   Maybe its a bug in Julia?
>>>> 
>>>> 
>>>> 
>>>> TypeError: subtype: expected Type{T}, got Tuple{TypeVar,TypeVar}
>>>> 
>>>> in abstract_call_gf at ./inference.jl:586
>>>> 
>>>> in abstract_call at ./inference.jl:857
>>>> 
>>>> in abstract_eval_call at ./inference.jl:904
>>>> 
>>>> in abstract_eval at ./inference.jl:931
>>>> 
>>>> in abstract_eval_call at ./inference.jl:881
>>>> 
>>>> in abstract_eval at ./inference.jl:931
>>>> 
>>>> in abstract_eval_call at ./inference.jl:881
>>>> 
>>>> in abstract_eval at ./inference.jl:931
>>>> 
>>>> in typeinf_uncached at ./inference.jl:1591
>>>> 
>>>> in typeinf at ./inference.jl:1307
>>>> 
>>>> in typeinf at ./inference.jl:1257
>>>> 
>>>> in abstract_call_gf at ./inference.jl:696
>>>> 
>>>> in abstract_call at ./inference.jl:857
>>>> 
>>>> in abstract_eval_call at ./inference.jl:904
>>>> 
>>>> in abstract_eval at ./inference.jl:931
>>>> 
>>>> in abstract_eval_call at ./inference.jl:881
>>>> 
>>>> in abstract_eval at ./inference.jl:931
>>>> 
>>>> in typeinf_uncached at ./inference.jl:1591
>>>> 
>>>> in typeinf at ./inference.jl:1307
>>>> 
>>>> in typeinf at ./inference.jl:1257
>>>> 
>>>> in abstract_call_gf at ./inference.jl:696
>>>> 
>>>> in abstract_call at ./inference.jl:857
>>>> 
>>>> in abstract_eval_call at ./inference.jl:904
>>>> 
>>>> in abstract_eval at ./inference.jl:931
>>>> 
>>>> in abstract_eval_call at ./inference.jl:881
>>>> 
>>>> in abstract_eval at ./inference.jl:931
>>>> 
>>>> in typeinf_uncached at ./inference.jl:1591
>>>> 
>>>> in typeinf at ./inference.jl:1307
>>>> 
>>>> in typeinf at ./inference.jl:1257
>>>> 
>>>> in abstract_call_gf at ./inference.jl:696
>>>> 
>>>> in abstract_call at ./inference.jl:857
>>>> 
>>>> in abstract_eval_call at ./inference.jl:904
>>>> 
>>>> in abstract_eval at ./inference.jl:931
>>>> 
>>>> in abstract_interpret at ./inference.jl:1080
>>>> 
>>>> in typeinf_uncached at ./inference.jl:1518
>>>> 
>>>> in typeinf at ./inference.jl:1307
>>>> 
>>>> in typeinf at ./inference.jl:1257
>>>> 
>>>> in abstract_call_gf at ./inference.jl:696
>>>> 
>>>> in abstract_call at ./inference.jl:857
>>>> 
>>>> in abstract_call at ./inference.jl:817
>>>> 
>>>> in abstract_eval_call at ./inference.jl:904
>>>> 
>>>> in abstract_eval at ./inference.jl:931
>>>> 
>>>> in typeinf_uncached at ./inference.jl:1591
>>>> 
>>>> in typeinf at ./inference.jl:1307
>>>> 
>>>> in typeinf at ./inference.jl:1257
>>>> 
>>>> in abstract_call_gf at ./inference.jl:696
>>>> 
>>>> in abstract_call at ./inference.jl:857
>>>> 
>>>> in abstract_call at ./inference.jl:817
>>>> 
>>>> in abstract_eval_call at ./inference.jl:904
>>>> 
>>>> in abstract_eval at ./inference.jl:931
>>>> 
>>>> in abstract_eval_call at ./inference.jl:881
>>>> 
>>>> in abstract_eval at ./inference.jl:931
>>>> 
>>>> in typeinf_uncached at ./inference.jl:1591
>>>> 
>>>> in typeinf at ./inference.jl:1307
>>>> 
>>>> in typeinf at ./inference.jl:1257
>>>> 
>>>> in abstract_call_gf at ./inference.jl:696
>>>> 
>>>> in abstract_call at ./inference.jl:857
>>>> 
>>>> in abstract_eval_call at ./inference.jl:904
>>>> 
>>>> in abstract_eval at ./inference.jl:931
>>>> 
>>>> in typeinf_uncached at ./inference.jl:1591
>>>> 
>>>> in typeinf at ./inference.jl:1307
>>>> 
>>>> in typeinf at ./inference.jl:1257
>>>> 
>>>> in abstract_call_gf at ./inference.jl:696
>>>> 
>>>> in abstract_call at ./inference.jl:857
>>>> 
>>>> in abstract_eval_call at ./inference.jl:904
>>>> 
>>>> in abstract_eval at ./inference.jl:931
>>>> 
>>>> in abstract_interpret at ./inference.jl:1080
>>>> 
>>>> in typeinf_uncached at ./inference.jl:1518
>>>> 
>>>> in typeinf at ./inference.jl:1307
>>>> 
>>>> in typeinf at ./inference.jl:1257
>>>> 
>>>> in abstract_call_gf at ./inference.jl:696
>>>> 
>>>> in abstract_call at ./inference.jl:857
>>>> 
>>>> in abstract_eval_call at ./inference.jl:904
>>>> 
>>>> in abstract_eval at ./inference.jl:931
>>>> 
>>>> in abstract_interpret at ./inference.jl:1080
>>>> 
>>>> in typeinf_uncached at ./inference.jl:1518
>>>> 
>>>> in typeinf at ./inference.jl:1307
>>>> 
>>>> in typeinf at ./inference.jl:1257
>>>> 
>>>> in abstract_call_gf at ./inference.jl:696
>>>> 
>>>> in abstract_call at ./inference.jl:857
>>>> 
>>>> in abstract_eval_call at ./inference.jl:904
>>>> 
>>>> in abstract_eval at ./inference.jl:931
>>>> 
>>>> in typeinf_uncached at ./inference.jl:1591
>>>> 
>>>> in typeinf at ./inference.jl:1307
>>>> 
>>>> in typeinf_ext at ./inference.jl:1251
>>>> 
>>>> in linsolve at
>>>> /Users/solver/.julia/v0.4/ApproxFun/src/Operators/linsolve.jl:108
>>>> 
>>>> in linsolve at
>>>> /Users/solver/.julia/v0.4/ApproxFun/src/Operators/linsolve.jl:126
>>>> 
>>>> in linsolve at
>>>> /Users/solver/.julia/v0.4/ApproxFun/src/Operators/linsolve.jl:130
>>>> 
>>>> in ./ at
>>>> /Users/solver/.julia/v0.4/ApproxFun/src/Extras/specialfunctions.jl:89
>>>> 
>>>> 
>> 

Reply via email to