📄 c2_fib_determinant.c
字号:
/* Include files */
#include "Fib_determinant_sfun.h"
#include "c2_Fib_determinant.h"
#define CHARTINSTANCE_CHARTNUMBER (chartInstance.chartNumber)
#define CHARTINSTANCE_INSTANCENUMBER (chartInstance.instanceNumber)
#include "Fib_determinant_sfun_debug_macros.h"
/* Type Definitions */
/* Named Constants */
#define c2_IN_NO_ACTIVE_CHILD (0)
/* Variable Declarations */
/* Variable Definitions */
static SFc2_Fib_determinantInstanceStruct chartInstance;
/* Function Declarations */
static void initialize_c2_Fib_determinant(void);
static void initialize_params_c2_Fib_determinant(void);
static void enable_c2_Fib_determinant(void);
static void disable_c2_Fib_determinant(void);
static void finalize_c2_Fib_determinant(void);
static void sf_c2_Fib_determinant(void);
static void init_script_number_translation(uint32_T c2_machineNumber, uint32_T
c2_chartNumber);
static const mxArray *c2_sf_marshall(void *c2_chartInstance, void *c2_u);
static const mxArray *c2_b_sf_marshall(void *c2_chartInstance, void *c2_u);
static void c2_info_helper(c2_ResolvedFunctionInfo c2_info[72]);
static void init_dsm_address_info(void);
/* Function Definitions */
static void initialize_c2_Fib_determinant(void)
{
_sfTime_ = (real_T)ssGetT(chartInstance.S);
chartInstance.c2_is_active_c2_Fib_determinant = 0U;
}
static void initialize_params_c2_Fib_determinant(void)
{
}
static void enable_c2_Fib_determinant(void)
{
}
static void disable_c2_Fib_determinant(void)
{
}
static void finalize_c2_Fib_determinant(void)
{
}
static void sf_c2_Fib_determinant(void)
{
int32_T c2_i0;
int32_T c2_i1;
uint8_T c2_previousEvent;
int32_T c2_i2;
int32_T c2_i3;
real_T c2_u[4];
real_T c2_d;
int32_T c2_i4;
int32_T c2_i5;
real_T c2_x[4];
int32_T c2_i6;
int32_T c2_i7;
real_T c2_A[4];
int32_T c2_i8;
int32_T c2_i9;
real_T c2_b_x[4];
int32_T c2_i10;
real_T c2_pivot[2];
boolean_T c2_isodd;
real_T c2_k;
real_T c2_p;
real_T c2_c_x;
real_T c2_y;
real_T c2_d_x;
real_T c2_b_y;
real_T c2_maxval;
real_T c2_i;
real_T c2_e_x;
real_T c2_c_y;
real_T c2_f_x;
real_T c2_d_y;
real_T c2_rtemp;
real_T c2_d0;
real_T c2_a;
real_T c2_b_a;
real_T c2_temp;
real_T c2_ptemp;
real_T c2_b_A;
real_T c2_B;
real_T c2_g_x;
real_T c2_e_y;
real_T c2_f_y;
int32_T c2_i11;
int32_T c2_i12;
boolean_T c2_b_isodd;
real_T *c2_b_d;
real_T (*c2_b_u)[4];
c2_b_u = (real_T (*)[4])ssGetInputPortSignal(chartInstance.S, 0);
c2_b_d = (real_T *)ssGetOutputPortSignal(chartInstance.S, 1);
_sfTime_ = (real_T)ssGetT(chartInstance.S);
for(c2_i0 = 0; c2_i0 < 2; c2_i0 = c2_i0 + 1) {
for(c2_i1 = 0; c2_i1 < 2; c2_i1 = c2_i1 + 1) {
_SFD_DATA_RANGE_CHECK((*c2_b_u)[c2_i1 + 2 * c2_i0], 0U);
}
}
_SFD_DATA_RANGE_CHECK(*c2_b_d, 1U);
c2_previousEvent = _sfEvent_;
_sfEvent_ = CALL_EVENT;
_SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG,0);
for(c2_i2 = 0; c2_i2 < 2; c2_i2 = c2_i2 + 1) {
for(c2_i3 = 0; c2_i3 < 2; c2_i3 = c2_i3 + 1) {
c2_u[c2_i3 + 2 * c2_i2] = (*c2_b_u)[c2_i3 + 2 * c2_i2];
}
}
sf_debug_symbol_scope_push(2U, 0U);
sf_debug_symbol_scope_add("d", &c2_d, c2_b_sf_marshall);
sf_debug_symbol_scope_add("u", &c2_u, c2_sf_marshall);
CV_EML_FCN(0, 0);
/* This block supports an embeddable subset of the MATLAB language. */
/* See the help menu for details. */
/* For releases before R2006b use the following: */
_SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,6);
c2_d = c2_u[0] * c2_u[3] - c2_u[2] * c2_u[1];
/* Release 2006b and later support the determinant */
_SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,9);
for(c2_i4 = 0; c2_i4 < 2; c2_i4 = c2_i4 + 1) {
for(c2_i5 = 0; c2_i5 < 2; c2_i5 = c2_i5 + 1) {
c2_x[c2_i5 + 2 * c2_i4] = c2_u[c2_i5 + 2 * c2_i4];
}
}
for(c2_i6 = 0; c2_i6 < 2; c2_i6 = c2_i6 + 1) {
for(c2_i7 = 0; c2_i7 < 2; c2_i7 = c2_i7 + 1) {
c2_A[c2_i7 + 2 * c2_i6] = c2_x[c2_i7 + 2 * c2_i6];
}
}
for(c2_i8 = 0; c2_i8 < 2; c2_i8 = c2_i8 + 1) {
for(c2_i9 = 0; c2_i9 < 2; c2_i9 = c2_i9 + 1) {
c2_b_x[c2_i9 + 2 * c2_i8] = c2_A[c2_i9 + 2 * c2_i8];
}
}
for(c2_i10 = 0; c2_i10 < 2; c2_i10 = c2_i10 + 1) {
c2_pivot[c2_i10] = 1.0 + (real_T)c2_i10;
}
c2_isodd = 0U;
c2_k = 1.0;
c2_p = c2_k;
c2_c_x = 0.0;
c2_y = fabs(c2_c_x);
c2_d_x = c2_b_x[0];
c2_b_y = fabs(c2_d_x);
c2_maxval = c2_b_y + c2_y;
c2_i = 2.0;
c2_e_x = 0.0;
c2_c_y = fabs(c2_e_x);
c2_f_x = c2_b_x[1];
c2_d_y = fabs(c2_f_x);
c2_rtemp = c2_d_y + c2_c_y;
if(c2_rtemp > c2_maxval) {
c2_p = c2_i;
}
if(c2_p != c2_k) {
c2_d0 = 1.0;
for(c2_a = c2_d0; c2_a <= 2.0; c2_a = c2_a + 1.0) {
c2_b_a = c2_a;
c2_temp = c2_b_x[((int32_T)_SFD_EML_ARRAY_BOUNDS_CHECK("A",
(int32_T)_SFD_INTEGER_CHECK("p", c2_p), 1, 2, 1, 0) - 1) + 2 * ((int32_T
)_SFD_EML_ARRAY_BOUNDS_CHECK("A", (int32_T)_SFD_INTEGER_CHECK("a",
c2_b_a), 1, 2, 2, 0) - 1)];
c2_b_x[((int32_T)_SFD_EML_ARRAY_BOUNDS_CHECK("A",
(int32_T)_SFD_INTEGER_CHECK("p", c2_p), 1, 2, 1, 0) - 1) + 2 * ((int32_T)
_SFD_EML_ARRAY_BOUNDS_CHECK("A", (int32_T)_SFD_INTEGER_CHECK("a",
c2_b_a), 1, 2, 2, 0) - 1)] = c2_b_x[2 * ((int32_T)
_SFD_EML_ARRAY_BOUNDS_CHECK("A", (int32_T)_SFD_INTEGER_CHECK("a",
c2_b_a), 1, 2, 2, 0) - 1)];
c2_b_x[2 * ((int32_T)_SFD_EML_ARRAY_BOUNDS_CHECK("A",
(int32_T)_SFD_INTEGER_CHECK("a", c2_b_a), 1, 2, 2, 0) - 1)] = c2_temp;
}
c2_ptemp = c2_pivot[0];
c2_pivot[0] = c2_pivot[(int32_T)_SFD_EML_ARRAY_BOUNDS_CHECK("pivot",
(int32_T)_SFD_INTEGER_CHECK("p", c2_p), 1, 2, 1, 0) - 1];
c2_pivot[(int32_T)_SFD_EML_ARRAY_BOUNDS_CHECK("pivot",
(int32_T)_SFD_INTEGER_CHECK("p", c2_p), 1, 2, 1, 0) - 1] = c2_ptemp;
c2_isodd = !c2_isodd;
}
if(c2_b_x[0] != 0.0) {
c2_b_A = c2_b_x[1];
c2_B = c2_b_x[0];
c2_g_x = c2_b_A;
c2_e_y = c2_B;
c2_f_y = c2_g_x / c2_e_y;
c2_b_x[1] = c2_f_y;
}
c2_b_x[3] = c2_b_x[3] - c2_b_x[1] * c2_b_x[2];
for(c2_i11 = 0; c2_i11 < 2; c2_i11 = c2_i11 + 1) {
for(c2_i12 = 0; c2_i12 < 2; c2_i12 = c2_i12 + 1) {
c2_x[c2_i12 + 2 * c2_i11] = c2_b_x[c2_i12 + 2 * c2_i11];
}
}
c2_b_isodd = c2_isodd;
c2_d = c2_x[0];
c2_d = c2_d * c2_x[3];
if(c2_b_isodd) {
c2_d = -c2_d;
}
_SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,-9);
sf_debug_symbol_scope_pop();
*c2_b_d = c2_d;
_SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG,0);
_sfEvent_ = c2_previousEvent;
sf_debug_check_for_state_inconsistency(_Fib_determinantMachineNumber_,
chartInstance.chartNumber, chartInstance.instanceNumber);
}
static void init_script_number_translation(uint32_T c2_machineNumber, uint32_T
c2_chartNumber)
{
}
static const mxArray *c2_sf_marshall(void *c2_chartInstance, void *c2_u)
{
const mxArray *c2_y = NULL;
int32_T c2_i13;
int32_T c2_i14;
real_T c2_b_u[4];
const mxArray *c2_b_y = NULL;
c2_y = NULL;
for(c2_i13 = 0; c2_i13 < 2; c2_i13 = c2_i13 + 1) {
for(c2_i14 = 0; c2_i14 < 2; c2_i14 = c2_i14 + 1) {
c2_b_u[c2_i14 + 2 * c2_i13] = (*((real_T (*)[4])c2_u))[c2_i14 + 2 *
c2_i13];
}
}
c2_b_y = NULL;
sf_mex_assign(&c2_b_y, sf_mex_create(&c2_b_u, "y", 0, 0U, 1U, 2, 2, 2));
sf_mex_assign(&c2_y, c2_b_y);
return c2_y;
}
static const mxArray *c2_b_sf_marshall(void *c2_chartInstance, void *c2_u)
{
const mxArray *c2_y = NULL;
real_T c2_b_u;
const mxArray *c2_b_y = NULL;
c2_y = NULL;
c2_b_u = *((real_T *)c2_u);
c2_b_y = NULL;
sf_mex_assign(&c2_b_y, sf_mex_create(&c2_b_u, "y", 0, 0U, 0U, 0));
sf_mex_assign(&c2_y, c2_b_y);
return c2_y;
}
const mxArray *sf_c2_Fib_determinant_get_eml_resolved_functions_info(void)
{
const mxArray *c2_nameCaptureInfo = NULL;
c2_ResolvedFunctionInfo c2_info[72];
c2_ResolvedFunctionInfo (*c2_b_info)[72];
const mxArray *c2_m0 = NULL;
int32_T c2_i15;
c2_ResolvedFunctionInfo *c2_r0;
c2_nameCaptureInfo = NULL;
c2_info_helper(c2_info);
c2_b_info = &c2_info;
(*c2_b_info)[64].context =
"[I]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_alloc.m";
(*c2_b_info)[64].name = "eml_assert_valid_size_arg";
(*c2_b_info)[64].dominantType = "double";
(*c2_b_info)[64].resolved =
"[I]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_assert_valid_size_arg.m";
(*c2_b_info)[64].fileLength = 1097U;
(*c2_b_info)[64].fileTime1 = 1163970788U;
(*c2_b_info)[64].fileTime2 = 0U;
(*c2_b_info)[65].context =
"[I]$matlabroot$/toolbox/eml/lib/matlab/ops/colon.m";
(*c2_b_info)[65].name = "lt";
(*c2_b_info)[65].dominantType = "double";
(*c2_b_info)[65].resolved = "[B]lt";
(*c2_b_info)[65].fileLength = 0U;
(*c2_b_info)[65].fileTime1 = 0U;
(*c2_b_info)[65].fileTime2 = 0U;
(*c2_b_info)[66].context =
"[I]$matlabroot$/toolbox/eml/lib/matlab/ops/colon.m/is_flint_colon";
(*c2_b_info)[66].name = "max";
(*c2_b_info)[66].dominantType = "double";
(*c2_b_info)[66].resolved =
"[I]$matlabroot$/toolbox/eml/lib/matlab/datafun/max.m";
(*c2_b_info)[66].fileLength = 672U;
(*c2_b_info)[66].fileTime1 = 1160446606U;
(*c2_b_info)[66].fileTime2 = 0U;
(*c2_b_info)[67].context =
"[I]$matlabroot$/toolbox/eml/lib/matlab/elmat/ndims.m";
(*c2_b_info)[67].name = "eml_numel";
(*c2_b_info)[67].dominantType = "double";
(*c2_b_info)[67].resolved =
"[I]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_numel.m";
(*c2_b_info)[67].fileLength = 278U;
(*c2_b_info)[67].fileTime1 = 1163970802U;
(*c2_b_info)[67].fileTime2 = 0U;
(*c2_b_info)[68].context =
"[I]$matlabroot$/toolbox/eml/lib/matlab/datafun/max.m";
(*c2_b_info)[68].name = "nargout";
(*c2_b_info)[68].dominantType = "";
(*c2_b_info)[68].resolved = "[B]nargout";
(*c2_b_info)[68].fileLength = 0U;
(*c2_b_info)[68].fileTime1 = 0U;
(*c2_b_info)[68].fileTime2 = 0U;
(*c2_b_info)[69].context =
"[I]$matlabroot$/toolbox/eml/lib/matlab/elmat/eps.m";
(*c2_b_info)[69].name = "eml_guarded_nan";
(*c2_b_info)[69].dominantType = "";
(*c2_b_info)[69].resolved =
"[I]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_guarded_nan.m";
(*c2_b_info)[69].fileLength = 549U;
(*c2_b_info)[69].fileTime1 = 1160446740U;
(*c2_b_info)[69].fileTime2 = 0U;
(*c2_b_info)[70].context =
"[I]$matlabroot$/toolbox/eml/lib/matlab/matfun/det.m";
(*c2_b_info)[70].name = "eml_lu";
(*c2_b_info)[70].dominantType = "double";
(*c2_b_info)[70].resolved =
"[I]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_lu.m";
(*c2_b_info)[70].fileLength = 2218U;
(*c2_b_info)[70].fileTime1 = 1177099722U;
(*c2_b_info)[70].fileTime2 = 0U;
(*c2_b_info)[71].context =
"[I]$matlabroot$/toolbox/eml/lib/matlab/datatypes/isa.m";
(*c2_b_info)[71].name = "eml_is_integer_class";
(*c2_b_info)[71].dominantType = "char";
(*c2_b_info)[71].resolved =
"[I]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_is_integer_class.m";
(*c2_b_info)[71].fileLength = 462U;
(*c2_b_info)[71].fileTime1 = 1160446744U;
(*c2_b_info)[71].fileTime2 = 0U;
sf_mex_assign(&c2_m0, sf_mex_createstruct("nameCaptureInfo", 1, 72));
for(c2_i15 = 0; c2_i15 < 72; c2_i15 = c2_i15 + 1) {
c2_r0 = &c2_info[c2_i15];
sf_mex_addfield(c2_m0, sf_mex_create(c2_r0->context, "nameCaptureInfo", 13,
0U, 0U, 2, 1, strlen(c2_r0->context)), "context",
"nameCaptureInfo", c2_i15);
sf_mex_addfield(c2_m0, sf_mex_create(c2_r0->name, "nameCaptureInfo", 13, 0U,
0U, 2, 1, strlen(c2_r0->name)), "name",
"nameCaptureInfo", c2_i15);
sf_mex_addfield(c2_m0, sf_mex_create(c2_r0->dominantType, "nameCaptureInfo",
13, 0U, 0U, 2, 1, strlen(c2_r0->dominantType)),
"dominantType", "nameCaptureInfo", c2_i15);
sf_mex_addfield(c2_m0, sf_mex_create(c2_r0->resolved, "nameCaptureInfo", 13,
0U, 0U, 2, 1, strlen(c2_r0->resolved)), "resolved",
"nameCaptureInfo", c2_i15);
sf_mex_addfield(c2_m0, sf_mex_create(&c2_r0->fileLength, "nameCaptureInfo",
7, 0U, 0U, 0), "fileLength", "nameCaptureInfo", c2_i15);
sf_mex_addfield(c2_m0, sf_mex_create(&c2_r0->fileTime1, "nameCaptureInfo",
7, 0U, 0U, 0), "fileTime1", "nameCaptureInfo", c2_i15);
sf_mex_addfield(c2_m0, sf_mex_create(&c2_r0->fileTime2, "nameCaptureInfo",
7, 0U, 0U, 0), "fileTime2", "nameCaptureInfo", c2_i15);
}
sf_mex_assign(&c2_nameCaptureInfo, c2_m0);
return c2_nameCaptureInfo;
}
static void c2_info_helper(c2_ResolvedFunctionInfo c2_info[72])
{
c2_info[0].context =
"[I]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_assert_valid_size_arg.m/check_arg";
c2_info[0].name = "true";
c2_info[0].dominantType = "";
c2_info[0].resolved = "[I]$matlabroot$/toolbox/eml/lib/matlab/elmat/true.m";
c2_info[0].fileLength = 625U;
c2_info[0].fileTime1 = 1163970786U;
c2_info[0].fileTime2 = 0U;
c2_info[1].context = "[I]$matlabroot$/toolbox/eml/lib/matlab/ops/colon.m";
c2_info[1].name = "isreal";
c2_info[1].dominantType = "double";
c2_info[1].resolved = "[B]isreal";
c2_info[1].fileLength = 0U;
c2_info[1].fileTime1 = 0U;
c2_info[1].fileTime2 = 0U;
c2_info[2].context =
"[I]$matlabroot$/toolbox/eml/lib/matlab/eml/eml_min_or_max.m";
c2_info[2].name = "eml_scalexp_compatible";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -