%implements sbalgexp "C"
%function BlockTypeSetup(block, system) void
%<SLibAddToStaticSources("sbpowdi.c")>
%assign externC = LibExternInFcnDecls()
%if ::GenCPP
%assign externC = "extern /"C/""
%endif
%openfile buffer
#ifndef POWDI_DEFINE
%<externC> real_T powdi(real_T x, int_T n);
#define POWDI_DEFINE
#endif
%closefile buffer
%<LibCacheFunctionPrototype(buffer)>
%endfunction
%function Start(block, system) Output
%assign sfcnName = ParamSettings.FunctionName
/* Algebraic Expression Block */
/* %<Type> Block: (%<sfcnName>): %<LibParentMaskBlockName(block)> */
{
%assign info = SFcnParamSettings.algInfo
%assign numParams = info[2]
%assign iniParams = SFcnParamSettings.iniParams
/* Assign parameters */
%foreach idx = numParams
%<LibBlockDWork(algParams, "", "", idx)> = %;
%endforeach
}
%endfunction
%function Outputs(block, system) Output
%<LibAddToCommonIncludes("")>
%assign sfcnName = ParamSettings.FunctionName
/* Algebraic Expression Block */
/* %<Type> Block: (%<sfcnName>): %<LibParentMaskBlockName(block)> */
{
%assign info = SFcnParamSettings.algInfo
%assign ninputs = info[0]
%assign noutputs = info[1]
%assign nparams = info[2]
%assign cStatements = SFcnParamSettings.cStatements
%assign nstatements = SIZE(SFcnParamSettings.cStatements, 1)
%assign timeComponent = SFcnParamSettings.timeComponent
%foreach idx = %<nstatements>
%assign statement = "%"
%assign statement = FEVAL("strrep",statement,"^",",")
%foreach uidx = ninputs
%assign uiToken = "@u%"
%assign ui = LibBlockInputSignal(0,"","",ninputs-uidx-1)
%assign statement = FEVAL("strrep",statement,uiToken,ui)
%endforeach
%foreach yidx = noutputs
%assign yiToken = "@y%"
%assign yi = LibBlockOutputSignal(0,"","",noutputs-yidx-1)
%assign statement = FEVAL("strrep",statement,yiToken,yi)
%endforeach
%foreach pidx = nparams
%assign piToken = "@p%"
%assign pi = LibBlockDWork(algParams, "", "", nparams-pidx-1)
%assign statement = FEVAL("strrep",statement,piToken,pi)
%endforeach
%if timeComponent
%assign tiToken = "@t"
%assign ti = LibGetT()
%assign statement = FEVAL("strrep",statement,tiToken,ti)
%endif
%<statement>
%endforeach
}
%endfunction
%function Terminate(block, system) Output
%endfunction