It already is Interval{Float64}.  The issue is choosing defaults for a and b 
which aren't inferrable from the type.

I think I'm convinced that just using NaN should work, with other domains 
having a similar representation for parameters not set.

Sent from my iPhone

> On 9 Apr 2015, at 6:41 am, Steven G. Johnson <stevenj....@gmail.com> wrote:
> 
> 
> 
>> On Tuesday, April 7, 2015 at 5:53:09 PM UTC-4, Sheehan Olver wrote:
>> 
>>         The current problem is 
>> 
>>         f=Fun(x->x^2,Chebyshev(Interval(a,b))) 
>> 
>> represents a function on [a,b] as type Fun{Float64,Chebyshev}.  But 
>> sometimes one needs to convert numbers to functions a la 
>> 
>>         convert(typeof(f),5) 
>> 
>> e.g., as part of creating the vector [f,5].  Since the parameters a and b 
>> are not inferable, the current solution is for Chebyshev to support both 
>> Interval and another type AnyDomain.   This has the bad effect of losing 
>> type information. 
>> 
>>         So I’m currently debating changing to template parameters: 
>> 
>>                 f=Fun(x->x^2,Chebyshev(Interval{a,b}())) 
>> 
>> so that typeof(f) is Fun{Float64,Chebyshev{Interval{a,b}}}.    Then it is 
>> possible to convert numbers to the correct type.
> 
> Why not make something like Interval{promote_type(typeof(a),typeof(b))} ?   
> That way the Interval is parameterized by its type, not by its endpoints.

Reply via email to