Apply a logarithmic scale to a unit¶
saf_log_unit is a function defined in unit.c.
Synopsis:
-
int
saf_log_unit(SAF_ParMode pmode, SAF_Unit *unit, double logbase, double logcoef)¶
Formal Arguments:
unit: The unit which is being translated byOFFSET.logbase: The base of the logarithmlogcoef: The amount by which to multiply the unit after taking the log.
Description: Some units of measure use a logarithmic scale. An example is decibels. This function sets the base for the
logarithm. A logbase of zero implies a linear scale and is the default for all units. This function should
only be called after any calls to saf_multiply_unit and saf_offset_unit for unit.
1 | U' = LOGCOEF *log* UNIT
|
where log is to the base logbase.
Preconditions:
pmodemust be valid. (low-cost)unitmust be a valid unit handle. (low-cost)logbasemust be non-negative. (low-cost)logcoefmust be non-zero if a logarithmic scale is used. (low-cost)
Return Value: This function returns some non-negative value on success; otherwise, it either returns a negative value or raises an exception, depending on the error handling property of the library.
See Also:
- saf_multiply_unit: 21.8: Multiply a unit into a unit definition
- saf_offset_unit: 21.9: Translate unit by an offset
- Units: Introduction for current chapter