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