44 lines
1.1 KiB
C++
44 lines
1.1 KiB
C++
/*
|
|
* rt_look1d.cpp
|
|
*
|
|
* Academic License - for use in teaching, academic research, and meeting
|
|
* course requirements at degree granting institutions only. Not for
|
|
* government, commercial, or other organizational use.
|
|
*
|
|
* Code generation for model "VFControl".
|
|
*
|
|
* Model version : 1.1
|
|
* Simulink Coder version : 24.1 (R2024a) 19-Nov-2023
|
|
* C++ source code generated on : Wed Oct 16 10:45:53 2024
|
|
*/
|
|
|
|
#include "rt_look.h"
|
|
#include "rtwtypes.h"
|
|
#include "rt_look1d.h"
|
|
#ifdef __cplusplus
|
|
|
|
extern "C"
|
|
{
|
|
|
|
#endif
|
|
|
|
/* 1D lookup routine for data type of real_T. */
|
|
real_T rt_Lookup(const real_T *x, int_T xlen, real_T u, const real_T *y)
|
|
{
|
|
int_T idx = rt_GetLookupIndex(x, xlen, u);
|
|
real_T num = y[idx+1] - y[idx];
|
|
real_T den = x[idx+1] - x[idx];
|
|
|
|
/* Due to the way the binary search is implemented
|
|
in rt_look.c (rt_GetLookupIndex), den cannot be
|
|
0. Equivalently, m cannot be inf or nan. */
|
|
real_T m = num/den;
|
|
return (y[idx] + (m * (u - x[idx])));
|
|
}
|
|
|
|
#ifdef __cplusplus
|
|
|
|
} /* extern "C" */
|
|
|
|
#endif
|