Определите, имеет ли зарегистрированный тип данных масштабирование «мощность два»
extern int ssGetDataTypeIsScalingPow2 (SimStruct *S, DTypeId
dataTypeId)
SSimStruct представляет S-функциональный блок.
dataTypeIdИдентификатор типа данных зарегистрированного типа данных, для которого необходимо знать, является ли масштабирование строго двухуровневым.
Эта функция определяет, масштабируется ли зарегистрированный тип данных строго на степень два. Числа с фиксированной точкой могут быть представлены как
действительное значение = (наклон × целое число) + смещение,
где наклон может быть выражен как
уклон = дробный уклон × 2exponent.
Когда смещение = 0 и дробный наклон = 1 , единственным масштабным коэффициентом, который остается, является степень два:
действительное значение = (2exponent × integer) = (2-дробная длина × целое число).
Тривиальное масштабирование рассматривается как случай масштабирования мощностью два, при этом экспонента равна нулю.
Примечание
Многие алгоритмы с фиксированной точкой предназначены для масштабирования только мощности двух. Для этих алгоритмов можно вызвать ssGetDataTypeIsScalingPow2 в mdlSetInputPortDataType и mdlSetOutputPortDataType, чтобы предотвратить принятие неподдерживаемых типов данных.
Эта функция выдает ошибки, когда ssGetDataTypeIsFxpFltApiCompat прибыль FALSE.
Для использования этой функции необходимо включить fixedpoint.h и fixedpoint.c. Дополнительные сведения см. в разделе Структура S-функции.
C
FixPt_DataTypeIsScalingPow2