Thanks, Kevin and Stefan. I was hoping 2 was the right way, but worried 
that it might negate some of the advantage of using multiple dispatch in 
the first place. In any case, if/when I get some performance numbers, I'll 
try to remember to update this with them.

Chris

On Saturday, August 9, 2014 10:23:33 PM UTC-4, Stefan Karpinski wrote:
>
> 2 is the way to go – it's very likely that there is zero overhead due to 
> inlining.
>
>
> On Sat, Aug 9, 2014 at 6:36 PM, Kevin Squire <kevin....@gmail.com 
> <javascript:>> wrote:
>
>> Hi Chris, 
>>
>> On Sat, Aug 9, 2014 at 3:30 PM, Chris Binz <7hunde...@gmail.com 
>> <javascript:>> wrote:
>>
>>> Say I have a function that performs one calculation, but for different 
>>> argument types. For instance, I have a satellite orbit propagator that 
>>> returns the satellite state at some time, given the initial state and the 
>>> desired time. I would like to specify the desired time either as an elapsed 
>>> number of seconds OR, say, a DateTime object. The calculation itself is 
>>> largely the same, and requires elapsed seconds. What is the best way to 
>>> write this?
>>>
>>> I suppose my options are:
>>>
>>>    1. Multiple dispatch - two methods, with essentially duplicate code 
>>>    (seems undesirable to me).
>>>    2. Multiple dispatch - two methods, but the method that takes 
>>>    DateTime as input simply converts to seconds and then calls the other 
>>>    method. Is there a performance hit for this? 
>>>    3. One method, where the type of the desired time is checked and 
>>>    converted up front if necessary.
>>>    4. Other (?)
>>>
>>> Your number 2 type is probably the best solution.  How much of a 
>> performance hit depends entirely on how long the different parts of the 
>> calculation take, so you'll have to test that and tell us. :-)
>>
>> Cheers,
>>    Kevin
>>
>
>

Reply via email to