Probably the best way to do this is with a ring. Or, to do it programmatically, you could use a case structure, putting each multiplier, or offset function,or combination thereof, in a different case. In either instance, you'll have to do a fair bit of "wiring", but it should work nicely either way.
Eric
Eric P. Nichols
P.O. Box 56235
North Pole, AK 99705