<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">from qsort import *

class MinMax:
    def __init__(self, nD):
        self.m_nDim = nD
        self.m_bInit = False

    def accumVal(self, val):
        if(len(val) != self.m_nDim):
            print "Received value of incorrect dimension: "
            print "\tdim("+`val`+") should be "+`self.m_nDim`+" not "+`len(val)`
        if(not self.m_bInit):
            self.m_min = val
            self.m_max = val
            self.m_bInit = True
            return self
        self.m_min = map(lambda IDX: min(self.m_min[IDX], val[IDX]), range(0, self.m_nDim))
        self.m_max = map(lambda IDX: max(self.m_max[IDX], val[IDX]), range(0, self.m_nDim))
        return self

    def getRangeOrder(self, bOrder=True):
        ranges = self.getRange()
        indices = range(0, self.m_nDim)
        if(bOrder):
            return qsort(indices, lambda x,y: ranges[x] &gt; ranges[y])
        return qsort(indices, lambda x,y: ranges[x] &lt; ranges[y])
    
    def getRange(self):
        return map(lambda IDX: self.m_max[IDX]-self.m_min[IDX], range(0, self.m_nDim))

    
    
</pre></body></html>