Minimum & Maximum

new topic     » topic index » view thread      » older message » newer message

I'm in need of a function that accepts objects
containing reals and/or ints, and returns
minimums/maximums of each element such that:
if a={5.2,3.4,   7,  55,24} and
   b={  6,  2,12.7,15.9, 5}
then maximum(a,b) should return
     {6.2,3.4,12.7,  55,24}

Obviously, you cannot simply do:
if a<b then return a else return b end if
since that only does atoms.

So, my best solutions thus far, that are safe, are:
-------------------------
function minimum(object a, object b)
object z
integer len
   if atom(a) and atom(b) then
        if a<b then return a else return b end if
   else
        len = length(a)
        if len != length(b) then
          --print an error, the objects, and abort
          Error("Unmatched objects passed to minimum.",a,b)
        end if
        z = repeat(0,len)
        for i = 1 to len do
           z[i] = minimum(a,b)
        end for
   end if
   return z
end function
-----------------------------
with, naturally, function maximum being the opposite of above.

Certainly, there is an easier, faster, more sequence
all-at-once approach? (I'd swear I saw one in the listserv,
but I looked and didn't see it...)
I had thought of the find(1,{expression}) trick, but
I couldn't think of a way to actually make that work
like it would need to.

*hoping that today's brain-fart he's having doesn't offend*
--Hawke'

new topic     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu