I’m upgrading my profiling system to use cts:math functions for doing math on 
large numbers of durations—this speeds things up tremendously of course.

However, there doesn’t appear to be a median-aggregate() function in ML 8 or ML 
9, only cts:median(), which operates on a sequence of doubles.

For example, for a range index that is xs:dayTimeDurations I can I do:

let $average := 
cts:avg-aggregate(cts:element-reference(xs:QName("prof:overall-elapsed")), 
                        ("item-frequency"),
                         
cts:collection-query(epf:get-trial-collection($trial-number)))

But to get the equivalent median the only solution I’m seeing is to convert all 
the durations to doubles and then take the median, which is very slow.

At least in my data set, the median is a better measure of overall performance 
than average because I have a small number of very slow outliers, so I really 
need both median and average.

This seems like an obvious oversight in the ct:math package—am I missing a 
solution?

Thanks,

Eliot

--
Eliot Kimber
http://contrext.com
 



_______________________________________________
General mailing list
[email protected]
Manage your subscription at: 
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to