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 >> > >