Using ranges in calculating a new map layer

Hello GRASS-Users

I am trying to extract out certain ranges of values from one of my map
layers and apply a formula to it to produce a new one. From my
understanding of r.infer and r.mapcalc, it would seem that I need a
combination of both modules, so that I could essentially come up with the
following

    IFMAP temperature x-y
    THEN r.mapcalc newtemp='(temperature*2)-50'

One way of accomplishing what I want to do would be to create a MASK that
eliminates all temperatures that lie outside the x-y range. However,
given that this range includes about 3000 categories, I was wondering if
there was a more efficient way of tackling this problem.

Thanks and looking forward to any suggestions.

Lesley-Ann Dupigny.