setTflCFunctionEntryParameters - Set specified parameters for function entry in code replacement table - MATLAB (original) (raw)
Set specified parameters for function entry in code replacement table
Syntax
Description
setTflCFunctionEntryParameters([hEntry](#d126e45864),[varargin](#d126e45901))
sets specified parameters for a function entry in a code replacement table.
Examples
This example shows how to use thesetTflCFunctionEntryParameters
function to set specified parameters for a code replacement function entry forsqrt
.
fcn_entry = RTW.TflCFunctionEntry; fcn_entry.setTflCFunctionEntryParameters( ... 'Key', 'sqrt', ... 'Priority', 100, ... 'ImplementationName', 'sqrt', ... 'ImplementationHeaderFile', '<math.h>' );
Input Arguments
The hEntry
is a handle to a code replacement function entry previously returned by _`hEntry`_ = RTW.TflCFunctionEntry
or _`hEntry`_ =_`MyCustomFunctionEntry`_
, where_`MyCustomFunctionEntry`_
is a class derived from RTW.TflCFunctionEntry
.
Example: fcn_entry
Name-Value Arguments
Specify optional pairs of arguments asName1=Value1,...,NameN=ValueN
, where Name
is the argument name and Value
is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.
Before R2021a, use commas to separate each name and value, and enclose Name
in quotes.
Example: 'Key','sqrt'
The AcceptExprInput
value flags the code generator that the implementation function described by this entry accepts expression inputs. The default value is true
if ImplType
equals FCN_IMPL_FUNCT
and false
if ImplType
equalsFCN_IMPL_MACRO
.
If the value is true
, expression inputs are integrated into the generated code in a form similar to this form:
rtY.Out1 = mySin(rtU.In1 + rtU.In2);
If the value is false
, a temporary variable is generated for the expression input:
real_T rtb_Sum;
rtb_Sum = rtU.In1 + rtU.In2; rtY.Out1 = mySin(rtb_Sum);
Example: 'AcceptExprInput',true
The AdditionalHeaderFiles
value specifies additional header files for a code replacement table entry. The vectors can include tokens. For example, in the token$mytoken$
, mytoken
is a variable defined as a character vector or string scalar in the MATLABĀ® workspace or as a MATLAB function in the search path that returns a character vector.
Example: 'AdditionalHeaderFiles',{}
The AdditionalIncludePaths
value specifies the full path of additional include paths for a code replacement entry. The character vectors or string array can include tokens. For example, in the token $mytoken$
, mytoken
is a variable defined as a character vector or string scalar in the MATLAB workspace or as a MATLAB function in the search path that returns a character vector.
Example: 'AdditionalIncludePaths',{}
The AdditionalLinkObjs
value specifies additional link objects for a code replacement table entry. The character vectors or string array can include tokens. For example, in the token $mytoken$
, mytoken
is a variable defined as a character vector or string scalar in the MATLAB workspace or as a MATLAB function in the search path that returns a character vector.
Example: 'AdditionalLinkObjs',{}
The AdditionalLinkObjsPaths
value specifies the full path of additional link object paths for a code replacement entry. The character vectors or string array can include tokens. For example, in the token $mytoken$
,mytoken
is a variable defined as a character vector or string scalar in the MATLAB workspace or as a MATLAB function in the search path that returns a character vector. The default is {}
.
Example: 'AdditionalLinkObjsPaths',{}
The AdditionalSourceFiles
value specifies additional source files for a code replacement table entry. The character vectors or string array can include tokens. For example, in the token $mytoken$
, mytoken
is a variable defined as a character vector or string scalar in the MATLAB workspace or as a MATLAB function in the search path that returns a character vector.
Example: 'AdditionalSourceFiles',{}
The AdditionalSourcePaths
value specifies the full path of additional source paths for a code replacement entry. The character vectors or string array can include tokens. For example, in the token $mytoken$
, mytoken
is a variable defined as a character vector or string scalar in the MATLAB workspace or as a MATLAB function in the search path that returns a character vector.
Example: 'AdditionalSourcePaths',{}
The AdditionalCompileFlags
value specifies additional flags required to compile the source files defined for a code replacement table entry. The default is {}
.
Example: 'AdditionalCompileFlags',{}
The AdditionalLinkFlags
value specifies additional flags required to link the compiled files for a code replacement table entry.
Example: 'AdditionalLinkFlags',{}
The ArrayLayout
value specifies the order of array elements in memory supported by the replacement implementation. By default, the replacement implementation supports column-major data layout. For ROW-MAJOR
, the replacement implementation supports row-major data layout. For COLUMN_AND_ROW
, the replacement implementation supports column-major and row-major data layouts.
Example: 'ArrayLayout','ROW_MAJOR'
The EntryInfoAlgorithm
value specifies a computation or approximation method, configured for the specified math function, that must be matched in order for function replacement to occur. Code replacement libraries support function replacement based on computation or approximation method for the math functionsrSqrt
, sin
,cos
, sincos
, andatan2
. The valid arguments for each supported function are listed in the table.
Function | Argument | Meaning |
---|---|---|
rSqrt | RTW_DEFAULT | Match the default computation method,Exact |
RTW_NEWTON_RAPHSON | Match the Newton-Raphson computation method | |
RTW_UNSPECIFIED | Match a computation method | |
sincossincosatan2 | RTW_CORDIC | Match the CORDIC approximation method |
RTW_LOOKUP | Match the Lookup approximation method | |
RTW_DEFAULT | Match the default approximation method,None | |
RTW_UNSPECIFIED | Match an approximation method |
Example: 'EntryInfoAlgorithm','RTW_DEFAULT'
The GenCallback
specifies a callback that follows code generation. If you specify'RTW.copyFileToBuildDir'
, and if this function entry is matched and used, the code generator calls functionRTW.copyFileToBuildDir
after code generation. This callback function copies additional header, source, or object files that you have specified for this function entry to the build folder.
Example: 'GenCallback',''
The ImplementationHeaderFile
value specifies the name of the header file that declares the implementation function, for example, '<math.h>'
. The character vector or string scalar can include tokens. For example, in the token $mytoken$
, mytoken
is a variable defined as a character vector or string scalar in the MATLAB workspace or as a MATLAB function in the search path that returns a character vector.
Example: 'ImplementationHeaderFile',''
The ImplementationHeaderPath
value specifies the full path to the implementation header file. The character vector or string scalar can include tokens. For example, in the token$mytoken$
, mytoken
is a variable defined as a character vector or string scalar in the MATLAB workspace or as a MATLAB function in the search path that returns a character vector.
Example: 'ImplementationHeaderPath',''
The ImplementationName
value specifies the name of the implementation function, for example,'sqrt'
, which can match or differ from theKey
name.
Example: 'ImplementationName',''
The ImplementationSourceFile
value specifies the name of the implementation source file. The character vector or string scalar can include tokens. For example, in the token$mytoken$
, mytoken
is a variable defined as a character vector or string scalar in the MATLAB workspace or as a MATLAB function in the search path that returns a character vector.
Example: 'ImplementationSourceFile',''
The ImplementationSourcePath
value specifies the full path to the implementation source file. The character vector or string scalar can include tokens. For example, in the token$mytoken$
, mytoken
is a variable defined as a character vector or string scalar in the MATLAB workspace or as a MATLAB function in the search path that returns a character vector.
Example: 'ImplementationSourcePath',''
Use FCN_IMPL_FUNCT
for function orFCN_IMPL_MACRO
for macro.
Example: 'ImplType','FCN_IMPL_FUNCT'
The Priority
value specifies the search priority for the function entry, relative to other entries of the same function name and conceptual argument list within this table. Highest priority is 0, and lowest priority is 100. If the table provides two implementations for a function, the implementation with the higher priority shadows the one with the lower priority.
Example: 'Priority',100
The RoundingModes
value specifies one or more rounding modes supported by the implementation function.
Example: 'RoundingModes',{'RTW_ROUND_UNSPECIFIED'}
The SaturationMode
value specifies the saturation mode supported by the implementation function.
Example: 'SaturationMode','RTW_SATURATE_UNSPECIFIED'
The SideEffects
value flags the code generator not to optimize away the implementation function described by this entry. This parameter applies to implementation functions that returnvoid
but are not to be optimized away, such as amemcpy
implementation or an implementation function that accesses global memory values. For those implementation functions only, you must include this parameter and specify the valuetrue
.
Example: 'SideEffects',false
The StoreFcnReturnInLocalVar
value flags the code generator that the return value of the implementation function described by this entry must be stored in a local variable regardless of other expression folding settings. If the value isfalse
, other expression folding settings determine whether the return value is folded. Storing function returns in a local variable can increase the clarity of generated code. This example shows code generated with expression folding:
void sw_step(void)
{
if (ssub(sadd(sw_U.In1, sw_U.In2), sw_U.In3) <=
smul(ssub(sw_U.In4, sw_U.In5),sw_U.In6)) {
sw_Y.Out1 = sw_U.In7;
} else {
sw_Y.Out1 = sw_U.In8;
}
}
With StoreFcnReturnInLocalVar
set totrue
, the generated code is potentially easier to understand and debug:
void sw_step(void)
{
real32_T rtb_Switch;
real32_T hoistedExpr;
......
rtb_Switch = sadd(sw_U.In1, sw_U.In2);
rtb_Switch = ssub(rtb_Switch, sw_U.In3);
hoistedExpr = ssub(sw_U.In4, sw_U.In5);
hoistedExpr = smul(hoistedExpr, sw_U.In6);
if (rtb_Switch <= hoistedExpr) {
sw_Y.Out1 = sw_U.In7;
} else {
sw_Y.Out1 = sw_U.In8;
}
}
Example: 'StoreFcnReturnInLocalVar',false
Version History
Introduced in R2007b