function hLib = Ifx_IntLkUpFixICur_CRLEntry(hLib)
% Key: lookup1D
% y1: Result
% u1: Xin
% u2: Offset
% u3: Interval   
% u4: Val_array
% u5: N 
    
%% DataType
               % Conceptual datatype       Implementation datatype 
int8datatype =   {'fixdt(1,8,0)',            'int8'};
int16datatype =  {'fixdt(1,16,0)',           'int16'};
uint8datatype =  {'fixdt(0,8,0)',            'uint8'};
uint16datatype = {'fixdt(0,16,0)',           'uint16'};

%% Code Replacement Library Entries
%% Column-major routines (COLUMN_DIR)
%0x050
hLib.addEntry( Ifx_addEntry_IntLkUpFixICur('Ifx_IntLkUpFixICur_u8_u8', uint8datatype, uint8datatype, uint8datatype, uint8datatype, ...
    uint8datatype, uint8datatype, uint8datatype, false) );
%0x051
hLib.addEntry( Ifx_addEntry_IntLkUpFixICur('Ifx_IntLkUpFixICur_u16_u16', uint16datatype, uint16datatype, uint16datatype, uint16datatype, ...
    uint16datatype, uint16datatype, uint16datatype, false) );
%0x052
hLib.addEntry( Ifx_addEntry_IntLkUpFixICur('Ifx_IntLkUpFixICur_s8_s8', int8datatype, int8datatype, int8datatype, uint8datatype,  ...
    int8datatype, int8datatype, int8datatype, false) );
% Required to support AUTOSAR for LUTObject with Even spacing specification holding a bpS with int8 type
hLib.addEntry( Ifx_addEntry_IntLkUpFixICur('Ifx_IntLkUpFixICur_s8_s8', int8datatype, int8datatype, int8datatype, int8datatype,  ...
    int8datatype, int8datatype, int8datatype, false) );
%0x053
hLib.addEntry( Ifx_addEntry_IntLkUpFixICur('Ifx_IntLkUpFixICur_s16_s16', int16datatype, int16datatype, int16datatype, uint16datatype, ...
    int16datatype, int16datatype, int16datatype, false) );
% Required to support AUTOSAR for LUTObject with Even spacing specification holding a bpS with int16 type
hLib.addEntry( Ifx_addEntry_IntLkUpFixICur('Ifx_IntLkUpFixICur_s16_s16', int16datatype, int16datatype, int16datatype, int16datatype, ...
    int16datatype, int16datatype, int16datatype, false) );

%% Row-major routines (ROW_DIR)
%0x050
hLib.addEntry( Ifx_addEntry_IntLkUpFixICur('Ifx_IntLkUpFixICur_u8_u8', uint8datatype, uint8datatype, uint8datatype, uint8datatype, ...
    uint8datatype, uint8datatype, uint8datatype, true) );
%0x051
hLib.addEntry( Ifx_addEntry_IntLkUpFixICur('Ifx_IntLkUpFixICur_u16_u16', uint16datatype, uint16datatype, uint16datatype, uint16datatype, ...
    uint16datatype, uint16datatype, uint16datatype, true) );
%0x052
hLib.addEntry( Ifx_addEntry_IntLkUpFixICur('Ifx_IntLkUpFixICur_s8_s8', int8datatype, int8datatype, int8datatype, uint8datatype,  ...
    int8datatype, int8datatype, int8datatype, true) );
% Required to support AUTOSAR for LUTObject with Even spacing specification holding a bpS with int8 type
hLib.addEntry( Ifx_addEntry_IntLkUpFixICur('Ifx_IntLkUpFixICur_s8_s8', int8datatype, int8datatype, int8datatype, int8datatype,  ...
    int8datatype, int8datatype, int8datatype, true) );
%0x053
hLib.addEntry( Ifx_addEntry_IntLkUpFixICur('Ifx_IntLkUpFixICur_s16_s16', int16datatype, int16datatype, int16datatype, uint16datatype, ...
    int16datatype, int16datatype, int16datatype, true) );
% Required to support AUTOSAR for LUTObject with Even spacing specification holding a bpS with int16 type
hLib.addEntry( Ifx_addEntry_IntLkUpFixICur('Ifx_IntLkUpFixICur_s16_s16', int16datatype, int16datatype, int16datatype, int16datatype, ...
    int16datatype, int16datatype, int16datatype, true) );

end

function hEnt = Ifx_addEntry_IntLkUpFixICur(signature, datatype_y1, datatype_u, datatype_bp0, datatype_bpI, ...
    datatype_T, datatype_AutosarN, datatype_AutosarbpI, createRowMajorRoutine)

hEnt = coder.Ifx_IntFixICurCustomEntry;

%% Set Function Entry Parameters
hEnt.setTflCFunctionEntryParameters( ...
    'Key', 'lookup1D', ...
    'Priority', 100, ...
    'SupportSymbolicDimensions', true, ...
    'ImplementationName', signature, ...
    'ImplementationHeaderFile', 'Ifx.h');

%% Add Algorithm Properties
                    % Parameter                             Value
algPropertyList = {{'InterpMethod',                        'Flat'},...
                   {'ExtrapMethod',                        'Clip'},... 
                   {'IndexSearchMethod',                   'Evenly spaced points'},...
                   {'UseLastTableValue'                    'on'},...                   
                   {'BPPower2Spacing',                     'off'},...
                   {'RemoveProtectionInput'                'off'},...
                   {'RndMeth',                             {'Round', 'Zero'}}};
               
%% Set ArrayLayout and UseRowMajorAlgorithm
[hEnt, algPropertyList] = Ifx_setMapRowMajorAttributes(hEnt, algPropertyList, createRowMajorRoutine);            
               
hEnt = addAlgorithmParameters(hEnt, algPropertyList);

%% Add Conceptual and implementation Arguments 
% Conceptual Arguments
hEnt = Ifx_addIntFixICurConceptualArguments(hEnt, datatype_y1, datatype_u, datatype_bp0, datatype_bpI, datatype_T);

% Implementation Arguments
hEnt = Ifx_addIntFixFixICurImplementationArguments(hEnt, datatype_y1, datatype_u, datatype_bp0, ...
    datatype_T, datatype_AutosarN, datatype_AutosarbpI);

%% Map and cache argument locations for use in do_match tasks
hEnt.mapAndCacheLabeledArgLocations();

end

