double UnitUtil::ConvertFromSIEquivalent_WLookup(unit& cyphyRef, double value) { if (cyphyRef != Udm::null) { map<CyPhyML::unit, UnitConverter>::iterator i = ConverterMap.find(cyphyRef); if (i != ConverterMap.end()) { return i->second.FromSI(value); } else { // create UnitConverter // add UnitConverter to map UnitConverter converter; CreateConverter(cyphyRef, converter); ConverterMap[cyphyRef] = converter; return converter.FromSI(value); } } else return value; }